points d'entrée d'interface COM
Pour les fonctions membres d'une interface, utilisez la macro de METHOD_PROLOGUE pour gérer l'état général approprié lors des 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à la macro pour fournir l'initialisation automatique du pointeur de 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 de MFC/OLE IUnknown.
La propriété 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 qui s'occupe de 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 conteneur. Il est implémenté par la classe de base de CCmdTarget et est lancé à la valeur appropriée par COleObjectFactory, lorsque l'objet est instancié.