GetPrinterDriver 函式
GetPrinterDriver函式會擷取指定印表機的驅動程式資料。 如果驅動程式未安裝在本機電腦上, GetPrinterDriver 會加以安裝。
語法
BOOL GetPrinterDriver(
_In_ HANDLE hPrinter,
_In_ LPTSTR pEnvironment,
_In_ DWORD Level,
_Out_ LPBYTE pDriverInfo,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcbNeeded
);
參數
-
hPrinter [in]
-
應該擷取驅動程式資料的印表機控制碼。 使用 OpenPrinter 或 AddPrinter 函式來擷取印表機控制碼。
-
pEnvironment [in]
-
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 所指定。 緩衝區必須夠大,才能儲存結構成員所指向的字串。
若要判斷所需的緩衝區大小,請呼叫 GetPrinterDriver ,並將 cbBuf 設定為零。 GetPrinterDriver 失敗, GetLastError 會傳回ERROR_INSUFFICIENT_BUFFER,而 ERROR_INSUFFICIENT_BUFFER參數 會傳回保留結構陣列及其資料所需的緩衝區大小,以位元組為單位。
-
cbBuf [in]
-
pDriverInfo指向之陣列的大小,以位元組為單位。
-
azureNeeded [out]
-
值指標,這個值會接收函式成功時所複製的位元組數目,或 cbBuf 太小時所需的位元組數目。
傳回值
如果函式成功,則傳回值是非零值。
如果此函式失敗,則傳回值為零。
對於不存在的驅動程式,函式會傳回ERROR_UNKNOWN_PRINTER_DRIVER。
備註
注意
這是封鎖或同步函式,可能不會立即傳回。 此函式傳回的速度取決於執行時間因素,例如網路狀態、列印伺服器組態,以及難以在撰寫應用程式時預測的印表機驅動程式實作因素。 從管理與使用者介面互動的執行緒呼叫此函式,可能會讓應用程式看起來沒有回應。
DRIVER_INFO_2、DRIVER_INFO_3、DRIVER_INFO_4、DRIVER_INFO_5和DRIVER_INFO_6結構包含pDriverPath成員中印表機驅動程式的檔案名或完整路徑和檔案名。 應用程式可以使用路徑和檔案名來載入印表機驅動程式,方法是呼叫 LoadLibrary 函式 ,並提供路徑和檔案名作為單一引數。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限傳統型應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|
Unicode 與 ANSI 名稱 |
GetPrinterDriverW (Unicode) 和 GetPrinterDriverA (ANSI) |