Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
| Overview | How Do I | | Tutorial
For member functions of a COM interface, use the macro to maintain the proper global state when calling methods of an exported interface.
Typically, member functions of interfaces implemented by CCmdTarget-derived objects already use this macro to provide automatic initialization of the pThis pointer. For example:
// Inner IUnknown implementation (for aggregation)
STDMETHODIMP_(ULONG) CInnerUnknown::AddRef()
{
METHOD_PROLOGUE_(CCmdTarget, InnerUnknown)
return pThis->InternalAddRef();
}
For additional information, see , "MFC/OLE IUnknown Implementation."
The METHOD_PROLOGUE macro is defined as:
#define METHOD_PROLOGUE(theClass, localClass) \
theClass* pThis = \
((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
AFX_MANAGE_STATE(pThis->m_pModuleState) \
The portion of the macro concerned with managing the global state is:
AFX_MANAGE_STATE( pThis->m_pModuleState )
In this expression, m_pModuleState is assumed to be a member variable of the containing object. It is implemented by the CCmdTarget base class, and is initialized to the appropriate value by COleObjectFactory, when the object is instantiated.