テーマ マニフェストの使用
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください。
Windows XP の印刷ドライバーにテーマ マニフェストを追加する場合は、ドライバーのユーザー インターフェイス要素が Windows XP のビジュアル スタイルと一致することを確認できます。
Windows XP ビジュアル スタイルは、シェル共通コントロール (Comctl32.dll バージョン 6.0) の変更の結果です。 このバージョンは、バージョン 5.0 とほぼ完全に下位互換性があります。 ただし、バージョン 6.0 で実行すると、バージョン 5.0 用に書き込まれたドライバーでいくつかの問題が発生する可能性があります。 このような問題を回避するために、印刷システムではドライバーが Comctl32.dll バージョン 6.0 を使用するように強制されません。 サンプル テーマ マニフェストについては、WDK の \src\print\oemdll\ThemeUI\ThemeUI.Manifest を参照してください。
Comctl32.dll のバージョン 6 への依存関係を指定するドライバーにテーマ マニフェストを追加すると、Windows XP 以降のオペレーティング システム バージョンと Windows 2000 で適切に動作します。 Windows 2000 はマニフェストを無視します。そのため、アクティブ化コンテキストの使用は失敗します。 Comctl32.dll バージョン 5.0 はグローバル アセンブリ キャッシュ (GAC) に含まれていないため、このバージョンの DLL への依存関係を指定するマニフェストによってコンポーネントが中断されることに注意してください。 この場合、win32 API LoadLibrary の呼び出しは、Comctl32.dll の読み込み中に失敗します。
アプリケーションには、グローバル (またはアプリケーション) マニフェストを含めることができます。 このグローバル マニフェストに Comctl32.dll バージョン 6.0 使用するリダイレクトが含まれている場合、アプリケーションによって作成されるすべての UI で同じテーマが強制的に使用されます。 その結果、グローバル マニフェストを使用してアプリケーションから起動されたプリンター ドライバーは、ドライバー マニフェストの Comctl32.dll リダイレクトに関係なく、Comctl32.dll バージョン 6.0 を強制的に使用する可能性があります。
マニフェストとアセンブリ、アクティブ化コンテキスト、分離アプリケーション、およびサイド バイ サイド アセンブリ共有の詳細については、Microsoft Windows SDK のドキュメントを参照してください。