通过应用程序写入 WIA 项属性

当 WIA 应用程序 (写入 WIA 属性并更新属性) 中存储的值时,WIA 服务会通过调用 IWiaMiniDrv::d rvValidateItemProperties 方法为 WIA 微型驱动程序提供验证传入值的机会。 WIA 微型驱动程序通过读取其自己的驱动程序项树中的属性,将传入值与任何当前值进行比较。 WIA 服务库提供用于访问这些值的函数。

IWiaMiniDrv::d rvValidateItemProperties 方法应执行以下任务:

  1. 确定项类型。

  2. 确定是否应对传入 WIA 属性执行任何特殊验证。 若要确定正在写入哪些 WIA 属性,WIA 微型驱动程序可以使用 PROPSPEC 结构的数组, (Microsoft Windows SDK文档中) 中所述的 PROPSPEC 结构。 建议 WIA 微型驱动程序在处理 PROPSPEC 数组之前确定项类型,以减少在每次 IWiaMiniDrv::d rvValidateItemProperties 调用上遍历数组的需要。 如果没有特殊的验证要求,或者需要更新设备的根项上的依赖属性,则只会处理对子项属性的写入请求。

  3. 创建 WIA 属性上下文以访问在 WIA 属性验证期间更改的值,这是更新 WIA 项的依赖属性所必需的。 使用 wiasCreatePropContextwiasGetChangedValueXxx 服务函数。

  4. 使用 WIA 服务函数 wiasWriteMultiplewiasWritePropXxx 更新依赖属性,其中包括更新可能由于设置属性而更改的任何有效值。 例如,如果 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 服务具有内置的属性验证。