Points d'entrée d'interface COM
Pour les fonctions membres d'une interface COM, utilisez la macro de METHOD_PROLOGUE pour maintenir l'état global approprié lorsque les méthodes d'appel d'une interface exportée.
En général, les fonctions membres des interfaces implémentées par CCmdTarget- les objets dérivés utilisent déjà cette macro pour fournir l'initialisation automatique du pointeur d' pThis .Par exemple :
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
Pour plus d'informations, consultez note technique 38 sur l'implémentation MFC/OLE IUnknown .
La macro d' METHOD_PROLOGUE est définie comme suit :
#define METHOD_PROLOGUE(theClass, localClass) \
theClass* pThis = \
((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
AFX_MANAGE_STATE(pThis->m_pModuleState) \
La partie de la macro concernée par gérer l'état global est :
AFX_MANAGE_STATE( pThis->m_pModuleState )
Dans cette expression, le m_pModuleState est une variable membre de l'objet contenant.Elle est implémentée par la classe de base d' CCmdTarget et est initialisée à la valeur appropriée par COleObjectFactory, lorsque l'objet est instancié.