функция STROBJ_bEnumPositionsOnly (winddi.h)
Функция STROBJ_bEnumPositionsOnly перечисляет удостоверения и позиции глифов для указанной текстовой строки, но не создает кэшированные растровые изображения глифов.
Синтаксис
ENGAPI BOOL STROBJ_bEnumPositionsOnly(
STROBJ *pstro,
ULONG *pc,
PGLYPHPOS *ppgpos
);
Параметры
pstro
Предоставленный вызывающим объектом указатель на структуру STROBJ , описывающую текстовую строку. Обычно это структура STROBJ, полученная функцией DrvTextOut драйвера.
pc
Адрес, предоставленный вызывающим абонентом, для получения предоставленного GDI числа структур GLYPHPOS, на которые указывает указатель в ppgpos.
ppgpos
Адрес, предоставленный вызывающим абонентом, который получает предоставленный GDI указатель на массив структур GLYPHPOS . (См. следующий раздел примечаний .)
Возвращаемое значение
Возвращаемое значение равно TRUE , если нужно перечислить больше глифов, или FALSE , если перечисление завершено. Возвращаемое значение DDI_ERROR, если не удается перечислить глифы и регистрируется код ошибки.
Комментарии
Функция STROBJ_bEnumPositionsOnly обычно вызывается из функции DrvTextOut драйвера. Он выполняет те же операции, что и STROBJ_bEnum с одним важным исключением — GDI не создает кэшированные растровые изображения глифов. Функция STROBJ_bEnum предполагает, что драйверу в конечном итоге потребуются эти растровые изображения. Однако многие новые принтеры содержат внутренние растеризаторы и поэтому не нуждаются в GDI для отрисовки глифов. Для таких принтеров исключение автоматической отрисовки и кэширования растровых изображений глифов в памяти сервера обеспечивает значительную экономию времени обработки и выделения памяти.
Для принтеров, поддерживающих внутреннюю растровую растеризацию глифов, следует соблюдать следующие правила:
- Драйвер должен установить флаг GCAPS_FONT_RASTERIZER в своей структуре DEVINFO .
- Функция DrvTextOut драйвера должна вызывать STROBJ_bEnumPositionsOnly , а не STROBJ_bEnum.
- Если задание печати содержит шрифт, который устройство не может растеризовать внутри, драйвер должен вызвать FONTOBJ_cGetGlyphs для получения растровых изображений глифов.
- Если драйверу необходимо определить вероятное положение принтера после печати текстовой строки, но не нужен глиф шрифта, он может вызвать STROBJ_bGetAdvanceWidths.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows 2000 и более поздних версиях операционных систем Windows. |
Целевая платформа | Универсальное |
Верхняя часть | winddi.h (включая Winddi.h) |
Библиотека | Win32k.lib |
DLL | Win32k.sys |