Compartilhar via


Função GetPrinterDriver2

A função GetPrinterDriver2 recupera dados do driver para a impressora especificada. Se o driver não estiver instalado no computador local, GetPrinterDriver2 o instalará e exibirá qualquer interface do usuário para a janela especificada.

Sintaxe

BOOL GetPrinterDriver2(
  _In_opt_ HWND    hWnd,
  _In_     HANDLE  hPrinter,
  _In_opt_ LPTSTR  pEnvironment,
  _In_     DWORD   Level,
  _Out_    LPBYTE  pDriverInfo,
  _In_     DWORD   cbBuf,
  _Out_    LPDWORD pcbNeeded
);

Parâmetros

hWnd [in, opcional]

Um identificador da janela que será usado como a janela pai de qualquer interface do usuário, como uma caixa de diálogo, que o driver exibe durante a instalação. Se o valor desse parâmetro for NULL, a interface do usuário do driver ainda será exibida ao usuário durante a instalação, mas não terá uma janela pai.

hPrinter [in]

Um identificador para a impressora para a qual os dados do driver devem ser recuperados. Use a função OpenPrinter ou AddPrinter para recuperar um identificador de impressora.

pEnvironment [in, opcional]

Um ponteiro para uma cadeia de caracteres terminada em nulo que especifica o ambiente (por exemplo, Windows x86, Windows IA64 ou Windows x64). Se esse parâmetro for NULL, o ambiente atual do aplicativo de chamada e do computador cliente (não do aplicativo de destino e do servidor de impressão) será usado.

Nível [in]

A estrutura do driver da impressora retornada no buffer pDriverInfo . Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
1
DRIVER_INFO_1
2
DRIVER_INFO_2
3
DRIVER_INFO_3
4
DRIVER_INFO_4
5
DRIVER_INFO_5
6
DRIVER_INFO_6
8
DRIVER_INFO_8

pDriverInfo [out]

Um ponteiro para um buffer que recebe uma estrutura que contém informações sobre o driver, conforme especificado por Level. O buffer deve ser grande o suficiente para armazenar as cadeias de caracteres apontadas pelos membros da estrutura.

Para determinar o tamanho do buffer necessário, chame GetPrinterDriver2 com cbBuf definido como zero. GetPrinterDriver2 falha, GetLastError retorna ERROR_INSUFFICIENT_BUFFER e o parâmetro pcbNeeded retorna o tamanho, em bytes, do buffer necessário para manter a matriz de estruturas e seus dados.

cbBuf [in]

O tamanho, em bytes, da matriz na qual pDriverInfo aponta.

pcbNeeded [out]

Um ponteiro para um valor que recebe o número de bytes copiados se a função for bem-sucedida ou o número de bytes necessários se cbBuf for muito pequeno.

Valor retornado

Se a função for bem-sucedida, o valor retornado será um valor diferente de zero.

Se a função falhar, o valor retornado será zero. Para obter a status de retorno, chame GetLastError.

Comentários

As estruturas DRIVER_INFO_2, DRIVER_INFO_3, DRIVER_INFO_4, DRIVER_INFO_5, DRIVER_INFO_6 e DRIVER_INFO_8 contêm o nome do arquivo ou o caminho completo e o nome do arquivo do driver da impressora no membro pDriverPath . Um aplicativo pode usar o caminho e o nome do arquivo para carregar um driver de impressora chamando a função LoadLibrary e fornecendo o caminho e o nome do arquivo como o argumento único.

A versão ANSI dessa função, GetPrinterDriver2A não tem suporte e retorna ERROR_NOT_SUPPORTED.

Requisitos

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

Confira também

Impressão

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

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

EnumPrinterDrivers

GetPrinterDriver

OpenPrinter