Функция FoldString проецирует одну строку на другую, выполняя указанный вариант выбора преобразования.
int FoldString( DWORD dwMapFlags, LPCTSTR lpSrcStr, int cchSrc, LPTSTR lpDestStr, int cchDest ); |
[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. |
[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. | |
Замечания по платформе | Не имеется |