首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是QueryInterface和IUnknown接口?

什么是QueryInterface和IUnknown接口?
EN

Stack Overflow用户
提问于 2014-04-07 10:11:59
回答 2查看 1.3K关注 0票数 2

我想知道QueryInterface和IUnknown接口的实际使用情况。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-07 10:25:05

QueryInterface()是C# as关键字的COM版本--调用QueryInterface()并提供接口id,您可以获得成功代码(S_OK)和指向对象接口的有效指针,或者错误代码E_NOINTERFACE和null指针,这意味着对象没有实现这样的接口。IUnknown是包含QueryInterface()的接口,也是用于COM对象生命周期管理的引用计数方法(AddRef()Release())。每个COM对象都必须至少实现IUnknown,否则,当您不再需要对象时,就不能使用Release()对象,而调用Release()是告诉您不再需要对象的唯一方法。

票数 2
EN

Stack Overflow用户

发布于 2014-04-07 10:36:39

QueryInterface检查实现此接口的对象是否支持IID指定的接口。如果是,QueryInterface

  1. 增加引用计数。
  2. 设置Obj参数,使其指向指定接口的实例。
  3. 返回0以表示成功。

如果对象不支持接口,QueryInterface将返回一个非零错误代码,如E_NoInterface。

IUnknown是COM-Lite中的基本接口,在COM中也是如此.所有其他COM-Lite接口都必须从它派生出来。

用于对象生命周期管理(何时释放对象)和对象自描述(如何在运行时确定对象功能)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22909454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档