Condividi tramite


Punti di ingresso all'interfaccia COM

Per le funzioni membro di un'interfaccia COM, utilizzare la macro di METHOD_PROLOGUE per gestire lo stato complessivo appropriato quando si chiamano metodi di interfaccia esportata.

In genere, le funzioni membro delle interfacce implementate da CCmdTargetagli oggetti derivati già utilizza questa macro per consentire l'inizializzazione automatica del puntatore di pThis. Di seguito è riportato un esempio.

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

Per ulteriori informazioni, vedere Nota tecnica 38 l'implementazione di MFC/OLE IUnknown.

La macro di METHOD_PROLOGUE viene definita come segue:

#define METHOD_PROLOGUE(theClass, localClass) \

theClass* pThis = \

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

AFX_MANAGE_STATE(pThis->m_pModuleState) \

La parte della macro responsabile della gestione dello stato complessivo è:

AFX_MANAGE_STATE( pThis->m_pModuleState )

In questa espressione, il m_pModuleState sia una variabile membro oggetto contenitore. Viene implementato dalla classe base CCmdTarget e viene inizializzato sul valore appropriato da COleObjectFactory, quando si crea un'istanza dell'oggetto.

Vedere anche

Concetti

Gestione dei dati dello stato dei moduli MFC