次の方法で共有


version 属性

[version] インターフェイス属性は、RPC インターフェイスの複数のバージョン間で特定のバージョンを識別します。 version 属性を使用すると、互換性のあるバージョンのクライアントおよびサーバー ソフトウェアのみがバインドを許可されます。

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

パラメーター

major-value

メジャー バージョン番号を表す、0 から 65,535 までの短い符号なし整数を指定します。

minor-value

マイナー バージョン番号を表す、0 から 65,535 までの短い符号なし整数を指定します。 マイナー バージョンの値は省略可能です。 存在する場合、マイナー バージョンの値はメジャー バージョン番号からピリオド文字 (.) で区切られます。 指定しない場合、マイナー バージョンの値は 0 です。

注釈

MIDL コンパイラは、COM インターフェイスの複数のバージョンをサポートしていません。 その結果、[object] 属性を含むインターフェイス属性リストに [version] 属性を含めることはできません。 既存の COM インターフェイスの新しいバージョンを作成するには、インターフェイスの継承を使用します。 派生 COM インターフェイスには異なる UUID がありますが、基本インターフェイスのインターフェイス メンバー関数、状態コード、およびインターフェイス属性を継承します。

[uuid] 値と組み合わせて、[version] 値はインターフェイスを一意に識別します。 ランタイム ライブラリは、クライアントがリモート関数を呼び出すときに 、[version][uuid] の 値をサーバーに渡します。 次の場合、クライアントは特定のインターフェイスのサーバーにバインドできます。

  • [uuid] の値は同じです。
  • メジャー バージョン番号は同じです。
  • クライアントのマイナー バージョン番号が、サーバーのマイナー バージョン番号以下です。

マイナー バージョン番号のみが変更されるようにインターフェイスを変更するのは、バージョン間の上位互換性を維持することが、ユーザーにとってのメリットであり、ユーザーのメリットです。 既存の関数で使用されていない新しいデータ型を追加する場合や、既存の関数のインターフェイス仕様を変更せずに新しい関数を追加する場合は、上位互換性を維持できます。

次のいずれかの条件が適用される場合は、メジャー バージョン番号を変更します。

  • 既存の関数によって使用されるデータ型を変更する場合。
  • 既存の関数のインターフェイス仕様を変更する場合 (パラメーターの追加や削除など)。
  • 既存の関数によって呼び出されるコールバックを追加する場合。

次のすべての条件が適用される場合は、マイナー バージョン番号を変更します。

  • 既存の関数またはコールバックで使用されていない型定義または定数を追加する場合。
  • 既存の関数を変更せず、新しい関数をインターフェイスに追加する場合。
  • 既存の関数によって呼び出されないコールバックを追加し、新しいコールバックが既存の関数に従う場合。

変更がインターフェイスに対する上位互換性の変更と見なされる場合は、次の手順を使用します。

インターフェイス (IDL) ファイルを変更するには

  1. インターフェイス ファイルに新しい定数と型の定義を追加します。
  2. インターフェイス ファイルの末尾にコールバック関数を追加します。
  3. インターフェイス ファイルの末尾に新しい関数を追加します。

[version] 属性は、インターフェイス ヘッダーで最大で 1 回発生する可能性があります。

バージョン属性が存在しない場合、インターフェイスの既定のバージョンは 0.0 です。

メジャーとマイナーの間のピリオド文字は区切り記号であり、小数点を表しません。 マイナー番号は整数として扱われます。 先行ゼロは重要ではありません。 末尾のゼロは重要です。

たとえば、バージョン設定 1.11 は 1 のメジャー値と 11 のマイナー値を表します。 バージョン 1.11 は、1.1 から 1.2 の間の値を表していません。

こちらも参照ください

インターフェイス定義 (IDL) ファイル

インターフェイス

オブジェクト

Uuid