FoldStringW-Funktion (stringapiset.h)
Ordnet eine Unicode-Zeichenfolge einer anderen zu, wobei die angegebene Transformation ausgeführt wird. Eine Übersicht über die Verwendung der Zeichenfolgenfunktionen finden Sie unter Zeichenfolgen.
Syntax
int FoldStringW(
[in] DWORD dwMapFlags,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out, optional] LPWSTR lpDestStr,
[in] int cchDest
);
Parameter
[in] dwMapFlags
Flags, die den Typ der Transformation angeben, die während der Zeichenfolgenzuordnung verwendet werden soll. Für diesen Parameter ist eine Kombination der folgenden Werte gültig.
[in] lpSrcStr
Zeiger auf eine Quellzeichenfolge, die von der Funktion zugeordnet wird.
[in] cchSrc
Größe der durch lpSrcStr angegebenen Quellzeichenfolge in Zeichen, mit Ausnahme des abschließenden NULL-Zeichens. Die Anwendung kann den Parameter auf einen beliebigen negativen Wert festlegen, um anzugeben, dass die Quellzeichenfolge NULL-beendet ist. In diesem Fall berechnet die Funktion die Zeichenfolgenlänge automatisch und beendet die zugeordnete Zeichenfolge, die durch lpDestStr angegeben wird, null-.
[out, optional] lpDestStr
Zeiger auf einen Puffer, in dem diese Funktion die zugeordnete Zeichenfolge abruft.
[in] cchDest
Größe der Zielzeichenfolge in Zeichen, die durch lpDestStr. angegeben wird. Wenn das Leerzeichen für ein abschließendes NULL-Zeichen in cchSrc enthalten ist, muss cchDest auch Leerzeichen für ein abschließendes NULL-Zeichen enthalten.
Die Anwendung kann cchDest auf 0 festlegen. In diesem Fall verwendet die Funktion nicht den lpDestStr-Parameter und gibt die erforderliche Puffergröße für die zugeordnete Zeichenfolge zurück. Wenn das flag MAP_FOLDDIGITS angegeben wird, ist der Rückgabewert die maximal erforderliche Größe, auch wenn die tatsächliche Anzahl der benötigten Zeichen kleiner als die maximale Größe ist. Wenn die maximale Größe nicht übergeben wird, schlägt die Funktion mit ERROR_INSUFFICIENT_BUFFER fehl.
Rückgabewert
Gibt die Anzahl der Zeichen in der übersetzten Zeichenfolge zurück, einschließlich eines abschließenden NULL-Zeichens, wenn dies erfolgreich ist. Wenn die Funktion erfolgreich ist und der Wert von cchDest 0 ist, entspricht der Rückgabewert der Größe des Puffers, der zum Aufnehmen der übersetzten Zeichenfolge erforderlich ist, einschließlich eines abschließenden NULL-Zeichens.
Diese Funktion gibt 0 zurück, wenn sie nicht erfolgreich ist. Um erweiterte Fehlerinformationen zu erhalten, kann die Anwendung GetLastError aufrufen, wodurch einer der folgenden Fehlercodes zurückgegeben werden kann:
- ERROR_INSUFFICIENT_BUFFER. Eine angegebene Puffergröße war nicht groß genug, oder sie wurde fälschlicherweise auf NULL festgelegt.
- ERROR_INVALID_DATA. Die Daten waren ungültig.
- ERROR_INVALID_FLAGS. Die für Flags angegebenen Werte waren ungültig.
- ERROR_INVALID_PARAMETER. Jeder der Parameterwerte war ungültig.
- ERROR_MOD_NOT_FOUND. Das Modul wurde nicht gefunden.
- ERROR_OUTOFMEMORY. Es war nicht genügend Speicher verfügbar, um diesen Vorgang abzuschließen.
- ERROR_PROC_NOT_FOUND. Die erforderliche Prozedur wurde nicht gefunden.
Hinweise
Die Werte der Parameter lpSrcStr und lpDestStr dürfen nicht identisch sein. Wenn sie identisch sind, schlägt die Funktion mit ERROR_INVALID_PARAMETER fehl.
Die Kompatibilitätszone in Unicode besteht aus Zeichen im Bereich 0xF900 bis 0xFFEF, die Zeichen aus anderen Codierungsstandards für Zeichen zugewiesen sind, aber tatsächlich Varianten von Zeichen sind, die bereits in Unicode vorhanden sind. Die Kompatibilitätszone wird verwendet, um die Roundtripzuordnung zu diesen Standards zu unterstützen. Anwendungen können das flag MAP_FOLDCZONE verwenden, um die Duplizierung von Zeichen in der Kompatibilitätszone zu vermeiden.
Ab Windows Vista: Diese Funktion unterstützt die Unicode-Normalisierung. Alle Unicode-Kompatibilitätszeichen werden zugeordnet.
Ab Windows Vista: Die Transformationen, die durch die Flags MAP_FOLDCZONE, MAP_PRECOMPOSED und MAP_COMPOSITE angegeben werden, verwenden die Unicode-Normalisierungsformen KC, C und D (über die NormalizeString-Funktion ), um die Zuordnungen durchzuführen.
Ab Windows 8: Die ANSI-Version der Funktion wird in Winnls.h und die Unicode-Version in Stringapiset.h deklariert. Vor Windows 8 wurden beide Versionen in Winnls.h deklariert.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | stringapiset.h (Einschließen von Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |
Siehe auch
Unterstützung für landessprachliche Sprachen
Unterstützungsfunktionen für nationalsprachliche Sprachen
Sicherheitsüberlegungen: Internationale Features
Verwenden der Unicode-Normalisierung zum Darstellen von Zeichenfolgen