Функция FoldStringW (stringapiset.h)
Сопоставляет одну строку Юникода с другой, выполняя указанное преобразование. Общие сведения об использовании строковых функций см. в разделе Строки.
Синтаксис
int FoldStringW(
[in] DWORD dwMapFlags,
[in] _In_NLS_string_(cchSrc)LPCWCH lpSrcStr,
[in] int cchSrc,
[out, optional] LPWSTR lpDestStr,
[in] int cchDest
);
Параметры
[in] dwMapFlags
Флаги, указывающие тип преобразования, используемого во время сопоставления строк. Этот параметр может быть сочетанием следующих значений.
[in] lpSrcStr
Указатель на исходную строку, сопоставляемую функцией.
[in] cchSrc
Размер (в символах) исходной строки, указанной lpSrcStr, за исключением завершающего символа NULL. Приложение может задать для параметра любое отрицательное значение, чтобы указать, что исходная строка завершается null. В этом случае функция вычисляет длину строки автоматически, а сопоставленную строку, указанную lpDestStr, завершается со значением NULL.
[out, optional] lpDestStr
Указатель на буфер, в котором эта функция извлекает сопоставленную строку.
[in] cchDest
Размер целевой строки в символах, указанный lpDestStr. Если пробел для завершающего символа NULL включен в cchSrc, cchDest также должен включать пробел для завершающего символа NULL.
Приложение может задать для cchDest значение 0. В этом случае функция не использует параметр lpDestStr и возвращает необходимый размер буфера для сопоставленной строки. Если указан флаг MAP_FOLDDIGITS, возвращаемое значение — это максимальный требуемый размер, даже если фактическое количество символов меньше максимального размера. Если максимальный размер не передается, функция завершается сбоем с ERROR_INSUFFICIENT_BUFFER.
Возвращаемое значение
Возвращает количество символов в переведенной строке, включая завершающий пустой символ, если это будет выполнено успешно. Если функция выполняется успешно, а значение cchDest равно 0, возвращаемое значение — это размер буфера, необходимый для хранения переведенной строки, включая завершающий символ NULL.
Эта функция возвращает значение 0, если она не выполняется успешно. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать один из следующих кодов ошибок:
- ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или для него неправильно задано значение NULL.
- ERROR_INVALID_DATA. Недопустимые данные.
- ERROR_INVALID_FLAGS. Значения, указанные для флагов, были недопустимыми.
- ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.
- ERROR_MOD_NOT_FOUND. Модуль не найден.
- ERROR_OUTOFMEMORY. Недостаточно места для выполнения этой операции.
- ERROR_PROC_NOT_FOUND. Требуемая процедура не найдена.
Комментарии
Значения параметров lpSrcStr и lpDestStr не должны совпадать. Если они совпадают, функция завершается сбоем с ERROR_INVALID_PARAMETER.
Зона совместимости в Юникоде состоит из символов в диапазоне 0xF900 по 0xFFEF, которые назначены символам из других стандартов кодирования для символов, но на самом деле являются вариантами символов, уже существующих в Юникоде. Зона совместимости используется для поддержки сопоставления кругового пути с этими стандартами. Приложения могут использовать флаг MAP_FOLDCZONE, чтобы избежать дублирования символов в зоне совместимости.
Начиная с Windows Vista: Эта функция поддерживает нормализацию Юникода. Сопоставляются все символы совместимости Юникода.
Начиная с Windows Vista: Преобразования, указанные флагами MAP_FOLDCZONE, MAP_PRECOMPOSED и MAP_COMPOSITE, используют формы нормализации Юникода KC, C и D (с помощью функции NormalizeString ) для выполнения сопоставлений.
Начиная с Windows 8: версия ФУНКЦИИ ANSI объявляется в Winnls.h, а версия Юникода — в Stringapiset.h. До Windows 8 обе версии объявлялись в Winnls.h.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | stringapiset.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
См. также
Функции поддержки национальных языков