c++ - 为什么 Microsoft 有 IHTMLDocument、IHTMLDocument2、...、IHTMLDocument8?

标签 c++ internet-explorer mshtml

接口(interface)名称末尾的数字是什么意思?我看到 IHTMLDocument3-7 没有成员 ( see example for #5 ),而 8 有与手势相关的成员。数字是从 Windows 版本派生的吗?

最佳答案

这是公共(public) COM 接口(interface)的一般特性。

如果你想要向后兼容,你永远不想更改已发布的界面,因为这意味着人们为 IE 6 编写的所有代码都停止与 IE 7 一起工作,并且他们的所有客户都会生他们的气,并且他们生你的气。

因此,如果 IE 5 添加了需要公开的新功能,而不是更改 IHTMLDocument,您将创建一个新界面,并使 IE5 支持两者(通过继承,QueryInterface,或一些更明确的机制)。当 IE 7.0.2 或 IE 8 或 Win XP 或任何添加更多新功能时,您将创建另一个。等等。

虽然 MS 可以提出描述性后缀而不仅仅是序列号,但这可能会造成混淆而不是帮助。因此,IHTMLDocument2IHTMLDocument3 等都是名称。除了添加它们的顺序之外,它们没有任何意义。

关于c++ - 为什么 Microsoft 有 IHTMLDocument、IHTMLDocument2、...、IHTMLDocument8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14108640/

相关文章:

c# - 如何在 IE9 中使用 MSHTML 的 addEventListener 添加事件监听器?

c# - 如何在鼠标单击期间更改插入符号在 MSHTML 中的位置?

Delphi html解析检查元素是否具有属性

c++ - 去初始化成语期间是否有任何动态绑定(bind)

C++ : Should we init class from parent or call directly class?

jQuery slideUp 水平菜单 Internet Explorer 问题

css - <main> 元素在 Internet Explorer 11 中不起作用

c++ - 在 Qt 中包含共享内存 BOOST 库

c++ - 编写一个程序,使用栈将表达式 a b + c d e + * * 转换为表达式树。

javascript - IE 与 FireFox 中的 JavaScript 错误?