first_is

first_is(limited-expression-list)

limited-expression-list
Specifies one or more C-language expressions. Each expression evaluates to an integer that represents the array index of the first array element to be transmitted. The MIDL compiler supports conditional expressions, logical expressions, relational expressions, and arithmetic expressions. MIDL does not allow function invocations in expressions and does not allow increment and decrement operators. Separate multiple expressions with commas.

Example

HRESULT Proc1(
    [in] short First,
    [first_is(First)] Arr[10]); 
 

Remarks

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.

See Also

field_attributes, IDL, last_is, length_is, max_is, min_is, size_is