Función GetPrinterDriver
La función GetPrinterDriver recupera los datos del controlador de la impresora especificada. Si el controlador no está instalado en el equipo local, GetPrinterDriver lo instala.
Sintaxis
BOOL GetPrinterDriver(
_In_ HANDLE hPrinter,
_In_ LPTSTR pEnvironment,
_In_ DWORD Level,
_Out_ LPBYTE pDriverInfo,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
Parámetros
-
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]
-
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 el servidor de impresión).
-
Nivel [in]
-
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 GetPrinterDriver con cbBuf establecido en cero. GetPrinterDriver 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.
-
pcbNeeded [ 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 un controlador no existente, la función devuelve ERROR_UNKNOWN_PRINTER_DRIVER.
Comentarios
Nota:
Se trata de una función de bloqueo o sincrónica que podría no devolverse inmediatamente. La rapidez con la que devuelve esta función depende de factores en tiempo de ejecución, como el estado de red, la configuración del servidor de impresión y los factores de implementación del controlador de impresora que son difíciles de predecir al escribir una aplicación. Llamar a esta función desde un subproceso que administra la interacción con la interfaz de usuario podría hacer que la aplicación parezca que no responde.
Las estructuras DRIVER_INFO_2, DRIVER_INFO_3, DRIVER_INFO_4, DRIVER_INFO_5 y DRIVER_INFO_6 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.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Biblioteca |
|
Archivo DLL |
|
Nombres Unicode y ANSI |
GetPrinterDriverW (Unicode) y GetPrinterDriverA (ANSI) |