属性表扩展

“属性”上下文菜单项提供对扫描仪或相机属性表控制面板文件夹中 (根项目) 或“我的电脑”文件夹中 (设备的扫描程序或相机属性表的访问权限。

相机和扫描仪的属性表扩展还可以为特定图像获取会话提供用户界面,即非根 IWiaItem 对象 (查看Microsoft Windows SDK文档) ,当用户使用默认扫描对话框时处于活动状态。 可以通过图像获取对话框中的高级属性或高级设置链接访问这些扩展。 从属性的上下文菜单中选择操作时,WIA 将使用供应商提供的 IShellExtInitIShellPropSheetExt 接口实现来构造属性表, (请参阅 Windows SDK 文档) 。

对于属性表和上下文菜单 UI 扩展, IDataObject 接口 (Windows SDK 文档中介绍) 描述所选项时使用 WIAItemNames 格式或 WIAItemPointer 格式。 这些格式及其格式名称在 wiadevd.h 中定义。

格式名称为 CFSTR_WIAITEMNAMES 的 WIAItemNames 格式返回一个 HGLOBAL,它指向以 null 结尾的 IWiaItem 标识符列表。 每个标识符采用设备 id>::<full 路径名称>的形式<。 对于根项,完整路径名称部分为空。

Microsoft Windows XP 及更高版本中支持 WIAItemPointer 格式。 格式名称CFSTR_WIAITEMPTR。 WIAItemPointer 格式返回在 Windows SDK 文档中声明 (STGMEDIUM 结构) 其 tymed 成员设置为 TYMED_ISTREAM。 当用户仅选择单个项时,可以使用此格式。 属性表或上下文扩展可以在 STGMEDIUM 结构中存储的 IStream 对象上调用 CoUnmarshalInterface,以检索 IWiaItem 接口。 (有关 CoUnmarshalInterface 函数以及 IStreamIWiaItem 接口的说明,请参阅 Windows SDK 文档。) 使用此格式,属性表上的每个页面都可以共享正确封送的 IWiaItem 接口,这在扫描过程中非常重要。