Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para métodos membros de uma interface COM, use a macro METHOD_PROLOGUE para manter o estado global correto ao chamar métodos de uma interface exportada.
Normalmente, as funções membro de interfaces implementadas por CCmdTarget objetos derivados já utilizam esta macro para fornecer a inicialização automática do ponteiro pThis. Por exemplo:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
Para obter informações adicionais, consulte a Nota Técnica 38 sobre a implementação MFC/OLE IUnknown .
A METHOD_PROLOGUE macro é definida como:
#define METHOD_PROLOGUE(theClass, localClass) \
theClass* pThis = \
((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
AFX_MANAGE_STATE(pThis->m_pModuleState) \
A parte da macro preocupada com a gestão do Estado global é:
AFX_MANAGE_STATE( pThis->m_pModuleState )
Nesta expressão, m_pModuleState é assumida como uma variável membro do objeto que a contém. Ele é implementado pela CCmdTarget classe base e é inicializado com o valor apropriado por COleObjectFactory, quando o objeto é instanciado.