Sdílet prostřednictvím


Vstupní body rozhraní COM

Pro členské funkce rozhraní COM použijte k zachování správného globálního stavu při volání metod exportovaného rozhraní makro METHOD_PROLOGUE.

Typicky členské funkce rozhraní implementovaných objekty odvozenými z CCmdTarget již používají toto makro k zajištění automatické inicializace ukazatele pThis. Například:

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

Další informace naleznete v technické poznámce 38 o implementaci MFC/OLE IUnknown .

Makro METHOD_PROLOGUE je definováno takto:

#define METHOD_PROLOGUE(theClass, localClass) \
    theClass* pThis = \
    ((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
    AFX_MANAGE_STATE(pThis->m_pModuleState) \

Část makra, která se zabývá správou globálního státu, je:

AFX_MANAGE_STATE( pThis->m_pModuleState )

V tomto výrazu se předpokládá, že m_pModuleState je členskou proměnnou obsahujícího objektu. Je implementována základní třídou CCmdTarget a je inicializována na odpovídající hodnotu pomocí COleObjectFactory při vytvoření instance objektu.

Viz také

Správa stavových dat modulů MFC