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
初始化為適當的值。