Funzione GetStringTypeExW (stringapiset.h)

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 determinato tipo di carattere, ad esempio lettera, cifra o nessuno dei due.

Attenzione L'uso della funzione GetStringTypeEx in modo errato può compromettere 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 A differenza dei relativi vicini GetStringTypeA e GetStringTypeW, questa funzione mostra un comportamento ANSI o Unicode appropriato tramite l'uso del commutatore 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 usare 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 personalizzate seguenti.

[in] dwInfoType

Flag che specificano le informazioni sul tipo di carattere da recuperare. Per i valori di flag possibili, 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 caratteri. Si presuppone che la stringa venga terminata con valore Null se cchSrc è impostato su qualsiasi valore negativo.

[in] cchSrc

Dimensioni, in caratteri, della stringa indicata da lpSrcStr. Le dimensioni fanno riferimento a byte per la versione ANSI della funzione o dei caratteri wide per la versione Unicode. Se la dimensione include un carattere Null terminante, la funzione recupera le informazioni sul tipo di carattere per tale carattere. Se l'applicazione imposta le dimensioni su qualsiasi intero negativo, si presuppone che la stringa di origine venga terminata con valore 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 sufficiente 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 gli elementi lpSrcStr + 1. Quando la funzione restituisce, 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 sull'errore estese, l'applicazione può chiamare GetLastError, che può restituire uno dei codici di errore seguenti:

  • ERROR_INVALID_FLAGS. I valori forniti per i flag non sono validi.
  • ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.

Commenti

Per una panoramica dell'uso delle funzioni stringa, vedere Strings.

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 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 non corrispondono alla stringa ANSI originale, ma al relativo equivalente Unicode. La conversione da ANSI a Unicode può comportare una modifica nella lunghezza della stringa, ad esempio una coppia di caratteri ANSI può eseguire il mapping 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. La versione Unicode della funzione è invece consigliata.

Questa funzione evita 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 una funzione GetStringType* tramite l'uso dell'opzione UNICODE #define. D'altra parte, GetStringTypeEx si comporta correttamente rispetto a tale commutatore. Pertanto è 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 stringa 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 Impostazioni locali.

Requisiti

   
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione stringapiset.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

GetStringTypeW

Supporto per la lingua nazionale

Funzioni di supporto del linguaggio nazionale