Función SetICMMode (wingdi.h)
La función SetICMMode hace que Image Color Management se habilite, deshabilite o consulte en un contexto de dispositivo determinado (DC).
Sintaxis
int SetICMMode(
HDC hdc,
int mode
);
Parámetros
hdc
Identifica el identificador del contexto del dispositivo.
mode
Activa y desactiva la administración de colores de imagen. Este parámetro puede tomar uno de los siguientes valores constantes.
Valor devuelto
Si esta función se ejecuta correctamente, el valor devuelto es un valor distinto de cero.
Si se produce un error en esta función, el valor devuelto es cero.
Si se especifica ICM_QUERY y la función se realiza correctamente, el valor distinto de cero devuelto se ICM_ON o ICM_OFF para indicar el modo actual.
Comentarios
Si el sistema no encuentra un perfil de color ICC para que coincida con el estado del dispositivo, SetICMMode produce un error y devuelve cero.
Una vez que WCS está habilitado para un contexto de dispositivo (DC), los colores pasados al controlador de dominio que usan la mayoría de las funciones de la API de Win32 coinciden con el color. Las excepciones principales son BitBlt y StretchBlt. La suposición es que, al realizar una transferencia de bloques de bits (blit) de un controlador de dominio a otro, los dos controladores de dominio ya son compatibles y no necesitan ninguna corrección de color. Si no es así, se puede realizar la corrección de color. En concreto, si se usa un mapa de bits independiente del dispositivo (DIB) como origen de una blit y la bifurcción se realiza en un controlador de dominio que tiene WCS habilitado, se realizará la coincidencia de colores. Si no es lo que desea, desactive WCS para el controlador de dominio de destino llamando a SetICMMode antes de llamar a BitBlt o StretchBlt.
Si la función CreateCompatibleDC se usa para crear un mapa de bits en un controlador de dominio, es posible que el mapa de bits coincida dos veces con el color, una vez cuando se crea y una vez cuando se realiza una operación blit. El motivo es que un mapa de bits en un controlador de dominio creado por la función CreateCompatibleDC adquiere el pincel, los lápices y la paleta actuales del controlador de dominio de origen. Sin embargo, WCS se deshabilitará de forma predeterminada para el nuevo controlador de dominio. Si WCS se habilita posteriormente para el nuevo controlador de dominio mediante la función SetICMMode , se realizará una corrección de color. Para evitar correcciones de color doble mediante el uso de la función CreateCompatibleDC , use la función SetICMMode para desactivar WCS para el controlador de dominio de origen antes de llamar a la función CreateCompatibleDC .
Cuando se crea un controlador de dominio compatible a partir del controlador de dominio de una impresora (consulte CreateCompatibleDC ), el valor predeterminado es que la coincidencia de colores siempre se realice si está habilitada para el controlador de dominio de la impresora. El perfil de color predeterminado de la impresora se usa cuando se realiza una blit en el controlador de dominio de la impresora mediante SetDIBitsToDevice o StretchDIBits. Si no es lo que desea, desactive WCS para el controlador de dominio de la impresora llamando a SetICMMode antes de llamar a SetDIBitsToDevice o StretchDIBits.
Además, al imprimir en el controlador de dominio de una impresora con WCS activado, se debe llamar a la función SetICMMode después de cada llamada a la función StartPage para volver a activar WCS. La función StartPage llama a las funciones RestoreDC y SaveDC , lo que hace que WCS esté desactivado para el controlador de dominio de la impresora.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | wingdi.h |
Library | Gdi32.lib |
Archivo DLL | Gdi32.dll |