Aracılığıyla paylaş


COM Eşlemesi Genel İşlevleri

Bu işlevler COM Eşlemesi IUnknown uygulamaları için destek sağlar.

İşlev Tanım
AtlInternalQueryInterface IUnknown Toplanmamış bir nesnenin temsilcisi.
InlineIsEqualIUnknown ile arabirimleri IUnknownkarşılaştırmak için verimli kod oluşturur.

Gereksinimler

Üst bilgi: atlbase.h

AtlInternalQueryInterface

İstenen arabirim için bir işaretçi alır.

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

Parametreler

pThis
[in] öğesine sunulan arabirimlerin COM eşlemesini içeren nesneye QueryInterfaceyönelik bir işaretçi.

pEntries
[in] Kullanılabilir arabirimlerin _ATL_INTMAP_ENTRY haritasına erişen bir yapı dizisi.

ııd
[in] İstenen arabirimin GUID'i.

ppvObject
[out] iid içinde belirtilen arabirim işaretçisi işaretçisi veya arabirim bulunamazsa NULL.

İade Değeri

Standart HRESULT değerlerinden biri.

Açıklamalar

AtlInternalQueryInterface yalnızca COM eşleme tablosundaki arabirimleri işler. Nesneniz toplanmışsa, AtlInternalQueryInterface dış bilinmeyene temsilci seçmez. COM eşleme tablosuna makro COM_INTERFACE_ENTRY veya değişkenlerinden biriyle arabirimler girebilirsiniz.

Örnek

// 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

için özel test örneği için IUnknownbu işlevi çağırın.

BOOL InlineIsEqualUnknown(REFGUID rguid1);

Parametreler

rguid1
[in] ile karşılaştıracak IID_IUnknownGUID.

Ayrıca bkz.

İşlevler
COM Eşleme Makroları