描述
GetPrinterDriver2功能检索指定打印机的驱动程序数据。如果驱动程序未安装在本地计算机上,则GetPrinterDriver2将安装并显示任何用户界面到指定的窗口。
C++ 语法
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 ); |
PowerBASIC 语法
FUNCTION GetPrinterDriver2A ( _ BYVAL hWnd AS DWORD, _ BYVAL hPrinter AS DWORD, _ BYREF pEnvironment AS ASCIIZ, _ BYVAL Level AS DWORD, _ BYREF pDriverInfo AS ANY, _ BYVAL cbBuf AS DWORD, _ BYREF pcbNeeded AS DWORD _ ) AS LONG |
Unicode版本:
FUNCTION GetPrinterDriver2W ( _ BYVAL hPrinter AS DWORD, _ BYVAL hPrinter AS DWORD, _ BYREF pEnvironment AS WSTRINGZ, _ BYVAL Level AS DWORD, _ BYREF pDriverInfo AS ANY, _ BYVAL cbBuf AS DWORD, _ BYREF pcbNeeded AS DWORD _ ) AS LONG |
参数
hWnd
[in, optional]处理将用作驱动程序在安装过程中显示的任何用户界面(如对话框)的父窗口的窗口。如果此参数的值为NULL,则驱动程序的用户界面在安装过程中仍将显示给用户,但不会有父窗口。
hPrinter
[in]处理应检索驱动程序数据的打印机。使用OpenPrinter或AddPrinter功能来检索打印机句柄。
pEnvironment
[in]指向指定环境的空终止字符串的指针(例如,Windows NT x86,Windows IA64或Windows x64)。如果此参数为NULL,则使用调用应用程序和客户机(而不是目标应用程序和打印服务器)的当前环境。
注意Windows IA64在Windows XP,Windows XP 64位版本,Windows Server 2003和更高版本中可用。Windows XP Service Pack 2(SP2),Windows XP Professional x64 Edition,Windows Server 2003 Service Pack 1(SP1)和更高版本中提供Windows x64。
Level
[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]指向缓冲区的指针,该缓冲区接收包含水平指定的驱动程序信息的结构。缓冲区必须足够大以存储由结构成员指向的字符串。
要确定所需的缓冲区大小,请将cbBuf设置为零调用GetPrinterDriver2.GetPrinterDriver2失败,GetLastError返回ERROR_INSUFFICIENT_BUFFER,pcbNeeded参数返回保存结构数组及其数据所需的缓冲区大小(以字节为单位)。
cbBuf
[in]指定pDriverInfo点数组的大小(以字节为单位)。
pcbNeeded
[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。
引用文件 #INCLUDE Once
WinSpool.inc(包括Windows.inc)