GetPrinterDriverPackagePath function

Retrieves the path to the specified printer driver package on a print server.

Syntax

HRESULT GetPrinterDriverPackagePath(
  _In_    LPCTSTR pszServer,
  _In_    LPCTSTR pszEnvironment,
  _In_    LPCTSTR pszLanguage,
  _In_    LPCTSTR pszPackageID,
  _Inout_ LPTSTR  pszDriverPackageCab,
  _In_    DWORD   cchDriverPackageCab,
  _Out_   LPDWORD pcchRequiredSize
);

Parameters

pszServer [in]

A pointer to a constant, null-terminated string that specifies the name of the print server. Use NULL for the local computer.

pszEnvironment [in]

A pointer to a constant, null-terminated string that specifies the processor architecture (for example, Windows NT x86). This can be NULL.

pszLanguage [in]

A pointer to a constant, null-terminated string that specifies the Multilingual User Interface language for the driver being installed. This can be NULL.

pszPackageID [in]

A pointer to a constant, null-terminated string that specifies the ID of the driver package.

pszDriverPackageCab [in, out]

A pointer to a null-terminated string that specifies the path to the cabinet file for the driver package. This can be NULL. See Remarks.

cchDriverPackageCab [in]

The size, in characters, of the pszDriverPackageCab buffer. This can be NULL.

pcchRequiredSize [out]

A pointer to the required size of the pszDriverPackageCab buffer.

Return value

If the operation succeeds, the return value is S_OK, otherwise the HRESULT will contain an error code.

For more information about COM error codes, see Error Handling.

Remarks

Note

This is a blocking or synchronous function and might not return immediately. How quickly this function returns depends on run-time factors such as network status, print server configuration, and printer driver implementation factors that are difficult to predict when writing an application. Calling this function from a thread that manages interaction with the user interface could make the application appear to be unresponsive.

To obtain a value for cchDriverPackageCab, call the function with NULL as the value of pszDriverPackageCab. Use the value returned in pcchRequiredSize as the value of cchDriverPackageCab and call the function again.

The pszPackageID is typically obtained from a call to GetCorePrinterDrivers.

Requirements

Requirement Value
Minimum supported client
Windows Vista [desktop apps only]
Minimum supported server
Windows Server 2008 [desktop apps only]
Header
Winspool.h (include Windows.h)
Library
Winspool.lib
DLL
Spoolss.dll
Unicode and ANSI names
GetPrinterDriverPackagePathW (Unicode) and GetPrinterDriverPackagePathA (ANSI)

See also

Printing

Print Spooler API Functions