通过


range 属性

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

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

参数

low-val

参数或字段可以保存的最低允许值。

high-val

参数或字段可以保留的最高允许值。

type-specifier

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

declarator

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

注解

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

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

对符合性数据使用 [range] 要求编译目标更高 --target NT60

请注意,编译 IDL 文件时,必须使用 /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) 文件

arrays

first_is

last_is

length_is

max_is

/鲁 棒

size_is

switch_is