次の方法で共有


プリンター ドライバーからプラグイン インターフェイスにアクセスする

重要

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

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

UI プラグインまたはレンダリング プラグインがインストールされている場合、プリンター ドライバー (Unidrv または Pscript5) は、次の呼び出しシーケンスを使用して、プラグインの IPrintOemUIIPrintOemUI2IPrintOemUniIPrintOemUni2IPrintOemUni3IPrintOemPS、または IPrintOemPS2 COM インターフェイスへのアクセスを取得します。

  1. ドライバーは LoadLibrary を呼び出してプラグイン DLL を読み込み、プラグインの DllMain 関数が呼び出されます。

  2. ドライバーは、プラグインの DllGetClassObject 関数を呼び出し、プラグインの IClassFactory インターフェイスへのポインターを返します。

  3. ドライバーは、IClassFactory インターフェイスの CreateInstance メソッドを呼び出し、IID_IUnknown のインターフェイス識別子を指定します。これにより、メソッドはプラグインの IPrintOemUIIPrintOemUI2IPrintOemUniIPrintOemUni2IPrintOemUni3IPrintOemPS、または IPrintOemPS2 インターフェイスのインスタンスを作成し、インスタンスの IUnknown インターフェイスへのポインターを返します。

  4. ドライバーは、IUnknown インターフェイスの QueryInterface メソッドを呼び出して、プラグインでサポートされている IPrintOemUIIPrintOemUI2IPrintOemUniIPrintOemUni2IPrintOemUni3IPrintOemPS、または IPrintOemPS2 インターフェイスのバージョンを決定し、サポートされているインターフェイスへのポインターを受け取ります。

  5. ドライバーは、プラグイン インターフェイスの PublishDriverInterface メソッドを呼び出して、ドライバーの IPrintOemDriverUI、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS、または IPrintCorePS2 インターフェイスをプラグインで使用できるようにします。

  6. プラグインが IPrintOemUni インターフェイスを実装している場合、ドライバーは IPrintOemUni::GetImplementedMethod を呼び出して、実装されているインターフェイス メソッドを特定します。 同様に、プラグインが IPrintOemUni2 インターフェイスを実装している場合、ドライバーは同じ目的で IPrintOemUni2::GetImplementedMethod を呼び出します。