共用方式為


COM 對應全域函式

這些函式提供 COM 對應 IUnknown 實作的支援。

函式 描述
AtlInternalQueryInterface 委派給 IUnknown 非匯總物件的 。
InlineIsEqualIUnknown 產生有效率的程式碼,以便比較介面與 IUnknown

需求

標頭: atlbase.h

AtlInternalQueryInterface

擷取所要求介面的指標。

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

參數

pThis
[in]物件的指標,其中包含公開至 QueryInterface 之介面的 COM 對應。

pEntries
[in]結構陣列 _ATL_INTMAP_ENTRY ,可存取可用介面的對應。

Iid
[in]所要求介面的 GUID。

ppvObject
[out]在 iid 中指定的 介面指標指標,如果找不到介面,則為 Null。

傳回值

其中一個標準 HRESULT 值。

備註

AtlInternalQueryInterface 只處理 COM 對應表格中的介面。 如果您的物件已匯總, AtlInternalQueryInterface 則不會委派給外部未知。 您可以使用宏 COM_INTERFACE_ENTRY 或其其中一個變體,在 COM 對應資料表中輸入介面。

範例

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

針對 的特殊測試 IUnknown 案例呼叫此函式。

BOOL InlineIsEqualUnknown(REFGUID rguid1);

參數

rguid1
[in]要與 比較的 IID_IUnknown GUID。

另請參閱

函式
COM 對應巨集