GetPrinterDriver2 函数

GetPrinterDriver2 函数检索指定打印机的驱动程序数据。 如果未在本地计算机上安装驱动程序, GetPrinterDriver2 将安装该驱动程序,并将任何用户界面显示到指定窗口。

语法

BOOL GetPrinterDriver2(
  _In_opt_ HWND    hWnd,
  _In_     HANDLE  hPrinter,
  _In_opt_ LPTSTR  pEnvironment,
  _In_     DWORD   Level,
  _Out_    LPBYTE  pDriverInfo,
  _In_     DWORD   cbBuf,
  _Out_    LPDWORD pcbNeeded
);

参数

hWnd [in, optional]

将用作驱动程序在安装过程中显示的任何用户界面(如对话框)的父窗口的窗口句柄。 如果此参数的值为 NULL,则驱动程序的用户界面仍将在安装过程中显示给用户,但它将不具有父窗口。

hPrinter [in]

应为其检索驱动程序数据的打印机的句柄。 使用 OpenPrinterAddPrinter 函数检索打印机句柄。

pEnvironment [in, optional]

指向以 null 结尾的字符串的指针,该字符串指定环境 (,例如 Windows x86、Windows IA64 或 Windows x64) 。 如果此参数为 NULL,则使用调用应用程序和客户端计算机的当前环境 (目标应用程序和打印服务器) 。

级别 [in]

pDriverInfo 缓冲区中返回的打印机驱动程序结构。 此参数的取值可为下列值之一:

含义
1
DRIVER_INFO_1
2
DRIVER_INFO_2
3
DRIVER_INFO_3
4
DRIVER_INFO_4
5
DRIVER_INFO_5
6
DRIVER_INFO_6
8
DRIVER_INFO_8

pDriverInfo [out]

指向缓冲区的指针,该缓冲区接收结构,该结构包含 有关驱动程序的信息(由 Level 指定)。 缓冲区必须足够大,以便存储结构成员指向的字符串。

若要确定所需的缓冲区大小,请调用 GetPrinterDriver2 ,并将 cbBuf 设置为零。 GetPrinterDriver2 失败, GetLastError 返回 ERROR_INSUFFICIENT_BUFFER而ERROR_INSUFFICIENT_BUFFER 参数返回保存结构数组及其数据所需的缓冲区大小(以字节为单位)。

cbBuf [in]

pDriverInfo 指向的数组的大小(以字节为单位)。

2011 年 [out]

指向一个值的指针,该值接收函数成功时复制的字节数;如果 cbBuf 太小,则接收所需的字节数。

返回值

如果函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 若要获取返回状态,请调用 GetLastError

备注

DRIVER_INFO_2DRIVER_INFO_3DRIVER_INFO_4DRIVER_INFO_5DRIVER_INFO_6DRIVER_INFO_8结构包含 pDriverPath 成员中打印机驱动程序的文件名或完整路径和文件名。 应用程序可以使用路径和文件名来加载打印机驱动程序,方法是调用 LoadLibrary 函数并将路径和文件名作为单个参数提供。

不支持此函数的 ANSI 版本 GetPrinterDriver2A ,返回 ERROR_NOT_SUPPORTED

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Winspool.h (包括 Windows.h)

Winspool.lib
DLL
Winspool.drv
Unicode 和 ANSI 名称
GetPrinterDriver2W (Unicode)

另请参阅

打印

打印后台处理程序 API 函数

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

EnumPrinterDrivers

GetPrinterDriver

OpenPrinter