次の方法で共有


スキャン イベントの入力ソースの識別

push-scan 操作とは、デスクトップ コンピューターで実行されている WIA アプリケーションのユーザー インターフェイスからではなく、WIA スキャナー デバイスからユーザーが開始するスキャン操作です。 ユーザーがデバイスのスキャン開始ボタンを押すと、アプリケーションはスキャン イベントを受け取り、ユーザーがスキャン操作を要求したことを通知します。 このイベントに応答して、アプリケーションは次の 2 つのいずれかの方法でプッシュ スキャン操作を実行します。

  • デバイスが自動構成スキャンに対応している場合、アプリケーションは現在選択されている入力ソース (フラットベッド、自動ドキュメント フィーダー、またはフィルム スキャン アダプター) から画像を取得するために、自動アイテムからのデータ転送を要求できます。 応答として、デバイスはスキャン設定を自動的に構成し (アプリケーションでのみ構成できるいくつかのプロパティは除きます。自動項目でサポートされる WIA プロパティで説明されしています)、続いてイメージを取得します。

  • アプリケーションは、直接プログラム制御下でスキャン操作を実行できます。 まず、アプリケーションは現在選択されている入力ソースを表す WIA 項目 (フラットベッド項目、フィーダー項目、またはフィルム項目) のプロパティを構成します。 次に、アプリケーションはこの項目からデータ転送を要求して画像を取得します。

WIA 項目の詳細は、「WIA項目カテゴリ」を参照してください。

スキャン イベントが発生すると、アプリケーションは WIA イベント識別子 (GUID 値) を含む通知を受け取り、イベントの性質を指定します。 WIA ミニドライバーは、カスタム WIA イベント識別子 GUID をイベントに割り当てることができます。または、ミニドライバーは、ヘッダー ファイル Wiadef.h で定義されている WIA_EVENT_SCAN_XXX GUID 定数のいずれかを使用できます。 定数の詳細は、「WIA イベント識別子」を参照してください。

スキャン イベントの WIA イベント識別子はイベントに関する情報を提供するものの、スキャン操作に使用する入力ソースを識別することはありません。 自動構成スキャンの場合、アプリケーションはこの情報を必要としません。 ただし、直接プログラム制御下でスキャンを実行するには、使用する入力ソースをアプリケーションで認識する必要があります。 デバイスに複数の入力ソースがあり、ユーザーがアプリケーションのユーザー インターフェイスからではなくデバイスから入力ソースを選択できる場合、アプリケーションでデバイスからこの情報を取得する方法が必要です。 デバイスから入力ソースを選択する場合、ユーザーは (デバイスのフロント パネル上のボタンを押して) ソースを明示的に選択するか、または暗黙的に (たとえば、デバイス上のフィーダーにドキュメントを挿入することによって) 選択できます。

スキャン イベントが発生すると、デバイスがこのプロパティに対応している場合、アプリケーションは WIA スキャナー デバイスの WIA_DPS_SCAN_AVAILABLE_ITEM プロパティに対してクエリを実行し、選択した入力ソースを識別できます。 WIA_DPS_SCAN_AVAILABLE_ITEM は、デバイスの WIA 項目ツリー内のルート項目の省略可能なプロパティです。 このプロパティの詳細については、「WIA_DPS_SCAN_AVAILABLE_ITEM」を参照してください。

WSD スキャン クラス ドライバーは、カスタム ドライバー拡張機能としてではなく、前の段落で説明したとおり WIA_DPS_SCAN_AVAILABLE_ITEM プロパティを標準ドライバー機能として実装します。 WSD スキャン クラス ドライバーの詳細は、「WIA with Web Services for Devices」を参照してください。 スキャナーの WDP の詳細は、「Web Services for Devices Scan Service Schema」を参照してください。