有没有办法判断两个COM接口引用是否指向同一个实例?

时间:2008-11-27 09:13:34

标签: com identity com-interface

给出从不同来源获得的两个接口引用。是否有一种编程方式来判断它们是否由同一个实例实现?

接口引用的简单相等检查总是失败。


编辑:原始问题的大部分内容现已转移到a new question

1 个答案:

答案 0 :(得分:8)

您可以查询IUnknown接口并比较这些指针。所有其他接口指针不保证每次都返回相同的值。

来自The Rules of the Component Object Model

  

对象标识。要求在特定接口IUnknown的给定对象实例的任何接口上对QueryInterface的任何调用必须始终返回相同的物理指针值。这样可以在任何两个接口上调用QueryInterface(IID_IUnknown,...)并比较结果以确定它们是否指向对象的同一实例(相同的COM对象标识)。