Функция 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 , а шрифт поддерживает один скрипт.
При наличии тега, соответствующего конкретному скрипту, подсистеме формирования может быть не удается использовать шрифт для формирования данного элемента, так как в подсистеме отсутствует необходимый элемент, например определенная языковая система или определенная функция.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | usp10.h |
Библиотека | Usp10.lib |
DLL | Usp10.dll |
Распространяемые компоненты | Usp10.dll версии 1.600 или более поздней в Windows XP |