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
HRESULT hr = pI->QueryInterface(IID_IM, (void**)&pIM);
if (SUCCEEDED(hr))
{
// 通过接口调用函数
pIM->Run();
}
}
参考资料
最新修订时间:2024-02-22 23:50
目录
概述
基本信息
函数功能
函数原型
参考资料