Atributo first_is
O atributo [first_is] especifica o índice do primeiro elemento de matriz a ser transmitido.
first_is(limited-expression-list)
-
limited-expression-list
-
Especifica uma ou mais expressões de linguagem C. Cada expressão é avaliada como um inteiro que representa o índice de matriz do primeiro elemento de matriz a ser transmitido. O compilador MIDL dá suporte a expressões condicionais, expressões lógicas, expressões relacionais e expressões aritméticas. MIDL não permite invocações de função em expressões e não permite operadores de incremento e decremento. Separe várias expressões com vírgulas.
Se o atributo [first_is] não estiver presente ou se o índice especificado for um número negativo, o elemento de matriz zero será o primeiro elemento transmitido.
O atributo [first_is] também pode ajudar a determinar os valores dos índices de matriz correspondentes ao atributo [last_is] ou [length_is] quando esses atributos não são especificados. A relação entre esses índices de matriz é:
length = last - first + 1
A seguinte relação também deve conter:
0 <= first_is <= max_is
A seguinte relação deve ser mantida quando [max_is] <= 0:
first_is == 0
O atributo [first_is] não pode ser usado ao mesmo tempo que o atributo [string] .
Usar uma expressão constante com o atributo [first_is] é um uso inadequado do atributo. É legal, mas ineficiente e resultará em um código de marshaling mais lento.
HRESULT Proc1(
[in] short First,
[first_is(First)] Arr[10]);