组件对象模型查询接口

Component Object Model Query Interace

本文关键字:接口 查询 组件对象模型      更新时间:2023-10-16

嗨,我正在读Don Box的书《Essential COM》。我的问题是关于IUnknown中的QueryInterface方法。虽然我知道类型转换的实现被移到了接口上,以保护客户端免受类型转换代码的影响,但我不明白这是什么原因。这本书在第一章中说,RTTI的实现因编译器而异,因此在IUnknown中使用QueryInterface方法的动机。然而,在客户端进行选角有什么问题。我的意思是,只需要实现是跨供应商、跨编译器和跨平台的,客户端代码不必有任何这些约束,因此也可以在客户端进行强制转换。如对此有任何见解,我们将不胜感激。

谢谢,Abdul

在存在多重继承的情况下进行转换需要了解实现,因此它不能纯粹是客户端。(需要的是一个动态的演员阵容。)

现有机制还允许使用强制转换无法实现的有用实现技术,例如QueryInterface的结果可以是一个完全独立的对象,可能是动态创建的。