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

EnumPorts

Previous pageReturn to chapter overviewNext page

描述

 

EnumPorts功能枚举可用于在指定服务器上打印的端口。

 

C++ 语法

 

BOOL EnumPorts(

__in  LPTSTR pName,

__in  DWORD Level,

__out LPBYTE pPorts,

__in  DWORD cbBuf,

__out LPDWORD pcbNeeded,

__out LPDWORD pcReturned

);

 

PowerBASIC 语法

 

FUNCTION EnumPortsA ( _

BYREF pName AS ASCIIZ, _

BYVAL Level AS DWORD, _

BYREF pPorts AS ANY, _

BYVAL cbBuf AS DWORD, _

BYREF pcbNeeded AS DWORD, _

BYREF pcReturned AS DWORD _

) AS LONG

 

Unicode版本:

 

FUNCTION EnumPortsW ( _

BYREF pName AS WSTRINGZ, _

BYVAL Level AS DWORD, _

BYREF pPorts AS ANY, _

BYVAL cbBuf AS DWORD, _

BYREF pcbNeeded AS DWORD, _

BYREF pcReturned AS DWORD _

) AS LONG

 

参数

 

pName

 

[in]指向以空值终止的字符串的指针,该字符串指定要枚举其打印机端口的服务器的名称。

 

如果PNAME为NULL,则该函数枚举本地计算机的打印机端口。

 

Level

 

[in]指定pports缓冲区中返回的信息类型。如果水平为1,pPorts将接收PORT_INFO_1结构的数组。如果水平为2,pPorts将接收PORT_INFO_2结构的数组。

 

pPorts

 

[out]指向接收PORT_INFO_1PORT_INFO_2结构数组的缓冲区的指针。每个结构包含描述可用打印机端口的数据。缓冲区必须足够大以存储由结构成员指向的字符串。

 

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

 

cbBuf

 

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

 

pcbNeeded

 

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

 

pcReturned

 

[out]指向pports缓冲区中返回的PORT_INFO_1PORT_INFO_2结构的变量的指针。这是指定服务器上可用的打印机端口数。

 

返回值

 

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

 

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

 

备注

 

即使PNAME指定的服务器没有定义打印机,EnumPorts功能也可以成功。

 

引用文件 #INCLUDE Once

 

WinSpool.inc(包括Windows.inc)