Punkty wejścia interfejsu COM
Funkcje składowe interfejsu COM, użyj METHOD_PROLOGUE makro w celu utrzymania właściwego stanu globalnego podczas wywoływania metod eksportowanych interfejsu.
Zazwyczaj, funkcje składowe interfejsów implementowane przez CCmdTarget-obiekty pochodne już to makro umożliwiają korzystanie automatycznego inicjowania z pThis wskaźnik.Na przykład:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
Aby uzyskać dodatkowe informacje, zobacz technicznej 38 Uwaga na MFC/OLE IUnknown wdrożenia.
METHOD_PROLOGUE Makro jest zdefiniowana jako:
#define METHOD_PROLOGUE(theClass, localClass) \
theClass* pThis = \
((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
AFX_MANAGE_STATE(pThis->m_pModuleState) \
Część makra, które są związane z zarządzaniem stanu globalnego jest:
AFX_MANAGE_STATE( pThis->m_pModuleState )
W tym wyrażeniu m_pModuleState zmienną obiektu zawierającego przyjmowana jest wartość.Jest zaimplementowana przez CCmdTarget klasa podstawowa i jest inicjowana na odpowiednią wartość przez COleObjectFactory, kiedy jest obiekt.