Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Анализирует строку обычного текста.
Синтаксис
HRESULT ScriptStringAnalyse(
[in] HDC hdc,
[in] const void *pString,
[in] int cString,
[in] int cGlyphs,
[in] int iCharset,
[in] DWORD dwFlags,
[in] int iReqWidth,
[in, optional] SCRIPT_CONTROL *psControl,
[in, optional] SCRIPT_STATE *psState,
[in, optional] const int *piDx,
[in, optional] SCRIPT_TABDEF *pTabdef,
[in] const BYTE *pbInClass,
[out] SCRIPT_STRING_ANALYSIS *pssa
);
Параметры
[in] hdc
Дескриптор контекста устройства. Если параметру dwFlags присвоено значение SSA_GLYPHS, требуется дескриптор контекста устройства. Если для dwFlags задано значение SSA_BREAK, то дескриптор контекста устройства является необязательным. Если указан дескриптор контекста устройства, функция проверяет текущий шрифт в контексте устройства. Если текущий шрифт является символьным шрифтом, функция обрабатывает строку символов как один нейтральный SCRIPT_UNDEFINED элемент.
[in] pString
Указатель на анализируемую строку. Строка должна содержать по крайней мере один символ. Это может быть строка Юникода или использовать кодировку из кодовой страницы Windows ANSI, как указано в параметре iCharset .
[in] cString
Длина анализируемой строки. Длина измеряется в символах для строки ANSI или в расширенных символах для строки Юникода. Длина должна быть не менее 1.
[in] cGlyphs
Размер буфера глифов в значениях WORD. Этот размер является обязательным. Рекомендуемый размер — (1.5 * cString + 16).
[in] iCharset
Дескриптор кодировки. Если входная строка является строкой ANSI, для этого дескриптора устанавливается идентификатор кодировки. Если строка является строкой Юникода, этот дескриптор имеет значение -1.
Определены следующие идентификаторы кодировки:
[in] dwFlags
Флаги, указывающие необходимый анализ. Этот параметр может иметь одно из значений, перечисленных в следующей таблице.
| Значение | Значение |
|---|---|
|
Получение флагов останова, то есть символов и слов. |
|
Закрепите строку в iReqWidth. |
|
Укажите глифы представления для управляющих символов. |
|
Используйте резервные шрифты. |
|
Оправдайте строку до iReqWidth. |
|
Получение отсутствующих глифов и pwLogClust с помощью соглашений GetCharacterPlacement . |
|
Создание глифов, позиций и атрибутов. |
|
Удалите первый & из отображаемой строки. |
|
Замените "&" подчеркиванием на последующей кодовой точке. |
|
Отображать только подчеркивание. Результирующий битовый шаблон может отображаться с помощью маски XOR для переключения видимости подчеркивания горячей клавиши без нарушения текста. |
|
Применение связывания и сопоставления восточноазиатских шрифтов к некомплексным текстам. |
|
Записывайте элементы с помощью вызовов ExtTextOutW , а не с глифами. |
|
Повторяющаяся входная строка, содержащая один символ cString times. |
|
Используйте базовый уровень внедрения 1. |
|
Разверните вкладки. |
[in] iReqWidth
Ширина, необходимая для установки или обрезки.
[in, optional] psControl
Указатель на структуру SCRIPT_CONTROL . Приложение может присвоить этому параметру значение NULL , чтобы указать, что все члены SCRIPT_CONTROL имеют значение 0.
[in, optional] psState
Указатель на структуру SCRIPT_STATE . Приложение может задать для этого параметра значение NULL , чтобы указать, что все члены SCRIPT_STATE имеют значение 0. Элемент uBidiLevelSCRIPT_STATE игнорируется. Используемое значение является производным от флага SSA_RTL в сочетании с макетом контекста устройства.
[in, optional] piDx
Указатель на запрошенный логический массив dx.
[in, optional] pTabdef
Указатель на структуру SCRIPT_TABDEF . Это значение является обязательным, только если параметру dwFlags присвоено значение SSA_TAB.
[in] pbInClass
Указатель на значение BYTE, указывающее классификации символов GetCharacterPlacement .
[out] pssa
Указатель на буфер, в котором эта функция извлекает структуру SCRIPT_STRING_ANALYSIS . Эта структура динамически выделяется при успешном возвращении из функции.
Возвращаемое значение
В случае успешного выполнения возвращает S_OK. Функция возвращает ненулевое значение HRESULT, если не удалось.
Ошибки возвращаются:
- E_INVALIDARG. Обнаружен недопустимый параметр.
- USP_E_SCRIPT_NOT_IN_FONT. SSA_FALLBACK не указан или отсутствует стандартный резервный шрифт.
Функция также может возвращать системную ошибку, преобразованную в тип HRESULT. Например, возвращается ошибка из-за нехватки памяти или вызова GDI с использованием контекста устройства.
Комментарии
Использование этой функции является первым шагом в обработке строк обычного текста. Такая строка имеет только один шрифт, один стиль, один размер, один цвет и т. д. ScriptStringAnalyse выделяет временные буферы для анализа элементов, глифов, расширенных ширин и т. д. Затем автоматически запускаются ScriptItemize, ScriptShape, ScriptPlace и ScriptBreak. Результаты доступны во всех других функциях ScriptString* .
При успешном возвращении из этой функции pssa указывает динамически выделенную структуру, которую приложение может последовательно передавать другим функциям ScriptString* . Приложение должно в конечном итоге освободить структуру, вызвав ScriptStringFree.
Хотя функциональность ScriptStringAnalyse может быть реализована путем прямых вызовов других функций, использование самой функции значительно сокращает объем кода, необходимого в приложении для обработки обычного текста.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
| Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
| Целевая платформа | Windows |
| Header | usp10.h |
| Библиотека | Usp10.lib |
| DLL | Usp10.dll |
| Распространяемые компоненты | Internet Обозреватель 5 или более поздней версии в Windows Me/98/95 |