drvDeviceCapabilities 函数 (winddiui.h)

打印机接口 DLL 的 DrvDeviceCapabilities 函数返回有关打印机功能的请求信息。

语法

DWORD DrvDeviceCapabilities(
                 HANDLE   hPrinter,
  [in]           PWSTR    pszDeviceName,
                 WORD     Capability,
  [out]          PVOID    pOutput,
  [in, optional] PDEVMODE pDevmode
);

参数

hPrinter

调用方提供的打印机句柄。

[in] pszDeviceName

调用方提供的指向打印机名称字符串的指针。

Capability

调用方提供的位标志,指示所请求的信息。 这可以是下表中列出的标志之一。 (标志在头文件 Wingdi.h.) 中定义

标志 定义
DC_BINADJUST 不用于基于 NT 的操作系统。
DC_BINNAMES pOutput 参数指向函数应使用字符串缓冲区数组填充的缓冲区,每组长度为 24 个字符。 数组中的每个字符串缓冲区应包含一个以 NULL 结尾的宽字符字符串,用于指定纸张源箱的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则该函数应仅返回所需的数组元素数。
DC_BINS pOutput 参数指向函数应使用 WORD 数组填充的缓冲区。 每个数组元素应包含一个 DMBIN 前缀的常量 (或表示支持的纸张源箱) 自定义值。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则该函数应仅返回所需的数组元素数。
DC_COLLATE 不使用 pOutput 参数。 如果打印机支持排序,则函数的返回值应为 1;否则,返回值应为零。
DC_COLORDEVICE 不使用 pOutput 参数。 如果打印机支持彩色打印,则函数的返回值应为 1;否则,返回值应为零。
DC_COPIES 不使用 pOutput 参数。 函数的返回值应为打印机可以支持的最大份数。
DC_DATATYPE_PRODUCED 不用于基于 NT 的操作系统。
DC_DRIVER 不使用 pOutput 参数。 函数的返回值应该是驱动程序的内部 [DEVMODEW] (/windows/win32/api/wingdi/ns-wingdi-devmodew) 结构的 dmDriverVersion 成员。
DC_DUPLEX 不使用 pOutput 参数。 如果打印机支持双面打印,则函数的返回值应为 1;否则,返回值应为零。
DC_EMF_COMPLIANT 不用于基于 NT 的操作系统。
DC_ENUMRESOLUTIONS pOutput 参数指向函数应用 LONG 数组填充的缓冲区。 对于打印机支持的每个分辨率,函数应返回两个长字, (一个用于 x 维度,一个用于分辨率的 y 维度) ,以点/英寸为单位。 函数的返回值应为支持的分辨率数。 如果 pOutputNULL,则该函数应仅返回支持的分辨率数。
DC_EXTRA 不使用 pOutput 参数。 函数的返回值应为驱动程序内部 [DEVMODEW] (/windows/win32/api/wingdi/ns-wingdi-devmodew) 结构的 dmDriverExtra 成员。
DC_FIELDS 不使用 pOutput 参数。 函数的返回值应为驱动程序的内部 [DEVMODEW] (/windows/win32/api/wingdi/ns-wingdi-devmodew) 结构的 dmFields 成员。 dmFields 成员指示打印机驱动程序支持 DEVMODEW 结构中与设备无关部分的成员。
DC_FILEDEPENDENCIES pOutput 参数指向函数应使用字符串缓冲区数组填充的缓冲区,每个缓冲区长度为 64 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定必须与驱动程序一起安装的文件的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则该函数应仅返回所需的数组元素数。
DC_MANUFACTURER 不用于基于 NT 的操作系统。
DC_MAXEXTENT 不使用 pOutput 参数。 函数应返回Microsoft Windows SDK文档) 中所述的 POINTS 结构 (。 结构应包含 dmPaperWidth (x 维度) 和 dmPaperLength (y 维度) 打印机 DEVMODEW 结构的成员允许的最大值。
DC_MEDIAREADY pOutput 参数指向函数应使用字符串缓冲区数组填充的缓冲区,每个缓冲区长度为 64 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定可供使用的纸质窗体的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则该函数应仅返回所需的数组元素数。
DC_MEDIATYPENAMES pOutput 参数指向函数应使用字符串缓冲区数组填充的缓冲区,每个缓冲区长度为 64 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定受支持的媒体类型的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则该函数应仅返回所需的数组元素数。
DC_MEDIATYPES pOutput 参数指向函数应使用 DWORD 数组填充的缓冲区。 每个数组元素应包含一个 DMMEDIA 前缀常量, (请参阅 [DEVMODEW] (/windows/win32/api/wingdi/ns-wingdi-devmodew) 结构) 或表示支持的媒体类型的自定义值。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则该函数应仅返回所需的数组元素数。
DC_MINEXTENT 不使用 pOutput 参数。 函数应返回Windows SDK文档) 中所述的 POINTS 结构 (。 结构应包含 dmPaperWidth (x 维度) 和 dmPaperLength (y 维度) 打印机 DEVMODEW 结构的成员允许的最小值。
DC_MODEL 不用于基于 NT 的操作系统。
DC_NUP pOutput 参数指向函数应使用 DWORD 数组填充的缓冲区。 每个数组元素应包含一个表示 N 向上选项的整数 (也就是说,每个整数应表示每个物理页) 支持的文档页数。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则该函数应仅返回所需的数组元素数。
DC_ORIENTATION 不使用 pOutput 参数。 函数的返回值应为从纵向生成横向所需的旋转度数。 值为零表示不支持横向。
DC_PAPERNAMES pOutput 参数指向函数应用字符串缓冲区数组填充的缓冲区,每组长度为 64 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定纸张窗体的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则函数应仅返回所需的数组元素数。
DC_PAPERS pOutput 参数指向函数应用 WORD 数组填充的缓冲区。 每个数组元素应包含一个 DMPAPER 前缀常量 (或自定义值) 表示支持的纸张形式。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则函数应仅返回所需的数组元素数。
DC_PAPERSIZE pOutput 参数指向函数应用 POINT 数组填充的缓冲区。 每个数组元素应包含窗体的纸张尺寸的 xy 尺寸(以 0.1 毫米为单位),以纵向显示。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则函数应仅返回所需的数组元素数。
DC_PERSONALITY pOutput 参数指向函数应用字符串缓冲区数组填充的缓冲区,每组长度为 32 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定打印机 (支持的打印机说明语言,例如 L“HP-GL/2”) 。 函数的返回值应为返回数组中的元素数。 如果 pOutputNULL,则函数应仅返回所需的数组元素数。
DC_PRINTERMEM 不使用 pOutput 参数。 函数的返回值应该是一个整数,表示可用打印机内存量(以 KB 为单位)。
DC_PRINTRATE 不使用 pOutput 参数。 函数的返回值应是一个整数,表示打印速率,以为DC_PRINTRATEUNIT指定的单位。
DC_PRINTRATEPPM 不使用 pOutput 参数。 函数的返回值应是一个整数,表示打印速率(以每分钟页为单位)。
DC_PRINTRATEUNIT 不使用 pOutput 参数。 函数的返回值应标识用于指定为 DC_PRINTRATE 返回的值的单位。 必须指定以下常量之一:PRINTRATEUNIT_PPM - pages/min。 PRINTRATEUNIT_CPS - chars./sec. PRINTRATEUNIT_LPM - 行/分钟。 PRINTRATEUNIT_IPM - 英寸/分钟
DC_SIZE 不使用 pOutput 参数。 函数的返回值应该是驱动程序内部 [DEVMODEW] (/windows/win32/api/wingdi/ns-wingdi-devmodew) 结构的 dmSize 成员。
DC_STAPLE 不使用 pOutput 参数。 如果打印机支持装订,函数的返回值应为 TRUE ;如果打印机不支持装订,则返回 值为 FALSE
DC_TRUETYPE 不使用 pOutput 参数。 函数的返回值可以是零、一个或多个以下标志:DCTT_BITMAP:设备可以将 TrueType 字体打印为图形。 DCTT_DOWNLOAD:设备可以接受下载的 TrueType 字体。 DCTT_DOWNLOAD_OUTLINE: (Windows 95/98/Me 仅) 设备可以下载大纲 TrueType 字体。 DCTT_SUBDEV:设备可以将设备字体替换为 TrueType 字体。
DC_VERSION 不使用 pOutput 参数。 函数的返回值应该是驱动程序内部 [DEVMODEW] (/windows/win32/api/wingdi/ns-wingdi-devmodew) 结构的 dmSpecVersion 成员。

[out] pOutput

调用方提供的指向缓冲区的指针,用于接收函数提供的信息。 缓冲区的使用取决于为 Capability 参数接收的值。

[in, optional] pDevmode

调用方提供的指向描述当前打印作业特征的 DEVMODEW 结构的指针。 如果此参数为 NULL,DrvDeviceCapabilities 将检索指定打印机驱动程序的当前默认初始化值,例如打印队列的用户默认 DEVMODEW 结构。

返回值

函数的返回值取决于为 Capability 参数接收的值。 如果收到的 Capability 值表示驱动程序不支持的功能,或者遇到错误,则函数应返回GDI_ERROR。

要求

要求
目标平台 桌面
标头 winddiui.h (包括 Winddiui.h)