Pointer-Attribute型の継承
DCE 仕様に従って、各 IDL ファイルはポインターの属性を定義する必要があります。 明示的な属性がポインターに割り当てられない場合、ポインターは [pointer_default] キーワード (keyword)で指定された値を使用します。 一部の 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 拡張機能モードでは [ unique] です。 |