Pointer-Attribute 型の継承
DCE 仕様に従って、各 IDL ファイルはポインターの属性を定義する必要があります。 明示的な属性がポインターに割り当てられない場合、ポインターは [ pointer_default] キーワードで指定された値を使用します。 一部の DCE 実装では、属性なしポインターを使用できません。 ポインターに明示的な属性がない場合は、ポインター属性を設定できるように、IDL ファイルに [pointer_default] 指定が必要です。
既定 (Microsoft 拡張機能) モードでは、定義する IDL ファイルをインポートする IDL ファイルでポインターの属性を指定できます。 1 つの IDL ファイルで定義されているポインターは、他の IDL ファイルで指定されている属性を継承できます。 また、既定のモードでは、IDL ファイルに属性なしポインターを含めることができます。 ベース ファイルとインポートされた IDL ファイルのどちらもポインター属性または [pointer_default]を指定しない場合、属性が設定されていないポインターは一意のポインターとして解釈されます。
MIDL コンパイラは、次の優先順位規則 (1 が最も高い) を使用してポインターにポインター属性を割り当てます。
優先権 | 形容 |
---|---|
1 | 明示的なポインター属性は、定義または使用サイトのポインターに適用されます。 |
2 | 既定値は、型を定義する IDL ファイル内の [pointer_default] 属性です。 |
3 | 既定値は、型をインポートする IDL ファイル内の [pointer_default] 属性です。 |
4 | 既定値は DCE 互換モードでは [ptr]、Microsoft 拡張機能モードでは [一意の] です。 |