Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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.