首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么微软有IHTMLDocument,IHTMLDocument2,...,IHTMLDocument8?

为什么微软有IHTMLDocument,IHTMLDocument2,...,IHTMLDocument8?
EN

Stack Overflow用户
提问于 2013-01-01 15:16:46
回答 4查看 7.8K关注 0票数 7

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-01 15:38:52

这是公共COM接口的常规功能。

如果你想要向后兼容,你永远不会想要改变一个发布的接口,因为这将意味着人们为IE6编写的所有代码都不再与IE7一起工作,所有他们的客户都会对他们发火,他们也会对你发火。

因此,如果IE5添加了需要公开的新特性,而不是更改IHTMLDocument,您可以创建一个新接口,并使IE5同时支持两者(通过继承、QueryInterface或某种更显式的机制)。当IE 7.0.2或IE 8或Win XP或其他任何东西添加更多新功能时,您会创建另一个新功能。诸若此类。

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

票数 20
EN

Stack Overflow用户

发布于 2013-01-01 16:37:09

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

这是版本控制COM接口的标准约定。IXXX2用新函数扩展了IXXX。IXXX3使用新函数扩展了IXXX2,等等。这允许客户端在新版本发布时使用旧函数而不会中断,并在需要时使用新函数,甚至在尝试调用它们之前检查这些函数是否可用。

我发现IHTMLDocument3-7没有成员

你从哪里得到这个想法的?看看它们的实际定义。它们将许多新成员从一个接口公开到另一个接口。

票数 3
EN

Stack Overflow用户

发布于 2013-01-01 15:24:39

不-它只是表示界面的不同版本。它与Windows版本无关(就此而言,与MSHTML版本几乎没有关系):

  • http://msdn.microsoft.com/en-us/library/aa752641%28v=vs.85%29.aspx
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14108640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档