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 结尾的宽字符字符串,用于指定纸张源箱的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则该函数应仅返回所需的数组元素数。 |
DC_BINS | pOutput 参数指向函数应使用 WORD 数组填充的缓冲区。 每个数组元素应包含一个 DMBIN 前缀的常量 (或表示支持的纸张源箱) 自定义值。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则该函数应仅返回所需的数组元素数。 |
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 维度) ,以点/英寸为单位。 函数的返回值应为支持的分辨率数。 如果 pOutput 为 NULL,则该函数应仅返回支持的分辨率数。 |
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 结尾的宽字符字符串,该字符串指定必须与驱动程序一起安装的文件的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则该函数应仅返回所需的数组元素数。 |
DC_MANUFACTURER | 不用于基于 NT 的操作系统。 |
DC_MAXEXTENT | 不使用 pOutput 参数。 函数应返回Microsoft Windows SDK文档) 中所述的 POINTS 结构 (。 结构应包含 dmPaperWidth (x 维度) 和 dmPaperLength (y 维度) 打印机 DEVMODEW 结构的成员允许的最大值。 |
DC_MEDIAREADY | pOutput 参数指向函数应使用字符串缓冲区数组填充的缓冲区,每个缓冲区长度为 64 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定可供使用的纸质窗体的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则该函数应仅返回所需的数组元素数。 |
DC_MEDIATYPENAMES | pOutput 参数指向函数应使用字符串缓冲区数组填充的缓冲区,每个缓冲区长度为 64 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定受支持的媒体类型的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则该函数应仅返回所需的数组元素数。 |
DC_MEDIATYPES | pOutput 参数指向函数应使用 DWORD 数组填充的缓冲区。 每个数组元素应包含一个 DMMEDIA 前缀常量, (请参阅 [DEVMODEW] (/windows/win32/api/wingdi/ns-wingdi-devmodew) 结构) 或表示支持的媒体类型的自定义值。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则该函数应仅返回所需的数组元素数。 |
DC_MINEXTENT | 不使用 pOutput 参数。 函数应返回Windows SDK文档) 中所述的 POINTS 结构 (。 结构应包含 dmPaperWidth (x 维度) 和 dmPaperLength (y 维度) 打印机 DEVMODEW 结构的成员允许的最小值。 |
DC_MODEL | 不用于基于 NT 的操作系统。 |
DC_NUP | pOutput 参数指向函数应使用 DWORD 数组填充的缓冲区。 每个数组元素应包含一个表示 N 向上选项的整数 (也就是说,每个整数应表示每个物理页) 支持的文档页数。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则该函数应仅返回所需的数组元素数。 |
DC_ORIENTATION | 不使用 pOutput 参数。 函数的返回值应为从纵向生成横向所需的旋转度数。 值为零表示不支持横向。 |
DC_PAPERNAMES | pOutput 参数指向函数应用字符串缓冲区数组填充的缓冲区,每组长度为 64 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定纸张窗体的名称。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则函数应仅返回所需的数组元素数。 |
DC_PAPERS | pOutput 参数指向函数应用 WORD 数组填充的缓冲区。 每个数组元素应包含一个 DMPAPER 前缀常量 (或自定义值) 表示支持的纸张形式。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则函数应仅返回所需的数组元素数。 |
DC_PAPERSIZE | pOutput 参数指向函数应用 POINT 数组填充的缓冲区。 每个数组元素应包含窗体的纸张尺寸的 x 和 y 尺寸(以 0.1 毫米为单位),以纵向显示。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则函数应仅返回所需的数组元素数。 |
DC_PERSONALITY | pOutput 参数指向函数应用字符串缓冲区数组填充的缓冲区,每组长度为 32 个字符。 数组中的每个字符串缓冲区都应包含一个以 NULL 结尾的宽字符字符串,该字符串指定打印机 (支持的打印机说明语言,例如 L“HP-GL/2”) 。 函数的返回值应为返回数组中的元素数。 如果 pOutput 为 NULL,则函数应仅返回所需的数组元素数。 |
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) |