次の方法で共有


プリンター ドライバーで CPSUI を使用する

重要

プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。

詳細については、プリントサポートアプリデザインガイド.

印刷スプーラーは、プリンター インターフェイス DLL と組み合わせて CPSUI を使用して、印刷文書と印刷デバイスのプロパティ シート ページを作成します。 次の手順は、アプリケーション (Microsoft Word など) で印刷ドキュメントのプロパティ シートを表示する場合に関係するものです:

  1. アプリケーションが 印刷スプーラーの DocumentProperties 関数を呼び出し、どのプリンターにドキュメントを印刷するかを指定します。

  2. 印刷スプーラーは CPSUI のエントリ ポイント関数 CommonPropertySheetUI を呼び出し、内部 PFNPROPSHEETUI 型のコールバック関数を指定します。

  3. CPSUI は、スプーラーの PFNPROPSHEETUI 型のコールバック関数を呼び出します。

  4. スプーラーの PFNPROPSHEETUI 型のコールバック関数は、CPSUI の ComPropSheet 関数 (CPSFUNCCPSFUNC_ADD_PFNPROPSHEETUI 関数コードを使用) を呼び出して、適切なプリンター インターフェイス DLL の DrvDocumentPropertySheets 関数のアドレスを CPSUI に通知します。

  5. CPSUI は、プリンター インターフェイス DLL の DrvDocumentPropertySheets 関数を呼び出します。

  6. プリンター インターフェイス DLL の DrvDocumentPropertySheets 関数は、CPSUI の ComPropSheet 関数 (通常は CPSFUNCCPSFUNC_ADD_PCOMPROPSHEETUI 関数コードを使用) を呼び出して、CPSUI にプロパティ シート ページの説明とページ イベント コールバックを提供します。

  7. CPSUI の ComPropSheet 関数は、CreatePropertySheetPage (Windows SDK ドキュメントで説明) を呼び出して、プリンター インターフェイス DLL で指定されたプロパティ シート ページを作成します。 次に、CPSUI は PropertySheet を呼び出して、プロパティ シート ページを表示します。

これらの手順を次の図に示します。

diagram illustrating the modules involved in displaying a property sheet.

アプリケーションの利用者によってプロパティ シートページのオプション値が変更されると、オペレーティング システムは CPSUI にページ イベントを通知し、CPSUI を呼び出し、プリンター インターフェイス DLL によって提供されるページ イベント コールバックを呼び出します。 ページ イベント コールバックは、ページ イベントを処理し、必要に応じて、新しく選択したオプション値を内部的に格納します。

ユーザーが [OK] または [キャンセル] ボタンをクリックしてプロパティ シートを閉じると、CPSUI はページを破棄し、CommonPropertySheetUI 関数が印刷スプーラーに戻り、制御がアプリケーションに返されます。

アプリケーションが印刷ドキュメントではなくプリンター デバイスのプロパティ シートを表示する場合も同じ手順に従います。ただし、アプリケーションがスプーラーの PrinterProperties 関数を呼び出し、スプーラーがプリンター インターフェイス DLL の DrvDevicePropertySheets 関数のアドレスを CPSUI に渡す点が異なります。