atribut rentang

Atribut [rentang] memungkinkan Anda menentukan rentang nilai yang diizinkan untuk argumen atau bidang yang nilainya diatur pada durasi. Saat digunakan dengan jenis pipa, atribut menentukan rentang yang diizinkan untuk jumlah elemen dalam gugus pipa.

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

Parameter

katup rendah

Nilai terendah yang diperbolehkan yang dapat ditahan oleh parameter atau bidang.

high-val

Nilai tertinggi yang diperbolehkan yang dapat ditahan oleh parameter atau bidang.

type-specifier

Jenis integral selain hyper atau __int64, pengidentifikasi jenis ke jenis integral, jenis enum , atau nama jenis pipa.

declarator

Deklarator C standar, seperti pengidentifikasi.

Keterangan

Gunakan atribut [range] untuk memodifikasi arti parameter atau bidang sensitif, seperti yang digunakan untuk ukuran atau panjang, dengan array yang sesuai atau bervariasi; atau kapan pun Anda ingin memeriksa nilai parameter atau bidang terhadap rentang nilai yang valid. Atribut ini berlaku untuk parameter tingkat atas serta parameter dan bidang tingkat bawah. Menambahkan atribut [range] ke jenis tidak mengubah format kawatnya, sehingga tidak memengaruhi kompatibilitas mundur.

Atribut [range] juga dapat digunakan pada data yang sesuai seperti buffer atau array dengan atribut kesuaian. Efeknya adalah membatasi semua ukuran kesuaian untuk data yang sesuai dengan rentang yang ditentukan. Jika data yang sesuai adalah array multi-dimensi, setiap dimensi array dibatasi pada rentang yang ditentukan.

Penggunaan [rentang] pada data yang sesuai mengharuskan target kompilasi menjadi â €"target NT60 atau lebih tinggi.

Perhatikan bahwa Anda harus menggunakan opsi kompilator /robust saat mengompilasi file IDL untuk menghasilkan kode stub yang akan melakukan pemeriksaan ini. Tanpa sakelar /robust , pengompilasi MIDL mengabaikan atribut ini.

Contoh

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);

Lihat juga

File Definisi Antarmuka (IDL)

Array

first_is

last_is

length_is

max_is

/Kuat

size_is

switch_is