Сейчас она возвращает NotImplemented. Возможно из-за этого не работает программа получения обновлений для Консультанта. (comar) Думаю, если сделать хак, это решит проблему.
Сделал хак. Возвращаю цвет: argb = RGB( 0, 0, 0); В итоге сразу при старте не выдаётся сообщение об ошибке. Форма отрисовывается, но неправильно (не видны текстовые надписи) Пробовал возвращать: argb = RGB( 255, 255, 255); Внешний вид формы никак не изменился. В gdi32 есть функция GetNearestColor. Возможно с её помощью можно сделать нормальный патч (хотя результат при этом не изменится)
Реализовал. Требуется написать подтверждающие тесты.
При дальнейшем рассмотрении оказалось, что функция GetNearestColor возвращает такой же цвет, что и был туда передан. Возможно эта ошибка именно функции GetNearestColor? Проверил на винде функцию GdipGetNearestColor. Там возвращается другой цвет.
Проверил в винде GetNearestColor. Она работает немного не так, как на винде. Ещё возникают сложности в том, что она для конкретного dc вызывает его функцию, и если её нет, обрабатывает сама. Я нашёл реализованную функцию GetNearestColor только для x11drv: X11DRV_GetNearestColor. Проверил, в конечном итоге именно она и вызывается в тесте. Возможно надо писать тест уже на неё. Ещё надо проверить вызывается ли она при запуске comar
Выяснил: 1) Тестов на x11drv в принципе не существует. 2) для comar вызывается именно функция этого драйвера. Думаю всё же стоит писать тест для функции в gdi32
Довольно сомнительна необходимость данного теста. Решил оставить как есть (сделать полу-заглушку, исправляющую проблему).