WIA 扫描程序树

下图显示了扫描仪及其生成的图像。

说明扫描仪及其生成的图像的示意图。

下图显示了 Microsoft Windows Me 或 Windows XP 扫描仪,或者 Windows Vista 上的扫描仪(如果该扫描仪没有文档馈送器、双工器或胶片扫描仪)。

WIA 将上图中显示的扫描仪及其图像表示为项树,如下图所示。

说明 wia 如何将扫描程序及其图像表示为项树的示意图。

根项(即扫描仪本身)包含常见的设备属性 (相机和扫描仪) 通用的属性,以及特定于扫描仪的设备属性。 同样,每个子项都包含相机和扫描仪项通用的属性,以及特定于扫描仪项的属性。

通过 WIA 服务,应用程序可以从扫描程序项请求以下内容:

  • 查询扫描程序功能

  • 设置扫描程序设备属性

  • 请求数据传输

在 Windows Me 和 Windows XP 的根项正下方,典型的扫描程序对象具有单个项,即扫描程序项,表示设备的数据收集功能。 应用程序通过设置扫描程序项的属性来设置扫描。 当应用程序通过 WIA 服务从项请求数据时,将执行扫描。

在 Windows Me 和 Windows XP 中,应用程序通常要求平板扫描仪(包括具有自动文档馈送器的扫描仪 (ADF) )由两个项表示:一个根项和一个子级。 所有数据传输都是从子项执行的。 驱动程序可以选择创建其他项供其私人使用,并且这些项可以支持传输。 (为此,请在调用 wiasCreateChildAppItem 时设置项类型标志的 WiaItemTypeTransfer 位。此常量记录在 Microsoft Windows SDK documentation.) 但是,应用程序通常不知道这些私有项,也不知道如何操作它们。 对于具有 ADF 的扫描程序,在 Windows Me 或 Windows XP 中,通过将 WIA_DPS_DOCUMENT_HANDLING_XXX 属性添加到扫描程序的根项(而不是扫描程序的子项)来公开和控制 ADF 功能。 有关这些属性的详细信息,请参阅 WIA 属性。 有关 Windows Vista 中具有 ADF 的扫描程序的信息,请参阅 WIA 馈送程序扫描程序

如果设备具有平板和 ADF,并且可以在 Windows Me 或 Windows XP 中执行双工扫描,驱动程序会将 WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES 属性报告为 (FEED |FLAT |DUP) 。

确保 正确设置WIA_DPS_DOCUMENT_HANDLING_SELECT 的有效值。 请注意,在单个扫描作业中扫描的所有文档都将存在于项树中的单个子项中。 有关 Windows Vista 上使用 ADF 和双工器的扫描仪的信息,请参阅 WIA 馈送器扫描仪

例如,假设应用程序打算对 ADF 中的三页执行双工扫描。 为此,应用程序会将 WIA_DPS_DOCUMENT_HANDLING_SELECT 属性设置为 (FEEDER |双工) ,并将 WIA_DPS_PAGES 属性设置为 3。 如果应用程序想要首先扫描页面的前面,则应将 WIA_DPS_DOCUMENT_HANDLING_SELECT 属性设置为 (FEEDER |双工 |FRONT_FIRST) 。 完成此操作后,应用程序应导航到从中请求数据传输的子项。 微型驱动程序会将 ADF 中第一页的前面报告为第 1 页,该页的背面报告为第 2 页,将 ADF 中第二页的前面报告为第 3 页。

请务必记住,如果设备具有 ADF,它必须支持 ADF 属性。