勇芳软件工作室.汉化:  Printing > Print Spooler API > Printer Driver Installation >

EnumPrinterDrivers (Vista)

Previous pageReturn to chapter overviewNext page

描述

 

EnumPrinterDrivers功能列举了指定打印机服务器上安装的打印机驱动程序。

 

C++ 语法

 

BOOL EnumPrinterDrivers(

__in  LPTSTR pName,

__in  LPTSTR pEnvironment,

__in  DWORD Level,

__out LPBYTE pDriverInfo,

__in  DWORD cbBuf,

__out LPDWORD pcbNeeded,

__out LPDWORD pcReturned

);

 

PowerBASIC 语法

 

FUNCTION EnumPrinterDriversA ( _

BYREF pName AS ASCIIZ, _

BYREF pEnvironment AS ASCIIZ, _

BYVAL Level AS DWORD, _

BYREF pDriverInfo AS ANY, _

BYVAL cbBuf AS DWORD, _

BYREF pcbNeeded AS DWORD, _

BYREF pcReturned AS DWORD _

) AS LONG

 

Unicode版本:

 

FUNCTION EnumPrinterDriversW ( _

BYREF pName AS WSTRINGZ, _

BYREF pEnvironment AS WSTRINGZ, _

BYVAL Level AS DWORD, _

BYREF pDriverInfo AS ANY, _

BYVAL cbBuf AS DWORD, _

BYREF pcbNeeded AS DWORD, _

BYREF pcReturned AS DWORD _

) AS LONG

 

参数

 

pName

 

[in]指向以空字符结尾的字符串的指针,该字符串指定列举打印机驱动程序的服务器的名称。

 

如果PNAME为NULL,则该函数枚举本地打印机驱动程序。

 

pEnvironment

 

[in]指向指定环境的空终止字符串的指针(例如,Windows NT x86,Windows IA64,Windows x64,Windows NT R4000,Windows NT Alpha_AXP,Windows 4.0或Windows NT PowerPC)。如果此参数为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。

 

Windows 2000 / XP / Vista / Windows 7:如果pEnvironment字符串指定“all”,则EnumPrinterDrivers枚举指定服务器上安装的所有平台的打印机驱动程序。

 

Level

 

[in]指定在pDriverInfo缓冲区中返回的信息结构的类型。它可以是以下之一。

 

含义

1

DRIVER_INFO_1

2

DRIVER_INFO_2

3

Windows 95/98 / Me,Windows NT 4.0及更高版本:DRIVER_INFO_3

4

Windows 2000 / XP / Vista / Windows 7:DRIVER_INFO_4

5

Windows 2000 / XP / Vista / Windows 7:DRIVER_INFO_5

6

Windows Me,Windows 2000 / XP / Vista / Windows 7:DRIVER_INFO_6

 

pDriverInfo

 

[out]指向缓冲区的指针,该缓冲区接收由Level指定的DRIVER_INFO_ *结构数组。每个结构包含描述可用打印机驱动程序的数据。缓冲区必须足够大以接收结构数组和结构成员指向的任何字符串或其他数据。

 

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

 

cbBuf

 

[in]指定pDriverInfo指向的缓冲区的大小(以字节为单位)。

 

pcbNeeded

 

[out]指向变量的指针,如果函数成功,则可以接收复制到pDriverInfo缓冲区的字节数。如果缓冲区太小,则该函数失败,变量接收所需的字节数。

 

pcReturned

 

[out]指向接收pDriverInfo缓冲区中返回的结构数的变量的指针。这是指定打印服务器上安装的打印机驱动程序的数量。

 

返回值

 

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

 

如果函数失败,返回值为零。

 

引用文件 #INCLUDE Once

 

WinSpool.inc(包括Windows.inc)