Bagikan melalui


COM Map Global Functions

Fungsi-fungsi ini memberikan dukungan untuk implementasi COM Map IUnknown .

Fungsi Deskripsi
AtlInternalQueryInterface Mendelegasikan ke IUnknown objek nonaggregated.
InlineIsEqualIUnknown Menghasilkan kode yang efisien untuk membandingkan antarmuka dengan IUnknown.

Persyaratan

Header: atlbase.h

AtlInternalQueryInterface

Mengambil penunjuk ke antarmuka yang diminta.

HRESULT AtlInternalQueryInterface(
    void* pThis,
    const _ATL_INTMAP_ENTRY* pEntries,
    REFIID iid,
    void** ppvObject);

Parameter

pThis
[di] Penunjuk ke objek yang berisi peta COM antarmuka yang diekspos ke QueryInterface.

pEntries
[di] Array _ATL_INTMAP_ENTRY struktur yang mengakses peta antarmuka yang tersedia.

iid
[di] GUID antarmuka yang diminta.

ppvObject
[out] Penunjuk ke penunjuk antarmuka yang ditentukan dalam iid, atau NULL jika antarmuka tidak ditemukan.

Tampilkan Nilai

Salah satu nilai HRESULT standar.

Keterangan

AtlInternalQueryInterface hanya menangani antarmuka dalam tabel peta COM. Jika objek Anda diagregasi, AtlInternalQueryInterface tidak mendelegasikan ke luar yang tidak diketahui. Anda dapat memasukkan antarmuka ke dalam tabel peta COM dengan makro COM_INTERFACE_ENTRY atau salah satu variannya.

Contoh

// MyTimerProc is a callback function passed to SetTimer()
VOID CALLBACK MyTimerProc(HWND /*hwnd*/, UINT /*uMsg*/, UINT /*idEvent*/, 
   DWORD /*dwTime*/)
{
   LPDISPATCH pDisp = NULL;
   // gpMyCtrl is a global variable of type CMyCtrl*
   // _GetEntries() is a static function you get with BEGIN_COM_MAP()
   AtlInternalQueryInterface (gpMyCtrl, CMyCtrl::_GetEntries(), IID_IDispatch, 
      (LPVOID*)&pDisp);
   //...
   pDisp->Release ();
}

InlineIsEqualIUnknown

Panggil fungsi ini, untuk kasus pengujian khusus untuk IUnknown.

BOOL InlineIsEqualUnknown(REFGUID rguid1);

Parameter

rguid1
[di] GUID untuk dibandingkan dengan IID_IUnknown.

Lihat juga

Fungsi
COM Map Macros