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