first_is-Attribut
Das [first_is]-Attribut gibt den Index des ersten zu übertragenden Arrayelements an.
first_is(limited-expression-list)
-
limited-expression-list
-
Gibt einen oder mehrere C-Sprachausdrücke an. Jeder Ausdruck ergibt eine ganze Zahl, die den Arrayindex des ersten zu übertragenden Arrayelements darstellt. Der MIDL-Compiler unterstützt bedingte Ausdrücke, logische Ausdrücke, relationale Ausdrücke und arithmetische Ausdrücke. MIDL lässt keine Funktionsaufrufe in Ausdrücken zu und lässt keine Inkrement- und Dekrementoperatoren zu. Trennen Sie mehrere Ausdrücke durch Kommas.
Wenn das [first_is] -Attribut nicht vorhanden ist oder der angegebene Index eine negative Zahl ist, ist Arrayelement 0 das erste übertragene Element.
Das [first_is]- Attribut kann auch helfen, die Werte der Arrayindizes zu bestimmen, die dem Attribut [last_is] oder [length_is] entsprechen, wenn diese Attribute nicht angegeben sind. Die Beziehung zwischen diesen Arrayindizes ist:
length = last - first + 1
Die folgende Beziehung muss ebenfalls enthalten sein:
0 <= first_is <= max_is
Die folgende Beziehung muss enthalten sein, wenn [max_is] <= 0 ist:
first_is == 0
Das [first_is] -Attribut kann nicht gleichzeitig mit dem [string] -Attribut verwendet werden.
Die Verwendung eines konstanten Ausdrucks mit dem [first_is]- Attribut ist eine unangemessene Verwendung des Attributs. Es ist legal, aber ineffizient und führt zu einer langsameren Marshalling von Code.
HRESULT Proc1(
[in] short First,
[first_is(First)] Arr[10]);