印刷機能の Win32 API サポート
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、「印刷サポート アプリの設計ガイド」を参照してください。
Windows Vista 印刷サブシステムは、Windows Presentation Foundation (WPF) アプリケーションで GDI ベースの印刷ドライバーを使用できるようにする互換性サポートを提供し、Microsoft Win32 ベースのアプリケーションで XPSDrv 印刷ドライバーを使用できるようにします。 この互換性は、ソフトウェア shim のレイヤーによって提供されます。 Shim は、互換性のないソフトウェアが相互運用できるように、データに対して変換操作を実行するソフトウェア モジュールです。 次の図は、印刷機能のこの実装のデータ パスを示しています。
印刷機能のデータ フローを示す図。
XPSDrv 印刷ドライバーと GDI ベースのバージョン 3 の両方の印刷ドライバーは、DrvDeviceCapabilities 関数をサポートしています。 Win32 アプリケーションが DrvDeviceCapabilities または GetDevCap 関数を呼び出すと、印刷サブシステムは DrvDeviceCapabilities を呼び出して、印刷ドライバーからデバイス機能情報を収集します。
WPF アプリケーションが印刷ドライバーから PrintCapabilities ドキュメントを要求すると、印刷サブシステムは次のいずれかを実行します。
印刷ドライバーが IPrintTicketProvider インターフェイスをサポートしている場合、印刷サブシステムは、IPrintTicketProvider::GetPrintCapabilities メソッドを使用して PrintCapabilities ドキュメントの印刷ドライバーに対してクエリを実行します。
印刷ドライバーが IPrintTicketProvider インターフェイスをサポートしていない場合、印刷チケット マネージャーは、印刷ドライバーの DrvDeviceCapabilities 関数を照会し、返された情報を使用して、アプリケーションに返される PrintTicket ドキュメントを作成します。
IPrintTicketProvider インターフェイスが Microsoft の印刷ドライバーでサポートされる方法の詳細については、「Windows Vista のプリンター ドライバーとプラグイン インターフェイスの設計」を参照してください。