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。