インターフェイスを公開する
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください。
プラグインは通常、公開と呼ばれるメカニズムによってコア ドライバーの動作を実装するオブジェクトのインスタンスを受け取ります。 IPrintCoreHelper、IPrintCoreHelperPS、および IPrintCoreHelperUni ヘルパー インターフェイスは、わずかに異なるほとんど同じモデルを使用して公開されます。
次のリストは、Unidrv と Pscript5 の両方について、ユーザー インターフェイス (UI) およびレンダー モジュールでオブジェクトが公開される順序をまとめたものです。 4 つのモジュールごとに、リスト内の番号はオブジェクトが公開される順序を示し、記載されている COM インターフェイスはオブジェクトが実装するインターフェイスを示します。
どのモジュールでも、ドライバーはポインターを保存し、そのオブジェクトに対して AddRef メソッドを呼び出すことによって、公開されたオブジェクトの 1 つだけを保持する必要があります。 プラグインはオブジェクトへの参照を保存した後、S_OK を返す必要があります。 その後、コア ドライバーはインターフェイスの公開を停止します。 このモデルは、以前の公開メカニズムから大きく変わっていません。
UI コンテキストでは、オブジェクトは、クラス識別子が CLSID_OEMUI のクラスの IPrintOemUI インターフェイスに公開されます。 レンダリング コンテキストでは、オブジェクトは IPrintOemPS インターフェイスまたは IPrintOemUni インターフェイスに公開されます。
次のリストでアスタリスク (*) でマークされているオブジェクトは、IPrintOemPrintTicketProvider インターフェイスに公開されます。
Unidrv UI モジュールの公開順序
IUnknown と *IPrintCoreHelper と IPrintCoreHelperUni
IUnknown と IPrintOemDriverUI
Unidrv レンダー モジュールの公開順序
IUnknown と IPrintCoreHelper と IPrintCoreHelperUni
IUnknown と IPrintOemDriverUni
Pscript5 UI モジュールの公開順序
IUnknown と *IPrintCoreHelper と IPrintCoreHelperPS
IUnknown と IPrintCoreUI2
IUnknown と IPrintOemDriverUI
Pscript5 レンダー モジュールの公開順序
IUnknown と IPrintCoreHelper と IPrintCoreHelperPS
IUnknown と IPrintCorePS2