range attribútum

A [tartomány] attribútum lehetővé teszi az olyan argumentumok vagy mezők megengedett értéktartományának megadását, amelyek értékei futásidőben vannak beállítva. Csőtípus használata esetén az attribútum megadja a csőtömbökben lévő elemek számának megengedett tartományát.

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

Paraméterek

alacsony érték

A paraméter vagy mező által tartható legalacsonyabb megengedhető érték.

magas-val

A paraméter vagy mező legnagyobb megengedett értéke.

type-specifier

A hyper vagy __int64 kivételével egy integráltípus, egy integráltípus típusazonosítója, enumerálási típus vagy csőtípus neve.

deklarátor

Egy standard C deklarátor, például egy azonosító.

Megjegyzések

A [tartomány] attribútummal módosíthatja a bizalmas paraméterek vagy mezők jelentését, például a mérethez vagy a hosszhoz használt értékeket a megfelelő vagy változó tömbökkel; vagy amikor egy paramétert vagy mezőértéket érvényes értéktartományon szeretne ellenőrizni. Az attribútum a legfelső szintű paraméterekre, valamint az alacsonyabb szintű paraméterekre és mezőkre alkalmazható. A [tartomány] attribútum típushoz való hozzáadása nem változtatja meg a vezeték formátumát, így nem befolyásolja a visszamenőleges kompatibilitást.

A [tartomány] attribútum megfelelő adatokon is használható, például puffereken vagy megfelelőségi attribútummal rendelkező tömbökön. Ennek az a hatása, hogy a megfelelő adatok összes megfelelőségi méretét a megadott tartományra korlátozza. Ha a megfelelő adatok többdimenziós tömbök, minden tömbdimenzió a megadott tartományra korlátozódik.

A [tartomány] megfelelő adatokon való használatához a fordítási célnak vagy annál magasabbnak kell lennie --target NT60 .

Vegye figyelembe, hogy az IDL-fájl lefordításakor a /robust fordítót kell használnia az ellenőrzések végrehajtásához szükséges csonkkód létrehozásához. A /robust kapcsoló nélkül a MIDL fordító figyelmen kívül hagyja ezt az attribútumot.

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

Lásd még

Interfészdefiníciós (IDL-) fájl

Tömbök

first_is

last_is

length_is

max_is

/Robusztus

size_is

switch_is