atribut range

Atribut [range] umožňuje zadat rozsah povolených hodnot pro argumenty nebo pole, jejichž hodnoty jsou nastaveny za běhu. Při použití s typem potrubí určuje atribut povolený rozsah pro počet prvků v blocích kanálu.

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

Parametry

low-val

Nejnižší povolená hodnota, kterou může parametr nebo pole obsahovat.

high-val

Nejvyšší povolená hodnota, kterou může parametr nebo pole obsahovat.

Specifikátor typů

Celočíselný typ jiný než hyper nebo __int64, identifikátor typu k celočíselnému typu, typ výčtu nebo název typu kanálu.

deklarátor deklarátor

Standardní deklarátor jazyka C, například identifikátor.

Poznámky

Pomocí atributu [range] můžete upravit význam citlivých parametrů nebo polí, například těch, které se používají pro velikost nebo délku, s vyhovujícími nebo různými poli; nebo kdykoli chcete zkontrolovat hodnotu parametru nebo pole s rozsahem platných hodnot. Atribut se vztahuje na parametry nejvyšší úrovně a také parametry a pole nižší úrovně. Přidání atributu [range] do typu nemění formát drátu, takže nemá vliv na zpětnou kompatibilitu.

Atribut [range] lze použít také u vyhovujících dat, jako jsou vyrovnávací paměti nebo pole s atributem shody. Výsledkem je omezení všech velikostí shody pro vyhovující data na zadaný rozsah. Pokud jsou vyhovující data multidimenzionálním polem, je každá dimenze pole omezena na zadanou oblast.

Použití [range] u vyhovujících dat vyžaduje, aby cíl kompilace byl --target NT60 nebo vyšší.

Mějte na paměti, že při kompilaci souboru IDL musíte použít možnost /robust kompilátoru, aby se vygeneroval kód zástupných procedur, který bude tyto kontroly provádět. Bez přepínače /robust kompilátor MIDL ignoruje tento atribut.

Příklady

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

Viz také

Soubor definice rozhraní (IDL)

pole

first_is

last_is

length_is

max_is

/Robustní

size_is

switch_is