Partager via


Interface COM, points d'entrée

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 règle générale, les fonctions membres des interfaces implémentées par CCmdTargetdes objets dérivés utilisent déjà cette macro pour fournir l’initialisation automatique du pThis pointeur. 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é.

Voir aussi

Gestion des données d’état des modules MFC