Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para las funciones miembro de una interfaz COM, utilice la macro METHOD_PROLOGUE para mantener el estado global adecuado al llamar a los métodos de una interfaz exportada.
Normalmente, las funciones miembro de las interfaces implementadas por 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, vea Nota técnica 38 sobre la implementación de MFC/OLE IUnknown .
La METHOD_PROLOGUE macro 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 CCmdTarget clase base y se inicializa con el valor adecuado mediante COleObjectFactory, cuando se crea una instancia del objeto.