[英]Why does Microsoft have IHTMLDocument, IHTMLDocument2, … , IHTMLDocument8?
这是公共COM接口的一般功能。
如果你想要向后兼容,你永远不想改变一个已发布的界面,因为这意味着人们所写的所有代码,比如,IE 6停止使用IE 7,他们所有的客户都对他们生气,他们生气在你身边
因此,如果IE 5添加了需要公开的新功能,而不是更改IHTMLDocument
,则创建一个新接口,并使IE5支持(通过继承, QueryInterface
或一些更明确的机制)。 当IE 7.0.2或IE 8或Win XP或其他任何东西添加更多新功能时,您可以创建另一个新功能。 等等。
虽然MS本可以提出描述性后缀而不仅仅是序列号,但这可能会比有用更令人困惑。 因此, IHTMLDocument2
, IHTMLDocument3
等是名称。 它们没有任何意义,除了它们被添加的顺序。
接口名称末尾的数字是什么意思?
这是版本化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.