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 拡張機能モードでは [ 一意] です。