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


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

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header usp10.h
Библиотека Usp10.lib
DLL Usp10.dll

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

Отображение текста с использованием uniscribe

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_VISATTR

ScriptItemize

ScriptPlaceOpenType

ScriptShape

Одноимесяца

Функции uniscribe