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