Condividi tramite


Funzione GetStringTypeA (winnls.h)

Deprecato. 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 GetStringTypeA 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.

 

Sintassi

BOOL GetStringTypeA(
  [in]  LCID   Locale,
  [in]  DWORD  dwInfoType,
  [in]  LPCSTR lpSrcStr,
  [in]  int    cchSrc,
  [out] LPWORD lpCharType
);

Parametri

[in] Locale

Identificatore delle impostazioni locali che specifica le impostazioni locali. È 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 ANSI per cui recuperare i tipi di caratteri. La stringa può essere una stringa dbCS (double-byte character set) se le impostazioni locali fornite sono appropriate per DBCS. 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. 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.

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. GetStringTypeA è quindi di uso limitato per le stringhe a più caratteri. La funzione GetStringTypeW e GetStringTypeEx sono invece consigliate.

Quando 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.

Il parametro Impostazioni locali non viene usato dalla funzione GetStringTypeW corrispondente. 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. Un'applicazione può aggirare questa limitazione usando GetStringTypeEx, che è la funzione consigliata.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winnls.h (includere Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

GetStringTypeEx

GetStringTypeW

Supporto per la lingua nazionale

Funzioni di supporto del linguaggio nazionale