Condividi tramite


Punti di ingresso all'interfaccia COM

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

In genere, le funzioni membro delle interfacce implementate dagli oggetti derivati da CCmdTargetutilizzano già questa macro per fornire l'inizializzazione automatica del pThis puntatore. Ad esempio:

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

Per altre informazioni, vedere La nota tecnica 38 sull'implementazione MFC/OLE IUnknown .

La METHOD_PROLOGUE macro è definita come:

#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 relativa alla gestione dello stato globale è:

AFX_MANAGE_STATE( pThis->m_pModuleState )

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

Vedi anche

Gestione dei dati dello stato dei moduli MFC