Функция FoldString


Функция FoldString проецирует одну строку на другую, выполняя указанный вариант выбора преобразования.

Синтаксис

int FoldString(      

    DWORD dwMapFlags,
    LPCTSTR lpSrcStr,
    int cchSrc,
    LPTSTR lpDestStr,
    int cchDest
);

Параметры

dwMapFlags

[in] Набор битовых флажков, указывающих тип преобразования, который используется в ходе отображения. Это значение может быть комбинацией нижеследующих значений.

Флажок

Действие

MAP_FOLDCZONE Свертывает зону совместимости символов в стандартные эквиваленты Unicode. Информацию о зоне совместимости символов, см. в нижеследующем разделе Замечаний.
MAP_FOLDDIGITS Преобразует все цифры в символы Unicode от 0 до 9.
MAP_PRECOMPOSED Преобразует диакритические знаки символа в составные символы, в которых диакритический знак и базовый символ комбинируются в единичное символьное значение. Это значение не может комбинироваться с MAP_COMPOSITE.
MAP_COMPOSITE Преобразует диакритические знаки символов в составные символы, в который диакритический знак и базовый символ представляются значениями на два символа. Это значение не может комбинироваться с MAP_PRECOMPOSED.
MAP_EXPAND_LIGATURES Развертывает все символы лигатуры так, чтобы они были представлены своим двухсимвольным эквивалентом. Например, лигатура '?' развертывается до двух символов 'а' и 'e'. Это значение не может комбинироваться с MAP_PRECOMPOSED или MAP_COMPOSITE.

lpSrcStr

[in] Указатель на преобразуемую строку.

cchSrc

[in] Указывает размер, в TCHARs, буфера lpSrcStr. Это относится к байтам для версий ANSI функции или WCHARs для версий Unicode. Если параметр cchSrc - любое отрицательное значение, то параметр lpSrcStr предполагается с завершающим символом конца строки ('\0'), а длина вычисляется автоматически.

lpDestStr

[out] Указатель на буфер, который хранит отображаемую строку.

cchDest

[in] Указывает размер буфера lpDestStr, в TCHARs. Если параметр cchDest - нуль, возвращаемое значение функцией - число символов, требуемое, чтобы поместить отображаемую строку, а буфер указанный параметром lpDestStr, не используется.

Возвращаемое значение

Если функция завершается успешно, возвращаемое значение - число TCHARs, которое записывают в целевой буфер, или, если параметр cchDest - нуль, число символов, требуемое, чтобы поместить отображаемую строку. Это относится к байтам для версий ANSI функции или WCHARs для версий Unicode.

Обратите внимание! на то, что, когда параметр cchDest - нуль, возвращаемое значение включает в себя место для завершающего нуля, если первоначальная строка включает завершение нулем и, если cchSrc или -1, или длина, которая включает в себя завершение нулем.

Если функция завершается ошибкой, возвращаемое значение - нуль. Чтобы получить дополнительную информацию об ошибке, вызовите GetLastError. GetLastError может возвратить один из нижеследующих кодов ошибки:

ERROR_INSUFFICIENT_BUFFER

ERROR_INVALID_FLAGS

ERROR_INVALID_PARAMETER

ERROR_OUTOFMEMORY

ERROR_INVALID_DATA

ERROR_MOD_NOT_FOUND

ERROR_PROC_NOT_FOUND

Замечания

Отображаемая строка завершается символом конца строки ('\0'), если исходная строка завершена символом конца строки ('\0').

Указатели lpSrcStr и lpDestStr не должны иметь те же самые значения. Если они одинаковы, функция завершается ошибкой, а GetLastError возвращает код ошибки ERROR_INVALID_PARAMETER.

Зона совместимости в Unicode состоит из символов в диапазоне 0xF900 до 0xFFEF, которые назначены символам для других стандартов кодирования символов, но являются фактически вариантами символов, которые уже находятся в Unicode. Зона совместимости используется, чтобы поддерживать двойной проход, соответствующий этим стандартам. Приложения могут использовать флажок MAP_FOLDCZONE, чтобы избежать поддержки дублирования символов в зоне совместимости.

В Microsoft Windows Vista преобразования, обозначенные флажками MAP_FOLDCZONE, MAP_PRECOMPOSED и MAP_COMPOSITE, чтобы сделать отображения, используют нормализацию Unicode (через функцию NormalizeString).

Предупреждение защиты Неправильное использование этой функции может поставить под угрозу обеспечение безопасности Вашего приложения. Строки, которые отображаются не корректно, могут произвести ввод недопустимых данных. Проверка строк гарантирует, что они верны, перед тем, как они используются, и предусматривает) обработчики ошибок. Для получения дополнительной информации, см. статью Соображения по безопасности: Функции интернационализации.

Смотри также

Обзор Строки, Функции, используемые строками, LCMapString, CompareString

Размещение и совместимость FoldString

  Vista Да
К Windows XP Да
л Windows 2000 Professional Да
и Windows NT Workstation Да версии 3.1
е Windows Me Да
н Windows 98 Да
т Windows 95 Да
С Windows Server 2003 Да
е Windows 2000 Server Да
р Windows NT Server Да версии 3.1
в
е
р
Используемая библиотека Kernel32.lib
Используемая DLL kernel32.dll
Заголовочный файл
- объявлено в Winnls.h
- включено в Windows.h
Unicode Реализуются как версии Unicode и ANSI.
Замечания по платформе Не имеется

Назад в оглавление
На главную страницу
В оглавление справки

Hosted by uCoz