次の方法で共有


ドライバーコントロール と デバイスコントロール

重要

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

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

ドライバーまたはプリンター ハードウェアによってカラー管理コントロールが提供される場合、ドライバーのプリンター グラフィックス DLL は、DEVINFO 構造体でGCAPS_ICMフラグを設定する必要があります。

ドライバーは、「CMYK カラー スペースのサポート」の説明に従って、CYMK カラー スペースのサポート (必要に応じて) を示す必要があります。

プリンター グラフィックス DLL では、次の 3 つの関数を定義する必要があります:

GDI は DrvIcmCreateColorTransform 関数を呼び出して、印刷ジョブの ICC プロファイル をドライバーに提供します。 これらのプロファイルを使用すると、関数は、色情報を修正するときに使用する内部カラー変換を作成できます。 カラー変換は、ドライバー固有の内部で定義された、ある色空間から別の色空間へのマッピングです。 この関数は、GDI が格納する変換へのハンドルを返します。

BRUSHOBJ 構造体および XLATEOBJ 構造体内のフラグは、カラー管理がシステム (またはアプリケーション) またはドライバー (またはデバイス) によって実行されているかどうかを示します。 これらの構造体のいずれか (または両方) を受け取るドライバーによって実装された各グラフィックス DDI 描画関数内で、フラグをチェックする必要があります。 システムまたはアプリケーションが現在カラー管理を処理している場合は、ドライバーまたはデバイスで処理しないでください。 ドライバーまたはデバイスの色管理が有効になっている場合、グラフィックス DDI 関数は、BRUSHOBJ_hGetColorTransformまたはXLATEOBJ_hGetColorTransform (またはその両方) を呼び出して、使用する色変換のハンドルを取得する必要があります。 ハンドルは、その DrvIcmCreateColorTransform 関数への以前の呼び出しに応答してドライバーが提供したハンドルになります。

独自のカラー管理の処理

一部のデバイスでは、ICM が有効になっているかどうかに関係なく、独自のカラー管理が (ドライバーまたはハードウェアによって) 実行されます。 このようなデバイスのドライバーは、受信した画像データが既に修正されている場合は、色補正を実行できないようにする必要があります。 次の場合は、事前修正されたデータを受信できます。

  • アプリケーションには、"DC の外側" のイメージが色修正されています (Microsoft Windows SDK のドキュメントを参照)。

  • カラー管理はシステムによって処理されています。

どちらのシナリオでも、BRUSHOBJflColorType メンバーのBR_HOST_ICM フラグと XLATEOBJflXlate メンバーのXO_HOST_ICMフラグの両方が設定されます。 これらのフラグは、DEVMODEWdmICMMethod メンバーがDMICMMETHOD_NONEされている場合でも設定できます。