Функция ScriptPlace (usp10.h)
Создает сведения о ширине глифа и двумерном смещении из выходных данных ScriptShape.
Синтаксис
HRESULT ScriptPlace(
[in] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in] const WORD *pwGlyphs,
[in] int cGlyphs,
[in] const SCRIPT_VISATTR *psva,
[in, out] SCRIPT_ANALYSIS *psa,
[out] int *piAdvance,
[out] GOFFSET *pGoffset,
[out] ABC *pABC
);
Параметры
[in] hdc
Необязательный параметр. Дескриптор контекста устройства. Дополнительные сведения см. в разделе Кэширование.
[in, out] psc
Указатель на структуру SCRIPT_CACHE , определяющую кэш скриптов.
[in] pwGlyphs
Указатель на буфер глифов, полученный из предыдущего вызова функции ScriptShape .
[in] cGlyphs
Количество глифов в буфере глифов.
[in] psva
Указатель на массив SCRIPT_VISATTR структур, указывающих визуальные атрибуты.
[in, out] psa
Указатель на структуру SCRIPT_ANALYSIS . Во входных данных эта структура получается из предыдущего вызова ScriptItemize. В выходных данных эта структура содержит значения, полученные с помощью ScriptPlace.
[out] piAdvance
Указатель на массив, в котором эта функция извлекает сведения о ширине заранее.
[out] pGoffset
Необязательный элемент. Указатель на массив структур GOFFSET , в котором эта функция извлекает смещения x и y объединения глифов. Этот массив должен иметь длину, указанную cGlyphs.
[out] pABC
Указатель на структуру ABC , в которой эта функция получает ширину ABC для всего выполнения.
Возвращаемое значение
Возвращает 0 в случае успеха. Функция возвращает ненулевое значение HRESULT, если не удалось. Приложение может проверить возвращаемое значение с помощью макросов SUCCEEDED и FAILED .
Функция возвращает E_PENDING, если кэш скриптов, указанный параметром psc , не содержит достаточно сведений для размещения глифов, а параметр hdc имеет значение NULL , поэтому функция не может завершить процесс размещения. Приложение должно настроить правильный контекст устройства для запуска и снова вызвать эту функцию с соответствующим контекстом устройства и с теми же параметрами.
Комментарии
Описание контекста, в котором обычно вызывается эта функция, см. в разделе Отображение текста с помощью uniscribe .
Ширина составного ABC для всего элемента определяет, сколько глифов свес слева от начальной позиции и справа от длины, подразумеваемой суммой ширины заранее. Общая ширина линии в точности равна abcA+abcB+abcC. Значения abcA и abcC сохраняются в виде пропорций высоты ячейки, представленной в 8 битах, и, таким образом, примерно +/-1 процента. Общая ширина, которая является суммой значений abcA+abcB+abcC, указанных piAdvance, точно соответствует разрешению подсистемы формирования TrueType.
Все массивы находятся в визуальном порядке, если только элемент fLogicalOrder не задан в структуре SCRIPT_ANALYSIS , указанной параметром psa .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | usp10.h |
Библиотека | Usp10.lib |
DLL | Usp10.dll |