QueryInterface

QueryInterface客戶可以通過此函式來查詢某個組件是否支持某個特定的接口。

基本信息

客戶同組件的互動都是通過一個接口完成的。在客戶查詢組件的其他接口時,也是通過接口完成的。這個接口就是IUnknown。所有的COM接口都繼承了IUnknown,每個接口的vtbl中的前三個函式都是QueryInterface、AddRef、Release。這樣所有COM接口都可以被當成IUnknown接口來處理。

函式功能

System Interface IUnknown下的一個成員函式,客戶可以通過此函式來查詢某個組件是否支持某個特定的接口。若支持QueryInterface將返回一個指向這些接口的指針,不支持返回值將是一個失敗結果。

函式原型

HRESULT QueryInterface( REFIID iid, void** ppvObject);

參數:

iid

[in] 指明需要查詢的接口的IID.

ppvObject

[out] 按第一個參數查詢後得到的接口指針,該指針指向了這個接口的虛函式表,而在這個虛函式表中存放的就是該接口中函式的指針

示例:

void demo(IUnknown* pI)

{

// 定義一個接口指針

IM* pIM = NULL;

// 查詢接口IM

HRESULThr = pI->QueryInterface(IID_IM, (void**)&pIM);

if (SUCCEEDED(hr))

{

// 通過接口調用函式

pIM->Run();

}

}

相關詞條

相關搜尋

熱門詞條

聯絡我們