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


Функция DrvQueryFontData (winddi.h)

Функция DrvQueryFontData извлекает сведения о реализованном шрифте.

Синтаксис

LONG DrvQueryFontData(
        DHPDEV    dhpdev,
        FONTOBJ   *pfo,
        ULONG     iMode,
        HGLYPH    hg,
        GLYPHDATA *pgd,
  [out] PVOID     pv,
        ULONG     cjSize
);

Параметры

dhpdev

Обработка PDEV физического устройства, возвращенного при предыдущем вызове DrvEnablePDEV.

pfo

Указатель на структуру FONTOBJ , которая определяет реализацию шрифта.

iMode

Указывает тип запрашиваемых сведений. Этот параметр может иметь одно из следующих значений:

Значение Значение
QFD_GLYPHANDBITMAP Если pgd не имеет значение NULL, драйвер должен заполнить структуру GLYPHDATA метриками глифа, указанного в hg.

Если pv не имеет значение NULL, по этому адресу должна быть записана структура GLYPHBITS . Драйвер должен скопировать растровое изображение глифа, соответствующее глифу, указанному в hg , в эту структуру. Размер структуры определяется cjSize.

Если драйвер не поддерживает растровые изображения глифов, эта функция будет вызываться только с параметром pv , для которых задано значение NULL.

Если драйвер поддерживает растровые изображения глифов, возвращаемым значением является размер растрового изображения глифа в байтах. В противном случае значение равно нулю.

Этот режим должен поддерживаться.

QFD_GLYPHANDOUTLINE Если pgd не имеет значение NULL, драйвер должен заполнить структуру GLYPHDATA метриками глифа, указанного в hg.

Если pv не равно NULL, структура PATHOBJ должна быть записана по этому адресу. Драйвер передает этот PATHOBJ службам PATHOBJ_Xxx, чтобы создать структуру для глифа, указанного в hg. Параметр cjSize следует игнорировать.

Если функция выполнена успешно, возвращаемое значение равно нулю. В противном случае это FD_ERROR.

Только драйверы шрифтов, предоставляющие контуры глифов, должны поддерживать этот режим.

QFD_MAXEXTENTS Если pv не равно NULL, драйвер должен записать структуру FD_DEVICEMETRICS в буфер, на который указывает pv.

Возвращаемое значение — это размер в байтах, необходимый для буфера, если pv имеет значение NULL.

QFD_TT_GRAY1_BITMAP Реализованный шрифт должен отображаться в одном бите на пиксель оттенков серого (то есть черном или белом).
QFD_TT_GRAY2_BITMAP Реализованный шрифт должен отображаться в двух битах на пиксель оттенков серого.
QFD_TT_GRAY4_BITMAP Реализованный шрифт должен отображаться в четырех битах на пиксель оттенков серого.
QFD_TT_GRAY8_BITMAP Реализованный шрифт должен отображаться в восьми битах на пиксель оттенков серого.
QFD_TT_MONO_BITMAP То же, что и QFD_TT_GRAY1_BITMAP.

hg

Дескриптор глифа.

pgd

Указатель на структуру GLYPHDATA . Этот параметр может принимать значение NULL.

[out] pv

Указатель на буфер данных. Тип данных, записываемых в этот буфер, зависит от iMode. Этот параметр может принимать значение NULL.

cjSize

Указывает размер буфера, на который указывает pv.

Возвращаемое значение

Возвращаемое значение зависит от значения параметра iMode . При возникновении ошибки возвращаемое значение FD_ERROR и регистрируется код ошибки.

Комментарии

Для QFD_GLYPHANDBITMAP и QFD_GLYPHANDOUTLINE значений параметра iMode GDI предоставляет указатель на структуру GLYPHDATA (в параметре pgd ). Драйвер помещает сведения о метриках глифа в эту структуру и записывает содержимое структуры GLYPHBITS или структуры PATHOBJ в расположение, указанное параметром pv , соответственно, в зависимости от того, является ли шрифт растровым или контурным шрифтом. Для QFD_MAXEXTENTS значения параметра iMode драйвер записывает содержимое структуры FD_DEVICEMETRICS в расположение, указанное параметром pv .

DrvQueryFontData требуется для драйверов шрифтов и драйверов, использующих шрифты для конкретного устройства или драйвера.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть winddi.h (включая Winddi.h)

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

DrvEnablePDEV

DrvQueryFontFile

FD_DEVICEMETRICS

FONTOBJ

ГЛИФБИТЫ

GLYPHDATA

PATHOBJ