deVINFO 结构 (winddi.h)
DEVINFO 结构向图形引擎提供有关驱动程序及其专用 PDEV 的信息。
语法
typedef struct tagDEVINFO {
FLONG flGraphicsCaps;
LOGFONTW lfDefaultFont;
LOGFONTW lfAnsiVarFont;
LOGFONTW lfAnsiFixFont;
ULONG cFonts;
ULONG iDitherFormat;
USHORT cxDither;
USHORT cyDither;
HPALETTE hpalDefault;
FLONG flGraphicsCaps2;
} DEVINFO, *PDEVINFO;
成员
flGraphicsCaps
描述图形驱动程序和/或其硬件的图形功能的一组标志。 下表中定义了这些标志。
标志 | 定义 |
---|---|
GCAPS_ALTERNATEFILL | 处理交替填充。 |
GCAPS_ARBRUSHOPAQUE | 支持文本不透明矩形的任意画笔 (背景色) 。 |
GCAPS_ARBRUSHTEXT | 支持文本前景色的任意画笔。 |
GCAPS_ASYNCCHANGE | 此标志已过时。 在旧版驱动程序中,此标志指示驱动程序可以在设备上进行其他绘制时更改硬件中的指针形状。 |
GCAPS_ASYNCMOVE | 当设备上发生其他绘图时,驱动程序可以在硬件中移动指针。 |
GCAPS_BEZIERS | 处理贝塞尔曲线。 |
GCAPS_CMYKCOLOR | 驱动程序支持 CYMK 颜色空间。 |
GCAPS_COLOR_DITHER | 处理与 PDEV 兼容的图面的颜色抖色。 |
GCAPS_DIRECTDRAW | 此标志已过时。 |
GCAPS_DITHERONREALIZE | 指定 GDI 可以使用要直接进行抖色的 RGB 调用 DrvRealizeBrush 。 |
GCAPS_DONTJOURNAL | 禁止对此打印机驱动程序进行图元文件打印。 这仅适用于打印机 DC,通常会导致打印时返回应用程序的时间变慢。 |
GCAPS_FONT_RASTERIZER | 设备硬件可以光栅化 TrueType 字体。 |
GCAPS_FORCEDITHER | 允许在所有几何笔上进行抖摆。 |
GCAPS_GEOMETRICWIDE | 处理几何扩展。 |
GCAPS_GRAY16 | 本机处理抗锯齿文本。 |
GCAPS_HALFTONE | 处理半调。 |
GCAPS_HIGHRESTEXT | 此标志已过时。 在旧驱动程序中,此标志指示驱动程序正在请求由 STROBJ 在 FIX 点坐标中返回的字形位置。 |
GCAPS_HORIZSTRIKE | 此标志已过时。 在旧版驱动程序中,此标志指示驱动程序处理 DrvTextOut 中的水平删除线。 |
GCAPS_ICM | 指示驱动程序或打印机硬件可以执行颜色管理操作。 |
GCAPS_LAYERED | 指示这是用于远程处理的层或镜像驱动程序。 打印机驱动程序不能是层驱动程序。 |
GCAPS_MONO_DITHER | 处理单色抖动。 |
GCAPS_NO64BITMEMACCESS | 此标志已过时。 |
GCAPS_NUP | 指示支持“N-up”打印。 |
GCAPS_OPAQUERECT | 处理 DrvTextOut 中的不透明矩形。 |
GCAPS_PALMANAGED | 支持调色板管理。 |
GCAPS_PANNING | 当 GDI 模拟指针时,它应调用 DrvMovePointer 以通知驱动程序当前光标位置。 这允许驱动程序处理平移虚拟显示器。 |
GCAPS_SCREENPRECISION | 光栅器 (字体引擎) 在选择没有完全匹配的字体时,应选择屏幕 (软) 字体,而不要选择设备字体。 |
GCAPS_VECTORFONT | 处理 DrvTextOut 中矢量字体的划动。 |
GCAPS_VERTSTRIKE | 此标志已过时。 在旧驱动程序中,此标志指示驱动程序处理 DrvTextOut 中的垂直删除线。 |
GCAPS_WINDINGFILL | 处理缠绕模式填充。 有关详细信息 ,请参阅路径填充模式 。 |
GCAPS2_REMOTEDRIVER | 指示显示驱动程序用于支持远程用户会话。 |
lfDefaultFont
指定设备的默认字体的扩展逻辑字体结构。 有关此结构的详细信息,请参阅Microsoft Windows SDK文档中的 EXTLOGFONT。
lfAnsiVarFont
扩展逻辑字体结构,指定设备的默认可变间距字体。 有关此结构的详细信息,请参阅Windows SDK文档中的 EXTLOGFONT。
lfAnsiFixFont
扩展逻辑字体结构,指定设备的默认固定间距 () 字体。 有关此结构的详细信息,请参阅Windows SDK文档中的 EXTLOGFONT。
cFonts
指定设备字体的数量。 GDI 假定设备可以在自己的图面上绘制具有此字体数的文本,并且驱动程序可以提供有关字体的指标信息。 如果驱动程序将 cFonts 设置为 -1,GDI 将等到需要字体来查询驱动程序,以获取它在 调用 DrvQueryFont 时支持的实际字体数。
iDitherFormat
指定位图的格式。 此参数指示每个像素请求的颜色信息位数,并且必须是以下值之一:
值 | 含义 |
---|---|
BMF_1BPP | 单色 |
BMF_4BPP | 每像素 4 位 |
BMF_8BPP | 每像素 8 位 |
BMF_16BPP | 每像素 16 位 |
BMF_24BPP | 每像素 24 位 |
BMF_32BPP | 每像素 32 位 |
BMF_4RLE | 每像素 4 位,运行长度编码 |
BMF_8RLE | 每像素 8 位,运行长度编码 |
BMF_JPEG | JPEG 压缩图像 |
BMF_PNG | PNG 压缩图像 |
cxDither
cyDither
指定抖转画笔的尺寸。 如果这些成员为非零,则设备可以为给定的 RGB 颜色创建抖色画笔。
hpalDefault
设备的默认调色板的句柄。 驱动程序应通过调用 EngCreatePalette 来创建调色板。 驱动程序通过将此句柄返回到 GDI,将调色板与设备相关联。
flGraphicsCaps2
描述设备驱动程序的其他图形功能的一组标志。 下表中定义了这些标志。
标志 | 定义 |
---|---|
GCAPS2_ALPHACURSOR | 处理具有每像素 alpha 值的指针。 |
GCAPS2_CHANGEGAMMARAMP | 显示设备具有可加载的硬件 伽马坡道。 |
GCAPS2_EXCLUDELAYERED | 指示这是辅助功能镜像驱动程序。 未设置此标志的镜像驱动程序仍将接收分层 HWND 的绘图基元。 有关详细信息 ,请参阅镜像驱动程序 。 |
GCAPS2_ICD_MULTIMON | 通知 GDI 驱动程序打算在多mon 环境中处理 DrvSetPixelFormat、 DrvDescribePixelFormat 和 DrvSwapBuffers 调用,即使操作中的矩形也与另一台设备相交。 只有一台设备有机会处理这些调用。 如果未指定该功能,并且涉及的区域与多个设备相交,则不会调用驱动程序。 |
GCAPS2_INCLUDEAPIBITMAPS | 当对与设备无关的位图 (DIB) 进行绘图调用时,将调用辅助功能镜像驱动程序。 有关详细信息 ,请参阅镜像驱动程序 。 |
GCAPS2_JPEGSRC | 设备可以接受 JPEG 压缩图像 (,即在 SURFOBJ 结构) 中为其设置了BMF_JPEG的图像。 |
GCAPS2_MOUSETRAILS | 指示驱动程序支持鼠标跟踪 (一系列在短时间内显示鼠标位置的光标图像) 。 驱动程序能够处理 GDI 在 DrvSetPointerShape 函数的 fl 参数中发送的值。 驱动程序应使用SPS_LENGTHMASK和SPS_FREQMASK掩码来获取鼠标跟踪的长度和频率的值。 有关这些掩码的详细信息,请参阅 DrvSetPointerShape 。 |
GCAPS2_PNGSRC | 设备可以接受 PNG 压缩图像 (,即在 SURFOBJ 结构) 中为其设置了BMF_PNG的图像。 |
GCAPS2_SYNCFLUSH | 驱动程序支持用于批量图形 DDI 调用的基于编程的刷新机制。 每当 GDI 必须刷新驱动程序批处理的任何绘图时,都会调用 DrvSynchronizeSurface。 |
GCAPS2_SYNCTIMER | 该驱动程序支持用于批量图形 DDI 调用的基于计时器的刷新机制。 DrvSynchronizeSurface 将根据 GDI 确定的计时器间隔定期调用。 |
注解
驱动程序的 DrvEnablePDEV 函数填充 DEVINFO 结构;驱动程序应仅设置与之相关的成员。 在调用 DrvEnablePDEV 之前,GDI 从零初始化此结构。 应用程序不具有对此结构的直接访问权限。
如果驱动程序在 flGraphicsCaps2 中设置GCAPS2_JPEGSRC或GCAPS2_PNGSRC,则以下规则适用:
- 驱动程序必须提供 DrvQueryDeviceSupport 函数。
-
接收 SURFOBJ 结构作为输入的每个驱动程序定义的图形 DDI 函数都必须能够支持压缩格式或返回错误代码。 对于打印机驱动程序,若要支持压缩格式,驱动程序必须能够执行以下任一任务:
- 如果打印设备可以处理 JPEG/PNG 压缩格式,打印机驱动程序应将压缩格式传递到其页面描述语言 (PDL) 输出。
- 如果打印设备无法处理 JPEG/PNG 压缩格式,打印机驱动程序必须首先将压缩的 JPEG/PNG 格式转换为打印设备可以处理的其他图像格式。 然后,打印机驱动程序可以在驱动程序的 PDL 输出中提供图像信息。
注意 在从 JPEG/PNG 转换为位图格式的情况下,打印机驱动程序不得使用 GDI 函数。 例如,驱动程序可以使用 Windows 图像处理组件 (WIC) API 来执行转换。
- 驱动程序必须能够处理使用压缩格式的图像的复杂剪辑区域。
- 对于接收 ROP4 输入参数的驱动程序定义的图形 DDI 函数,仅0xCCCC与 JPEG 和 PNG 格式一起使用。
要求
要求 | 值 |
---|---|
Header | winddi.h (包括 Winddi.h) |