Identyfikowanie możliwości kolorów drukarki
Ważny
Nowoczesna platforma drukowania jest preferowanym sposobem komunikacji z drukarkami w systemie Windows. Zalecamy używanie sterownika klasy skrzynki odbiorczej IPP firmy Microsoft wraz z aplikacjami do obsługi drukowania (PSA), aby dostosować środowisko drukowania w systemie Windows 10 i 11 na potrzeby opracowywania urządzeń drukarki.
Aby uzyskać więcej informacji, zobacz przewodnik dotyczący projektowania aplikacji z obsługą drukowania .
Aby odróżnić urządzenia kolorowe i monochromatyczne (lub szare), wersje systemu Windows 2000 i nowsze wersje systemu NT wywołują funkcję DrvDeviceCapabilities, przekazując stałą DC_COLORDEVICE w wywołaniu. Ta funkcja zwraca wartość 1, jeśli urządzenie obsługuje kolor, a 0, jeśli urządzenie generuje dane wyjściowe monochromatyczne lub szare. Zaleca się, aby wszystkie sterowniki drukarek obsługiwały wywołania DrvDeviceCapabilities dla stałej DC_COLORDEVICE.
Bardzo ważne jest, aby kierowcy implementowali funkcję DrvDeviceCapabilities. W przeciwnym razie system operacyjny jest trudniejszy do rozróżnienia między urządzeniami kolorowymi i niekolorowymi, z następujących powodów:
Wywołanie funkcji GetDeviceCaps (opisanej w dokumentacji zestawu Windows SDK), w której przekazywana jest stała NUMCOLORS, zwykle powoduje zwrócenie wartości mniejszej lub równej 2 dla większości urządzeń niekolorowych i większej niż 2 dla urządzeń kolorowych. System operacyjny nie może odróżnić urządzeń monochromatycznych od urządzeń korzystających ze skali szarości.
Wartość elementu dmColor struktury DEVMODEW nie jest wiarygodnym wskaźnikiem tego, czy urządzenie obsługuje kolor, czy jest niekolorowe. Niektóre sterowniki drukarek ustawiają ten parametr na DMCOLOR_COLOR nawet w przypadku urządzeń, które nie mogą drukować w kolorze.