Partilhar via


Pontos de entrada da interface COM

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.

Ver também

Gerenciando os dados de estado dos módulos MFC