range 属性

[range] 属性を使用すると、実行時に値が設定される引数またはフィールドに許容される値の範囲を指定できます。 パイプの種類と共に使用する場合、 属性はパイプ チャンク内の要素数の許容範囲を指定します。

[range(low-val,high-val)] type-specifier declarator

パラメーター

low-val

パラメーターまたはフィールドが保持できる最小値。

high-val

パラメーターまたはフィールドが保持できる最大許容値。

type-specifier

ハイパーまたは__int64以外の整数型、整数型への型識別子、列挙型、またはパイプ型名。

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);

関連項目

インターフェイス定義 (IDL) ファイル

配列

first_is

last_is

length_is

max_is

/堅牢

size_is

switch_is