Функция 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.
|
Если функция завершается ошибкой, возвращаемое значение - нуль. Чтобы получить дополнительную информацию об ошибке, вызовите 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. | |
Замечания по платформе | Не имеется |