Sdílet prostřednictvím


COM – vstupní body rozhraní

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

Členské funkce rozhraní implementovaných CCmdTargetobjekty -odvozené objekty již používají toto makro k zajištění automatické inicializace pThis ukazatele. Pří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 m_pModuleState předpokládá, že se jedná o členovou proměnnou obsahujícího objektu. Je implementována CCmdTarget základní třídou a je inicializována na odpovídající hodnotu podle COleObjectFactory, při vytvoření instance objektu.

Viz také

Správa údajů o stavu modulů knihovny MFC