词条 | QueryInterface |
释义 | 客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是IUnknown。所有的COM接口都继承了IUnknown,每个接口的vtbl中的前三个函数都是QueryInterface、AddRef、Release。这样所有COM接口都可以被当成IUnknown接口来处理。 函数功能: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->Fun(); } } |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。