Método IBackgroundCopyCallback::JobError (bits.h)
O BITS chama a implementação do método JobError quando o estado do trabalho é alterado para BG_JOB_STATE_ERROR.
Sintaxe
HRESULT JobError(
[in] IBackgroundCopyJob *pJob,
[in] IBackgroundCopyError *pError
);
Parâmetros
[in] pJob
Contém informações relacionadas ao trabalho, como o número de bytes e arquivos transferidos antes da ocorrência do erro. Ele também contém os métodos para retomar e cancelar o trabalho. Não liberar pJob; O BITS libera a interface quando o método JobError retorna.
[in] pError
Contém informações de erro, como o arquivo que está sendo processado no momento em que o erro fatal ocorreu e uma descrição do erro. Não liberar pError; O BITS libera a interface quando o método JobError retorna.
Retornar valor
Esse método deve retornar S_OK; caso contrário, o BITS continuará a chamar esse método até que S_OK seja retornado. Por motivos de desempenho, você deve limitar o número de vezes que retorna um valor diferente de S_OK para algumas vezes. Como alternativa ao retorno de um código de erro, considere sempre retornar S_OK e lidar com o erro internamente. O intervalo no qual esse método é chamado é arbitrário.
Observe que, se esse método falhar e você chamar o método IBackgroundCopyJob2::SetNotifyCmdLine , a linha de comando será executada e esse método não será chamado novamente.
Comentários
Depois de determinar a causa do erro, execute uma das seguintes opções:
- Para cancelar o trabalho, chame o método IBackgroundCopyJob::Cancel . A solicitação de cancelamento não terá efeito sobre trabalhos de upload se o erro ocorreu depois que o arquivo foi carregado com êxito. No entanto, se o tipo de trabalho for BG_JOB_TYPE_UPLOAD_REPLY e o upload tiver sido bem-sucedido, chamar o método Cancel cancelará a solicitação para os dados de resposta.
- Para aceitar a parte do trabalho que foi transferida com êxito antes do erro ocorrer, chame o método IBackgroundCopyJob::Complete . Essa opção não se aplica a trabalhos de upload; não é possível concluir uma parte de um trabalho de upload.
- Para concluir o processamento do trabalho, corrija o problema e chame o método IBackgroundCopyJob::Resume .
Erros transitórios não geram chamadas para o método JobError .
Para determinar se a parte do aplicativo de upload, resposta ou servidor de um trabalho de resposta de upload falhou, chame o método IBackgroundCopyError::GetError para recuperar o contexto no qual o erro ocorreu. O aplicativo de servidor falhará se o contexto for BG_ERROR_CONTEXT_REMOTE_APPLICATION. O contexto para upload e resposta é BG_ERROR_CONTEXT_REMOTE_FILE. A resposta falhará se o membro BytesTotal da estrutura BG_JOB_REPLY_PROGRESS não estiver BG_SIZE_UNKNOWN. Caso contrário, o upload falhou.
Exemplos
Consulte o código de exemplo para a interface IBackgroundCopyCallback .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP |
Servidor mínimo com suporte | Windows Server 2003 |
Plataforma de Destino | Windows |
Cabeçalho | bits.h |