Arborescence du scanneur WIA
La figure suivante montre un scanneur et une image qu’il a produite.
La figure suivante montre un scanneur Microsoft Windows Me ou Windows XP, ou un scanneur sur Windows Vista si ce scanneur n’a pas de chargeur de documents, de duplexeur ou de scanneur de films.
WIA représente le scanneur et son image dans la figure précédente sous la forme d’une arborescence d’éléments, comme dans la figure suivante.
L’élément racine, qui est le scanneur lui-même, se compose de propriétés d’appareil courantes (propriétés communes aux appareils photo et aux scanneurs) et de propriétés d’appareil spécifiques au scanneur. De même, chaque élément enfant se compose de propriétés communes aux éléments d’appareil photo et de scanneur, ainsi que de propriétés spécifiques aux éléments du scanneur.
Par le biais du service WIA, une application peut demander les éléments suivants à un élément de scanneur :
Fonctionnalités de l’analyseur de requêtes
Définir les propriétés de l’appareil d’analyse
Demander un transfert de données
Dans Windows Me et Windows XP, directement sous l’élément racine, un objet scanneur classique a un seul élément, l’élément scanneur, qui représente la fonctionnalité de collecte de données de l’appareil. Une application configure une analyse en définissant les propriétés de l’élément de scanneur. L’analyse est exécutée lorsque l’application demande des données, via le service WIA, à partir de l’élément .
Dans Windows Me et Windows XP, les applications s’attendent généralement à ce que les scanneurs à plat, y compris ceux dotés de chargeurs de documents automatiques (ADF), soient représentés par deux éléments : un élément racine et un seul enfant. Tous les transferts de données sont effectués à partir de l’élément enfant. Un pilote peut choisir de créer d’autres éléments pour son utilisation privée, et ces éléments peuvent être rendus compatibles avec le transfert. (Pour ce faire, définissez le bit WiaItemTypeTransfer de l’indicateur de type d’élément dans un appel à wiasCreateChildAppItem. Cette constante est documentée dans la documentation Microsoft Windows SDK.) Toutefois, les applications ne connaissent généralement pas ces éléments privés et ne savent pas comment les manipuler. Pour un scanneur avec ADF, dans Windows Me ou Windows XP, la fonctionnalité ADF est exposée et contrôlée en ajoutant les propriétés WIA_DPS_DOCUMENT_HANDLING_XXX à l’élément racine du scanneur, plutôt qu’à l’élément enfant du scanneur. Pour plus d’informations sur ces propriétés, consultez Propriétés WIA. Pour plus d’informations sur un scanneur doté d’un ADF dans Windows Vista, consultez Scanners du chargeur WIA.
Si un appareil a un plateau plat et un ADF, et peut effectuer des analyses DUPLEX, dans Windows Me ou Windows XP, un pilote signale la propriété WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES comme (FEED | PLAT | DUP).
Assurez-vous que les valeurs valides pour WIA_DPS_DOCUMENT_HANDLING_SELECT sont correctement définies. Notez que tous les documents analysés dans un seul travail d’analyse existent dans un seul élément enfant de l’arborescence des éléments. Pour plus d’informations sur un scanneur avec un ADF et un duplexeur sur Windows Vista, consultez Scanneurs de chargeurs WIA.
Par exemple, supposons qu’une application a l’intention d’effectuer une analyse duplex de trois pages à partir de l’ADF. Pour ce faire, l’application doit définir la propriété WIA_DPS_DOCUMENT_HANDLING_SELECT sur (FEEDER | DUPLEX) et définissent la propriété WIA_DPS_PAGES sur 3. Si l’application souhaite d’abord analyser l’avant de la page, elle doit définir la propriété WIA_DPS_DOCUMENT_HANDLING_SELECT sur (FEEDER | DUPLEX | FRONT_FIRST). Une fois cette opération effectuée, l’application doit accéder à l’élément enfant à partir duquel elle demanderait un transfert de données. Le minidriver signale le début de la première page de l’ADF en tant que page 1, l’arrière de cette page comme page 2 et le début de la deuxième page de l’ADF comme page 3.
Il est important de rappeler que si l’appareil a un ADF, il doit prendre en charge les propriétés ADF.