COM 组件接口的 IUnKnown 接口介绍

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。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值