ドライバー提供のプロパティ シート ページを変更する
重要
最新の印刷プラットフォームは、Windows がプリンターと通信するための推奨手段です。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、 最新の印刷プラットフォーム および 印刷サポート アプリ設計ガイドを参照してください。
UI プラグインは、 IPrintOemUI::CommonUIProp メソッドとコールバック関数を実装 することで、Unidrv 提供または Pscript5 提供の プロパティ シート ページを変更できます。
UI プラグインは、 IPrintOemUI::CommonUIProp メソッドを使用して、 CPSUI がプリンター プロパティ シートの デバイス 設定 ページまたはドキュメント プロパティ シートの レイアウト、 用紙/品質、および 詳細 ページ内で追加、削除、または置換できるオプション項目のセットを指定します。
OEMCUIPCALLBACK 型のコールバック関数は、カスタマイズされたオプション項目に対するユーザー変更を処理するために使用されます。
オプション項目の追加
UI プラグインは、ドライバーによって提供される OPTITEM 構造体の配列に配置することによって、新しいオプション項目を記述する必要があります。 ドライバーのプリンター インターフェイス DLL は、UI プラグインの IPrintOemUI::CommonUIProp メソッドを 2 回呼び出します。 メソッドを初めて呼び出す場合は、必要な OPTITEM 構造体の数を返す必要があります。 ドライバーは、OPTITEM 配列の領域を割り当て、 OEMCUIPPARAM 構造体内の配列を記述します。 ドライバーは IPrintOemUI::CommonUIProp を再度呼び出し、OEMCUIPPARAM 構造体のアドレスを指定するため、メソッドはオプションの説明を含む OPTITEM 構造体を読み込むことができます。
オプション項目の削除
Unidrv または Pscript5 によって提供されるプロパティ シート ページからオプションを削除するには、UI プラグインの IPrintOemUI::CommonUIProp メソッドは、 OEMCUIPPARAM 構造体が指す OPTITEM 構造体の配列を走査できます。 プロパティ シートから削除するオプションごとに、OPTITEM 構造体の OPTIF_HIDE フラグを設定できます。 (これは実際にはオプションを削除しないことに注意してください。ユーザーが既定値を変更できないように、オプションはユーザーに表示されません)。
オプション項目の置換
Unidrv または Pscript によって提供されるプロパティ シート ページのオプションを置き換えるには、前の オプション項目の削除 セクションに示されている手順に従って既存のオプション項目を削除し、前の オプション項目の追加 セクションの指示に従って、古いオプション項目を置き換える新しいオプション項目を作成する必要があります。
カスタマイズされたオプション値に対する変更の処理
カスタマイズされたオプション項目に対するユーザー変更を処理するには、少なくとも 1 つのコールバック関数を指定する必要があります。 ドキュメント プロパティ シートとプリンター プロパティ シートの両方のオプションを処理する 1 つのコールバック関数を指定することも、それぞれに個別の関数を指定することもできます。 これらのコールバックは OEMCUIPCALLBACK 型です。
コールバック関数は、そのアドレスを OEMCUIPPARAM 構造体に配置することによって指定されます。 UI プラグインは、この構造体のアドレスを IPrintOemUI::CommonUIProp メソッドへの入力として受け取ります。
ユーザーがプリンター プロパティ シートまたはドキュメント プロパティ シートを開き、オプションを変更すると、 CPSUI はプリンター ドライバーのプリンター インターフェイス DLL を呼び出します。 この DLL は、独自の OPTITEM 構造体に含まれるオプション値を処理します。 その後、各 UI プラグインについて、プリンター インターフェイス DLL は、 IPrintOemUI::CommonUIPropで以前に指定された OEMCUIPCALLBACK 型のコールバック関数を呼び出します。