Funzione GetStringTypeExW (stringapiset.h)
Nota
Questa API può avere informazioni incomplete/obsolete per determinati caratteri Unicode, in particolare quelle nell'intervallo supplementare. Per informazioni sul tipo di carattere Unicode più accurate e complete, è consigliabile usare API ICU equivalenti, ad esempio u_charType, u_islower, u_isspacee u_ispunct. Per indicazioni sull'uso delle API di ICU in Windows, vedere Introduzione all'ICU in Windows.
Recupera le informazioni sul tipo di carattere per i caratteri nella stringa di origine specificata. Per ogni carattere nella stringa, la funzione imposta uno o più bit nell'elemento a 16 bit corrispondente della matrice di output. Ogni bit identifica un tipo di carattere specifico, ad esempio lettera, cifra o nessuno dei due.
Sintassi
BOOL GetStringTypeExW(
[in] LCID Locale,
[in] DWORD dwInfoType,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out] LPWORD lpCharType
);
Parametri
[in] Locale
identificatore delle impostazioni locali che specifica le impostazioni locali. Questo valore definisce in modo univoco la tabella codici ANSI. È possibile utilizzare la macro MAKELCID per creare un identificatore delle impostazioni locali o usare uno dei valori predefiniti seguenti.
Windows Vista e versioni successive: sono supportati anche gli identificatori delle impostazioni locali personalizzati seguenti.[in] dwInfoType
Flag che specificano le informazioni sul tipo di carattere da recuperare. Per i possibili valori di flag, vedere il parametro
[in] lpSrcStr
Puntatore alla stringa per cui recuperare i tipi di carattere. Si presuppone che la stringa sia con terminazione Null se cchSrc è impostato su qualsiasi valore negativo.
[in] cchSrc
Dimensioni, in caratteri, della stringa indicata da lpSrcStr. La dimensione si riferisce ai byte per la versione ANSI della funzione o dei caratteri wide per la versione Unicode. Se la dimensione include un carattere Null di terminazione, la funzione recupera le informazioni sul tipo di carattere per tale carattere. Se l'applicazione imposta le dimensioni su un numero intero negativo, si presuppone che la stringa di origine sia con terminazione Null e la funzione calcola automaticamente le dimensioni con un carattere aggiuntivo per la terminazione Null.
[out] lpCharType
Puntatore a una matrice di valori a 16 bit. La lunghezza di questa matrice deve essere sufficientemente grande per ricevere un valore a 16 bit per ogni carattere nella stringa di origine. Se cchSrc non è un numero negativo, lpCharType deve essere una matrice di parole con elementi cchSrc. Se cchSrc è impostato su un numero negativo, lpCharType è una matrice di parole con lpSrcStr + 1 elementi. Quando la funzione viene restituita, questa matrice contiene una parola corrispondente a ogni carattere nella stringa di origine.
Valore restituito
Restituisce un valore diverso da zero se ha esito positivo o 0 in caso contrario. Per ottenere informazioni estese sull'errore, l'applicazione può 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.
Osservazioni
Per una panoramica dell'uso delle funzioni stringa, vedere Stringhe.
Usando la tabella codici ANSI per le impostazioni locali fornite, questa funzione converte la stringa di origine da ANSI a Unicode. Analizza quindi ogni carattere Unicode per ottenere informazioni sul tipo di carattere.
La versione ANSI di questa funzione converte la stringa di origine in Unicode e chiama la funzione GetStringTypeW corrispondente. Pertanto, le parole nel buffer di output corrispondono non alla stringa ANSI originale ma al relativo equivalente Unicode. La conversione da ANSI a Unicode può comportare una modifica della lunghezza della stringa, ad esempio una coppia di caratteri ANSI può essere mappata a un singolo carattere Unicode. Pertanto, la corrispondenza tra le parole nel buffer di output e i caratteri nella stringa ANSI originale non è uno-a-uno in tutti i casi, ad esempio stringhe multibyte. Pertanto, la versione ANSI di questa funzione è di uso limitato per le stringhe a più caratteri. È invece consigliabile usare la versione Unicode della funzione.
Questa funzione aggira una limitazione causata dalla differenza nei parametri tra GetStringTypeA e GetStringTypeW. A causa della differenza di parametro, un'applicazione non può richiamare automaticamente la versione ANSI o Unicode appropriata di un GetStringType* funzione tramite l'uso dell'opzione UNICODE #define. D'altra parte, GetStringTypeEx, si comporta correttamente per quanto riguarda tale opzione. È quindi la funzione consigliata.
Quando la versione ANSI di questa funzione viene usata con un identificatore delle impostazioni locali solo Unicode, la funzione può avere esito positivo perché il sistema operativo usa la tabella codici del sistema. Tuttavia, i caratteri non definiti nella tabella codici di sistema vengono visualizzati nella stringa come punto interrogativo (?).
I valori dei parametri lpSrcStr e lpCharType non devono essere uguali. Se sono uguali, la funzione ha esito negativo con ERROR_INVALID_PARAMETER.
Il parametro impostazioni locali
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [app desktop | App UWP] |
server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
stringapiset.h (include Windows.h) |
libreria |
Kernel32.lib |
dll | Kernel32.dll |
Vedere anche
GetStringTypeW