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。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應