Einstiegspunkte für COM-Schnittstellen

Verwenden Sie für Memberfunktionen einer COM-Schnittstelle das -Makro, METHOD_PROLOGUE um beim Aufrufen von Methoden einer exportierten Schnittstelle den richtigen globalen Zustand zu erhalten.

In der Regel verwenden Memberfunktionen von Schnittstellen, die von CCmdTargetvon abgeleiteten Objekten implementiert werden, dieses Makro bereits, um die automatische Initialisierung des Zeigers pThis zu ermöglichen. Beispiel:

STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
   METHOD_PROLOGUE(CMySink, Sinky);
   return pThis->InternalAddRef();
}

Weitere Informationen finden Sie unter Technical Note 38 on MFC/OLE implementation (Technischer Hinweis 38 zur MFC/OLE-Implementierung IUnknown ).

Das METHOD_PROLOGUE Makro ist definiert als:

#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, der mit der Verwaltung des globalen Zustands in Zusammenhang steht, ist:

AFX_MANAGE_STATE( pThis->m_pModuleState )

In diesem Ausdruck wird m_pModuleState , dass es sich um eine Membervariable des enthaltenden Objekts handelt. Sie wird von der Basisklasse CCmdTarget implementiert und mit COleObjectFactorydem entsprechenden Wert von initialisiert, wenn das -Objekt instanziiert wird.

Weitere Informationen

Verwalten der Zustandsdaten von MFC-Modulen