Einstiegspunkte für COM-Schnittstellen
Für Memberfunktionen einer COM-Schnittstelle, verwenden Sie das METHOD_PROLOGUE-Makro, um den ordnungsgemäßen globalen Zustand beizubehalten wenn Methoden aufgerufen einer exportierten Schnittstelle.
Normalerweise Memberfunktionen von Schnittstellen implementiert durch CCmdTarget abgeleitete Objekte bereits verwenden dieses Makro, um automatische Initialisierung des Zeigers pThis bereitzustellen. Beispiel:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
Weitere Informationen finden Sie unter Technischer Hinweis 38 auf Implementierung MFC OLE/ IUnknown.
Das METHOD_PROLOGUE-Makro wird folgendermaßen definiert:
#define METHOD_PROLOGUE(theClass, localClass) \
theClass* pThis = \
((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
AFX_MANAGE_STATE(pThis->m_pModuleState) \
Der Teil des Makros, das bei der Verwaltung des globalen Zustand zu, ist:
AFX_MANAGE_STATE( pThis->m_pModuleState )
In diesem Ausdruck wird m_pModuleState, wird angenommen Membervariable des enthaltenden Objekts sein. Es wird durch die Basisklasse implementiert CCmdTarget und wird dem entsprechenden Wert von COleObjectFactory initialisiert, wenn das Objekt instanziiert wird.