GetPrinterDriver


BOOL GetPrinterDriver(
HANDLE  hPrinter,   /* printer object                        */
LPTSTR  lpszEnv,    /* address of environment                */
DWORD   dwLevel,    /* structure level                       */
LPBYTE  lpbDrvInfo, /* address of structure array            */
DWORD   cbBuf,      /* size, in bytes, of array              */
LPDWORD lpdwNeeded  /* addr. of variable with count of bytes */
                    /* retrieved (or required)               */
);

Retrieves driver data for the specified printer.

hPrinter

Identifies the printer for which to retrieve driver data.

lpszEnv

Points to a null-terminated string that specifies the environment. For example, "Windows 96 x86" specifies Windows 96 running on an Intel(r) 80386 or 80486 processor. If this string is NULL, the current environment of the caller/client (not of the destination/server) is used.

dwLevel

Specifies the version of the structure to which lpbDrvInfo points. This value must be either 1 or 2.

lpbDrvInfo

Points to either a DRIVER_INFO_1 or a DRIVER_INFO_2 structure. If dwLevel is 1, this array receives a DRIVER_INFO_1 structure; if dwLevel is 2, this array receives a DRIVER_INFO_2 structure.

cbBuf

Specifies the size, in bytes, of the array at which lpbDrvInfo points.

lpdwNeeded

Points to a value that specifies the number of bytes copied if the function succeeds or the number of bytes required if cbBuf is too small.


The printer handle hPrinter is obtained by calling the OpenPrinter function.

The DRIVER_INFO_2 structure contains a full path and filename that specifies the location of the printer driver. An application can use the path and filename to load a printer driver by calling the LoadLibrary function and supplying the path and filename as the single argument.