Struttura CPINFO (winnls.h)
Contiene informazioni su una tabella codici. Questa struttura viene usata dalla funzione GetCPInfo .
Sintassi
typedef struct _cpinfo {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
} CPINFO, *LPCPINFO;
Members
MaxCharSize
Lunghezza massima, in byte, di un carattere nella tabella codici. La lunghezza può essere 1 per un set di caratteri a byte singolo (SBCS), 2 per un set di caratteri a byte doppio (DBCS) o un valore maggiore di 2 per altri tipi di set di caratteri. La funzione non può usare le dimensioni per distinguere un DATABASECS o un DBCS da altri set di caratteri a causa di altri fattori, ad esempio l'uso di pagine codici ISCII o ISO-2022-xx.
DefaultChar[MAX_DEFAULTCHAR]
Carattere predefinito usato durante la conversione di stringhe di caratteri nella tabella codici specifica. Questo carattere viene usato dalla funzione WideCharToMultiByte se non è specificato un carattere predefinito esplicito. Il valore predefinito è in genere il carattere "?" per la tabella codici.
LeadByte[MAX_LEADBYTES]
Matrice a lunghezza fissa degli intervalli di byte di lead, per cui il numero di intervalli di byte di lead è variabile. Se la tabella codici non ha byte di lead, ogni elemento della matrice è impostato su NULL. Se la tabella codici ha byte di lead, la matrice specifica un valore iniziale e un valore finale per ogni intervallo. Gli intervalli sono inclusivi e il numero massimo di intervalli per qualsiasi tabella codici è cinque. La matrice usa due byte per descrivere ogni intervallo, con due byte Null come terminatore dopo l'ultimo intervallo.
Commenti
I byte di lead sono univoci per le pagine codici DBCS che consentono più di 256 caratteri. Un byte di lead è il primo byte di un carattere a 2 byte in un databaseCS. In ogni tabella codici DBCS, i byte di lead occupano un intervallo specifico di valori di byte. Questo intervallo è diverso per le diverse pagine di codice.
Le informazioni sui byte lead non sono molto utili per la maggior parte delle pagine di codice e non sono nemmeno fornite per molte codifica multi-byte, ad esempio UTF-8 e GB18030. Le applicazioni sono sconsigliate dall'uso di queste informazioni per prevedere le operazioni eseguite dalla funzione MultiByteToWideChar o WideCharToMultiByte . La funzione potrebbe terminare usando un carattere predefinito o eseguendo altri comportamenti predefiniti se i byte che seguono il byte non sono come previsto.
CPINFOEX, usato dalla funzione GetCPInfoEx , fornisce una versione estesa di questa struttura.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Intestazione | winnls.h (includere Windows.h) |