COM 学习笔记(一)

QueryInterface的实现规则的理解:
1、组件的实例只有一个IUnknown接口。
不管通过实例的哪个接口去查询IUnknown接口时,所得到的均将是同一个指针值
。这样做的目的之一就是保证组件实例所有接口有同一个入口。并且有一个好处
是可以通过查询IUnknown接口来判断两个接口是否指向同一个组件。

2、客户可以获取曾经得到过的接口
我的理解是,这条规则规定了一个组件的接口集一旦确定就要保持,是不能随时
更改的。
3、可以再次获取已经拥有的接口
很多情况下,函数都需要一个IUnknown指针作为参数。此条规则保证了传递个函
数的指针接口能够获取到特定的接口指针,即便此参数已经是这个特定的接口指
针。

4、应该具有自反性
举个例子: IX成功的查询了一个IY接口。此时可以使用IY接口来成功查询到IX接
口。
5、如果通过某个接口成功获取某特定接口,那么通过该组件的其他任意接口都应
能够查询到该特定接口。
 

你可能感兴趣的:(C/C++)