Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
För medlemsfunktioner i ett COM-gränssnitt använder du makrot METHOD_PROLOGUE för att upprätthålla rätt globalt tillstånd när du anropar metoder för ett exporterat gränssnitt.
Vanligtvis använder medlemsfunktioner i gränssnitt som implementeras av CCmdTarget-härledda objekt redan det här makrot för att ge automatisk initiering av pekaren pThis . Till exempel:
STDMETHODIMP_(ULONG) CMySink::XSinky::AddRef()
{
METHOD_PROLOGUE(CMySink, Sinky);
return pThis->InternalAddRef();
}
Mer information finns i Technical Note 38 om MFC/OLE-implementering IUnknown .
Makrot METHOD_PROLOGUE definieras som:
#define METHOD_PROLOGUE(theClass, localClass) \
theClass* pThis = \
((theClass*)((BYTE*)this - offsetof(theClass, m_x##localClass))); \
AFX_MANAGE_STATE(pThis->m_pModuleState) \
Den del av makrot som handlar om att hantera det globala tillståndet är:
AFX_MANAGE_STATE( pThis->m_pModuleState )
I det här uttrycket antas m_pModuleState vara en medlemsvariabel för det innehållande objektet. Den implementeras av basklassen CCmdTarget och initieras till lämpligt värde av COleObjectFactory, när objektet instansieras.