Compartir a través de


Función GetPrinterDriver2

La función GetPrinterDriver2 recupera los datos del controlador de la impresora especificada. Si el controlador no está instalado en el equipo local, GetPrinterDriver2 lo instala y muestra cualquier interfaz de usuario en la ventana especificada.

Sintaxis

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]

Identificador de la ventana que se usará como ventana primaria de cualquier interfaz de usuario, como un cuadro de diálogo, que el controlador muestra durante la instalación. Si el valor de este parámetro es NULL, la interfaz de usuario del controlador se seguirá mostrando al usuario durante la instalación, pero no tendrá una ventana primaria.

hPrinter [in]

Identificador de la impresora para la que se deben recuperar los datos del controlador. Use la función OpenPrinter o AddPrinter para recuperar un identificador de impresora.

pEnvironment [in, opcional]

Puntero a una cadena terminada en null que especifica el entorno (por ejemplo, Windows x86, Windows IA64 o Windows x64). Si este parámetro es NULL, se usa el entorno actual de la aplicación que realiza la llamada y la máquina cliente (no de la aplicación de destino y del servidor de impresión).

Nivel [in]

La estructura del controlador de impresora devuelta en el búfer pDriverInfo . Este parámetro puede ser uno de los valores siguientes.

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]

Puntero a un búfer que recibe una estructura que contiene información sobre el controlador, según lo especificado por Level. El búfer debe ser lo suficientemente grande como para almacenar las cadenas a las que apuntan los miembros de la estructura.

Para determinar el tamaño de búfer necesario, llame a GetPrinterDriver2 con cbBuf establecido en cero. GetPrinterDriver2 produce un error, GetLastError devuelve ERROR_INSUFFICIENT_BUFFER y el parámetro pcbNeeded devuelve el tamaño, en bytes, del búfer necesario para contener la matriz de estructuras y sus datos.

cbBuf [in]

Tamaño, en bytes, de la matriz en la que pDriverInfo apunta.

pcbNeededed [out]

Puntero a un valor que recibe el número de bytes copiados si la función se realiza correctamente o el número de bytes necesarios si cbBuf es demasiado pequeño.

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es un valor distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener el estado devuelto, llame a GetLastError.

Comentarios

Las estructuras DRIVER_INFO_2, DRIVER_INFO_3, DRIVER_INFO_4, DRIVER_INFO_5, DRIVER_INFO_6 y DRIVER_INFO_8 contienen el nombre de archivo o la ruta de acceso completa y el nombre de archivo del controlador de impresora en el miembro pDriverPath . Una aplicación puede usar la ruta de acceso y el nombre de archivo para cargar un controlador de impresora llamando a la función LoadLibrary y proporcionando la ruta de acceso y el nombre de archivo como argumento único.

La versión ANSI de esta función, GetPrinterDriver2A no se admite y devuelve ERROR_NOT_SUPPORTED.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado
Winspool.h (incluye Windows.h)
Biblioteca
Winspool.lib
Archivo DLL
Winspool.drv
Nombres Unicode y ANSI
GetPrinterDriver2W (Unicode)

Consulte también

Impresión

Funciones de la API del administrador de trabajos de impresión

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

EnumPrinterDrivers

GetPrinterDriver

OpenPrinter