インターフェイスを公開する

重要

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

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

プラグインは通常、公開と呼ばれるメカニズムによってコア ドライバーの動作を実装するオブジェクトのインスタンスを受け取ります。 IPrintCoreHelperIPrintCoreHelperPS、および IPrintCoreHelperUni ヘルパー インターフェイスは、わずかに異なるほとんど同じモデルを使用して公開されます。

次のリストは、Unidrv と Pscript5 の両方について、ユーザー インターフェイス (UI) およびレンダー モジュールでオブジェクトが公開される順序をまとめたものです。 4 つのモジュールごとに、リスト内の番号はオブジェクトが公開される順序を示し、記載されている COM インターフェイスはオブジェクトが実装するインターフェイスを示します。

どのモジュールでも、ドライバーはポインターを保存し、そのオブジェクトに対して AddRef メソッドを呼び出すことによって、公開されたオブジェクトの 1 つだけを保持する必要があります。 プラグインはオブジェクトへの参照を保存した後、S_OK を返す必要があります。 その後、コア ドライバーはインターフェイスの公開を停止します。 このモデルは、以前の公開メカニズムから大きく変わっていません。

UI コンテキストでは、オブジェクトは、クラス識別子が CLSID_OEMUI のクラスの IPrintOemUI インターフェイスに公開されます。 レンダリング コンテキストでは、オブジェクトは IPrintOemPS インターフェイスまたは IPrintOemUni インターフェイスに公開されます。

次のリストでアスタリスク (*) でマークされているオブジェクトは、IPrintOemPrintTicketProvider インターフェイスに公開されます。

Unidrv UI モジュールの公開順序

  1. IUnknown と *IPrintCoreHelperIPrintCoreHelperUni

  2. IUnknownIPrintOemDriverUI

Unidrv レンダー モジュールの公開順序

  1. IUnknownIPrintCoreHelperIPrintCoreHelperUni

  2. IUnknownIPrintOemDriverUni

Pscript5 UI モジュールの公開順序

  1. IUnknown と *IPrintCoreHelperIPrintCoreHelperPS

  2. IUnknownIPrintCoreUI2

  3. IUnknownIPrintOemDriverUI

Pscript5 レンダー モジュールの公開順序

  1. IUnknownIPrintCoreHelperIPrintCoreHelperPS

  2. IUnknownIPrintCorePS2