Control de controladores y control de dispositivo
Importante
La plataforma de impresión moderna es el medio preferido de Windows para comunicarse con impresoras. Se recomienda usar el controlador de clase de bandeja de entrada IPP de Microsoft, junto con aplicaciones de soporte técnico de impresión (PSA), para personalizar la experiencia de impresión en Windows 10 y 11 para el desarrollo de dispositivos de impresora.
Para obtener más información, consulte Plataforma de impresión moderna y la Guía de diseño de aplicaciones para compatibilidad con impresión.
Si el controlador o el hardware de la impresora proporcionan el control de administración de colores, el DLL de gráficos de la impresora del controlador debe establecer la marca GCAPS_ICM en la estructura DEVINFO.
El controlador debe indicar compatibilidad con el espacio de color CMYK (si procede), como se describe en Compatibilidad con el espacio de color CMYK.
Los DLL de gráficos de la impresora deben definir las tres funciones siguientes:
GDI llama a la función DrvIcmCreateColorTransform para proporcionar al controlador perfiles ICC para el trabajo de impresión. Dados estos perfiles, la función puede crear una transformación de color interna que se usará al corregir la información de color. Una transformación de color es una asignación específica del controlador definida internamente de un espacio de color a otro. La función devuelve un identificador a la transformación, que almacena GDI.
Las marcas dentro de las estructuras BRUSHOBJ y XLATEOBJ indican si el sistema (o aplicación) realiza la administración de colores o lo hace el controlador (o dispositivo). Dentro de cada función de dibujo de DDI de gráficos implementada por el controlador que recibe una (o ambas) de estas estructuras, se deben comprobar las marcas. Si el sistema o la aplicación controlan actualmente la administración de colores, el controlador o el dispositivo no deben hacerlo. Si la administración de colores del controlador o dispositivo está habilitada, la función de DDI de gráficos debe llamar a BRUSHOBJ_hGetColorTransform o XLATEOBJ_hGetColorTransform (o ambas) para obtener un identificador de la transformación de color que se va a usar. El identificador será el que el controlador proporcionó en respuesta a una llamada anterior a su función DrvIcmCreateColorTransform.
Control de la administración de colores propietaria
Para algunos dispositivos, la administración de colores propietaria se realiza (ya sea por el controlador o por hardware) independientemente de si ICM se ha habilitado. Los controladores de estos dispositivos no deben permitir que se realice la corrección de color si los datos de imagen recibidos ya se han corregido. Los datos corregidos previamente se pueden recibir si:
Una aplicación ha corregido el color de la imagen "fuera del controlador de dominio" (consulte la documentación del SDK de Microsoft Windows).
El sistema controla la administración de colores.
En cualquiera de estos escenarios, se establecerá la marca BR_HOST_ICM en el miembro flColorType de BRUSHOBJ y la marca XO_HOST_ICM en el miembro flXlate de XLATEOBJ. Estas marcas se pueden establecer incluso si el miembro dmICMMethod de DEVMODEW es DMICMMETHOD_NONE.