version 屬性

[ Version ] 介面屬性會識別多個 RPC 介面版本之間的特定版本。 有了 version 屬性,您就可以確保只允許相容版本的用戶端和伺服器軟體進行系結。

version ( major-value[[. minor-value]] )

參數

主要值

指定零到65535(含)之間的簡短不帶正負號的整數,代表主要版本號碼。

次要值

指定零到65535(含)之間的簡短不帶正負號的整數,表示次要版本號碼。 次要版本值是選擇性的。 如果有的話,次要版本值會與主要版本號碼分開, ( 的句點字元。 ) 。 如果未指定,次要版本值為零。

備註

MIDL 編譯器不支援多個版本的 COM 介面。 因此,包含物件屬性的介面屬性清單 [ ] 不能包含 [ ] version 屬性。 若要建立現有 COM 介面的新版本,請使用介面繼承。 衍生的 COM 介面具有不同的 UUID,但繼承了基底介面的介面成員函式、狀態碼和介面屬性。

[ ] [ 版本 ] 值與 uuid 值組合,可唯一識別介面。 當用戶端呼叫遠端函式時,執行時間程式庫會將 [ 版本 ][ uuid ] 值傳遞至伺服器。 如果有下列情況,用戶端可以系結至指定介面的伺服器:

  • [ Uuid ] 值相同。
  • 主要版本號碼相同。
  • 用戶端的次要版本號碼小於或等於伺服器的次要版本號碼。

這是您的權益和使用者在 versionsÂ之間保有最大相容性的優點,也就是修改介面,只變更次要版本號碼。 當您加入的新資料類型不是現有的函式所使用的新資料類型,以及加入新函式而不變更現有函式的介面規格時,您可以保留最新的相容性。

如果有下列任何一種情況,請變更主要版本號碼:

  • 如果您變更現有函數所使用的資料類型。
  • 如果您變更現有函數的介面規格 (例如新增或移除參數) 。
  • 如果您加入現有函式所呼叫的回呼。

如果下列所有條件都適用,請變更次要版本號碼:

  • 如果您加入的型別定義或常數未由任何現有的函數或回呼所使用。
  • 如果您未變更任何現有的函式,並將新函式加入至介面。
  • 如果您加入的回呼未由任何現有的函式所呼叫,且新的回呼遵循任何現有的函數。

如果您的修改符合對介面的最高層相容性變更,請使用下列程式。

若要修改 (IDL) 檔案的介面

  1. 在介面檔中加入新的常數和類型定義。
  2. 將回呼函式加入至介面檔案的結尾。
  3. 將新函式加入至介面檔案的結尾。

在介面標頭中最多隻能出現一次 [ version ] 屬性。

當 version 屬性不存在時,介面的預設版本為0.0。

主要與次要數位之間的句號字元是分隔符號,不代表小數點。 次要號碼會被視為整數。 前置零並不重要。 尾端的零是很重要的。

例如,版本設定1.11 代表一個主要值,而一個小數值為11。 1.11 版不代表介於1.1 和1.2 之間的值。

另請參閱

(IDL) 檔案的介面定義

介面

物件

Uuid