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
VS_ALLOW_LATIN
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

DownlevelVerifyScripts

GetLocaleInfoEx

GetStringScripts

Gestione dei nomi di dominio internazionalizzati (IDN)

Supporto per la lingua nazionale

Funzioni di supporto per il linguaggio nazionale