Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para funções membro de uma interface COM, use a macro METHOD_PROLOGUE para manter o estado global adequado ao chamar métodos de uma interface exportada.
Normalmente, as funções membro de interfaces implementadas por objetos derivados de CCmdTarget já usam essa macro para fornecer 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 Observação Técnica 38 sobre a implementação de 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 relacionada ao gerenciamento do estado global é:
AFX_MANAGE_STATE( pThis->m_pModuleState )
Nesta expressão, m_pModuleState é considerado uma variável membro do objeto que contém. Ele é implementado pela CCmdTarget classe base e é inicializado para o valor apropriado por COleObjectFactory, quando o objeto é instanciado.