描述
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_1或PORT_INFO_2结构数组的缓冲区的指针。每个结构包含描述可用打印机端口的数据。缓冲区必须足够大以存储由结构成员指向的字符串。
要确定所需的缓冲区大小,请将cbBuf设为零。EnumPorts失败,GetLastError返回ERROR_INSUFFICIENT_BUFFER,pcbNeeded参数返回保存结构数组及其数据所需的缓冲区大小(以字节为单位)。
cbBuf
[in]指定由pports指向的缓冲区的大小(以字节为单位)。
pcbNeeded
[out]指向接收复制到pports缓冲区的字节数的变量的指针。如果缓冲区太小,则该函数失败,变量接收所需的字节数。
pcReturned
[out]指向pports缓冲区中返回的PORT_INFO_1或PORT_INFO_2结构的变量的指针。这是指定服务器上可用的打印机端口数。
返回值
如果函数成功,则返回值为非零值。
如果函数失败,返回值为零。
备注
即使PNAME指定的服务器没有定义打印机,EnumPorts功能也可以成功。
引用文件 #INCLUDE Once
WinSpool.inc(包括Windows.inc)