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 に渡される色が色と一致します。 主な例外は 、BitBltStretchBlt です。 ある 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

こちらもご覧ください