Freigeben über


COM-Schnittstellen-Einstiegspunkte

Eine Memberfunktion einer COM-Schnittstelle, verwenden Sie die METHOD_PROLOGUE Makro, um den globalen Zustand beizubehalten, wenn Sie Methoden einer exportierten Schnittstelle aufrufen.

Normalerweise Memberfunktionen von Schnittstellen implementiert durch CCmdTarget abgeleitete Objekte verwenden bereits dieses Makro, um die automatische Initialisierung des pThis Zeigers bereitzustellen.Beispiele:

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

Weitere Informationen finden Sie unter Technischer Hinweis 38 /MFC Implementierung für OLE IUnknown.

Das METHOD_PROLOGUE Makro wie 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 dem Verwalten des globalen Status beeinflusst wird, ist:

AFX_MANAGE_STATE( pThis->m_pModuleState )

In diesem Ausdruck m_pModuleState wird davon ausgegangen, dass eine Membervariable des Containerobjekts sein.Es wird von der CCmdTarget Basisklasse implementiert und wird auf den entsprechenden Wert von COleObjectFactory initialisiert, wenn das Objekt instanziiert wird.

Siehe auch

Konzepte

Verwalten der Statusdaten von MFC-Modulen