2
给定从不同来源获得的两个接口引用。是否有程序化的方式来判断它们是否由同一实例实现?有没有办法判断两个COM接口引用是否指向同一个实例?
接口引用的简单相等检查总是失败。
编辑:原来的问题,这竟然是一个独立的问题,大部分地区现在已转移到a new question。
给定从不同来源获得的两个接口引用。是否有程序化的方式来判断它们是否由同一实例实现?有没有办法判断两个COM接口引用是否指向同一个实例?
接口引用的简单相等检查总是失败。
编辑:原来的问题,这竟然是一个独立的问题,大部分地区现在已转移到a new question。
您可以查询IUnknown接口并比较这些指针。所有其他接口指针不保证每次都返回相同的值。
从The Rules of the Component Object Model:
对象的身份。对于特定接口IUnknown的给定对象实例,在任何接口上对QueryInterface的任何调用都必须始终返回相同的物理指针值。这使得可以在任何两个接口上调用QueryInterface(IID_IUnknown,...)并比较结果以确定它们是否指向对象的同一实例(同一个COM对象标识)。