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


Расширения таблицы свойств

Элемент контекстного меню "Свойства" предоставляет доступ к листам свойств сканера или камеры в папке "Сканеры и панели управления камерами" для устройств (корневых элементов) или папки "Мой компьютер".

Расширения листов свойств для камер и сканеров также могут предоставлять пользовательский интерфейс для определенных сеансов получения изображений, то есть некорневых объектов IWiaItem (см. документацию по Microsoft Windows SDK), которые активны при использовании диалогового окна сканирования, используемого по умолчанию. К этим расширениям обращается ссылка на расширенные свойства или дополнительные параметры в диалоговом окне приобретения изображения. При выборе действия из контекстного меню для свойства WIA создает лист свойств с помощью предоставленной поставщиком реализации интерфейсов IShellExtInit и IShellPropSheetExt ( см. документацию по пакету SDK для Windows).

Для расширений пользовательского интерфейса списка свойств и контекстного меню интерфейс IDataObject (описанный в документации по пакету SDK для Windows), описывающий выбранные элементы, использует формат WIAItemNames или формат WIAItemPointer. Эти форматы и их имена форматов определены в wiadevd.h.

Формат WIAItemNames, имя формата которого CFSTR_WIAITEMNAMES, возвращает HGLOBAL, указывающий на список идентификаторов IWiaItem, завершенный двумя нулевыми символами. Каждый идентификатор имеет форму <идентификатор устройства>::<полный путь имени>. Для корневых элементов часть имени полного пути пуста.

Формат WIAItemPointer поддерживается в версиях Microsoft Windows XP и более поздних версий. Имя формата — CFSTR_WIAITEMPTR. Формат WIAItemPointer возвращает структуру STGMEDIUM (описанную в документации SDK для Windows), член tymed которой установлен в TYMED_ISTREAM. Этот формат можно использовать, когда пользователь выбирает только один элемент. Лист свойств или расширение контекста может вызывать CoUnmarshalInterface на объекте IStream, хранящемся в структуре STGMEDIUM, чтобы получить интерфейс IWiaItem. (См. документацию по пакету SDK для Windows для описания функции CoUnmarshalInterface и интерфейсов IStream и IWiaItem.) Используя этот формат, каждая страница на листе свойств может совместно использовать правильно маршалированный интерфейс IWiaItem, что важно во время сканирования.