📄 errorinfomacros.h
字号:
// this code is based in part on the
// ACDUAL MFC\OLE sample application provided with Visual C++ 5.0
/////////////////////////////////////////////////////////////////////
// DECLARE_DUAL_ERRORINFO expands to declare the ISupportErrorInfo
// support class. It works together with DUAL_ERRORINFO_PART and
// IMPLEMENT_DUAL_ERRORINFO defined below.
#define DECLARE_DUAL_ERRORINFO() \
BEGIN_INTERFACE_PART(SupportErrorInfo, ISupportErrorInfo) \
STDMETHOD(InterfaceSupportsErrorInfo)(THIS_ REFIID riid); \
END_INTERFACE_PART(SupportErrorInfo) \
/////////////////////////////////////////////////////////////////////
// DUAL_ERRORINFO_PART adds the appropriate entry to the interface map
// for ISupportErrorInfo, if you used DECLARE_DUAL_ERRORINFO.
#define DUAL_ERRORINFO_PART(objectClass) \
INTERFACE_PART(objectClass, IID_ISupportErrorInfo, SupportErrorInfo) \
/////////////////////////////////////////////////////////////////////
// IMPLEMENT_DUAL_ERRORINFO expands to an implementation of
// ISupportErrorInfo which matches the declaration in
// DECLARE_DUAL_ERRORINFO.
#define IMPLEMENT_DUAL_ERRORINFO(objectClass, riidSource) \
STDMETHODIMP_(ULONG) objectClass::XSupportErrorInfo::AddRef() \
{ \
METHOD_PROLOGUE(objectClass, SupportErrorInfo) \
return pThis->ExternalAddRef(); \
} \
STDMETHODIMP_(ULONG) objectClass::XSupportErrorInfo::Release() \
{ \
METHOD_PROLOGUE(objectClass, SupportErrorInfo) \
return pThis->ExternalRelease(); \
} \
STDMETHODIMP objectClass::XSupportErrorInfo::QueryInterface( \
REFIID iid, LPVOID* ppvObj) \
{ \
METHOD_PROLOGUE(objectClass, SupportErrorInfo) \
return pThis->ExternalQueryInterface(&iid, ppvObj); \
} \
STDMETHODIMP objectClass::XSupportErrorInfo::InterfaceSupportsErrorInfo( \
REFIID iid) \
{ \
METHOD_PROLOGUE(objectClass, SupportErrorInfo) \
return (iid == riidSource) ? S_OK : S_FALSE; \
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -