【问题标题】:What is the difference between IDispatch and IUnkown in COM? [closed]COM 中的 IDispatch 和 IUnkown 有什么区别? [关闭]
【发布时间】:2018-03-30 00:06:53
【问题描述】:

我已经阅读并看到了 COM 的示例,但我无法清楚地了解 Interface 的区别。

【问题讨论】:

标签: c++ visual-c++ com com-interface


【解决方案1】:

IUnknown 是原始 COM 接口。它提供了将 COM 对象的实例“转换”到它支持的任何接口 (QueryInterface) 的基本能力。

IDispatch 以 IUnknown 为基础,添加了在运行时发现指定 COM 对象支持的属性和接口的工具。这允许后期绑定和动态绑定。各种补救措施。使用 IDispatch,应用程序可以发现组件的功能并调用发现的方法(简单地称为自动化)。

参见 MSDN 上的 Implementing the IDispatch Interface [Automation](从 WayBack Machine 复活 - current online version)。

【讨论】:

  • MSDN 链接已损坏。
  • @RAM - 修复了超链接问题。
【解决方案2】:

IUnkown是所有COM接口的基本接口。

IDispatch 向编程工具和其他支持自动化的应用程序公开对象、方法和属性的接口。

【讨论】:

    【解决方案3】:

    IDispatch 接口继承自 IUnknown 接口。 请查看以下链接。

    IDispatch

    IUnknown

    【讨论】:

      猜你喜欢
      • 2015-03-12
      • 2010-10-05
      • 2017-10-03
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 1970-01-01
      • 2017-03-04
      • 1970-01-01
      相关资源
      最近更新 更多