Поделиться через


Функция 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 8. Чтобы поддерживать возможность запуска в Windows 7, модуль, использующий Uniscribe, должен указать Usp10.lib перед gdi32.lib в списке библиотек.
 

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header usp10.h
Библиотека Usp10.lib
DLL Usp10.dll
Распространяемые компоненты Usp10.dll версии 1.600 или более поздней в Windows XP

См. также раздел

Кэширование

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

ScriptShapeOpenType

ScriptSubstituteSingleGlyph

Одноимесяца

Функции uniscribe