Compartilhar via


Pontos de entrada da interface COM

Para funções de membro de uma interface COM, use a macro de METHOD_PROLOGUE para manter o estado global apropriado ao chamar métodos de uma interface exportada.

Normalmente, as funções de membro das interfaces implementadas por CCmdTarget- os objetos derivados já usam esta macro para fornecer a inicialização automática do ponteiro de pThis . Por exemplo:

STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
   METHOD_PROLOGUE(CMySink, Sinky);
   return pThis->InternalAddRef();
}

Para obter mais informações, consulte Observação 38 técnica na implementação de MFC/OLE IUnknown .

A macro de METHOD_PROLOGUE é definido como:

#define METHOD_PROLOGUE(theClass, localClass) \

theClass* pThis = \

((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \

AFX_MANAGE_STATE(pThis->m_pModuleState) \

A parte de macro estado relacionado com gerenciar o estado global é:

AFX_MANAGE_STATE( pThis->m_pModuleState )

Nessa expressão, o m_pModuleState é considerado como uma variável de membro do objeto contentor. É implementado pela classe base de CCmdTarget e inicializado com o valor apropriado por COleObjectFactory, quando é criada uma instância do objeto.

Consulte também

Conceitos

Gerenciando os dados de estado dos módulos MFC