first_is(limited-expression-list)
HRESULT Proc1(
[in] short First,
[first_is(First)] Arr[10]);
The first_is attribute specifies the index of the first array element to be transmitted. If the first_is attribute is not present, or if the specified index is a negative number, array element zero is the first element transmitted.
The first_is attribute can also help determine the values of the array indexes corresponding to the last_is or length_is attribute when these attributes are not specified. The relationship between these array indexes is:
length = last - first + 1
The following relationship must also hold:
0 <= first_is <= max_is
The following relationship must hold when max_is <= 0:
first_is == 0
The first_is attribute cannot be used at the same time as the string attribute.
Using a constant expression with the first_is attribute is an inappropriate use of the attribute. It is legal, but inefficient, and will result in slower marshalling code.
field_attributes, IDL, last_is, length_is, max_is, min_is, size_is