Condividi tramite


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.

Attenzione L'uso della funzione GetStringTypeEx può compromettere erroneamente la sicurezza dell'applicazione. Per evitare un overflow del buffer, l'applicazione deve impostare correttamente le dimensioni del buffer di output. Per altre informazioni sulla sicurezza, vedere Considerazioni sulla sicurezza: Interfaccia utente di Windows.
 
Nota Diversamente dai relativi stretti GetStringTypeA e GetStringTypeW, questa funzione presenta un comportamento ANSI o Unicode appropriato tramite l'uso dell'opzione UNICODE #define. Questa è la funzione consigliata per il recupero del tipo di carattere.
 

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 dwInfoType di GetStringTypeW. Per informazioni dettagliate sui bit del tipo di carattere, vedere Osservazioni per GetStringTypeW.

[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 viene usato solo per eseguire la conversione di stringhe in Unicode. Non ha nulla a che fare con i valori CTYPE* forniti dall'applicazione. Questi valori sono determinati esclusivamente dai punti di codice Unicode e non variano in base alle impostazioni locali. Ad esempio, le lettere greche vengono specificate come C1_ALPHA per qualsiasi valore di Locale.

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

supporto linguistico nazionale

funzioni di supporto del linguaggio nazionale