我想知道QueryInterface和IUnknown接口的实际使用情况。
发布于 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()是告诉您不再需要对象的唯一方法。
发布于 2014-04-07 10:36:39
QueryInterface检查实现此接口的对象是否支持IID指定的接口。如果是,QueryInterface
如果对象不支持接口,QueryInterface将返回一个非零错误代码,如E_NoInterface。
IUnknown是COM-Lite中的基本接口,在COM中也是如此.所有其他COM-Lite接口都必须从它派生出来。
用于对象生命周期管理(何时释放对象)和对象自描述(如何在运行时确定对象功能)。
https://stackoverflow.com/questions/22909454
复制相似问题