Compartilhar via


Pontos de entrada da interface COM

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.

Consulte também

Gerenciando os dados de estado de módulos MFC