Запись свойств элемента WIA приложением
Когда приложение WIA записывает данные в свойство WIA (и обновляет значение, хранящееся в свойстве ), служба WIA предоставляет мини-диску WIA возможность проверить входящие значения, вызвав метод IWiaMiniDrv::d rvValidateItemProperties . Мини-драйвер WIA сравнивает входящие значения с текущими значениями, считывая свойства в собственном дереве элементов драйвера. Библиотека служб WIA предоставляет функции для доступа к этим значениям.
Метод IWiaMiniDrv::d rvValidateItemProperties должен выполнять следующие задачи:
Определите тип элемента.
Определите, следует ли выполнять специальную проверку для входящих свойств WIA. Чтобы определить, какие свойства WIA записываются, мини-накопитель WIA может использовать массив структур PROPSPEC (структура PROPSPEC описана в документации по Microsoft Windows SDK). Рекомендуется, чтобы мини-диск WIA определял тип элемента перед обработкой массива PROPSPEC, чтобы уменьшить потребность в обходе массива при каждом вызове IWiaMiniDrv::d rvValidateItemProperties . Если нет особых требований к проверке или требуется обновить зависимые свойства корневого элемента устройства, обрабатываются только запросы на запись в свойства дочернего элемента.
Создайте контекст свойства WIA для доступа к значениям, измененным во время проверки свойства WIA, что необходимо для обновления зависимых свойств элемента WIA. Используйте функции службы wiasCreatePropContext и wiasGetChangedValueXxx .
Обновление зависимых свойств с помощью функций службы WIA, wiasWriteMultiple или wiasWritePropXxx, что включает обновление всех допустимых значений, которые могли измениться в результате установки свойства. Например, если мини-накопитель WIA поддерживает настройку свойства WIA_IPA_DEPTH , необходимо обновить допустимый список битовых глубин, когда приложение изменяет свойство WIA_IPA_DATATYPE .
Когда значение свойства WIA_IPA_DATATYPE изменяется с WIA_DATA_THRESHOLD на WIA_DATA_COLOR, связанное свойство WIA_IPA_DEPTH изменяется с однобитовой глубины цвета на 24 бита или 48 бит.
Вызовите функцию службы wiasValidateItemProperties , чтобы служба WIA проверяла все остальные запросы свойств. Это "универсальный" случай; служба WIA имеет встроенную проверку свойств.