COM 组件接口的 IUnKnown 接口介绍

COM 组件接口的 IUnKnown 接口介绍

COM组件C++

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;}

IUnKnown接口的作用,COM定义的每一个接口都必须从IUnknown继承过来,其原因在 于IUnknown接口提供了两个非常重要的特性:生存期控制和接口查询。 客户程序只能通过接口与COM对象进行通信,虽然客户程序可以不管 对象内部的实现细节,但它要控制对象的存在与否。IUnknown接口是所有COM接口的根。

函数介绍:

1、客户同组件的交互都是通过一个接口完成的。在客户查询组件的其他接口时,也是通过接口完成的。这个接口就是 IUnknown。所有的 COM 接口都继承了 IUnknown,每个接口的vtbl中的前三个函数都是QueryInterface、AddRef、Release。这样所有COM接口都可以被当成 IUnKnown 接口来处理。

QueryInterface() 方法,,System Interface IUnknown下的一个成员函数,客户可以通过此函数来查询某个组件是否支持某个特定的接口。若支持QueryInterface将返回一个指向这些接口的指针,不支持返回值将是一个失败结果。第一个参数是需要查询的接口的ID,第二个参数为按照第一个参数所查询到接口的指针。

2、第二个和第三个函数用于引用的计数和释放,在返回接口指针时调用 AddRef,在使用完接口时调用 Release。

版权声明:本文为博主原创文章,未经博主允许不得转载。

上一篇DirectShow 方式列举和捕捉设备接口

顶0踩0

如同磁铁吸引四周的铁粉,热情也能吸引周围的人,改变周围的情况。

COM 组件接口的 IUnKnown 接口介绍

相关文章:

你感兴趣的文章:

标签云: