Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Met het kenmerk [bereik] kunt u een bereik van toegestane waarden opgeven voor argumenten of velden waarvan de waarden zijn ingesteld tijdens runtime. Wanneer het kenmerk wordt gebruikt met een pijptype, geeft het kenmerk het toegestane bereik op voor het aantal elementen in de segmenten van de pijp.
[range(low-val,high-val)] type-specifier declarator
Parameterwaarden
-
lage val
-
De laagste toegestane waarde die de parameter of het veld kan bevatten.
-
hoge val
-
De hoogste toegestane waarde die de parameter of het veld kan bevatten.
-
typeaanduiding
-
Een ander integraal type dan hyper of __int64, een type-id voor een integraal type, een opsommingstype of een pijptypenaam.
-
declaratie
-
Een standaard C-declaratie, zoals een id.
Opmerkingen
Gebruik het kenmerk [bereik] om de betekenis van gevoelige parameters of velden, zoals de parameters die worden gebruikt voor grootte of lengte, te wijzigen met conforme of verschillende matrices; of wanneer u een parameter of veldwaarde wilt controleren op basis van een bereik met geldige waarden. Het kenmerk is van toepassing op parameters op het hoogste niveau, evenals parameters en velden op lager niveau. Als u het kenmerk [bereik] aan een type toevoegt, wordt de draadindeling niet gewijzigd. Dit heeft dus geen invloed op de compatibiliteit met eerdere versies.
Het kenmerk [bereik] kan ook worden gebruikt voor conforme gegevens, zoals buffers of matrices met een kenmerk conformiteit. Het effect is om alle conforme grootten voor de conforme gegevens te beperken tot het opgegeven bereik. Als de conforme gegevens een multidimensionale matrix zijn, is elke matrixdimensie beperkt tot het opgegeven bereik.
Het gebruik van [bereik] op conforme gegevens vereist dat het compilatiedoel of hoger is --target NT60 .
Houd er rekening mee dat u de optie /robust compiler moet gebruiken wanneer u uw IDL-bestand compileert om de stub-code te genereren waarmee deze controles worden uitgevoerd. Zonder de /robuuste switch negeert de MIDL-compiler dit kenmerk.
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);
Zie ook