Поделиться через


last_is - атрибут

Атрибут поля [last_is] указывает индекс последнего передаваемого элемента массива. Если указанный индекс равен нулю или отрицательному значению, элементы массива не передаются.

[last_is( limited-expression-list )]

Параметры

limited-expression-list

Задает одно или несколько выражений языка C. Каждое выражение вычисляется как целое число, представляющее индекс массива последнего передаваемого элемента массива. Компилятор MIDL поддерживает условные выражения, логические выражения, реляционные выражения и арифметические выражения. MIDL не разрешает вызовы функций в выражениях, а также операторы приращения и декремента. Разделяйте несколько выражений запятыми.

Комментарии

Атрибут [last_is] определяет значение индекса массива, соответствующего атрибуту [length_is] , если не указан параметр [length_is] . Связь между этими индексами массива выглядит следующим образом: length = last - first + 1.

Если значение индекса массива, указанного параметром [first_is] , больше значения, указанного параметром [last_is], то передаются нулевые элементы.

Атрибут [last_is] нельзя использовать в качестве атрибута поля одновременно с атрибутом [length_is] или атрибутом [string] .

Использование константного выражения с атрибутом [last_is] является недопустимым использованием атрибута . Это является законным, но неэффективным и приведет к замедлению маршалинга кода.

Если значение, указанное параметром [max_is] , равно или больше нуля, должно иметь значение true: 0 <= last_is <= max_is.

Примеры

proc1(
    [in] short Last,
    [in, last_is(Last)] short asNumbers[MAXSIZE]);

См. также раздел

Атрибуты поля

first_is

Файл определения интерфейса (IDL)

length_is

max_is

size_is