range 属性
[range] 属性を使用すると、実行時に値が設定される引数またはフィールドに許容される値の範囲を指定できます。 パイプの種類と共に使用する場合、 属性はパイプ チャンク内の要素数の許容範囲を指定します。
[range(low-val,high-val)] type-specifier declarator
-
low-val
-
パラメーターまたはフィールドが保持できる最小値。
-
high-val
-
パラメーターまたはフィールドが保持できる最大許容値。
-
type-specifier
-
declarator
-
識別子などの標準 C 宣言子。
[range] 属性を使用して、サイズや長さに使用されるパラメーターやフィールドなどの機密性の高いパラメーターまたはフィールドの意味を、準拠配列または異なる配列で変更します。または、有効な値の範囲に対してパラメーターまたはフィールド値をチェックする場合は常に。 属性は、最上位レベルのパラメーターだけでなく、下位レベルのパラメーターとフィールドにも適用できます。 [range] 属性を型に追加しても、ワイヤ形式は変更されないため、下位互換性には影響しません。
[range] 属性は、準拠属性を持つバッファーや配列などの準拠データでも使用できます。 その結果、準拠データのすべての準拠サイズが指定された範囲に制限されます。 適合データが多次元配列の場合、各配列次元は指定された範囲に制限されます。
準拠データに [範囲] を 使用するには、コンパイル ターゲットが â"target NT60 以上である必要があります。
これらのチェックを実行するスタブ コードを生成するには、IDL ファイルをコンパイルするときに /robust コンパイラ オプションを使用する必要があることに注意してください。 /robust スイッチがない場合、MIDL コンパイラはこの属性を無視します。
HRESULT Method1(
[in, range(0,100)] ULONG m,
[in, range(0,100)] ULONG n,
[size_is(m,n)] ULONG **pplong);
void InPipe(
[in, range(0, MAX_CHUNK) LONG_PIPE pipe_date);