COM 介面進入點
對於 COM 介面的成員函式,請使用 METHOD_PROLOGUE 巨集維護適當的全域狀態,當呼叫匯出方法的介面。
通常, CCmdTarget實作的介面成員函式衍生物件已經使用這個巨集會提供 pThis 指標的自動初始化。 例如:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
如需詳細資訊,請參閱MFC/OLE IUnknown 實作的 Technical Note 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。