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]
-
应为其检索驱动程序数据的打印机的句柄。 使用 OpenPrinter 或 AddPrinter 函数检索打印机句柄。
-
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_2、DRIVER_INFO_3、DRIVER_INFO_4、DRIVER_INFO_5、DRIVER_INFO_6和DRIVER_INFO_8结构包含 pDriverPath 成员中打印机驱动程序的文件名或完整路径和文件名。 应用程序可以使用路径和文件名来加载打印机驱动程序,方法是调用 LoadLibrary 函数并将路径和文件名作为单个参数提供。
不支持此函数的 ANSI 版本 GetPrinterDriver2A ,返回 ERROR_NOT_SUPPORTED。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows Vista [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2008 [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|
Unicode 和 ANSI 名称 |
GetPrinterDriver2W (Unicode) |