[range] 屬性允許你為執行時設定的參數或欄位指定一個允許的值範圍。 當與管道類型搭配使用時,屬性會指定管道區塊中元素數量的允許範圍。
[range(low-val,high-val)] type-specifier declarator
參數
-
低瓦爾
-
參數或欄位能承受的最低允許值。
-
高價值
-
參數或欄位能承受的最高允許值。
-
型別指定器
-
聲明者
-
標準的 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);
另請參閱