Функция EnumPrinterDataEx

Функция EnumPrinterDataEx перечисляет все имена значений и данные для указанного принтера и ключа.

Данные принтера хранятся в реестре. При перечислении данных принтера не вызывайте функции реестра, которые могут изменить данные.

Синтаксис

DWORD EnumPrinterDataEx(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _Out_ LPBYTE  pEnumValues,
  _In_  DWORD   cbEnumValues,
  _Out_ LPDWORD pcbEnumValues,
  _Out_ LPDWORD pnEnumValues
);

Параметры

hPrinter [in]

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

pKeyName [in]

Указатель на строку, завершающуюся нулевым значением, которая указывает ключ, содержащий значения для перечисления. Используйте символ обратной косой черты ( \ ) в качестве разделителя, чтобы указать путь с одним или несколькими подразделами. EnumPrinterDataEx перечисляет все значения ключа, но не перечисляет значения подразделов указанного ключа. Используйте функцию EnumPrinterKey для перечисления подразделов.

Если pKeyName имеет значение NULL или пустую строку, EnumPrinterDataEx возвращает ERROR_INVALID_PARAMETER.

pEnumValues [out]

Указатель на буфер, который получает массив PRINTER_ENUM_VALUES структур. Каждая структура содержит имя, тип, данные и размеры значения в ключе.

cbEnumValues [in]

Размер (в байтах) буфера, на который указывает pcbEnumValues. Если для параметра cbEnumValues задано значение 0, параметр pcbEnumValues возвращает требуемый размер буфера.

pcbEnumValues [out]

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

pnEnumValues [out]

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

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

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

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

Комментарии

Примечание

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

EnumPrinterDataEx извлекает данные конфигурации принтера, заданные функциями SetPrinterDataEx и SetPrinterData .

Требования

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

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

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

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

DeletePrinterDataEx

EnumPrinterKey

GetPrinterDataEx

OpenPrinter

PRINTER_ENUM_VALUES

SetPrinterData

SetPrinterDataEx