簡體   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