Metodo IBackgroundCopyCallback::JobError (bits.h)
BITS chiama l'implementazione del metodo JobError quando lo stato del processo viene modificato in BG_JOB_STATE_ERROR.
Sintassi
HRESULT JobError(
[in] IBackgroundCopyJob *pJob,
[in] IBackgroundCopyError *pError
);
Parametri
[in] pJob
Contiene informazioni correlate al processo, ad esempio il numero di byte e file trasferiti prima dell'errore. Contiene anche i metodi per riprendere e annullare il processo. Non rilasciare pJob; BITS rilascia l'interfaccia quando il metodo JobError restituisce.
[in] pError
Contiene informazioni sull'errore, ad esempio il file elaborato al momento dell'errore irreversibile e una descrizione dell'errore. Non rilasciare pError; BITS rilascia l'interfaccia quando il metodo JobError restituisce.
Valore restituito
Questo metodo deve restituire S_OK; in caso contrario, BITS continua a chiamare questo metodo fino a quando non viene restituito S_OK. Per motivi di prestazioni, è consigliabile limitare il numero di volte in cui si restituisce un valore diverso da S_OK a poche volte. In alternativa alla restituzione di un codice di errore, è consigliabile restituire sempre S_OK e gestire internamente l'errore. L'intervallo in cui viene chiamato questo metodo è arbitrario.
Si noti che se questo metodo ha esito negativo e si chiama il metodo IBackgroundCopyJob2::SetNotifyCmdLine , la riga di comando viene eseguita e questo metodo non viene chiamato di nuovo.
Commenti
Dopo aver determinato la causa dell'errore, eseguire una delle opzioni seguenti:
- Per annullare il processo, chiamare il metodo IBackgroundCopyJob::Cancel . La richiesta di annullamento non ha alcun effetto sui processi di caricamento se si è verificato l'errore dopo il caricamento del file. Tuttavia, se il tipo di processo è BG_JOB_TYPE_UPLOAD_REPLY e il caricamento ha avuto esito positivo, chiamando il metodo Cancel annulla la richiesta per i dati di risposta.
- Per accettare la parte del processo che è stata trasferita correttamente prima dell'errore, chiamare il metodo IBackgroundCopyJob::Complete . Questa opzione non si applica ai processi di caricamento; non è possibile completare una parte di un processo di caricamento.
- Per completare l'elaborazione del processo, risolvere il problema e quindi chiamare il metodo IBackgroundCopyJob::Resume .
Gli errori temporanei non generano chiamate al metodo JobError .
Per determinare se la parte di caricamento, risposta o applicazione server di un processo di risposta di caricamento non è riuscita, chiamare il metodo IBackgroundCopyError::GetError per recuperare il contesto in cui si è verificato l'errore. L'applicazione server non è riuscita se il contesto è BG_ERROR_CONTEXT_REMOTE_APPLICATION. Il contesto per il caricamento e la risposta è BG_ERROR_CONTEXT_REMOTE_FILE. Risposta non riuscita se il membro BytesTotal della struttura BG_JOB_REPLY_PROGRESS non è BG_SIZE_UNKNOWN. In caso contrario, il caricamento non è riuscito.
Esempio
Vedere il codice di esempio per l'interfaccia IBackgroundCopyCallback .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP |
Server minimo supportato | Windows Server 2003 |
Piattaforma di destinazione | Windows |
Intestazione | bits.h |