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