Функция 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. | |
| Замечания по платформе | Не имеется | |