客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown。所有的
COM接口都继承了IUnknown,每个接口的vtbl中的前三个函数都是QueryInterface、AddRef、
Release。这样所有COM接口都可以被当成
IUnknown接口来处理。
System Interface IUnknown下的一个成员函数,客户可以通过此函数来查询某个组件是否支持某个特定的接口。若支持QueryInterface将返回一个指向这些接口的
指针,不支持
返回值将是一个失败结果。
[in] 指明需要查询的接口的IID.
HRESULT hr = pI->QueryInterface(IID_IM, (
void**)&pIM);