ReactOS  0.4.15-dev-5452-g3c95c95
comsupp.cpp File Reference
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <comdef.h>
Include dependency graph for comsupp.cpp:

Go to the source code of this file.

Namespaces

 _com_util
 

Macros

#define WIN32_NO_STATUS
 
#define _INC_WINDOWS
 

Typedefs

typedef void WINAPI COM_ERROR_HANDLER(HRESULT, IErrorInfo *)
 

Functions

void WINAPI _com_raise_error (HRESULT hr, IErrorInfo *perrinfo)
 
void WINAPI _set_com_error_handler (COM_ERROR_HANDLER *phandler)
 
void WINAPI _com_issue_error (HRESULT hr)
 
void WINAPI _com_issue_errorex (HRESULT hr, IUnknown *punk, REFIID riid)
 
_variant_t vtMissing (DISP_E_PARAMNOTFOUND, VT_ERROR)
 
BSTR WINAPI _com_util::ConvertStringToBSTR (const char *pSrc)
 
char *WINAPI _com_util::ConvertBSTRToString (BSTR pSrc)
 

Variables

static COM_ERROR_HANDLERcom_error_handler
 

Macro Definition Documentation

◆ _INC_WINDOWS

#define _INC_WINDOWS

Definition at line 12 of file comsupp.cpp.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 11 of file comsupp.cpp.

Typedef Documentation

◆ COM_ERROR_HANDLER

typedef void WINAPI COM_ERROR_HANDLER(HRESULT, IErrorInfo *)

Definition at line 19 of file comsupp.cpp.

Function Documentation

◆ _com_issue_error()

void WINAPI _com_issue_error ( HRESULT  hr)

Definition at line 32 of file comsupp.cpp.

33 {
35 }
HRESULT hr
Definition: shlfolder.c:183
#define NULL
Definition: types.h:112
static COM_ERROR_HANDLER * com_error_handler
Definition: comsupp.cpp:20

Referenced by _com_util::ConvertBSTRToString(), _com_util::ConvertStringToBSTR(), and ConvertUTF8StringToBSTR().

◆ _com_issue_errorex()

void WINAPI _com_issue_errorex ( HRESULT  hr,
IUnknown punk,
REFIID  riid 
)

Definition at line 37 of file comsupp.cpp.

38 {
39  void *pv;
40  IErrorInfo *perrinfo = NULL;
41 
42  if (SUCCEEDED(punk->QueryInterface(riid, &pv)))
43  {
44  ISupportErrorInfo *pserrinfo = static_cast<ISupportErrorInfo *>(pv);
45  if (pserrinfo->InterfaceSupportsErrorInfo(riid) == S_OK)
46  (void)GetErrorInfo(0, &perrinfo);
47  pserrinfo->Release();
48  }
49 
50  com_error_handler(hr, perrinfo);
51 }
HRESULT hr
Definition: shlfolder.c:183
REFIID riid
Definition: precomp.h:44
if SUCCEEDED(hr)
ULONG Release()
HRESULT WINAPI GetErrorInfo(ULONG dwReserved, IErrorInfo **pperrinfo)
Definition: errorinfo.c:417
#define S_OK
Definition: intsafe.h:52
HRESULT InterfaceSupportsErrorInfo([in] REFIID riid)
#define NULL
Definition: types.h:112
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
static COM_ERROR_HANDLER * com_error_handler
Definition: comsupp.cpp:20

◆ _com_raise_error()

void WINAPI _com_raise_error ( HRESULT  hr,
IErrorInfo perrinfo 
)

Definition at line 22 of file comsupp.cpp.

23 {
24  throw _com_error(hr, perrinfo);
25 }
HRESULT hr
Definition: shlfolder.c:183

◆ _set_com_error_handler()

void WINAPI _set_com_error_handler ( COM_ERROR_HANDLER phandler)

Definition at line 27 of file comsupp.cpp.

28 {
29  com_error_handler = phandler;
30 }
static COM_ERROR_HANDLER * com_error_handler
Definition: comsupp.cpp:20

◆ vtMissing()

_variant_t vtMissing ( DISP_E_PARAMNOTFOUND  ,
VT_ERROR   
)

Variable Documentation

◆ com_error_handler

COM_ERROR_HANDLER* com_error_handler
static

Definition at line 20 of file comsupp.cpp.

Referenced by _com_issue_error(), _com_issue_errorex(), and _set_com_error_handler().