繁体   English   中英

为什么Microsoft有IHTMLDocument,IHTMLDocument2,...,IHTMLDocument8?

[英]Why does Microsoft have IHTMLDocument, IHTMLDocument2, … , IHTMLDocument8?

接口名称末尾的数字是什么意思? 我看到IHTMLDocument3-7没有成员( 参见#5的示例 ), 8有手势相关成员。 该数字是从Windows版本派生的吗?

这是公共COM接口的一般功能。

如果你想要向后兼容,你永远不想改变一个已发布的界面,因为这意味着人们所写的所有代码,比如,IE 6停止使用IE 7,他们所有的客户都对他们生气,他们生气在你身边

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

虽然MS本可以提出描述性后缀而不仅仅是序列号,但这可能会比有用更令人困惑。 因此, IHTMLDocument2IHTMLDocument3等是名称。 它们没有任何意义,除了它们被添加的顺序。

接口名称末尾的数字是什么意思?

这是版本化COM接口的标准约定。 IXXX2扩展了IXXX的新功能。 IXXX3扩展了IXXX2的新功能,依此类推。 这允许客户端在不释放新版本时使用旧功能,并在需要时使用更新的功能,甚至在尝试调用它们之前检查这些功能是否可用。

我看到IHTMLDocument3-7没有成员

你从哪里得到这个想法? 看看他们的实际定义。 他们将许多新成员从一个界面暴露给下一个界面。

不 - 它只是表示不同版本的界面。 它与Windows版本无关(就此而言,与MSHTML版本很少/无关):

截至http://msdn.microsoft.com/en-us/library/aa752541(v=vs.85).aspx

在哪里我们可以看到:

IHTMLDocument3接口继承自IDispatch接口,但没有其他成员。

对于接触世界的新人来说,这可能有点混乱。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM