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緩衝區的大小,以位元組為單位。

vmNeeded [out]

變數的指標,這個指標會接收函式成功時所複製的位元組數目。 如果函式失敗,變數會收到所需的位元組數目。

pcReturned [out]

接收pJob緩衝區中傳回之JOB_INFO_1JOB_INFO_2或JOB_INFO_3結構的變數指標。

傳回值

如果函式成功,則傳回值是非零值。

如果此函式失敗,則傳回值為零。

備註

注意

這是封鎖或同步函式,可能不會立即傳回。 此函式傳回的速度取決於執行時間因素,例如網路狀態、列印伺服器設定,以及撰寫應用程式時難以預測的印表機驅動程式實作因素。 從管理與使用者介面互動的執行緒呼叫此函式,可能會使應用程式看起來沒有回應。

JOB_INFO_1結構包含一般列印工作資訊;JOB_INFO_2結構有更詳細的資訊。 JOB_INFO_3結構包含作業連結方式的相關資訊。

若要判斷印表機佇列中的列印工作數目,請呼叫 GetPrinter 函式,並將 Level 參數設定為 2。

規格需求

需求
最低支援的用戶端
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