接口名称末尾的数字是什么意思?我看到IHTMLDocument3-7没有成员(see example for #5),而8有与手势相关的成员。该数字是从Windows版本派生的吗?
发布于 2013-01-01 15:38:52
这是公共COM接口的常规功能。
如果你想要向后兼容,你永远不会想要改变一个发布的接口,因为这将意味着人们为IE6编写的所有代码都不再与IE7一起工作,所有他们的客户都会对他们发火,他们也会对你发火。
因此,如果IE5添加了需要公开的新特性,而不是更改IHTMLDocument,您可以创建一个新接口,并使IE5同时支持两者(通过继承、QueryInterface或某种更显式的机制)。当IE 7.0.2或IE 8或Win XP或其他任何东西添加更多新功能时,您会创建另一个新功能。诸若此类。
虽然MS本可以提出描述性后缀,而不仅仅是序列号,但这可能更令人困惑,而不是有帮助。因此,IHTMLDocument2、IHTMLDocument3等就是这些名称。它们没有任何意义,除了它们被添加的顺序。
发布于 2013-01-01 16:37:09
接口名称末尾的数字是什么意思?
这是版本控制COM接口的标准约定。IXXX2用新函数扩展了IXXX。IXXX3使用新函数扩展了IXXX2,等等。这允许客户端在新版本发布时使用旧函数而不会中断,并在需要时使用新函数,甚至在尝试调用它们之前检查这些函数是否可用。
我发现IHTMLDocument3-7没有成员
你从哪里得到这个想法的?看看它们的实际定义。它们将许多新成员从一个接口公开到另一个接口。
发布于 2013-01-01 15:24:39
不-它只是表示界面的不同版本。它与Windows版本无关(就此而言,与MSHTML版本几乎没有关系):
https://stackoverflow.com/questions/14108640
复制相似问题