QueryInterface

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

基本介紹

  • 外文名:QueryInterface
  • 功能:查詢某個組件是否支持某個接口
  • 原型:HRESULT QueryInterface
  • 參數:iid
基本信息,函式功能,函式原型,

基本信息

客戶同組件的互動都是通過一個接口完成的。在客戶查詢組件的其他接口時,也是通過接口完成的。這個接口就是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();
}
}

相關詞條

熱門詞條

聯絡我們