Funzione VerifyScripts (winnls.h)
Confronta due elenchi enumerati di script.
Sintassi
BOOL VerifyScripts(
[in] DWORD dwFlags,
[in] LPCWSTR lpLocaleScripts,
[in] int cchLocaleScripts,
[in] LPCWSTR lpTestScripts,
[in] int cchTestScripts
);
Parametri
[in] dwFlags
Flag che specificano le opzioni di verifica dello script.
Valore | Significato |
---|---|
|
Consenti "Latn" (script latino) nell'elenco di test anche se non è presente nell'elenco delle impostazioni locali. |
[in] lpLocaleScripts
Puntatore all'elenco delle impostazioni locali, l'elenco enumerato di script per una determinata impostazione locale. Questo elenco viene in genere popolato chiamando GetLocaleInfoEx con LCType impostato su LOCALE_SSCRIPTS.
[in] cchLocaleScripts
Dimensioni, in caratteri, della stringa indicata da lpLocaleScripts. L'applicazione imposta questo parametro su -1 se la stringa è con terminazione Null. Se questo parametro è impostato su 0, la funzione ha esito negativo.
[in] lpTestScripts
Puntatore all'elenco di test, un secondo elenco enumerato di script. Questo elenco viene in genere popolato chiamando GetStringScripts.
[in] cchTestScripts
Dimensioni, in caratteri, della stringa indicata da lpTestScripts. L'applicazione imposta questo parametro su -1 se la stringa è con terminazione Null. Se questo parametro è impostato su 0, la funzione ha esito negativo.
Valore restituito
Restituisce TRUE se l'elenco di test non è vuoto e tutti gli elementi dell'elenco sono inclusi anche nell'elenco delle impostazioni locali. La funzione restituisce comunque TRUE se l'elenco delle impostazioni locali contiene più script rispetto all'elenco di test, ma tutti gli script dell'elenco di test devono essere contenuti nell'elenco delle impostazioni locali. Se VS_ALLOW_LATIN è specificato in dwFlags, la funzione si comporta come se "Latn;" si trova sempre nell'elenco delle impostazioni locali.
In tutti gli altri casi, la funzione restituisce FALSE. Questa restituzione può indicare che l'elenco di test contiene un elemento non incluso nell'elenco delle impostazioni locali oppure può indicare un errore. Per distinguere questi due casi, l'applicazione deve chiamare GetLastError, che può restituire uno dei codici di errore seguenti:
- ERROR_INVALID_FLAGS. I valori specificati per i flag non sono validi.
- ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.
- ERROR_SUCCESS. L'azione è stata completata correttamente, ma non ha restituito risultati.
Commenti
Questa funzione confronta le stringhe, ad esempio "Latn; Cyrl;", costituito da una serie di nomi di script a 4 caratteri, con ogni nome di script seguito da un punto e virgola. Ha anche un caso speciale per tenere conto del fatto che lo script latino viene spesso usato nelle lingue e nelle impostazioni locali per cui non è nativo.
Questa funzione è utile come parte di una strategia per attenuare i problemi di sicurezza correlati ai nomi di dominio internazionalizzati (IDN) .
Di seguito sono riportati esempi della restituzione di questa funzione e di una chiamata successiva a GetLastError in vari scenari. Gli ultimi due esempi illustrano, rispettivamente, un caso in cui l'elenco di test non dispone di un punto e virgola finale (stringa in formato non valido) e un caso in cui l'elenco di test è vuoto.
Stringa delle impostazioni locali | Stringa del test | dwFlags | Valore restituito | GetLastError return |
---|---|---|---|---|
Hani; Hira; Kana; | Hani; | * | TRUE | (invariato) |
Hani; Hira; Kana; | Hani; Latn; | 0 | FALSE | ERROR_SUCCESS |
Hani; Hira; Kana; | Hani; Latn; | VS_ALLOW_LATIN | TRUE | (invariato) |
Hani; Hira; Kana; | Cyrl; | * | FALSE | ERROR_SUCCESS |
Hani; | Hani; Hira; Kana; | * | FALSE | ERROR_SUCCESS |
Hani; Hira; Kana; | Cyrl | * | FALSE | ERROR_INVALID_PARAMETER |
Hani; Hira; Kana; | * | true | (invariato) |
- I risultati sono gli stessi se VS_ALLOW_LATIN viene passato nel parametro dwFlags o non vengono forniti flag.
Esempio
NLS: Esempio di mitigazione dei nomi di dominio internazionalizzati (IDN) illustra l'uso di questa funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | winnls.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
Gestione dei nomi di dominio internazionalizzati (IDN)