[version] 介面屬性用來識別多個 RPC 介面版本中的某個特定版本。 透過版本屬性,你確保只有相容的客戶端與伺服器軟體版本被允許綁定。
version ( major-value[[. minor-value]] )
參數
-
主值
-
指定一個介於零到65,535之間的短無號整數,代表主要版本號。
-
次要值
-
指定一個介於零到65,535之間的短無號整數,代表次要版本號。 次要版本的值是可選的。 若有,次要版本值與主要版本號之間會間隔一個句點字元(.)。 若未指定,次要版本值為零。
備註
MIDL 編譯器不支援多個版本的 COM 介面。 因此,包含 [object] 屬性的介面屬性清單無法包含 [version] 屬性。 若要建立現有 COM 介面的新版本,請使用介面繼承。 衍生的 COM 介面有不同的 UUID,但會繼承基礎介面的介面成員函數、狀態碼及介面屬性。
結合 [uuid] 值,[ version] 值能唯一識別介面。 執行時函式庫在用戶端呼叫遠端函式時,會將 [version] 和 [uuid] 的值傳給伺服器。 用戶端可在以下情況下綁定至特定介面的伺服器:
- [uuid] 值相同。
- 主要版本號是一樣的。
- 用戶端的次要版本號小於或等於伺服器的次要版本號。
維持版本間的向上相容性對你和使用者都有好處,也就是說,修改介面,只改變次要版本號。 當你新增未被現有函式使用的資料型態,或新增函式而不更改現有函式的介面規範時,可以保持向上相容性。
若符合以下任一條件,請更改主要版本號:
- 如果你更改了現有函式所使用的資料型態。
- 如果你改變了現有函式的介面規範(例如新增或移除參數)。
- 如果你加入由現有函式呼叫的回調,
若符合以下所有條件,請更改次要版本號:
- 如果你加入了任何現有函式或回調都不會使用的型別定義或常數,
- 如果你不更改任何現有函式,並且在介面上新增函式,
- 如果你新增的回調是沒有任何現有函式會呼叫的,而新的回調則跟隨任何現有函式。
如果你的修改符合介面向上相容的變更,請使用以下程序。
修改介面(IDL)檔案
- 在介面檔案中新增常數和型別定義。
- 在介面檔案末尾加入回調函式。
- 在介面檔案末尾新增功能。
[version] 屬性最多只能在介面標頭出現一次。
當 version 屬性不存在時,介面預設為 0.0。
大數字與小數字之間的週期特徵是分隔符,並不代表小數點。 小數被視為整數。 前導零並不重要。 尾隨零很重要。
例如,版本設定 1.11 代表一個主要值為 1,一個小值為 11。 1.11 版本並不代表介於 1.1 與 1.2 之間的值。
另請參閱