Prise en charge des commandes du pilote WIA
Une commande d’appareil WIA est une demande envoyée par le service WIA (pour le compte de l’application de création d’images) au minidriver WIA, lui demandant d’effectuer une action particulière.
Voici la liste des commandes d’appareil WIA qui peuvent être émises sur un minidriver :
Commande | Signification |
---|---|
WIA_CMD_CHANGE_DOCUMENT | Passez au document suivant (émis uniquement pour les scanneurs multidocuments). |
WIA_CMD_DELETE_ALL_ITEMS | Supprimez l’arborescence d’éléments du pilote. |
WIA_CMD_DIAGNOSTIC | Réservé par Microsoft. |
WIA_CMD_SYNCHRONIZE | Régénérez l’arborescence d’éléments du pilote. Tous les minidrivers doivent prendre en charge cette commande. |
WIA_CMD_TAKE_PICTURE | Prendre une photo (émise pour les appareils photo uniquement). |
WIA_CMD_UNLOAD_DOCUMENT | Déchargez le document actif (émis uniquement pour les scanneurs multidocuments). |
Les commandes WIA_CMD_XXX sont décrites dans la documentation Microsoft Windows SDK. Vous pouvez inclure votre propre liste personnalisée de commandes.
Ajout de la prise en charge des commandes d’appareil
Pour configurer correctement votre minidriver WIA pour signaler les commandes d’appareil, signalez un tableau de commandes prises en charge dans la méthode IWiaMiniDrv ::d rvGetCapabilities . Pour obtenir un exemple d’implémentation de la méthode IWiaMiniDrv ::d rvGetCapabilities , consultez Ajout de la prise en charge des événements d’interruption.
Implémenter la méthode IWiaMiniDrv ::d rvDeviceCommand
Le service WIA appelle la méthode IWiaMiniDrv ::d rvDeviceCommand en réponse à l’appel de l’application à la méthode IWiaItem ::D eviceCommand (décrite dans la documentation Microsoft Windows SDK). La méthode IWiaMiniDrv ::d rvDeviceCommand doit effectuer les tâches suivantes :
Déterminez si la commande envoyée est une commande prise en charge.
Traitez la demande de commande.
Le pilote WIA doit déterminer l’élément WIA qui doit recevoir la commande de périphérique à l’aide du pointeur pWiasContext . Le pilote WIA doit ensuite traiter la commande d’appareil reçue ciblant l’élément WIA entrant. Toute commande envoyée au pilote WIA qui n’est pas prise en charge doit échouer avec un code d’erreur E_INVALIDARG.
Pour obtenir un exemple d’implémentation de la méthode IWiaMiniDrv ::d rvDeviceCommand , consultez Information d’une application de modifications d’arborescence d’éléments.