スキャン イベントの入力ソースの識別
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」を参照してください。