SetICMMode 関数 (wingdi.h)

SetICMMode 関数を使用すると、特定のデバイス コンテキスト (DC) でイメージの色管理を有効、無効、または照会できます。

構文

int SetICMMode(
  HDC hdc,
  int mode
);

パラメーター

hdc

デバイス コンテキストへのハンドルを識別します。

mode

イメージの色管理をオンまたはオフにします。 このパラメーターは、次のいずれかの定数値を受け取ることができます。

 

値 意味
ICM_ON
カラー管理を有効にします。 ハーフトーンの古いスタイルの色補正をオフにします。
ICM_OFF
色管理をオフにします。 ハーフトーンの古いスタイルの色補正をオンにします。
ICM_QUERY
カラー管理の現在の状態を照会します。
ICM_DONE_OUTSIDEDC
DC 内のカラー管理をオフにします。 Windows 2000 では、ハーフトーンの古いスタイルの色補正もオフになります。 Windows 95 ではサポートされていません。

戻り値

この関数が成功した場合、戻り値は 0 以外の値になります。

この関数が失敗した場合、戻り値は 0 になります。

ICM_QUERYが指定され、関数が成功した場合、返される 0 以外の値はICM_ONされるか、現在のモードを示すためにICM_OFFされます。

注釈

デバイスの状態と一致する ICC カラー プロファイルがシステムで見つからない場合、 SetICMMode は失敗し、0 を返します。

デバイス コンテキスト (DC) に対して WCS が有効になると、ほとんどの Win32 API 関数を使用して DC に渡される色が色と一致します。 主な例外は 、BitBlt と StretchBlt です。 ある DC から別の DC へのビット ブロック転送 (blit) を実行する場合、2 つの DC は既に互換性があり、色補正は必要ありません。 そうでない場合は、色補正を行ってもよい。 具体的には、デバイスに依存しないビットマップ (DIB) が blit のソースとして使用され、blit が WCS が有効になっている DC に対して実行される場合、カラー マッチングが実行されます。 これが必要でない場合は、BitBlt または StretchBlt を呼び出す前に SetICMMode を呼び出して、宛先 DC の WCS をオフにします。

CreateCompatibleDC 関数を使用して DC にビットマップを作成する場合、ビットマップの色を 2 回、作成時に 1 回、blit を実行したときに 1 回一致させることができます。 その理由は、 CreateCompatibleDC 関数によって作成された DC 内のビットマップが、ソース DC の現在のブラシ、ペン、パレットを取得するためです。 ただし、新しい DC では WCS は既定で無効になります。 後で SetICMMode 関数を使用して新しい DC に対して WCS を有効にすると、色の修正が行われます。 CreateCompatibleDC 関数を使用して二重色の修正を防ぐには、CreateCompatibleDC 関数が呼び出される前に、SetICMMode 関数を使用してソース DC の WCS をオフにします。

互換性のある DC がプリンターの DC から作成された場合 ( 「CreateCompatibleDC 」を参照)、プリンターの DC に対して有効になっている場合、既定では常にカラー マッチングが実行されます。 プリンターの既定のカラー プロファイルは、 SetDIBitsToDevice または StretchDIBits を使用してプリンターの DC に blit が実行されるときに使用 されます。 これが必要でない場合は、SetDIBitsToDevice または StretchDIBits を呼び出す前に SetICMMode を呼び出して、プリンターの DC の WCS をオフにします。

また、WCS がオンになっているプリンターの DC に印刷する場合は、StartPage 関数を呼び出すたびに SetICMMode 関数を呼び出して WCS をオンに戻す必要があります。 StartPage 関数は RestoreDC 関数と SaveDC 関数を呼び出し、その結果、プリンターの DC で WCS がオフになります。

要件

要件 値
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wingdi.h
Library Gdi32.lib
[DLL] Gdi32.dll

こちらもご覧ください