EnumPrinterKey 函数

EnumPrinterKey 函数枚举指定打印机的指定键的子项。

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

语法

DWORD EnumPrinterKey(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _Out_ LPTSTR  pSubkey,
  _In_  DWORD   cbSubkey,
  _Out_ LPDWORD pcbSubkey
);

参数

hPrinter [in]

函数枚举子项的打印机的句柄。 使用 OpenPrinterAddPrinter 函数检索打印机句柄。

pKeyName [in]

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

如果 pKeyName 是空字符串 (“”) , 则 EnumPrinterKey 枚举打印机的顶级键。 如果 pKeyNameNULL则 EnumPrinterKey 返回ERROR_INVALID_PARAMETER。

pSubkey [out]

指向接收以 null 结尾的子项名称数组的缓冲区的指针。 数组以两个 null 字符结尾。

cbSubkey [in]

pSubkey 指向的缓冲区的大小(以字节为单位)。 如果将 cbSubkey 设置为零, 则返回 所需的缓冲区大小。

2013 年 10 月 [out]

指向变量的指针,该变量接收 pSubkey 缓冲区中检索到的字节数。 如果 cbSubkey 指定的缓冲区大小太小,该函数将返回ERROR_MORE_DATA, 而“cbSubkey ”指示所需的缓冲区大小。

返回值

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

如果函数失败,则返回值为系统错误代码。 如果 pKeyName 不存在,则返回值ERROR_FILE_NOT_FOUND。

备注

注意

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

要求

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

Winspool.lib
DLL
Winspool.drv
Unicode 和 ANSI 名称
EnumPrinterKeyW (Unicode) 和 EnumPrinterKeyA (ANSI)

另请参阅

打印

打印后台处理程序 API 函数

DeletePrinterDataEx

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx