範圍屬性

[range] 屬性允許你為執行時設定的參數或欄位指定一個允許的值範圍。 當與管道類型搭配使用時,屬性會指定管道區塊中元素數量的允許範圍。

[range(low-val,high-val)] type-specifier declarator

參數

低瓦爾

參數或欄位能承受的最低允許值。

高價值

參數或欄位能承受的最高允許值。

型別指定器

hyper__int64 的整數型別、整型別的型別識別碼、 enum 型別,或管線型別名稱。

聲明者

標準的 C 宣告符,例如識別碼。

備註

使用 [range] 屬性來修改敏感參數或欄位的意義,例如用於大小或長度的,並以符合或變化的陣列進行調整;或者當你想將參數或欄位值與有效值範圍進行檢查時。 此屬性適用於頂層參數,也適用於較低層次的參數與欄位。 在類型中加入 [range] 屬性不會改變其線路格式,因此不影響向下相容性。

[range] 屬性也可用於符合標準的資料,例如具有符合性屬性的緩衝區或陣列。 其效果是限制所有符合數據的符合性大小於指定範圍。 若符合規格的資料為多維陣列,每個陣列維度受限於指定範圍。

對符合標準資料使用 [範圍] 時,編譯目標必須達到 --target NT60 或更高。

請注意,編譯 IDL 檔案時必須使用 /robust 編譯器選項,才能產生執行這些檢查的存根程式碼。 若沒有 /robust 開關,MIDL 編譯器會忽略此屬性。

Examples

HRESULT Method1(
    [in, range(0,100)] ULONG m,
    [in, range(0,100)] ULONG n,
    [size_is(m,n)] ULONG **pplong);

void InPipe(
    [in, range(0, MAX_CHUNK) LONG_PIPE pipe_date);

另請參閱

介面定義(IDL)檔案

陣 列

first_is

last_is

length_is

max_is

/堅韌

size_is

switch_is