extDeviceMode 函式 (winspool.h)
ExtDeviceMode 函式僅供與16位應用程式相容。 不需要此需求的印表機驅動程序應該改用 DocumentProperties 函式,如 Microsoft Windows SDK 檔中所述。
ExtDeviceMode 函式會擷取或修改指定圖形驅動程式的印表機初始化資訊,或顯示指定印表機的驅動程式提供的列印機組態屬性表。
語法
LONG ExtDeviceMode(
[in, optional] HWND hWnd,
[in, optional] HANDLE hInst,
[in, out] LPDEVMODEA pDevModeOutput,
[in, optional] LPSTR pDeviceName,
[in, optional] LPSTR pPort,
[in, optional] LPDEVMODEA pDevModeInput,
[in, optional] LPSTR pProfile,
DWORD fMode
);
參數
[in, optional] hWnd
列印機組態屬性表的父視窗句柄。
[in, optional] hInst
未使用。 處理設備驅動器的模組實例。
[in, out] pDevModeOutput
DEVMODE 結構的指標,該結構會接收 pDevModeInput 參數所指向之緩衝區中提供的列印機組態數據。
[in, optional] pDeviceName
NULL 終止字串的指標,其中包含顯示列印機組態屬性表之裝置的名稱。
[in, optional] pPort
NULL 終止字串的指標,其中包含裝置所連接的埠名稱,例如 LPT1。
[in, optional] pDevModeInput
操作系統用來初始化屬性表欄位之 DEVMODE 結構的指標。
只有在 fMode 參數中設定DM_IN_BUFFER旗標時,才會使用此參數。 如果未設定DM_IN_BUFFER,操作系統會使用印表機的預設 DEVMODE 結構。
[in, optional] pProfile
未使用。 NULL 終止字串的指標,其中包含初始化檔的名稱,其中會記錄和讀取初始化資訊。
fMode
指定函式執行的作業。 如果此參數為零, ExtDeviceMode 函式會傳回印表機驅動程式的 DEVMODE 結構所需的位元元組數目。 否則,這個參數可以設定為下列一或多個旗標值。
旗標 | 描述 |
---|---|
DM_COPY | 將驅動程式目前的設定寫入 pDevModeOutput 參數所指向的 DEVMODE 結構。 呼叫的應用程式必須配置足以包含資訊的緩衝區。 如果未設定此旗標, pDevModeOutput 可以是 NULL。 |
DM_IN_BUFFER | 將印表機驅動程式目前的印表設定與 pDevModeInput 參數所指向之 DEVMODE 結構中的設定合併。 這會在提示、複製或更新之前發生。 函式只會針對 DEVMODE 結構的 dmFields 成員所指定的成員更新結構。 在合併期間發生衝突時, pDevModeInput 所指向之 DEVMODE 結構中的設定會覆寫印表機驅動程式目前的列印設定。 |
DM_UPDATE | 顯示屬性表以允許使用者修改印表機屬性,然後將驅動程式目前的「每位使用者」設定寫入登錄中的使用者 Hive。 |
傳回值
如果 wMode 參數為零,函式會傳回包含印表機驅動程式初始化數據所需的 DEVMODE 結構大小,以位元組為單位。 請注意,如果印表機驅動程式將私人數據附加至 結構,這個值可能會大於 DEVMODE 結構的大小。 如果函式顯示初始化對話框,傳回值為IDOK或IDCANCEL,視使用者選擇的按鈕而定。 如果函式未顯示對話框且成功,則傳回值為IDOK。 如果函式失敗,傳回值會小於零。
備註
ExtDeviceMode 函式會呼叫 DocumentProperties 函式 (Windows SDK 檔) 說明,以顯示屬性表,讓用戶選取印表機選項,例如紙張大小、紙張方向和輸出品質。 為 Windows 3.x 和 Windows 9x 撰寫的印表機驅動程式會使用此函式。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | winspool.h (包含 Winspool.h) |
程式庫 | Winspool.lib |
Dll | WinSpool.drv |