アプリケーションによる WIA 項目のプロパティの書き込み
WIA アプリケーションが WIA プロパティに書き込み (プロパティに格納されている値を更新) すると、WIA サービスは、WIA ミニドライバーに IWiaMiniDrv::drvValidateItemPropertiesメソッドを呼び出して受信値を検証する機会を提供します。 WIA ミニドライバーは、独自のドライバー項目ツリーのプロパティを読み取ることによって、受信値を現在の値と比較します。 WIA サービス ライブラリには、これらの値にアクセスするための関数が用意されています。
IWiaMiniDrv::drvValidateItemProperties メソッドは、次のタスクを実行する必要があります。
アプリケーションの項目タイプの特定
受信 WIA プロパティに対して特別な検証を実行する必要があるかどうかを判断します。 どの WIA プロパティが書き込まれているかを判断するために、WIA ミニドライバーは PROPSPEC 構造体の配列を使用できます (PROPSPEC 構造体は Microsoft Windows SDK ドキュメントで説明されています)。 WIA ミニドライバーは、すべての IWiaMiniDrv::drvValidateItemProperties呼び出しで配列を走査する必要性を減らすために、PROPSPEC 配列を処理する前に項目の種類を決定することをお勧めします。 特別な検証要件がない場合、またはデバイスのルート項目の依存プロパティを更新する必要がある場合は、子項目のプロパティへの書き込み要求のみが処理されます。
WIA プロパティの検証中に変更された値にアクセスするための WIA プロパティ コンテキストを作成します。WIA アイテムの依存プロパティを更新するために必要です。 wiasCreatePropContext および wiasGetChangedValueXxx サービス関数を使用します。
WIA サービス関数 wiasWriteMultipleまたは wiasWritePropXxx を使用して依存プロパティを更新します。これには、プロパティの設定の結果として変更された可能性がある有効な値の更新が含まれます。 たとえば、WIA ミニドライバーがWIA_IPA_DEPTH プロパティの設定をサポートしている場合は、アプリケーションが WIA_IPA_DATATYPE プロパティを変更するときにビット深度の有効な一覧を更新する必要があります。
WIA_IPA_DATATYPE プロパティの 値が WIA_DATA_THRESHOLD から WIA_DATA_COLOR に変更されると、関連するWIA_IPA_DEPTH プロパティは、1 ビットの色深度のレポートから、24 ビットまたは 48 ビットのレポートに変わります。
wiasValidateItemProperties サービス関数を呼び出して、WIA サービスが他のすべてのプロパティ要求を検証できるようにします。 これは "キャッチオール" のケースです。WIA サービスには、プロパティ検証が組み込まれています。