GDI 用户对象

GDI 维护重要的内部数据结构,但通过将这些结构的公共字段作为 用户对象向下传递来授予驱动程序对这些结构的公共字段的访问权限。 用户对象是中间数据结构,在 GDI 数据结构和需要访问这些结构中信息的驱动程序之间提供接口。 驱动程序可以将指向用户对象的指针传递回 GDI 以查询信息或请求各种服务。 具有公共字段的用户对象具有以下优点:

  • 它们消除了与直接访问内部 GDI 数据结构相关的问题。

  • 它们提供了一个用于保存驱动程序的 GDI 数据的位置。 例如,PATHOBJ 结构可以保存枚举复杂对象(如路径)所需的所有额外数据。

以下用户对象可用:

对象 说明

BRUSHOBJ

为输出线条、文本或填充的图形函数定义画笔对象。 驱动程序可以调用 BRUSHOBJ 服务来实现画笔或查找以前由 GDI 缓存的实现。

CLIPOBJ

为驱动程序提供对用于绘制或填充的 剪辑区域 的访问权限。 此区域可以枚举为一系列矩形。

FLOATOBJ

允许图形驱动程序模拟浮点运算。 对所有其他内核模式驱动程序禁用浮点操作。

FONTOBJ

使驱动程序能够访问有关特定实例的信息 (或实现字体) 。

PALOBJ

包含 RGB 调色板颜色的结构;通过 PALOBJ 结构访问不包含任何公共成员。

PATHOBJ

定义一个路径,该路径指定要 (线条或贝塞尔曲线) 绘制的内容。 PATHOBJ 结构将传递给驱动程序,以描述要笔划或填充的一组线条和贝塞尔曲线。

STROBJ

为驱动程序枚举描述如何绘制文本字符串的字形句柄和位置的列表。

SURFOBJ

标识图面,可以是 GDI 位图、设备依赖位图或设备管理的图面。 有关详细信息 ,请参阅 Surface 类型

XFORMOBJ

描述任意线性二维变换,例如几何宽线。

XLATEOBJ

定义将像素从源图面格式转换为目标图面格式所需的转换。