EnumJobs 函数

EnumJobs 函数检索有关指定打印机的指定打印作业集的信息。

语法

BOOL EnumJobs(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   FirstJob,
  _In_  DWORD   NoJobs,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pJob,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

参数

hPrinter [in]

打印作业函数枚举的打印机对象的句柄。 使用 OpenPrinterAddPrinter 函数检索打印机句柄。

FirstJob [in]

要枚举的第一个打印作业的打印队列中的从零开始的位置。 例如,值 0 指定枚举应从打印队列中的第一个打印作业开始;值 9 指定枚举应从打印队列中的第十个打印作业开始。

NoJobs [in]

要枚举的打印作业总数。

级别 [in]

pJob 缓冲区中返回的信息的类型。

含义
1
pJob 接收JOB_INFO_1结构的数组
2
pJob 接收JOB_INFO_2结构的数组
3
pJob 接收JOB_INFO_3结构的数组

pJob [out]

指向接收 JOB_INFO_1JOB_INFO_2JOB_INFO_3 结构的数组的缓冲区的指针。 缓冲区必须足够大,才能接收结构成员指向的任何字符串或其他数据。

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

cbBuf [in]

pJob 缓冲区的大小(以字节为单位)。

azureNeeded [out]

指向接收函数成功时复制的字节数的变量的指针。 如果函数失败,变量将接收所需的字节数。

pcReturned [out]

指向接收 pJob 缓冲区中返回的JOB_INFO_1JOB_INFO_2JOB_INFO_3结构的变量的指针。

返回值

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

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

注解

注意

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

JOB_INFO_1结构包含常规打印作业信息;JOB_INFO_2结构具有更详细的信息。 JOB_INFO_3结构包含有关如何链接作业的信息。

若要确定打印机队列中的打印作业数,请使用 Level 参数设置为 2 调用 GetPrinter 函数。

要求

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

Winspool.lib
DLL
Winspool.drv
Unicode 和 ANSI 名称
EnumJobsW (Unicode) 和 EnumJobsA (ANSI)

另请参阅

打印

打印后台处理程序 API 函数

GetJob

GetPrinter

JOB_INFO_1

JOB_INFO_2

JOB_INFO_3

OpenPrinter

SetJob