Atributo last_is
O atributo de campo [last_is] especifica o índice do último elemento de matriz a ser transmitido. Quando o índice especificado é zero ou negativo, nenhum elemento de matriz é transmitido.
[last_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 último 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.
O atributo [last_is] determina o valor do índice de matriz correspondente ao atributo [length_is] quando [length_is] não é especificado. A relação entre esses índices de matriz é a seguinte: length = last - first + 1.
Se o valor do índice de matriz especificado por [first_is] for maior que o valor especificado por [last_is], nenhum elemento será transmitido.
O atributo [last_is] não pode ser usado como um atributo de campo ao mesmo tempo que o atributo [length_is] ou o atributo [string] .
Usar uma expressão constante com o atributo [last_is] é um uso inadequado do atributo. É legal, mas ineficiente e resultará em um código de marshaling mais lento.
Quando o valor especificado por [max_is] é igual ou maior que zero, a seguinte relação deve ser verdadeira: 0 <= last_is <= max_is.
proc1(
[in] short Last,
[in, last_is(Last)] short asNumbers[MAXSIZE]);