ドライバー提供のプロパティ シート ページを置換する
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。
IPrintCoreUI2 COM インターフェイスには、コア ドライバーの標準 UI ページを完全に置き換える場合に、Windows XP 以降のバージョンの Windows オペレーティング システムで実行されている Pscript5 UI プラグインで使用する必要がある 4 つのメソッドが用意されています。 (コア ドライバーという用語は、Unidrv または Pscript5 プリンター ドライバーを指します)。これらのメソッドは次のとおりです。
IPrintCoreUI2::EnumConstrainedOptions
これらのメソッドは、UI プラグインの IPrintOemUI::DocumentPropertySheets および IPrintOemUI::DevicePropertySheets メソッドとそのプロパティ シート コールバック ルーチンの実行中にのみサポートされます。 UI プラグインでは、独自のユーザー インターフェイスを表示するために、これらのメソッドがサポートされています。 サポートされていない場合、これらのメソッドは E_NOTIMPL を返します。
コア ドライバーは、DrvDocumentPropertySheets と DrvDevicePropertySheets の 2 つの状況で独自のプロパティ シート UI を表示します。 最初のメソッドは、ドキュメントにのみ適用されるプロパティ (ドキュメント固定プロパティ) を表示し、2 番目のメソッドはデバイスに適用されるプロパティ (デバイス固定またはプリンター固定プロパティ) を表示します。
コア ドライバーは、処理するプロパティ シートの種類 (つまり、ドキュメント固定またはプリンター固定モード) を記憶します。 コア ドライバーは、その状態情報を UI インスタンス用に作成する構造体 (OEMUIOBJ 構造体) に保存します。 コア ドライバーはプラグインのインターフェイス メソッドを呼び出すときに、OEMUIOBJ 構造体へのポインターを渡します。これにより、プラグインが IPrintCoreUI2::EnumConstrainedOptions、IPrintCoreUI2::GetOptions、IPrintCoreUI2::SetOptions、または IPrintCoreUI2::WhyConstrained からコア ドライバーにコールバックすると、これらのメソッドはポインターをコア ドライバーに返し、モードを決定できるようになります。
IPrintCoreUI2::EnumConstrainedOptions、IPrintCoreUI2::SetOptions、IPrintCoreUI2::WhyConstrained の場合、IPrintOemUI::D ocumentPropertySheets またはそのプロパティ シート コールバック ルーチンの実行中にはドキュメント固定機能のみがサポートされ、IPrintOemUI::DevicePropertySheets またはそのプロパティ シート コールバック ルーチンの実行中はプリンター固定機能のみがサポートされます。 IPrintCoreUI2::SetOptions の場合、固定が現在の固定モードと一致しない機能は無視する必要があります。 IPrintCoreUI2::EnumConstrainedOptions または IPrintCoreUI2::WhyConstrained が、現在の固定モードと一致しない機能に対して呼び出された場合、メソッドは E_INVALIDARG を返す必要があります。
IPrintCoreUI2::GetOptions の場合、ドキュメント固定モード (つまり、IPrintOemUI::DocumentPropertySheets またはそのプロパティ シートコールバック ルーチンが実行されている場合) ではドキュメント固定機能とプリンター固定機能の両方がサポートされますが、プリンター固定モード (IPrintOemUI::DevicePropertySheets またはそのプロパティ シートコールバック ルーチンが実行されている場合) ではプリンター固定機能のみがサポートされます 。