COM 接口入口点
对于 COM 接口的成员函数,在调用导出接口的方法时,可使用 METHOD_PROLOGUE
宏维护适当的全局状态。
通常,由 CCmdTarget
派生的对象实现的接口的成员函数已使用此宏提供 pThis
指针的自动初始化。 例如:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
有关其他信息,请参见有关 MFC/OLE IUnknown
实现的技术说明 38。
按如下方式定义 METHOD_PROLOGUE
宏:
#define METHOD_PROLOGUE(theClass, localClass) \
theClass* pThis = \
((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
AFX_MANAGE_STATE(pThis->m_pModuleState) \
与管理全局状态相关的宏的部分是:
AFX_MANAGE_STATE( pThis->m_pModuleState )
在该表达式中,假定 m_pModuleState 为包含对象的成员变量。 它由 CCmdTarget
基类实现,并在实例化对象时由 COleObjectFactory
初始化为适当的值。