Condividi tramite


Annullamento dei dialoghi senza modalità del gestore degli errori WIA

Gran parte della complessità nel gestore degli errori si basa sul modo in cui vengono gestiti l'annullamento e la chiusura delle finestre di dialogo senza modalità.

In particolare, il codice proxy WIA garantisce che un gestore di errori di livello inferiore (in altre parole un gestore diverso dal gestore degli errori dell'applicazione) ottenga la possibilità di comunicare una richiesta di annullamento da una finestra di dialogo senza modalità al driver; in questo modo si garantisce che un gestore di livello inferiore possa chiudere la finestra di dialogo senza modalità.

Per consentire a un gestore errori di annullare un'operazione di trasferimento dati da una finestra di dialogo senza modalità, un driver deve continuare a inviare messaggi WIA_TRANSFER_MSG_DEVICE_STATUS con lo stesso codice hrErrorStatus , eventualmente aggiornando il parametro lPercentComplete per consentire a un'interfaccia utente del gestore errori di visualizzare lo stato di avanzamento. Ad esempio, se un driver può fornire una stima del tempo effettivamente necessario per il "riscaldamento", può inviare un numero di messaggi del dispositivo con hrErrorStatus impostato su WIA_STATUS_WARMING_UP. Ciò consentirà al gestore errori di visualizzare una finestra di dialogo di stato e di concedere all'utente la possibilità di annullare il trasferimento da questa finestra di dialogo. Il parametro lPercentComplete passato in IWiaErrorHandler::ReportStatus è lo stesso parametro lPercentComplete impostato dal driver nel metodo IWiaTransferCallback::WiaTransferParams . Per un esempio, vedere Extended WIA Monster Driver (Driver wia wia esteso) nel CD WDK.

Per consentire a un gestore errori di chiudere una finestra di dialogo senza modalità, Microsoft ha introdotto il codice di stato del dispositivo WIA_STATUS_CLEAR. Questo messaggio viene inviato dal proxy WIA al gestore degli errori che attualmente visualizza un'interfaccia utente senza modalità quando il proxy WIA riceve un messaggio del dispositivo diverso da quello attualmente visualizzato. Il proxy invia anche il messaggio di WIA_STATUS_CLEAR quando:

Il driver invia il messaggio WIA_TRANSFER_MESSAGE_STATUS,

durante le chiamate al metodo IWiaTransferCallback::GetNextStream

alla fine del flusso/trasferimento (se attualmente è presente un gestore errori che visualizza un'interfaccia utente senza modalità).

I driver non devono inviare il messaggio WIA_STATUS_CLEAR.

L'interfaccia IWiaTransferCallback è descritta nella documentazione di Microsoft Windows SDK.