IUnKnown是一个接口。 所有COM接口都继承IUnKnown。IUnKnown的定义在WIN32 SDK中的UNKNWN头文件中。其定义如下:
interface IUnKnown { virtual HRESULT __stdcall QueryInterface(const IID& iid,void **ppv)=0; virtual ULONG __stdcall AddRef()=0; virtual ULONG __stdcall Release()=0; }
函数介绍:
1、客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是 IUnknown。所有的 COM 接口都继承了 IUnknown,每个接口的vtbl中的前三个函数都是QueryInterface、AddRef、Release。这样所有COM接口都可以被当成 IUnKnown 接口来处理。
QueryInterface() 方法,System Interface IUnknown下的一个成员函数,客户可以通过此函数来查询某个组件是否支持某个特定的接口。若支持QueryInterface将返回一个指向这些接口的指针,不支持返回值将是一个失败结果。第一个参数是需要查询的接口的ID,第二个参数为按照第一个参数所查询到接口的指针。
2、第二个和第三个函数用于引用的计数和释放,在返回接口指针时调用 AddRef,在使用完接口时调用 Release。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/dopamy_busymonkey/article/details/47333823