Condividi tramite


Funzione GetStringTypeW (stringapiset.h)

Recupera le informazioni sul tipo di carattere per i caratteri nella stringa di origine Unicode 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 GetStringTypeW in modo non corretto 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 GetStringTypeW(
  [in]  DWORD                         dwInfoType,
  [in]  _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
  [in]  int                           cchSrc,
  [out] LPWORD                        lpCharType
);

Parametri

[in] dwInfoType

Flag che specificano le informazioni sul tipo di carattere da recuperare. Questo parametro può avere i valori seguenti. I tipi di carattere sono suddivisi in diversi livelli, come descritto nella sezione Osservazioni.

Contrassegno Significato
CT_CTYPE1
Recuperare le informazioni sul tipo di carattere.
CT_CTYPE2
Recuperare informazioni sul layout bidirezionale.
CT_CTYPE3
Recuperare le informazioni sull'elaborazione del testo.

[in] lpSrcStr

Puntatore alla stringa Unicode 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. 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 elementi lpSrcStr + 1. 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.

Commenti

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

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 Locale usato dalla funzione GetStringTypeA corrispondente non viene usato da questa funzione. 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, ovvero la funzione consigliata.

Tipi di caratteri supportati

I bit del tipo di carattere sono suddivisi in diversi livelli. Le informazioni per un livello possono essere recuperate da una singola chiamata a questa funzione. Ogni livello è limitato a 16 bit di informazioni in modo che le altre funzioni di mapping, limitate a 16 bit di rappresentazione per carattere, possano anche restituire informazioni sul tipo di carattere.

Ctype 1

Questi tipi supportano funzioni di digitazione di caratteri ANSI C e POSIX (LC_CTYPE). Un OR bit per bit di questi valori viene recuperato nella matrice nel buffer di output quando dwInfoType è impostato su CT_CTYPE1. Per le impostazioni locali DBCS, gli attributi di tipo si applicano sia ai caratteri stretti che ai caratteri wide. I caratteri hiragana e katakana giapponesi e i caratteri ideogrammi kanji hanno tutti l'attributo C1_ALPHA.

Nome Valore Significato
C1_UPPER 0x0001 Maiuscolo
C1_LOWER 0x0002 Lettere minuscole
C1_DIGIT 0x0004 Cifre decimali
C1_SPACE 0x0008 Spaziatura caratteri
C1_PUNCT 0x0010 Punteggiatura
C1_CNTRL 0x0020 Caratteri di controllo
C1_BLANK 0x0040 Caratteri vuoti
C1_XDIGIT 0x0080 Cifre esadecimali
C1_ALPHA 0x0100 Qualsiasi carattere linguistico: alfabetico, sillabario o ideografico
C1_DEFINED 0x0200 Carattere definito, ma non uno degli altri tipi C1_*
 

I tipi di caratteri seguenti sono costanti o calcolabili dai tipi di base e non devono essere supportati da questa funzione.

Tipo Descrizione
Alfanumerico Caratteri alfabetici e cifre (C1_ALPHA e C1_DIGIT)
Carattere stampabile Caratteri grafici e spazi vuoti (tutti i tipi C1_* tranne C1_CNTRL)
 

Ctype 2

Questi tipi supportano il layout corretto del testo Unicode. Per le impostazioni locali DBCS, il tipo di carattere si applica sia ai caratteri stretti che a caratteri wide. Gli attributi di direzione vengono assegnati in modo che l'algoritmo di layout bidirezionale standardizzato da Unicode produa risultati accurati. Questi tipi si escludono a vicenda. Per altre informazioni sull'uso di questi attributi, vedere Unicode Standard.

Nome Valore Significato
Assoluta
C2_LEFTTORIGHT 0x0001 Da sinistra a destra
C2_RIGHTTOLEFT 0x0002 Da destra a sinistra
Debole
C2_EUROPENUMBER 0x0003 Numero europeo, cifra europea
C2_EUROPESEPARATOR 0x0004 Separatore numerico europeo
C2_EUROPETERMINATOR 0x0005 Terminazione numerica europea
C2_ARABICNUMBER 0x0006 Numero arabo
C2_COMMONSEPARATOR 0x0007 Separatore numerico comune
Neutralità
C2_BLOCKSEPARATOR 0x0008 Separatore di blocchi
C2_SEGMENTSEPARATOR 0x0009 Separatore segmento
C2_WHITESPACE 0x000A Spazi vuoti
C2_OTHERNEUTRAL 0x000B Altri neutrali
Non applicabile
C2_NOTAPPLICABLE 0x0000 Nessuna direzione implicita (ad esempio, codici di controllo)
 

Ctype 3

Questi tipi devono essere segnaposto per le estensioni ai tipi POSIX necessari per l'elaborazione di testo generale o per le funzioni di libreria C standard. Un or bit per bit di questi valori viene recuperato quando dwInfoType è impostato su CT_CTYPE3. Per le impostazioni locali DBCS, gli attributi Ctype 3 si applicano sia a caratteri limitati che a caratteri wide. I caratteri hiragana e katakana giapponesi e i caratteri kanji ideograph hanno tutti l'attributo C3_ALPHA.

Nome Valore Significato
C3_NONSPACING 0x0001 Contrassegno nonpacing
C3_DIACRITIC 0x0002 Contrassegno nonpacing diacritico
C3_VOWELMARK 0x0004 Contrassegno di vocale nonpacing
C3_SYMBOL 0x0008 Simbolo
C3_KATAKANA 0x0010 Carattere Katakana
C3_HIRAGANA 0x0020 Carattere Hiragana
C3_HALFWIDTH 0x0040 Carattere a metà larghezza (stretto)
C3_FULLWIDTH 0x0080 Carattere full-width (wide)
C3_IDEOGRAPH 0x0100 Carattere Ideografico
C3_KASHIDA 0x0200 Carattere kashida arabo
C3_LEXICAL 0x0400 Punteggiatura che viene conteggiata come parte della parola (kashida, trattino, indicatori ordinali femminili/maschili, segno uguale e così via)
C3_ALPHA 0x8000 Tutti i caratteri linguistici (alfabetico, syllabario e ideografico)
C3_HIGHSURROGATE 0x0800 Windows Vista: Unità di codice surrogato elevato
C3_LOWSURROGATE 0x1000 Windows Vista: Unità di codice surrogato bassa
Non applicabile
C3_NOTAPPLICABLE 0x0000 Non applicabile
 

C3_HIGHSURROGATE e C3_LOWSURROGATE sono elencati solo per la completezza e non devono mai essere forniti a questa funzione. Sono rilevanti solo per Unicode.

A partire da Windows 8: GetStringTypeW viene dichiarato in Stringapiset.h. Prima di Windows 8, è stato dichiarato in Winnls.h.

Requisiti

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 Windows
Intestazione stringapiset.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

GetStringTypeA

GetStringTypeEx

Supporto per la lingua nazionale

Funzioni di supporto per il linguaggio nazionale