Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med attributet [intervall] kan du ange ett intervall med tillåtna värden för argument eller fält vars värden anges vid körning. När det används med en rörtyp anger attributet det tillåtna intervallet för antalet element i rörsegmenten.
[range(low-val,high-val)] type-specifier declarator
Parameters
-
low-val
-
Det lägsta tillåtna värdet som parametern eller fältet kan innehålla.
-
high-val
-
Det högsta tillåtna värdet som parametern eller fältet kan innehålla.
-
type-specifier
-
En annan integrerad typ än hyper - eller __int64, en typidentifierare till en integraltyp, en uppräkningstyp eller ett namn på rörtypen.
-
deklarator
-
En C-standarddeklarator, till exempel en identifierare.
Anmärkningar
Använd attributet [range] för att ändra innebörden av känsliga parametrar eller fält, till exempel de som används för storlek eller längd, med överensstämmande eller varierande matriser. eller när du vill kontrollera en parameter eller ett fältvärde mot ett intervall med giltiga värden. Attributet gäller för parametrar på toppnivå samt parametrar och fält på lägre nivå. Om du lägger till attributet [range] till en typ ändras inte dess trådformat, vilket inte påverkar bakåtkompatibiliteten.
Attributet [range] kan också användas på överensstämmande data, till exempel buffertar eller matriser med ett överensstämmelseattribut. Effekten är att begränsa alla överensstämmelsestorlekar för överensstämmande data till det angivna intervallet. Om de överensstämmande data är en flerdimensionell matris begränsas varje matrisdimension till det angivna intervallet.
Användning av [intervall] på överensstämmande data kräver att kompileringsmålet är --target NT60 eller högre.
Observera att du måste använda kompileringsalternativet /robust när du kompilerar IDL-filen för att generera stub-koden som ska utföra dessa kontroller. Utan växeln /robust ignorerar MIDL-kompilatorn det här attributet.
Exempel
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);
Se även