extDeviceMode 函数 (winspool.h)
ExtDeviceMode 函数仅用于与 16 位应用程序兼容。 没有此要求的打印机驱动程序应改用 DocumentProperties 函数,如Microsoft Windows SDK文档中所述。
ExtDeviceMode 函数检索或修改给定图形驱动程序的打印机初始化信息,或显示指定打印机的驱动程序提供的 printer-configuration 属性表。
语法
LONG ExtDeviceMode(
[in, optional] HWND hWnd,
[in, optional] HANDLE hInst,
[in, out] LPDEVMODEA pDevModeOutput,
[in, optional] LPSTR pDeviceName,
[in, optional] LPSTR pPort,
[in, optional] LPDEVMODEA pDevModeInput,
[in, optional] LPSTR pProfile,
DWORD fMode
);
参数
[in, optional] hWnd
打印机配置属性表的父窗口的句柄。
[in, optional] hInst
未使用。 设备驱动程序的模块实例的句柄。
[in, out] pDevModeOutput
指向 DEVMODE 结构的指针,该结构接收 pDevModeInput 参数指向的缓冲区中提供的打印机配置数据。
[in, optional] pDeviceName
指向以 NULL 结尾的字符串的指针,该字符串包含显示打印机配置属性表的设备的名称。
[in, optional] pPort
指向以 NULL 结尾的字符串的指针,该字符串包含设备连接到的端口的名称,例如 LPT1。
[in, optional] pDevModeInput
指向操作系统用于初始化属性表字段的 DEVMODE 结构的指针。
仅当 fMode 参数中设置了DM_IN_BUFFER标志时,才使用此参数。 如果未设置DM_IN_BUFFER,操作系统将使用打印机的默认 DEVMODE 结构。
[in, optional] pProfile
未使用。 指向以 NULL 结尾的字符串的指针,该字符串包含初始化文件的名称,其中记录初始化信息并从中读取。
fMode
指定函数执行的操作。 如果此参数为零, 则 ExtDeviceMode 函数返回打印机驱动程序的 DEVMODE 结构所需的字节数。 否则,可以将此参数设置为以下一个或多个标志值。
标志 | 描述 |
---|---|
DM_COPY | 将驱动程序的当前设置写入 pDevModeOutput 参数指向的 DEVMODE 结构。 调用应用程序必须分配足够大的缓冲区以包含信息。 如果未设置此标志, pDevModeOutput 可以为 NULL。 |
DM_IN_BUFFER | 将打印机驱动程序的当前打印设置与 pDevModeInput 参数指向的 DEVMODE 结构中的设置合并。 这在提示、复制或更新之前发生。 函数仅更新由 DEVMODE 结构的 dmFields 成员指定的那些成员的结构。 如果合并期间发生冲突, pDevModeInput 指向的 DEVMODE 结构中的设置将替代打印机驱动程序的当前打印设置。 |
DM_UPDATE | 显示属性表以允许用户修改打印机属性,然后将驱动程序的当前“每用户”设置写入注册表中的用户配置单元。 |
返回值
如果 wMode 参数为零,则函数返回包含打印机驱动程序初始化数据所需的 DEVMODE 结构的大小(以字节为单位)。 请注意,如果打印机驱动程序将私有数据追加到结构,则此值可能大于 DEVMODE 结构的大小。 如果函数显示初始化对话框,则返回值为 IDOK 或 IDCANCEL,具体取决于用户选择的按钮。 如果函数未显示对话框并且成功,则返回值为 IDOK。 如果函数失败,则返回值小于零。
注解
ExtDeviceMode 函数调用 documentProperties 函数 (Windows SDK文档) 中所述,以显示允许用户选择打印机选项(如纸张大小、纸张方向和输出质量)的属性表。 为 Windows 3.x 和 Windows 9x 编写的打印机驱动程序使用此函数。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | winspool.h (包括 Winspool.h) |
Library | Winspool.lib |
DLL | WinSpool.drv |