[英]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.