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

另请参阅

管理 MFC 模块的状态数据