Pontos de entrada de interface com.
Para funções de membro de uma interface COM, use o METHOD_PROLOGUE macro para manter o estado global adequado ao chamar métodos de uma interface exportado.
Normalmente, as funções de membro das interfaces implementadas por CCmdTarget-objetos derivados já usam essa macro para fornecer a inicialização automático das pThis ponteiro. Por exemplo:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
Para obter informações adicionais, consulte Observação técnica 38 no MFC/OLE IUnknown implementação.
The METHOD_PROLOGUE macro é definida sistema autônomo:
#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 referentes ao gerenciamento de estado global é:
AFX_MANAGE_STATE( pThis->m_pModuleState )
Nessa expressão, m_pModuleState é considerado uma variável de membro do objeto recipiente.Ela é implementada pelo CCmdTarget classe base e inicializado com o valor apropriado por COleObjectFactory, quando o objeto é instanciado.