Freigeben über


Einstiegspunkte für COM-Schnittstellen

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

In der Regel verwenden Memberfunktionen von Schnittstellen, die von abgeleiteten CCmdTargetObjekten implementiert werden, bereits dieses Makro, um die automatische Initialisierung des pThis Zeigers bereitzustellen. Beispiel:

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

Weitere Informationen finden Sie in technischem Hinweis 38 zur MFC/OLE-Implementierung IUnknown .

Das METHOD_PROLOGUE Makro wird wie folgt 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, der mit der Verwaltung des globalen Zustands befasst ist:

AFX_MANAGE_STATE( pThis->m_pModuleState )

In diesem Ausdruck wird davon ausgegangen, dass m_pModuleState eine Membervariable des enthaltenden Objekts ist. Sie wird von der CCmdTarget Basisklasse implementiert und wird beim Instanziieren des Objekts auf den entsprechenden Wert COleObjectFactoryinitialisiert.

Siehe auch

Verwalten der Statusdaten von MFC-Modulen