Funzione GetStringTypeW (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 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 tipo di carattere specifico, 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 livelli diversi, come descritto nella sezione Osservazioni.
[in] lpSrcStr
Puntatore alla stringa Unicode per cui recuperare i tipi di caratteri. 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 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.
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
tipi di caratteri supportati
I bit del tipo di carattere sono divisi 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 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 kanji ideograph hanno tutti l'attributo C1_ALPHA.
Nome | Valore | Significato |
---|---|---|
C1_UPPER | 0x0001 | Maiuscolo |
C1_LOWER | 0x0002 | Minuscolo |
C1_DIGIT | 0x0004 | Cifre decimali |
C1_SPACE | 0x0008 | Spaziatura |
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 di C1_* |
I tipi di caratteri seguenti sono costanti o calcolabili dai tipi di base e non devono essere supportati da questa funzione.
Digitare | Descrizione |
---|---|
Alfanumerico | Caratteri alfabetici e cifre (C1_ALPHA e C1_DIGIT) |
Stampabile | Caratteri grafici e spazi vuoti (tutti i tipi C1_* ad eccezione di 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 The Unicode Standard.
Nome | Valore | Significato |
---|---|---|
Forte | ||
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 | Terminatore numerico europeo |
C2_ARABICNUMBER | 0x0006 | Numero arabo |
C2_COMMONSEPARATOR | 0x0007 | Separatore numerico comune |
Neutrale | ||
C2_BLOCKSEPARATOR | 0x0008 | Separatore di blocco |
C2_SEGMENTSEPARATOR | 0x0009 | Separatore segmento |
C2_WHITESPACE | 0x000A | Spazi vuoti |
C2_OTHERNEUTRAL | 0x000B | Altri neutrali |
Non applicabile | ||
C2_NOTAPPLICABLE | 0x0000 | Nessuna direzionalità 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 della 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 ai caratteri stretti che ai 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 senza spaziatura |
C3_DIACRITIC | 0x0002 | Segni diacritici non dispacing |
C3_VOWELMARK | 0x0004 | Mark di vocali 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 a larghezza intera (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/maschile, segno di uguale e così via) |
C3_ALPHA | 0x8000 | Tutti i caratteri linguistici (alfabetico, sillabario e ideografico) |
C3_HIGHSURROGATE | 0x0800 | Windows Vista: unità di codice surrogato elevato |
C3_LOWSURROGATE | 0x1000 | Windows Vista: unità di codice surrogato basso |
Non applicabile | ||
C3_NOTAPPLICABLE | 0x0000 | Non applicabile |
C3_HIGHSURROGATE e C3_LOWSURROGATE sono elencati solo per completezza e non devono mai essere forniti a questa funzione. Sono rilevanti solo per Unicode.
A partire da Windows 8: GetStringTypeW è dichiarato in Stringapiset.h. Prima di Windows 8, è stato dichiarato in Winnls.h.
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 |