range 特性

[range] 属性允许为参数或字段指定允许的值范围,这些参数或字段的值在运行时设置。 与管道类型一起使用时, 属性指定管道区块中元素计数的允许范围。

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

parameters

low-val

参数或字段可以容纳的最小允许值。

high-val

参数或字段可以容纳的最高允许值。

type-specifier

除 hyper__int64 之外的整型类型、整型类型的类型标识符、枚举类型或管道类型名称。

declarator

标准 C 声明符,例如标识符。

备注

使用 [range] 属性可修改敏感参数或字段的含义,例如用于大小或长度的参数或字段,具有一致或变化的数组;或每当要针对有效值范围检查参数或字段值时。 属性适用于顶级参数以及较低级别的参数和字段。 将 [range] 属性添加到类型不会更改其线路格式,因此不会影响向后兼容性。

[range] 属性还可用于符合性数据,例如缓冲区或具有一致性属性的数组。 其效果是将符合性数据的所有符合性大小限制为指定的范围。 如果符合性数据是多维数组,则每个数组维度限制为指定的范围。

对符合性数据使用 [range] 要求编译目标为“目标 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