Поделиться через


Запись свойств элемента WIA приложением

Когда приложение WIA записывает данные в свойство WIA (и обновляет значение, хранящееся в свойстве ), служба WIA предоставляет мини-диску WIA возможность проверить входящие значения, вызвав метод IWiaMiniDrv::d rvValidateItemProperties . Мини-драйвер WIA сравнивает входящие значения с текущими значениями, считывая свойства в собственном дереве элементов драйвера. Библиотека служб WIA предоставляет функции для доступа к этим значениям.

Метод IWiaMiniDrv::d rvValidateItemProperties должен выполнять следующие задачи:

  1. Определите тип элемента.

  2. Определите, следует ли выполнять специальную проверку для входящих свойств WIA. Чтобы определить, какие свойства WIA записываются, мини-накопитель WIA может использовать массив структур PROPSPEC (структура PROPSPEC описана в документации по Microsoft Windows SDK). Рекомендуется, чтобы мини-диск WIA определял тип элемента перед обработкой массива PROPSPEC, чтобы уменьшить потребность в обходе массива при каждом вызове IWiaMiniDrv::d rvValidateItemProperties . Если нет особых требований к проверке или требуется обновить зависимые свойства корневого элемента устройства, обрабатываются только запросы на запись в свойства дочернего элемента.

  3. Создайте контекст свойства WIA для доступа к значениям, измененным во время проверки свойства WIA, что необходимо для обновления зависимых свойств элемента WIA. Используйте функции службы wiasCreatePropContext и wiasGetChangedValueXxx .

  4. Обновление зависимых свойств с помощью функций службы WIA, wiasWriteMultiple или wiasWritePropXxx, что включает обновление всех допустимых значений, которые могли измениться в результате установки свойства. Например, если мини-накопитель WIA поддерживает настройку свойства WIA_IPA_DEPTH , необходимо обновить допустимый список битовых глубин, когда приложение изменяет свойство WIA_IPA_DATATYPE .

    Когда значение свойства WIA_IPA_DATATYPE изменяется с WIA_DATA_THRESHOLD на WIA_DATA_COLOR, связанное свойство WIA_IPA_DEPTH изменяется с однобитовой глубины цвета на 24 бита или 48 бит.

  5. Вызовите функцию службы wiasValidateItemProperties , чтобы служба WIA проверяла все остальные запросы свойств. Это "универсальный" случай; служба WIA имеет встроенную проверку свойств.