Как запрограммировать и зарегистрировать пользовательский CMM для Windows
Для исследования мне нужно запрограммировать пользовательский модуль управления цветом и использовать его из программы (в которой уже есть возможность выбрать CMM для использования) через систему цветов Windows.
CMM работает и дает желаемые результаты, теперь мне нужно создать DLL и зарегистрировать ее, чтобы окна нашли и использовали ее.
Мне удалось установить Adobe CMM и программно найти его с помощью подсказки из этого примера кода. (Я просто перечисляю ключ реестра, чтобы получить все CMM.)
Я также могу переключаться между Microsoft WCS CMM и Adobe CMM через SelectCMM()
оба дают немного разные результаты в преобразованиях цвета.
Теперь мне нужно упаковать CMM в DLL с этим интерфейсом и зарегистрировать его.Вот где я борюсь.
Вопрос: Знаете ли вы документацию, справочную реализацию, пример кода или учебное пособие?
Мои конкретные проблемы:
- Я не понимаю механизм подписей CMM (PDF) (с сайта ICC) и как они используются в Windows. Например, просто создав другую запись реестра с подписью
'EFI '
указывая на то же самоеAdobeCMM.dll
не работает - выбор "нового" CMM завершается неудачно с неизвестной ошибкой. - Для тестирования я хотел бы сначала реализовать переадресацию вызовов в Windows CMM (включая
Icm.h
в файле c), но я получаю конфликты, определяющие типы данных - нужно ли использовать пользовательские имена для типов, чтобы они не вступали в противоречие с определениями вIcm.h
? - Как во всем мире я мог отладить это?
- Кто-нибудь знает о реализации с открытым исходным кодом (или такой), я мог бы использовать в качестве ссылки?
- Это относится даже к SO? Или кто-нибудь может указать мне на более подходящий форум? ( MSDN имеет мало или нет результатов по этой теме.)