Функция ScriptGetFontScriptTags (usp10.h)

Извлекает список скриптов, доступных в шрифте для обработки OpenType. Скрипты, составляющие список, извлекаются из шрифта, расположенного в предоставленном контексте устройства, или из подсистемы формирования скриптов, обрабатывающей шрифт текущего выполнения.

Синтаксис

HRESULT ScriptGetFontScriptTags(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           int             cMaxTags,
  [out]          OPENTYPE_TAG    *pScriptTags,
  [out]          int             *pcTags
);

Параметры

[in, optional] hdc

Обработка в контексте устройства. Дополнительные сведения см. в разделе Кэширование.

[in, out] psc

Указатель на структуру SCRIPT_CACHE , определяющую кэш скриптов.

[in, optional] psa

Указатель на структуру SCRIPT_ANALYSIS , полученную при предыдущем вызове ScriptItemizeOpenType. Этот параметр идентифицирует подсистему формирования, чтобы можно было получить соответствующие теги скрипта шрифта. Приложение предоставляет для этого параметра значение, отличное от NULL, для получения тегов скрипта, соответствующих текущему выполнению.

Кроме того, приложение может задать для этого параметра значение NULL , чтобы получить нефильтрованные результаты.

[in] cMaxTags

Длина массива, заданного pScriptTags.

[out] pScriptTags

Указатель на буфер, в котором эта функция извлекает массив OPENTYPE_TAG структур, определяющих теги скрипта, из контекста устройства или подсистемы сценариев, связанной с текущим выполнением. Если значение элемента eScriptструктуры SCRIPT_ANALYSIS , предоставленной в параметре psa, имеет определенный тег скрипта , связанный с ним, и тег присутствует в шрифте, pScriptTags содержит только этот тег.

[out] pcTags

Указатель на количество элементов в массиве тегов скрипта, указанных pScriptTags.

Возвращаемое значение

Возвращает 0 в случае успеха. Функция возвращает ненулевое значение HRESULT, если это не удалось. Приложение может проверить возвращаемое значение с помощью макросов SUCCEEDED и FAILED .

Если количество совпадающих тегов превышает значение cMaxTags, функция завершается сбоем с E_OUTOFMEMORY. Приложение может повторить вызов с большими буферами.

Комментарии

Хотя формально объявлен как тип ULONG, OPENTYPE_TAG определяет 4-байтовый массив, содержащий четыре 8-разрядных значения ASCII пробела, A–Z или a–z. Например, теги скриптов для латинских и арабских алфавитов : "latn" и "arab" соответственно.

Эта функция извлекает один тег из шрифта в следующих случаях:

  • Значение psa связано с текстом для одного сложного скрипта.
  • Параметр psa указывает null , а шрифт поддерживает один скрипт.
Если ScriptGetFontScriptTags извлекает все теги из шрифта, теги обычно предназначены для нейтральных элементов, таких как цифры. Обратите внимание, что может быть применимо несколько тегов, так как некоторые текстовые прогоны нейтральных элементов не зависят от сценария.

При наличии тега, соответствующего конкретному скрипту, подсистеме формирования может быть не удается использовать шрифт для формирования данного элемента, так как в подсистеме отсутствует необходимый элемент, например определенная языковая система или определенная функция.

Важно Начиная с 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

Одноимесяца

Функции uniscribe