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


Определение возможности цвета принтера

Важно!

Мы рекомендуем использовать драйвер класса "Входящие" от Майкрософт iPP вместе с приложениями поддержки печати (PSA) для настройки печати в Windows 10 и 11 для разработки принтеров.

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

Чтобы различать цветные и нецветные устройства (монохромные или оттенки серого), операционные системы Windows 2000 и более поздние версии на основе NT вызывают функцию DrvDeviceCapabilities , передавая в вызове константу DC_COLORDEVICE. Эта функция возвращает значение 1, если устройство поддерживает цвет, и 0, если устройство создает монохромные или оттенки серого. Рекомендуется, чтобы все драйверы принтеров поддерживали вызовы DrvDeviceCapabilities для константы DC_COLORDEVICE.

Для драйверов очень важно реализовать функцию DrvDeviceCapabilities . В противном случае операционной системе сложнее различать цветные и нецветные устройства по следующим причинам:

  • Вызов функции GetDeviceCaps (описан в документации windows SDK), в которой передается константа NUMCOLORS, обычно приводит к возврату значения меньше или равно 2 для большинства нецветных устройств и больше 2 для цветных устройств. Операционная система не может различать монохромные устройства и устройства с оттенками серого.

  • Значение элемента dmColor структуры DEVMODEW не является надежным показателем того, является ли устройство цветным или нецветным. Некоторые драйверы принтеров задают этот элемент как DMCOLOR_COLOR даже для устройств, которые не способны создавать цвет.