first_is 属性
[first_is] 属性は、送信する最初の配列要素のインデックスを指定します。
first_is(limited-expression-list)
-
limited-expression-list
-
1 つ以上の C 言語式を指定します。 各式は、送信される最初の配列要素の配列インデックスを表す整数に評価されます。 MIDL コンパイラでは、条件付き式、論理式、リレーショナル式、および算術式がサポートされています。 MIDL では、式での関数呼び出しは許可されず、インクリメント演算子とデクリメント演算子は使用できません。 複数の式をコンマで区切ります。
[first_is] 属性が存在しない場合、または指定したインデックスが負の数の場合、配列要素 0 は最初に送信される要素です。
[first_is] 属性は、これらの属性が指定されていない場合、[last_is] 属性または [length_is] 属性に対応する配列インデックスの値を決定するのにも役立ちます。 これらの配列インデックス間のリレーションシップは次のとおりです。
length = last - first + 1
次のリレーションシップも保持する必要があります。
0 <= first_is <= max_is
[max_is] <= 0 の場合、次のリレーションシップを保持する必要があります。
first_is == 0
[first_is] 属性を [string] 属性と同時に使用することはできません。
[first_is] 属性で定数式を使用することは、 属性の不適切な使用です。 これは有効ですが非効率的であり、コードのマーシャリングが遅くなります。
HRESULT Proc1(
[in] short First,
[first_is(First)] Arr[10]);