Функция 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 [только классические приложения] |
Заголовок |
|
Библиотека |
|
DLL |
|
Имя в кодировке Юникод и ANSI |
EnumPrinterKeyW (Юникод) и EnumPrinterKeyA (ANSI) |