Funzione FoldStringW (stringapiset.h)
Esegue il mapping di una stringa Unicode a un'altra, eseguendo la trasformazione specificata. Per una panoramica dell'uso delle funzioni stringa, vedere Strings.
Sintassi
int FoldStringW(
[in] DWORD dwMapFlags,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out, optional] LPWSTR lpDestStr,
[in] int cchDest
);
Parametri
[in] dwMapFlags
Flag che specificano il tipo di trasformazione da usare durante il mapping di stringhe. Questo parametro può essere una combinazione dei valori seguenti.
[in] lpSrcStr
Puntatore a una stringa di origine mappata dalla funzione.
[in] cchSrc
Dimensioni, in caratteri, della stringa di origine indicata da lpSrcStr, escluso il carattere Null terminante. L'applicazione può impostare il parametro su qualsiasi valore negativo per specificare che la stringa di origine è terminata con valore Null. In questo caso, la funzione calcola automaticamente la lunghezza della stringa e termina automaticamente la stringa mappata indicata da lpDestStr.
[out, optional] lpDestStr
Puntatore a un buffer in cui questa funzione recupera la stringa mappata.
[in] cchDest
Dimensioni, in caratteri, della stringa di destinazione indicata da lpDestStr. Se lo spazio per un carattere Null terminante è incluso in cchSrc, cchDest deve includere anche lo spazio per un carattere Null terminante.
L'applicazione può impostare cchDest su 0. In questo caso, la funzione non usa il parametro lpDestStr e restituisce le dimensioni del buffer necessarie per la stringa mappata. Se viene specificato il flag di MAP_FOLDDIGITS, il valore restituito è la dimensione massima necessaria, anche se il numero effettivo di caratteri necessari è inferiore alla dimensione massima. Se la dimensione massima non viene passata, la funzione ha esito negativo con ERROR_INSUFFICIENT_BUFFER.
Valore restituito
Restituisce il numero di caratteri nella stringa tradotta, incluso un carattere Null terminante, se riuscito. Se la funzione ha esito positivo e il valore di cchDest è 0, il valore restituito è la dimensione del buffer necessario per contenere la stringa tradotta, incluso un carattere null terminante.
Questa funzione restituisce 0 se non riesce. Per ottenere informazioni sull'errore estese, l'applicazione può chiamare GetLastError, che può restituire uno dei codici di errore seguenti:
- ERROR_INSUFFICIENT_BUFFER. Una dimensione del buffer fornita non è stata sufficiente oppure è stata impostata in modo errato su NULL.
- ERROR_INVALID_DATA. I dati non sono validi.
- ERROR_INVALID_FLAGS. I valori forniti per i flag non sono validi.
- ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.
- ERROR_MOD_NOT_FOUND. Il modulo non è stato trovato.
- ERROR_OUTOFMEMORY. L'archiviazione non è sufficiente per completare questa operazione.
- ERROR_PROC_NOT_FOUND. La procedura richiesta non è stata trovata.
Commenti
I valori dei parametri lpSrcStr e lpDestStr non devono essere uguali. Se sono uguali, la funzione ha esito negativo con ERROR_INVALID_PARAMETER.
La zona di compatibilità in Unicode è costituita da caratteri nell'intervallo 0xF900 tramite 0xFFEF assegnati a caratteri da altri standard di codifica per i caratteri, ma sono in realtà varianti di caratteri già in Unicode. La zona di compatibilità viene usata per supportare il mapping round trip a questi standard. Le applicazioni possono usare il flag MAP_FOLDCZONE per evitare di supportare la duplicazione dei caratteri nella zona di compatibilità.
A partire da Windows Vista: Questa funzione supporta la normalizzazione Unicode. Tutti i caratteri di compatibilità Unicode vengono mappati.
A partire da Windows Vista: Le trasformazioni indicate dalla MAP_FOLDCZONE, MAP_PRECOMPOSED e MAP_COMPOSITE flag usano moduli di normalizzazione Unicode KC, C e D (tramite la funzione NormalString ) per eseguire i mapping.
A partire da Windows 8: la versione ANSI della funzione viene dichiarata in Winnls.h e la versione Unicode viene dichiarata in Stringapiset.h. Prima di Windows 8, entrambe le versioni sono state dichiarate in Winnls.h.
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 | stringapiset.h (includere Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
Supporto per la lingua nazionale
Funzioni di supporto del linguaggio nazionale
Considerazioni sulla sicurezza: funzionalità internazionali
Uso della normalizzazione Unicode per rappresentare stringhe