Поделиться через


Функция 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]

Дескриптор объекта принтера, задания печати которого перечисляются функцией. Используйте функцию OpenPrinter или AddPrinter , чтобы получить дескриптор принтера.

FirstJob [in]

Отсчитываемая от нуля позиция в очереди печати первого перечисления задания печати. Например, значение 0 указывает, что перечисление должно начинаться с первого задания печати в очереди печати; Значение 9 указывает, что перечисление должно начинаться с десятого задания печати в очереди печати.

NoJobs [in]

Общее количество перечисляемых заданий печати.

Level [in]

Тип сведений, возвращаемых в буфере pJob .

Значение Значение
1
pJob получает массив JOB_INFO_1 структур
2
pJob получает массив JOB_INFO_2 структур
3
pJob получает массив структур JOB_INFO_3

pJob [out]

Указатель на буфер, который получает массив JOB_INFO_1, JOB_INFO_2 или JOB_INFO_3 структур. Буфер должен быть достаточно большим для получения массива структур и любых строк или других данных, на которые указывают элементы структуры.

Чтобы определить требуемый размер буфера, вызовите EnumJobs с параметромcbBuf , равным нулю. EnumJobs завершается сбоем, GetLastError возвращает ERROR_INSUFFICIENT_BUFFER, а параметр pcbNeeded возвращает размер буфера в байтах, необходимый для хранения массива структур и их данных.

cbBuf [in]

Размер буфера pJob (в байтах).

pcbNeeded [ out]

Указатель на переменную, которая получает количество байтов, скопированных при успешном выполнении функции. Если функция завершается сбоем, переменная получает необходимое количество байтов.

pcReturned [out]

Указатель на переменную, которая получает количество JOB_INFO_1, JOB_INFO_2 или JOB_INFO_3 структур, возвращаемых в буфере pJob .

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет ненулевым.

Если функция выполняется неудачно, возвращается нулевое значение.

Комментарии

Примечание

Это блокирующая или синхронная функция, возвращаемая не сразу. Скорость возврата этой функции зависит от факторов времени выполнения, таких как состояние сети, конфигурация сервера печати и факторы реализации драйвера принтера, которые трудно предсказать при написании приложения. Вызов этой функции из потока, который управляет взаимодействием с пользовательским интерфейсом, может привести к тому, что приложение не отвечает.

Структура 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
Имя в кодировке Юникод и ANSI
EnumJobsW (Юникод) и EnumJobsA (ANSI)

См. также раздел

Вывод на печать

Функции API очереди печати принтера

GetJob

GetPrinter

JOB_INFO_1

JOB_INFO_2

JOB_INFO_3

OpenPrinter

Задание SetJob