Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Pour les fonctions membres d’une interface COM, utilisez la METHOD_PROLOGUE macro pour maintenir l’état global approprié lors de l’appel de méthodes d’une interface exportée.
En général, les fonctions membres des interfaces implémentées par les objets dérivés de CCmdTarget utilisent déjà cette macro pour initialiser automatiquement le pointeur pThis. Par exemple:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
Pour plus d’informations, consultez la note technique 38 sur l’implémentation MFC/OLE IUnknown .
La METHOD_PROLOGUE macro 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 la gestion de l’état global est la suivante :
AFX_MANAGE_STATE( pThis->m_pModuleState )
Dans cette expression, m_pModuleState est supposé être une variable membre de l’objet conteneur. Elle est implémentée par la CCmdTarget classe de base et est initialisée à la valeur appropriée par COleObjectFactory, lorsque l’objet est instancié.