Intégration au filtre de traitement d’images
Les transferts de données basés sur le flux permettent d’intégrer facilement le filtre de traitement d’images WIA à un pilote WIA, car le flux est fourni par l’appelant et le pilote WIA effectue la même action, quel que soit le flux de destination. Autrement dit, le pilote demande simplement un flux, puis écrit dans celui-ci, quel que soit le type de flux retourné au pilote.
Le filtre de traitement d’images WIA est requis pour implémenter IStream. Lorsque ce filtre est créé, il reçoit le flux de destination de l’application, auquel il doit ensuite déléguer (ou transférer) ses appels. En d’autres termes, lorsque IStream::Write est appelé sur le filtre, il doit traiter la mémoire tampon, puis appeler IStream::Write sur le flux de destination avec la mémoire tampon traitée.
De même, le filtre de traitement d’images peut donner un flux au pilote afin que les données puissent être écrites à partir du pilote dans le filtre de traitement d’image, qui écrit ensuite dans le flux de destination de l’application. Notez que si aucun filtre n’est présent, le pilote ne change pas, mais continue d’écrire dans le flux.
Cette situation est illustrée graphiquement dans les figures suivantes. La première figure illustre un transfert de données basé sur un flux lorsque le filtre de traitement d’images n’est pas utilisé.
La deuxième figure illustre le transfert de données basé sur le flux lorsque le filtre de traitement d’images est utilisé.
Notez que le comportement du pilote ne change pas ; le pilote reçoit un flux et écrit dans celui-ci, que le flux soit fourni directement par le filtre de traitement d’images ou par une application. Par conséquent, vous pouvez publier des composants de traitement d’images avec ajout de valeur séparément. Par exemple, vous pouvez fournir un pilote intégré qui est fonctionnel, mais qui peut fournir des images de meilleure qualité lorsque l’utilisateur installe le composant de traitement d’images à partir d’un CD. Le conducteur n’a pas besoin d’être changé dans cette situation.
L’interface IStream et ses méthodes sont décrites dans la documentation Microsoft Windows SDK.