ストリーム ベースのデータ転送を使用すると、 WIA イメージ処理フィルター と WIA ドライバーを簡単に統合できます。これは、ストリームが呼び出し元によって提供され、WIA ドライバーが宛先ストリームに関係なく同じアクションを実行するためです。 つまり、ドライバーは単にストリームを要求し、ドライバーに返されるストリームの種類に関係なく、それに書き込みます。
IStream を実装するには、WIA 画像処理フィルターが必要です。 このフィルターが作成されると、アプリケーションの宛先ストリームが与えられ、呼び出しを委任 (または転送) する必要があります。 つまり、 フィルターで IStream::Write が呼び出されると、バッファーを処理してから、処理されたバッファーを使用して宛先ストリームで IStream::Write を呼び出す必要があります。
同様に、画像処理フィルターは、ドライバーから画像処理フィルターにデータを書き込むことができるように、ドライバーにストリームを提供し、アプリケーションの宛先ストリームに書き込むことができます。 フィルターが存在しない場合、ドライバーは変更されませんが、ストリームへの書き込みを続行します。
この状況を次の図にグラフィカルに示します。 最初の図は、画像処理フィルターが使用されていない場合のストリームベースのデータ転送を示しています。
2 番目の図は、画像処理フィルターを使用する場合のストリーム ベースのデータ転送を示しています。
ドライバーの動作が変わらないことに注意してください。ドライバーはストリームを受け取り、ストリームが画像処理フィルターによって提供されるか、アプリケーションによって直接提供されるかに関係なく、ストリームに書き込みます。 その結果、付加価値画像処理コンポーネントを個別に発行できます。 たとえば、機能するインボックス ドライバーを提供できますが、ユーザーが CD から画像処理コンポーネントをインストールすると、より高品質のイメージを提供できます。 この状況では、ドライバーを変更する必要はありません。
IStream インターフェイスとそのメソッドについては、Microsoft Windows SDK のドキュメントで説明されています。