Функция ScriptPlaceOpenType (usp10.h)
Создает глифы и визуальные атрибуты для выполнения Юникода со сведениями OpenType из выходных данных ScriptShapeOpenType.
Синтаксис
HRESULT ScriptPlaceOpenType(
[in, optional] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in, out] SCRIPT_ANALYSIS *psa,
[in] OPENTYPE_TAG tagScript,
[in] OPENTYPE_TAG tagLangSys,
[in, optional] int *rcRangeChars,
[in, optional] TEXTRANGE_PROPERTIES **rpRangeProperties,
[in] int cRanges,
[in] const WCHAR *pwcChars,
[in] WORD *pwLogClust,
[in] SCRIPT_CHARPROP *pCharProps,
[in] int cChars,
[in] const WORD *pwGlyphs,
[in] const SCRIPT_GLYPHPROP *pGlyphProps,
[in] int cGlyphs,
[out] int *piAdvance,
[out] GOFFSET *pGoffset,
[out, optional] ABC *pABC
);
Параметры
[in, optional] hdc
Дескриптор контекста устройства. Дополнительные сведения см. в разделе Кэширование.
[in, out] psc
Указатель на структуру SCRIPT_CACHE , определяющую кэш скриптов.
[in, out] psa
Указатель на структуру SCRIPT_ANALYSIS , полученную из предыдущего вызова ScriptItemizeOpenType. Эти структуры идентифицируют подсистему формирования, которая управляет созданным списком глифов и связанными с ними ширинами, а также смещениями размещения x и y.
Кроме того, приложение может присвоить этому параметру значение NULL , чтобы получать неотфильтрованные результаты.
[in] tagScript
Структура OPENTYPE_TAG , содержащая тег скрипта OpenType для используемой системы записи.
[in] tagLangSys
Структура OPENTYPE_TAG , содержащая тег языка OpenType для системы записи.
[in, optional] rcRangeChars
Массив количества символов в каждом диапазоне. Количество элементов указывается в параметре cRanges . Общее количество значений должно быть равно значению cChars.
[in, optional] rpRangeProperties
Массив TEXTRANGE_PROPERTIES структур, определяющих свойства для каждого диапазона. Количество элементов определяется параметром cRanges .
[in] cRanges
Количество диапазонов функций OpenType.
[in] pwcChars
Указатель на массив символов Юникода, содержащий выполнение. Количество элементов определяется параметром cRanges .
[in] pwLogClust
Указатель на массив сведений о логическом кластере. Каждый элемент в массиве соответствует символу в массиве, определенном pwcChars. Значение каждого элемента — это смещение от первого глифа в выполнении до первого глифа в кластере, содержающем соответствующий символ. Обратите внимание, что если элемент fRTLструктуры SCRIPT_ANALYSIS имеет значение TRUE, элементы в pwLogClust уменьшаются по мере считывания массива.
[in] pCharProps
Указатель на массив значений свойств символов в выполнении Юникода.
[in] cChars
Количество символов в выполнении Юникода.
[in] pwGlyphs
Указатель на буфер глифов, полученный из предыдущего вызова функции ScriptShapeOpenType .
[in] pGlyphProps
Указатель на массив атрибутов для каждого извлекаемого глифа. Число значений равно значению cGlyphs. Так как для каждого глифа существует одно свойство глифа, этот параметр содержит количество элементов, указанных cGlyphs.
[in] cGlyphs
Количество глифов в буфере массива глифов.
[out] piAdvance
Указатель на массив длиной, указанной cGlyphs, в котором эта функция извлекает сведения о ширине.
[out] pGoffset
Указатель на массив структур GOFFSET , в котором эта структура извлекает смещения x и y объединения глифов. Этот массив должен иметь длину, указанную cGlyphs.
[out, optional] pABC
Указатель на структуру ABC , в которой эта функция получает ширину ABC для всего выполнения.
Возвращаемое значение
Возвращает 0 в случае успеха. Функция возвращает ненулевое значение HRESULT, если не удалось. Во всех случаях ошибок выходные значения не определены. Приложение может проверить возвращаемое значение с помощью макросов SUCCEEDED и FAILED .
Функция возвращает E_OUTOFMEMORY, если длина выходного буфера, указанная cGlyphs , слишком мала. Приложение может повторить вызов с большими буферами.
Функция возвращает E_PENDING, если кэш скрипта, указанный параметром psc , не содержит достаточно сведений для размещения глифов, а параметр hdc передается как NULL , поэтому функция не может завершить процесс размещения. Приложение должно настроить правильный контекст устройства для запуска и снова вызвать эту функцию с соответствующим значением в hdc и со всеми остальными параметрами.
Комментарии
Эта функция является предпочтительной по сравнению со старой функцией ScriptPlace . Ниже перечислены некоторые преимущества ScriptPlaceOpenType .
- Параметры напрямую соответствуют тегам OpenType в таблицах макетов шрифтов.
- Параметры определяют признаки, применяемые к каждому символу. Входные данные делятся на диапазоны, и каждый диапазон имеет связанные с ним свойства OpenType.
Все массивы находятся в визуальном порядке, если только элемент fLogicalOrder не задан в структуре SCRIPT_ANALYSIS , указанной параметром psa .
Требования
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | usp10.h |
Библиотека | Usp10.lib |
DLL | Usp10.dll |
Распространяемые компоненты | Usp10.dll версии 1.600 или более поздней в Windows XP |