EnumPrinterDataEx 函数

EnumPrinterDataEx 函数枚举指定打印机和密钥的所有值名称和数据。

打印机数据存储在注册表中。 枚举打印机数据时,请勿调用可能会更改数据的注册表函数。

语法

DWORD EnumPrinterDataEx(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _Out_ LPBYTE  pEnumValues,
  _In_  DWORD   cbEnumValues,
  _Out_ LPDWORD pcbEnumValues,
  _Out_ LPDWORD pnEnumValues
);

parameters

hPrinter [in]

函数检索其配置数据的打印机句柄。 使用 OpenPrinterAddPrinter 函数检索打印机句柄。

pKeyName [in]

指向以 null 结尾的字符串的指针,该字符串指定包含要枚举的值的键。 使用反斜杠 ( \ ) 字符作为分隔符来指定包含一个或多个子项的路径。 EnumPrinterDataEx 枚举键的所有值,但不枚举指定键的子项的值。 使用 EnumPrinterKey 函数枚举子项。

如果 pKeyNameNULL 或空字符串, 则 EnumPrinterDataEx 返回ERROR_INVALID_PARAMETER。

pEnumValues [out]

指向接收PRINTER_ENUM_VALUES结构的数组的缓冲区 指针。 每个结构都包含键下的值名称、类型、数据和值的大小。

cbEnumValues [in]

由顿EnumValues 指向的缓冲区的大小(以字节为单位)。 如果将 cbEnumValues 设置为零, 则 cbEnumValues 参数将返回所需的缓冲区大小。

印刷机值 [out]

指向变量的指针,该变量接收检索到的配置数据的大小(以字节为单位)。 如果 cbEnumValues 指定的缓冲区大小太小,该函数将返回ERROR_MORE_DATA, 而“cbEnumValues” 指示所需的缓冲区大小。

pnEnumValues [out]

指向变量的指针,该变量接收 pEnumValues 中返回的PRINTER_ENUM_VALUES结构数。

返回值

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

如果函数失败,则返回值为系统错误代码。

备注

注意

这是一个阻塞或同步函数,可能不会立即返回。 此函数的返回速度取决于运行时因素,例如网络状态、打印服务器配置以及编写应用程序时难以预测的打印机驱动程序实现因素。 从管理与用户界面交互的线程调用此函数可能会使应用程序看起来无响应。

EnumPrinterDataEx 检索 SetPrinterDataExSetPrinterData 函数的打印机配置数据集。

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Winspool.h (包括 Windows.h)

Winspool.lib
DLL
Winspool.drv
Unicode 和 ANSI 名称
EnumPrinterDataExW (Unicode) 和 EnumPrinterDataExA (ANSI)

另请参阅

打印

打印后台处理程序 API 函数

DeletePrinterDataEx

EnumPrinterKey

GetPrinterDataEx

OpenPrinter

PRINTER_ENUM_VALUES

SetPrinterData

SetPrinterDataEx