搭配印表機驅動程式使用 CPSUI
重要
新式列印平臺是 Windows 與印表機通訊的慣用方法。 我們建議您使用Microsoft的 IPP 收件匣類別驅動程式,以及列印支援應用程式 (PSA),自定義 Windows 10 和 11 中的列印體驗,以進行印表機裝置開發。
如需詳細資訊,請參閱 新式列印平臺 和 列印支援應用程式設計指南。
印表後台處理程式與 印表機介面 DLL 搭配使用 CPSUI 來建立印表檔和印表機裝置的屬性表頁面。 當應用程式 (例如 Microsoft Word) 顯示列印檔的屬性表時,會涉及下列步驟:
應用程式會呼叫列印多任務緩衝處理程式的 DocumentProperties 函式,並指定要列印檔的印表機。
列印後台處理程式會呼叫 CPSUI 的進入點函式 CommonPropertySheetUI,並指定內部 PFNPROPSHEETUI 型別回呼函式。
CPSUI 會呼叫多任務緩衝處理程式的 PFNPROPSHEETUI 型別回呼函式。
多任務緩衝處理程式的 PFNPROPSHEETUI 型別回呼函式會呼叫 CPSUI 的 ComPropSheet 函式(具有CPSFUNC_ADD_PFNPROPSHEETUI函式程式代碼),以通知 CPSUI 適當列印機介面 DLL 的 DrvDocumentPropertySheets 函式的位址。
CPSUI 會呼叫印表機介面 DLL 的 DrvDocumentPropertySheets 函式。
印表機介面 DLL 的 DrvDocumentPropertySheets 函式會呼叫 CPSUI 的 ComPropSheet 函式(通常是使用CPSFUNC_ADD_PCOMPROPSHEETUI函式程式代碼),以提供 CPSUI 與屬性表頁面描述和頁面事件回呼。
CPSUI 的 ComPropSheet 函式會呼叫 CreatePropertySheetPage (如 Windows SDK 檔中所述),以建立印表機介面 DLL 所指定的屬性表頁面。 CPSUI 接著會呼叫 PropertySheet 以顯示屬性表頁面。
下圖說明這些步驟。
當應用程式使用者周遊屬性表頁面並修改選項值時,操作系統會通知 CPSUI 頁面事件和 CPSUI,接著呼叫印表機介面 DLL 所提供的頁面事件回呼。 頁面事件回呼會視需要處理頁面事件,並在內部儲存新選取的選項值。
當使用者按兩下 [確定 ] 或 [取消 ] 按鈕來關閉屬性表時,CPSUI 會終結頁面,並讓 CommonPropertySheetUI 函式返回列印後台處理程式,然後將控件傳回給應用程式。
當應用程式顯示印表機裝置的屬性表而非列印檔時,會遵循相同的步驟,但應用程式會呼叫多任務緩衝處理程式的 PrinterProperties 函式,而多任務緩衝處理器會將印表機介面 DLL 的 DrvDevicePropertySheets 函式的地址傳遞給 CPSUI。