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]
-
應該擷取驅動程式資料的印表機控制碼。 使用 OpenPrinter 或 AddPrinter 函式來擷取印表機控制碼。
-
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_2、DRIVER_INFO_3、DRIVER_INFO_4、DRIVER_INFO_5、DRIVER_INFO_6和DRIVER_INFO_8結構包含pDriverPath成員中印表機驅動程式的完整路徑和檔案名。 應用程式可以使用路徑和檔案名來載入印表機驅動程式,方法是呼叫 LoadLibrary 函式並提供路徑和檔案名作為單一引數。
不支援此函式的 ANSI 版本 GetPrinterDriver2A ,並傳回 ERROR_NOT_SUPPORTED。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2008 [僅限傳統型應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|
Unicode 與 ANSI 名稱 |
GetPrinterDriver2W (Unicode) |