描述
AddPrinterDriverEx功能安装本地或远程打印机驱动程序,并链接配置,数据和驱动程序文件。除了拥有AddPrinterDriver的功能外,它还具有允许严格升级,严格降级,仅复制较新文件以及复制所有文件(不管文件时间戳)的选项。
C++ 语法
BOOL AddPrinterDriverEx( __in LPTSTR pName, __in DWORD Level, __inout LPBYTE pDriverInfo, __in DWORD dwFileCopyFlags ); |
PowerBASIC 语法
FUNCTION AddPrinterDriverExA ( _ BYREF pName AS ASCIIZ, _ BYVAL Level AS DWORD, _ BYREF pDriverInfo AS ANY, _ BYVAL dwFileCopyFlags AS DWORD _ ) AS LONG |
Unicode版本:
FUNCTION AddPrinterDriverExW ( _ BYREF pName AS WSTRINGZ, _ BYVAL Level AS DWORD, _ BYREF pDriverInfo AS ANY, _ BYVAL dwFileCopyFlags AS DWORD _ ) AS LONG |
参数
pName
[in]指向以空值终止的字符串的指针,该字符串指定应安装驱动程序的服务器的名称。如果此参数为NULL,则该函数将在本地计算机上安装驱动程序。
Level
[in]指定pDriverInfo指向的结构的版本。该值可以是2,3,4,6或8。
pDriverInfo
[in]指向包含打印机驱动程序信息的结构的指针。它可以是以下之一。
的价值Level |
打印机驱动结构 |
2 |
DRIVER_INFO_2 |
3 |
DRIVER_INFO_3 |
4 |
DRIVER_INFO_4 |
6 |
DRIVER_INFO_6 |
8 |
Windows Vista或更高版本:DRIVER_INFO_8 |
如果pDriverInfo指向的结构的pEnvironment成员为NULL,则该函数使用调用者/客户端的当前环境,而不是目标/服务器的环境。
dwFileCopyFlags
[in]指定复制驱动程序文件的选项。此参数可以是以下值之一。
值 |
含义 |
APD_COPY_ALL_FILES |
添加打印机驱动程序并复制打印机驱动程序目录中的所有文件。此选项将忽略文件时间戳。 |
APD_COPY_FROM_DIRECTORY |
Windows XP:使用DRIVER_INFO_6结构中指定的全限定文件名添加打印机驱动程序。该标志与其他复制标志之一结合OR。如果设置了此标志,AddPrinterDriverEx如果不存在DRIVER_INFO_6结构指定存在的文件,则AddPrinterDriverEx将失败。这些文件不需要复制到系统的printer-driver目录。见备注。 |
APD_COPY_NEW_FILES |
添加打印机驱动程序,并将打印机驱动程序目录中的文件复制到比当前使用的任何相应文件更新的文件。此标志模拟AddPrinterDriver的行为。 |
APD_STRICT_DOWNGRADE |
仅当打印机驱动程序目录中的所有文件都比当前使用的任何相应文件更旧时才添加打印机驱动程序。 |
APD_STRICT_UPGRADE |
仅当打印机驱动程序目录中的所有文件都比当前使用的任何相应文件更新时才添加打印机驱动程序。 |
返回值
如果函数成功,则返回值为非零值。
如果函数失败,返回值为零。
Windows XP:如果已知打印机驱动程序在操作系统中遇到问题,则AddPrinterDriverEx将失败,并显示以下错误代码之一:
错误代码 |
含义 |
ERROR_PRINTER_DRIVER_BLOCKED |
驱动程序在操作系统上不起作用。 |
ERROR_PRINTER_DRIVER_WARNED |
驱动程序在操作系统上不可靠。但是,如果指定了APD_INSTALL_WARNED_DRIVER,则会安装驱动程序,并且不会发出警告。 |
有关详细信息,请参阅备注。
备注
来电者必须有SeLoadDriverPrivilege.
在调用AddPrinterDriverEx函数之前,必须将驱动程序所需的所有文件复制到系统的printer-driver目录。要检索此目录的名称,请调用GetPrinterDriverDirectory功能。
要确定当前安装的打印机驱动程序,请调用EnumPrinterDrivers功能。
如果打印机驱动程序已成功添加,该函数将调用DrvDriverEvent(DRIVER_EVENT_INITIALIZE,Level,DRIVER_INFO_ *,lparam)功能,以允许驱动程序在安装打印机驱动程序期间执行所需的任何初始化。有关DrvDriverEvent的详细信息,请参阅Microsoft Windows 2000驱动程序开发工具包。
Windows XP:在调用DrvDriverEvent期间,驱动程序不应使用UI呼叫。要执行与UI相关的作业,安装程序应使用打印机的.inf文件中的VendorSetup条目,或者对于即插即用设备,安装程序可以使用特定于设备的共同安装程序。有关VendorSetup的详细信息,请参阅Microsoft Windows 2000驱动程序开发工具包。
Windows XP:DRIVER_INFO_6结构中引用的文件必须是进行调用的计算机的本地文件。只要UNC名称是本地机器,文件名可以是UNC名称。
引用文件 #INCLUDE Once
WinSpool.inc(包括Windows.inc)


