Поделиться через


Управление драйверами и управление устройствами

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.

Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.

Если элемент управления цветом предоставляется драйвером или оборудованием принтера, библиотека DLL принтера драйвера должна задать флаг GCAPS_ICM в структуре DEVINFO.

Драйвер должен указывать поддержку цветового пространства CMYK (при необходимости), как описано в разделе "Поддержка цветового пространства CMYK".

Графические библиотеки DLL принтера должны определять следующие три функции:

GDI вызывает функцию DrvIcmCreateColorTransform, чтобы предоставить драйверу профили ICC для задания печати. Учитывая эти профили, функция может создать внутреннее преобразование цвета, используемое при исправлении сведений о цвете. Преобразование цвета — это определенное драйвером внутреннее сопоставление из одного цветового пространства в другое. Функция возвращает дескриптор преобразования, в котором хранится GDI.

Флаги в структурах BRUSHOBJ и XLATEOBJ указывают, выполняется ли управление цветами системой (или приложением) или драйвером (или устройством). В каждой реализованной драйвером функции рисования DDI, которая получает либо (или оба) этих структур, необходимо проверить флаги. Если система или приложение в настоящее время обрабатывает управление цветами, драйвер или устройство не должно. Если включено управление цветом драйвера или устройства, функция DDI графики должна вызывать BRUSHOBJ_hGetColorTransform или XLATEOBJ_hGetColorTransform (или обоих), чтобы получить дескриптор для используемого преобразования цвета. Дескриптор будет тем, что драйвер предоставил в ответ на предыдущий вызов функции DrvIcmCreateColorTransform .

Обработка управления собственным цветом

Для некоторых устройств осуществляется собственное управление цветом (драйвером или оборудованием) независимо от того, включен ли ICM. Драйверы для таких устройств не должны разрешать исправление цвета, если полученные данные изображения уже исправлены. Предварительно созданные данные можно получить, если:

  • Приложение исправило цвет изображения "за пределами контроллера домена" (см. документацию по пакету SDK для Microsoft Windows).

  • Управление цветами обрабатывается системой.

Для любого из этих сценариев флаг BR_HOST_ICM в элементе flColorType в BRUSHOBJ и флаге XO_HOST_ICM в элементе flXlate XLATEOBJ будет задан. Эти флаги можно задать, даже если элемент dmICMMethod DEVMODEW DMICMMETHOD_NONE.