first_is 特性
[first_is] 属性指定要传输的第一个数组元素的索引。
first_is(limited-expression-list)
-
limited-expression-list
-
指定一个或多个 C 语言表达式。 每个表达式的计算结果为一个整数,该整数表示要传输的第一个数组元素的数组索引。 MIDL 编译器支持条件表达式、逻辑表达式、关系表达式和算术表达式。 MIDL 不允许表达式中的函数调用,也不允许递增和递减运算符。 用逗号分隔多个表达式。
如果 [first_is] 属性不存在,或者指定的索引为负数,则数组元素零是传输的第一个元素。
如果未指定 [first_is] 属性,则 [last_is] 或 [length_is] 属性还有助于确定对应于这些属性的数组索引的值。 这些数组索引之间的关系是:
length = last - first + 1
以下关系也必须保持:
0 <= first_is <= max_is
当 [max_is] <= 0 时,以下关系必须保持:
first_is == 0
[first_is] 属性不能与 [string] 属性同时使用。
将常量表达式与 [first_is] 属性一起使用是不恰当的。 这是合法的,但效率低下,会导致代码封送处理速度变慢。
HRESULT Proc1(
[in] short First,
[first_is(First)] Arr[10]);