COM Interface Entry Points
For member functions of a COM interface, use the METHOD_PROLOGUE
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:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
For additional information, see Technical Note 38 on 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.
See also
Feedback
https://aka.ms/ContentUserFeedback.
În curând: Pe parcursul anului 2024, vom elimina treptat Probleme legate de GitHub ca mecanism de feedback pentru conținut și îl vom înlocui cu un nou sistem de feedback. Pentru mai multe informații, consultați:Trimiteți și vizualizați feedback pentru