共用方式為


修改驅動程式提供的屬性表頁面

重要

新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。

如需詳細資訊,請參閱 新式列印平臺列印支援應用程式設計指南

UI 外掛程式可以藉由實 作 IPrintOemUI::CommonUIProp 方法和回呼函式來修改 Unidrv 提供或 Pscript5 提供的屬性表頁面。

UI 外掛程式會使用 IPrintOemUI::CommonUIProp 方法來指定一組選項專案, CPSUI 可以在印表機屬性表的 [裝置設定 ] 頁面或文件屬性表 的 [版面配置]、 [紙張/品質] 和 [進階 ] 頁面中新增、移除或取代。

OEMCUIPCALLBACK 類型的回調函式可用來處理自定義選項專案的使用者修改。

新增選項專案

您的UI外掛程式必須藉由將它們放在驅動程式提供的OPTITEM結構數位中,來描述新的選項專案。 驅動程式的印表機介面 DLL 會呼叫 UI 外掛程式的 IPrintOemUI::CommonUIProp 方法兩次。 第一次呼叫 方法時,它應該會傳回所需的 OPTITEM 結構數目。 驅動程式會配置 OPTITEM 數位列的空間,並描述 OEMCUIPPARAM 結構中的陣列。 驅動程式會再次呼叫 IPrintOemUI::CommonUIProp ,並提供 OEMCUIPPARAM 結構的位址,因此方法可以使用選項描述載入 OPTITEM 結構。

拿掉選項專案

若要從 Unidrv 或 Pscript5 提供的屬性表頁面中移除選項,UI 外掛程式的 IPrintOemUI::CommonUIProp 方法可以周遊 OEMCUIPPARAM 結構所指向的 OPTITEM 結構數組。 針對您想要從屬性表移除的每個選項,您可以設定 OPTITEM 結構的 OPTIF_HIDE 旗標。 (請注意,這實際上不會移除選項;它會隱藏用戶的選項,讓使用者無法變更其預設值。

取代選項專案

若要取代 Unidrv 或 Pscript 所提供之屬性表頁面中的選項,您應該遵循上述 [移除選項專案] 區段底下所示的指示來移除現有的選項專案,然後遵循上述 [新增選項專案] 區段底下的指示來建立新的選項專案來取代舊的選項專案。

處理自訂選項值的修改

若要處理自定義選項項目的使用者修改,您必須提供至少一個回呼函式。 您可以指定單一回呼函式來處理檔屬性表和印表機屬性表的選項,也可以為每個函式指定個別的函式。 這些回呼的類型為 OEMCUIPCALLBACK

回呼函式是藉由將其位址放在 OEMCUIPPARAM 結構中來指定。 UI 外掛程式會接收此結構的位址做為其 IPrintOemUI::CommonUIProp 方法的輸入

當使用者開啟印表機屬性表或文件屬性表並修改選項時, CPSUI 會呼叫印表機驅動程式的印表機介面 DLL。 此 DLL 會處理包含在其本身 OPTITEM 結構中的選項值。 然後,針對每個UI外掛程式,印表機介面 DLL 會呼叫 IPrintOemUI::CommonUIProp 先前指定的 OEMCUIPCALLBACK 型別回呼函式