Функция ScriptGetFontAlternateGlyphs (usp10.h)
Извлекает список альтернативных глифов для указанного символа, доступ к которому можно получить через указанный компонент OpenType.
Синтаксис
HRESULT ScriptGetFontAlternateGlyphs(
[in, optional] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in, optional] SCRIPT_ANALYSIS *psa,
[in] OPENTYPE_TAG tagScript,
[in] OPENTYPE_TAG tagLangSys,
[in] OPENTYPE_TAG tagFeature,
[in] WORD wGlyphId,
[in] int cMaxAlternates,
[out] WORD *pAlternateGlyphs,
[out] int *pcAlternates
);
Параметры
[in, optional] hdc
Обработка в контексте устройства. Дополнительные сведения см. в разделе Кэширование.
[in, out] psc
Указатель на SCRIPT_CACHE структуру, определяющую кэш скриптов.
[in, optional] psa
Указатель на структуру SCRIPT_ANALYSIS , полученную при предыдущем вызове ScriptItemizeOpenType. Этот параметр идентифицирует подсистему формирования, чтобы массив альтернативных глифов можно было создать с правильным область.
Кроме того, приложение может задать для этого параметра значение NULL , чтобы получать нефильтрованные результаты.
[in] tagScript
Структура OPENTYPE_TAG , определяющая тег скрипта, связанный с альтернативными глифами.
[in] tagLangSys
Структура OPENTYPE_TAG , определяющая тег языка, связанный с альтернативными глифами.
[in] tagFeature
Структура OPENTYPE_TAG , определяющая тег компонента, связанный с альтернативными глифами.
[in] wGlyphId
Идентификатор исходного глифа, сопоставленного с таблицей карты символов.
[in] cMaxAlternates
Длина массива, заданного pAlternateGlyphs.
[out] pAlternateGlyphs
Указатель на буфер, в котором эта функция извлекает массив идентификаторов глифов. Массив содержит исходный глиф, за которым следуют альтернативные глифы. Первым элементом всегда является исходный глиф. Альтернативные формы идентифицируются индексом в массиве. Индекс — это значение больше единицы и меньше значения pcAlternates.
Когда пользователь выбирает альтернативную форму в пользовательском интерфейсе, альтернативный глиф применяется к соответствующему символу и отрисовка переформатируется.
[out] pcAlternates
Указатель на количество элементов в массиве, заданное pAlternateGlyphs.
Возвращаемое значение
Возвращает 0 в случае успеха. Функция возвращает ненулевое значение HRESULT, если это не удалось. Приложение может проверить возвращаемое значение с помощью макросов SUCCEEDED и FAILED .
Если число альтернативных глифов превышает значение cMaxAlternates, функция завершается сбоем с E_OUTOFMEMORY. Приложение может повторить вызов с большими буферами.
Комментарии
При использовании альтернативных глифов приложение сначала изменяет форму исходного глифа без применения тега признака, а затем выбирает альтернативный. Исходный глиф устанавливается в качестве базового глифа. Если требуется другой альтернативный вариант, исходный глиф предоставляет сведения, соответствующие соответствующему списку альтернативных вариантов.
Если в качестве базового глифа используется альтернативный глиф, соответствующий выходной список не найден. Пользовательский интерфейс использует выбранную окончательную форму без возможности выбора другого альтернативного варианта.
Операции ScriptGetFontAlternateGlyphs можно эмулировать с помощью ScriptSubstituteSingleGlyph. Приложение должно попробовать параметры по одному, пока глифы заменяются.
Для формирования шрифтов с помощью Uniscribe предпочтительнее scriptShapeOpenType по сравнению с более старой функцией ScriptShape .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | usp10.h |
Библиотека | Usp10.lib |
DLL | Usp10.dll |
Распространяемые компоненты | Usp10.dll версии 1.600 или более поздней в Windows XP |