Skip to content

Latest commit

 

History

History
100 lines (68 loc) · 2.47 KB

first-is.md

File metadata and controls

100 lines (68 loc) · 2.47 KB
title description ms.assetid keywords topic_type api_name api_type ms.topic ms.date
first_is attribute
The \ first\_is\ attribute specifies the index of the first array element to be transmitted.
1de7821c-19e7-4b2c-98fc-2fae3563831c
first_is attribute MIDL
apiref
first_is
NA
reference
05/31/2018

first_is attribute

The [first_is] attribute specifies the index of the first array element to be transmitted.

first_is(limited-expression-list)

Parameters

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.

Remarks

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 marshaling code.

Examples

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

See also

field_attributes

Interface Definition (IDL) File

last_is

length_is

max_is

min_is

size_is

string