共用方式為


GetPrinterDriver2 函式

GetPrinterDriver2函式會擷取指定印表機的驅動程式資料。 如果驅動程式未安裝在本機電腦上, GetPrinterDriver2 會安裝驅動程式,並將任何使用者介面顯示到指定的視窗。

語法

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
);

參數

hWnd [in, optional]

視窗的控制碼,將做為任何使用者介面的父視窗,例如驅動程式在安裝期間顯示的對話方塊。 如果此參數的值是 Null,驅動程式的使用者介面仍會在安裝期間向使用者顯示,但不會有父視窗。

hPrinter [in]

應該擷取驅動程式資料的印表機控制碼。 使用 OpenPrinterAddPrinter 函式來擷取印表機控制碼。

pEnvironment [in, optional]

Null 終止字串的指標,指定環境 (例如 Windows x86、Windows IA64 或 Windows x64) 。 如果此參數為 Null,則會使用呼叫應用程式和用戶端電腦的目前環境, (不是目的地應用程式和列印伺服器) 。

層級 [in]

pDriverInfo緩衝區中傳回的印表機驅動程式結構。 此參數可以是下列其中一個值。

意義
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]

緩衝區的指標,接收包含驅動程式相關資訊的結構,如 Level所指定。 緩衝區必須夠大,才能儲存結構成員所指向的字串。

若要判斷所需的緩衝區大小,請呼叫 GetPrinterDriver2 並將 cbBuf 設定為零。 GetPrinterDriver2 失敗, GetLastError 會傳回 ERROR_INSUFFICIENT_BUFFER,而 ERROR_INSUFFICIENT_BUFFER 參數會傳回保存結構和其資料陣列所需的緩衝區大小,以位元組為單位。

cbBuf [in]

pDriverInfo指向之陣列的大小,以位元組為單位。

vmNeeded [out]

如果函式成功,或 cbBuf 太小,則會接收所複製位元組數目的值指標。

傳回值

如果函式成功,則傳回值是非零值。

如果此函式失敗,則傳回值為零。 若要取得傳回狀態,請呼叫 GetLastError

備註

DRIVER_INFO_2DRIVER_INFO_3DRIVER_INFO_4DRIVER_INFO_5DRIVER_INFO_6DRIVER_INFO_8結構包含pDriverPath成員中印表機驅動程式的完整路徑和檔案名。 應用程式可以使用路徑和檔案名來載入印表機驅動程式,方法是呼叫 LoadLibrary 函式並提供路徑和檔案名作為單一引數。

不支援此函式的 ANSI 版本 GetPrinterDriver2A ,並傳回 ERROR_NOT_SUPPORTED

規格需求

需求
最低支援的用戶端
Windows Vista [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2008 [僅限傳統型應用程式]
標頭
Winspool.h (包含 Windows.h)
程式庫
Winspool.lib
DLL
Winspool.drv
Unicode 與 ANSI 名稱
GetPrinterDriver2W (Unicode)

另請參閱

列印

列印多工緩衝處理器 API 函式

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

EnumPrinterDrivers

GetPrinterDriver

OpenPrinter