Функция EnumForms

Функция EnumForms перечисляет формы, поддерживаемые указанным принтером.

Синтаксис

BOOL EnumForms(
  _In_  HANDLE  hPrinter,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pForm,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded,
  _Out_ LPDWORD pcReturned
);

Параметры

hPrinter [in]

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

Level [in]

Указывает версию структуры, на которую указывает pForm . Это значение должно быть равно 1 или 2.

pForm [out]

Указатель на одну или несколько FORM_INFO_1 структур или одну или несколько FORM_INFO_2 структур. Все структуры будут иметь одинаковый уровень.

cbBuf [in]

Задает размер (в байтах) буфера, на который указывает pForm .

pcbNeeded [ out]

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

pcReturned [out]

Указатель на переменную, которая получает количество структур, скопированных в массив, на который указывает pForm .

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

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

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

Комментарии

Примечание

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

Если вызывающий объект является удаленным, а уровень равен 2, значение StringType возвращаемых FORM_INFO_2 структур всегда будет STRING_LANGPAIR.

В Windows Vista данные формы, возвращаемые EnumForms , извлекаются из локального кэша, когда hPrinter ссылается на удаленный сервер печати или принтер, размещенный на сервере печати, и имеется по крайней мере одно открытое подключение к принтеру на удаленном сервере печати. Во всех остальных конфигурациях данные формы запрашиваются с удаленного сервера печати.

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Winspool.h (включая Windows.h)
Библиотека
Winspool.lib
DLL
Winspool.drv
Имя в кодировке Юникод и ANSI
EnumFormsW (Юникод) и EnumFormsA (ANSI)

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

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

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

AddPrinter

FORM_INFO_1

OpenPrinter