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] です。