Bagikan melalui


Titik Entri Antarmuka COM

Untuk fungsi anggota antarmuka COM, gunakan METHOD_PROLOGUE makro untuk mempertahankan status global yang tepat saat memanggil metode antarmuka yang diekspor.

Biasanya, fungsi anggota antarmuka yang diimplementasikan oleh CCmdTargetobjek -turunan sudah menggunakan makro ini untuk menyediakan inisialisasi pThis otomatis pointer. Contohnya:

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

Untuk informasi tambahan, lihat Catatan Teknis 38 tentang implementasi MFC/OLE IUnknown .

METHOD_PROLOGUE Makro didefinisikan sebagai:

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

Bagian dari makro yang berkaitan dengan pengelolaan status global adalah:

AFX_MANAGE_STATE( pThis->m_pModuleState )

Dalam ekspresi ini, m_pModuleState diasumsikan sebagai variabel anggota dari objek yang berisi. Ini diimplementasikan oleh CCmdTarget kelas dasar dan diinisialisasi ke nilai yang sesuai dengan COleObjectFactory, ketika objek dibuat.

Baca juga

Mengelola Data Status Modul MFC