Функция 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) |