Compartilhar via


Função EnumPrinterKey

A função EnumPrinterKey enumera as subchaves de uma chave especificada para uma impressora especificada.

Os dados da impressora são armazenados no registro. Ao enumerar dados da impressora, não chame funções do Registro que possam alterar os dados.

Sintaxe

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

Parâmetros

hPrinter [in]

Um identificador para a impressora para a qual a função enumera subchaves. Use a função OpenPrinter ou AddPrinter para recuperar um identificador de impressora.

pKeyName [in]

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica a chave que contém as subchaves a serem enumeradas. Use o caractere de barra invertida '\' como um delimitador para especificar um caminho com uma ou mais subchaves. EnumPrinterKey enumera todas as subchaves da chave, mas não enumera as subchaves dessas subchaves.

Se pKeyName for uma cadeia de caracteres vazia (""), EnumPrinterKey enumerará a chave de nível superior para a impressora. Se pKeyName for NULL, EnumPrinterKey retornará ERROR_INVALID_PARAMETER.

pSubkey [out]

Um ponteiro para um buffer que recebe uma matriz de nomes de subchave terminados em nulo. A matriz é encerrada por dois caracteres nulos.

cbSubkey [in]

O tamanho, em bytes, do buffer apontado por pSubkey. Se você definir cbSubkey como zero, o parâmetro pcbSubkey retornará o tamanho do buffer necessário.

pcbSubkey [out]

Um ponteiro para uma variável que recebe o número de bytes recuperados no buffer pSubkey . Se o tamanho do buffer especificado por cbSubkey for muito pequeno, a função retornará ERROR_MORE_DATA e pcbSubkey indicará o tamanho do buffer necessário.

Valor retornado

Se a função obtiver êxito, o valor retornado será ERROR_SUCCESS.

Se a função falhar, o valor retornado será um código de erro do sistema. Se pKeyName não existir, o valor retornado será ERROR_FILE_NOT_FOUND.

Comentários

Observação

Essa é uma função de bloqueio ou síncrona e pode não retornar imediatamente. A rapidez com que essa função retorna depende de fatores de tempo de execução, como status de rede, configuração do servidor de impressão e fatores de implementação do driver de impressora que são difíceis de prever ao gravar um aplicativo. Chamar essa função de um thread que gerencia a interação com a interface do usuário pode fazer com que o aplicativo pareça não responder.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Winspool.h (inclua Windows.h)
Biblioteca
Winspool.lib
DLL
Winspool.drv
Nomes Unicode e ANSI
EnumPrinterKeyW (Unicode) e EnumPrinterKeyA (ANSI)

Confira também

Impressão

Funções da API do Spooler de impressão

DeletePrinterDataEx

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx