2013-01-01 71 views

回答

17

這是公共COM接口的一般特徵。

如果你想要向後兼容,你永遠不想改變已發佈的界面,因爲那意味着所有人寫的代碼,比如說IE 6停止使用IE 7,而且他們的所有客戶都對他們生氣,他們生你的氣。因此,如果IE 5添加了需要暴露的新功能,而不是更改IHTMLDocument,那麼您將創建一個新界面,同時支持IE5(通過繼承,QueryInterface或更明確的機制)。而當IE 7.0.2或者IE 8或者Win XP或者其他任何增加更多新功能的時候,你可以創建另一個。等等。

雖然MS可能已經提出了描述性後綴而不僅僅是序列號,但這可能會比有幫助的更令人困惑。所以,IHTMLDocument2,IHTMLDocument3等都是這個名字。除了他們添加的順序外,他們沒有任何意義。

3

接口名稱末尾的數字是什麼意思?

這是版本控制COM接口的標準約定。 IXXX2使用新功能擴展了IXXX。 IXXX3使用新功能擴展了IXXX2,依此類推。這允許客戶端在發佈新版本時不中斷地使用舊功能,並且在需要時使用更新的功能,甚至在嘗試調用它們之前檢查這些功能是否可用。

我看到IHTMLDocument3-7沒有成員

你從哪裏得到這個想法?看看他們的實際定義。他們將許多新成員從一個界面展示給下一個界面。

+1

確實。在SDK中查看mshtml.h通常很有趣並且很有啓發性。 –

相關問題