プリンター ドライバーからプラグイン インターフェイスにアクセスする
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。
UI プラグインまたはレンダリング プラグインがインストールされている場合、プリンター ドライバー (Unidrv または Pscript5) は、次の呼び出しシーケンスを使用して、プラグインの IPrintOemUI、IPrintOemUI2、IPrintOemUni、IPrintOemUni2、IPrintOemUni3、IPrintOemPS、または IPrintOemPS2 COM インターフェイスへのアクセスを取得します。
ドライバーは LoadLibrary を呼び出してプラグイン DLL を読み込み、プラグインの
DllMain
関数が呼び出されます。ドライバーは、プラグインの
DllGetClassObject
関数を呼び出し、プラグインの IClassFactory インターフェイスへのポインターを返します。ドライバーは、IClassFactory インターフェイスの CreateInstance メソッドを呼び出し、IID_IUnknown のインターフェイス識別子を指定します。これにより、メソッドはプラグインの IPrintOemUI、IPrintOemUI2、IPrintOemUni、IPrintOemUni2、IPrintOemUni3、IPrintOemPS、または IPrintOemPS2 インターフェイスのインスタンスを作成し、インスタンスの IUnknown インターフェイスへのポインターを返します。
ドライバーは、IUnknown インターフェイスの QueryInterface メソッドを呼び出して、プラグインでサポートされている IPrintOemUI、IPrintOemUI2、IPrintOemUni、IPrintOemUni2、IPrintOemUni3、IPrintOemPS、または IPrintOemPS2 インターフェイスのバージョンを決定し、サポートされているインターフェイスへのポインターを受け取ります。
ドライバーは、プラグイン インターフェイスの
PublishDriverInterface
メソッドを呼び出して、ドライバーの IPrintOemDriverUI、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS、または IPrintCorePS2 インターフェイスをプラグインで使用できるようにします。プラグインが IPrintOemUni インターフェイスを実装している場合、ドライバーは IPrintOemUni::GetImplementedMethod を呼び出して、実装されているインターフェイス メソッドを特定します。 同様に、プラグインが IPrintOemUni2 インターフェイスを実装している場合、ドライバーは同じ目的で IPrintOemUni2::GetImplementedMethod を呼び出します。