次の方法で共有


WIA スキャナー ツリー

次の図は、スキャナーとそれが生成した画像を示しています。

diagram illustrating a scanner and an image that it produced.

次の図は、Microsoft Windows Me または Windows XP スキャナー、またはそのスキャナーにドキュメント フィーダー、デュプレクサー、またはフィルム スキャナーがない場合の Windows Vista 上のスキャナーを示しています。

WIA は、次の図のように、前の図に示したスキャナーとそのイメージを項目ツリーとして表します。

diagram illustrating how wia represents the scanner and its image as an item tree.

ルート項目 (スキャナー自体) は、共通のデバイス プロパティ (カメラとスキャナーの両方に共通のプロパティ) とスキャナー固有のデバイス プロパティで構成されます。 同様に、各子項目は、カメラ項目とスキャナー項目の両方に共通のプロパティと、スキャナー項目に固有のプロパティで構成されます。

WIA サービスを通じて、アプリケーションはスキャナー項目から次を要求できます。

  • スキャナー機能のクエリ実行。

  • スキャナーデバイスのプロパティの設定。

  • データ転送の要求

Windows Me と Windows XP では、ルート項目のすぐ下に、一般的なスキャナー オブジェクトには、デバイスのデータ収集機能を表すスキャナー項目という 1 つの項目があります。 アプリケーションは、スキャナー項目のプロパティを設定してスキャンを設定します。 スキャンは、アプリケーションが WIA サービスを介してアイテムからデータを要求したときに実行されます。

Windows Me と Windows XP では、通常、アプリケーションでは、自動ドキュメント フィーダー (ADF) を含むフラットベッド スキャナーがルート項目と 1 つの子という 2 つの項目で表されることを想定しています。 すべてのデータ転送は、子項目から実行されます。 ドライバーは、そのプライベートな使用のために他の項目を作成することを選択できます。これらの項目は転送可能にすることができます。 (これを行うには、 wiasCreateChildAppItem呼び出しで項目タイプフラグの WiaItemTypeTransfer ビットを設定します。この定数は、Microsoft Windows SDK のドキュメントに記載されています。ただし、一般に、アプリケーションはこれらのプライベート項目を認識せず、それらを操作する方法もわかりません。 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 の有効な値が正しく設定されていることを確認します。 1 つのスキャン ジョブでスキャンされたすべてのドキュメントは、アイテム ツリー内の 1 つの子項目に存在します。 Windows Vista 上の ADF とデュプレクサを備えたスキャナーの詳細については、「WIA フィーダー スキャナー」を参照してください。

たとえば、アプリケーションが ADF から 3 ページの二重スキャンを実行するとします。 これを実現するために、アプリケーションは WIA_DPS_DOCUMENT_HANDLING_SELECT プロパティを (FEEDER |DUPLEX)、WIA_DPS_PAGES プロパティを 3 に設定します。 アプリケーションが最初にページの先頭をスキャンする場合は、WIA_DPS_DOCUMENT_HANDLING_SELECT プロパティを (FEEDER | DUPLEX |FRONT_FIRST)に設定する必要があります。 これが完了すると、アプリケーションはデータ転送を要求する子項目に移動する必要があります。 ミニドライバーは、ADF の最初のページの先頭をページ 1 として、そのページの背面をページ 2 として報告し、ADF の 2 番目のページの前面をページ 3 として報告します。

デバイスに ADF がある場合は、ADF プロパティをサポートする必要があります。