Функция EnumPrinterKey

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

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

Синтаксис

DWORD EnumPrinterKey(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _Out_ LPTSTR  pSubkey,
  _In_  DWORD   cbSubkey,
  _Out_ LPDWORD pcbSubkey
);

Параметры

hPrinter [in]

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

pKeyName [in]

Указатель на строку, завершающуюся значением NULL, которая указывает ключ, содержащий подразделы для перечисления. Используйте символ обратной косой черты "\" в качестве разделителя, чтобы указать путь с одним или несколькими подразделами. EnumPrinterKey перечисляет все подразделы ключа, но не перечисляет подразделы этих подразделов.

Если pKeyName является пустой строкой (""), EnumPrinterKey перечисляет ключ верхнего уровня для принтера. Если pKeyName имеет значение NULL, EnumPrinterKey возвращает ERROR_INVALID_PARAMETER.

pSubkey [out]

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

cbSubkey [in]

Размер (в байтах) буфера, на который указывает pSubkey. Если параметр cbSubkey равен нулю, параметр pcbSubkey возвращает требуемый размер буфера.

pcbSubkey [out]

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

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

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

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

Комментарии

Примечание

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

Требования

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

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

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

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

DeletePrinterDataEx

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx