Funzione DownlevelGetStringScripts

Fornisce un elenco di script utilizzati nella stringa Unicode specificata.

Nota

Questa funzione viene usata solo dalle applicazioni eseguite nei sistemi operativi pre-Windows Vista. L'uso richiede il pacchetto di download. Le applicazioni eseguite solo in Windows Vista e versioni successive devono chiamare GetStringScripts.

 

Sintassi

int DownlevelGetStringScripts(
  _In_  DWORD   dwFlags,
  _In_  LPCWSTR lpString,
  _In_  int     cchString,
  _Out_ LPWSTR  lpScripts,
  _In_  int     cchScripts
);

Parametri

dwFlags [in]

Flag che specificano le opzioni per il recupero di script.

Valore Significato
GSS_ALLOW_INHERITED_COMMON
Recuperare le informazioni sullo script "Qaii" (INHERITED) e "Zyyy" (COMMON). Questo valore non influisce sull'elaborazione di caratteri non assegnati. Questi caratteri nella stringa di input causano sempre la visualizzazione di un "Zzzz" (script UNASSIGNED) nella stringa di script.

 

Nota

Per impostazione predefinita, questa funzione ignora tutti i caratteri ereditati o comuni nella stringa Unicode di input. Se GSS_ALLOW_INHERITED_COMMON non è impostato, né "Qaii" né "Zyyy" verranno visualizzati nella stringa di script, anche se la stringa di input contiene tali caratteri. Se GSS_ALLOW_INHERITED_COMMON è impostato e se la stringa di input contiene caratteri ereditati e/o comuni, nella stringa di script viene visualizzato "Qaii" e/o "Zyyy". Vedere la sezione relativa alle osservazioni.

 

lpString [in]

Puntatore alla stringa Unicode da analizzare.

cchString [in]

Dimensioni, in caratteri, della stringa Unicode indicata da lpString. L'applicazione imposta questo parametro su -1 se la stringa è con terminazione Null. Se l'applicazione imposta questo parametro su 0, la funzione recupera una stringa Unicode null (L"\0") in lpScripts e restituisce 1.

lpScripts [out]

Puntatore a un buffer in cui questa funzione recupera una stringa con terminazione Null che rappresenta un elenco di script, usando la notazione a 4 caratteri usata in ISO 15924. Ogni nome di script è costituito da quattro caratteri latini e i nomi vengono recuperati in ordine alfabetico. Ogni nome, incluso l'ultimo, è seguito da un punto e virgola.

In alternativa, questo parametro può contenere NULL se cchScripts è impostato su 0. In questo caso, la funzione restituisce le dimensioni necessarie per il buffer di script.

cchScripts [in]

Dimensioni, in caratteri, per il buffer di script indicato da lpScripts.

In alternativa, l'applicazione può impostare questo parametro su 0. In questo caso, la funzione recupera NULL in lpScripts e restituisce le dimensioni necessarie per il buffer di script.

Valore restituito

Restituisce il numero di caratteri recuperati nel buffer di output, incluso un carattere Null di terminazione, se ha esito positivo e cchScripts è impostato su un valore diverso da zero. La funzione restituisce 1 per indicare che non è stato trovato alcuno script, ad esempio quando la stringa di input contiene solo caratteri COMMON o INHERITED e GSS_ALLOW_INHERITED_COMMON non è impostata. Dato che ogni script trovato aggiunge cinque caratteri (quattro caratteri + delimitatore), una semplice operazione matematica fornisce il numero di script come (return_code - 1) / 5.

Se la funzione ha esito positivo e il valore di cchScripts è 0, il valore restituito è la dimensione necessaria, in caratteri che includono un carattere Null di terminazione, per il buffer di script. Il conteggio degli script è come descritto in precedenza.

La funzione restituisce 0 se non riesce. Per ottenere informazioni di errore estese, l'applicazione può chiamare GetLastError, che può restituire uno dei codici di errore seguenti:

  • ERROR_BADDB. La funzione non è riuscita ad accedere ai dati. Questa situazione non dovrebbe verificarsi normalmente e in genere indica un'installazione non valida, un problema del disco o simili.
  • ERROR_INSUFFICIENT_BUFFER. Le dimensioni del buffer fornite non sono sufficienti o non sono state impostate correttamente su NULL.
  • ERROR_INVALID_FLAGS. I valori specificati per i flag non sono validi.
  • ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.

Osservazioni:

Questa funzione è utile come parte di una strategia per attenuare i problemi di sicurezza correlati ai nomi di dominio internazionalizzati (IDN).

La determinazione dello script è basata sui valori di script pubblicati dal Consorzio Unicode in https://www.unicode.org/Public/4.1.0/ucd/Scripts.txt, ad eccezione del fatto che i caratteri non assegnati hanno il valore "Zzzz" (UNASSIGNED) anziché "Zyyy" (COMMON).

Ecco alcuni esempi del comportamento di questa funzione:

Stringa di input

dwFlags

lpScripts

Scripts

Microsoft.com

0

Latn;

Latino

Microsoft.com

GSS_ALLOW_INHERITED_COMMON

Latn; Zyyy;

Latino + Comune

${ROWSPAN2}$Ni ño${REMOVE}$

004E 0069 0241 006F

${ROWSPAN2}$GSS_ALLOW_INHERITED_COMMON${REMOVE}$

${ROWSPAN2}$Latn;${REMOVE}$

${ROWSPAN2}$Latin${REMOVE}$

Usa LETTERE MINUSCOLE LATINE N CON TILDE

${ROWSPAN2}$Ni ño${REMOVE}$

004E 0069 006E 0303 006F

${ROWSPAN2}$GSS_ALLOW_INHERITED_COMMON${REMOVE}$

${ROWSPAN2}$Latn; Qaii;${REMOVE}$

${ROWSPAN2}$Latin + Ereditato${REMOVE}$

Usa LA COMBINAZIONE DI TILDE

${ROWSPAN2}$Sp ооf${REMOVE}$

0053 0070 043e 043e 0066

${ROWSPAN2}$0${REMOVE}$

${ROWSPAN2}$Latn; Cyrl;${REMOVE}$

${ROWSPAN2}$Latin + cirillico${REMOVE}$

Utilizza LETTERE MINUSCOLE CIRILLICO O

U+f000

0

Zzzz;

Non assegnate

U+f000

GSS_ALLOW_INHERITED_COMMON

Zzzz;

Non assegnate

 

Il file di intestazione e la DLL necessari fanno parte del download delle API di mitigazione IDN (Microsoft Internationalized Domain Name) disponibili da archive.org.

Requisiti

Requisito Valore
Client minimo supportato
Windows XP [solo app desktop]
Server minimo supportato
Windows Server 2003 [solo app desktop]
Componente ridistribuibile
API di mitigazione IDN (Microsoft Internationalized Domain Name) in Windows XP (SP2 o versione successiva), Windows Server 2003 (SP1 o versione successiva) o Windows Vista
Intestazione
Idndl.h
DLL
Idndl.dll

Vedi anche

Supporto per la lingua nazionale

Funzioni di supporto per il linguaggio nazionale

Gestione dei nomi di dominio internazionalizzati (IDN)

DownlevelGetLocaleScripts

DownlevelVerifyScripts

GetStringScripts