Compartir a través de


Puntos de entrada de la interfaz COM

Para las funciones miembro de una interfaz COM, use la macro METHOD_PROLOGUE para mantener el estado global adecuado al llamar a métodos de una interfaz exportada.

Normalmente, las funciones miembro de las interfaces implementadas por los objetos derivados de CCmdTarget ya usan esta macro para proporcionar la inicialización automática del puntero pThis. Por ejemplo:

STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
   METHOD_PROLOGUE(CMySink, Sinky);
   return pThis->InternalAddRef();
}

Para obtener más información, consulte la nota técnica 38 sobre la implementación de MFC/OLE IUnknown.

La macro METHOD_PROLOGUE se define como:

#define METHOD_PROLOGUE(theClass, localClass) \
    theClass* pThis = \
    ((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
    AFX_MANAGE_STATE(pThis->m_pModuleState) \

La parte de la macro relacionada con la administración del estado global es:

AFX_MANAGE_STATE( pThis->m_pModuleState )

En esta expresión, se supone que m_pModuleState es una variable miembro del objeto contenedor. Se implementa mediante la clase base CCmdTarget y se inicializa en el valor adecuado por COleObjectFactory, cuando se crea una instancia del objeto.

Consulte también

Administración de los datos de estado de los módulos MFC