次の方法で共有


COM ベースのレンダリング プラグイン

重要

Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。

詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。

カスタマイズされたフック関数を提供するには、COM ベースのレンダリング プラグインで IPrintOemUni::EnableDriver または IPrintOemPS::EnableDriver メソッドを実装する必要があります。これにより DRVENABLEDATA 構造体に各フック関数のアドレスが入力されます。

COM ベースのレンダリング プラグインは、Unidrv または Pscript5 ドライバーが関数を定義する場合にのみ、グラフィックス DDI 関数をフックできます。 このような関数の一覧については、「IPrintOemUni::EnableDriver」 または 「IPrintOemPS::EnableDriver」を参照してください。

特定のカスタマイズされたフック関数を指定した場合、その関数はドライバーの同等のグラフィックス DDI 関数を優先します。 カスタマイズされたフック関数を設計する場合は、次のオプションがあります。

  • フック関数は、グラフィックス DDI 操作を内部的に完全に処理できます。

  • フック関数は、プリンター ドライバーの同等のグラフィックス DDI 関数にコールバックできます。

フック関数は、ドライバーのグラフィックス DDI 関数をコールバックすることで、関数引数の前処理または後処理を実行できますが、ドライバーは引き続きグラフィックス DDI 操作を実際に実行できます。 レンダリング プラグインの IPrintOemUni::EnablePDEV メソッドまたは IPrintOemPS::EnablePDEV メソッドへの入力引数の 1 つは、ドライバーのグラフィックス DDI 関数へのポインターを含む DRVENABLEDATA 構造体です。 これらの関数にコールバックする場合は、この構造体の内容を保存する必要があります。

カスタマイズされた PDEV 構造体を提供する必要がある場合があります。 この構造体は、グラフィックス DDI フック関数内から、各フック関数が入力として受け取る SURFOBJ 構造体ポインターを介して参照できます。 具体的には、SURFOBJ 構造体の dhpdev メンバーは DEVOBJ 構造体を指し、DEVOBJ 構造体の pdevOEM メンバーはカスタマイズされた PDEV 構造体を指します。