У меня проблемы с полем dmColor для структуры DEVMODE.
Мой принтер по умолчанию - цветной принтер, если я по умолчанию выводил цвет свойств принтера через панель управления на черно-белый, поле DEVMODE.dmColor всегда возвращает DMCOLOR_COLOR вместо DMCOLOR_MONOCHROME.
Даже если мой принтер по умолчанию установлен на черно-белый принтер, DEVMODE.dmColor все равно всегда возвращает DMCOLOR_COLOR
Все остальные поля DEVMODE, такие как dmDeviceName, dmCopies, dmDuplex и т. Д., Работают нормально. Я также пытался запросить DC_COLORDEVICE с помощью функции DeviceCapabilities, в документации Microsoft говорится, что он должен возвращать 1, если устройство поддерживает цвет, 0, если нет, и -1, если произошла ошибка. Эта функция всегда возвращает -1, но код ошибки, возвращаемый GetLastError, переводится как «Операция успешно завершена».
Я работаю под Windows Vista, и я указал DM_COLOR в DEVMODE.dmFields, кто-нибудь знает, почему это происходит?