Método IBackgroundCopyCallback::JobError (bits.h)
BITS llama a la implementación del método JobError cuando el estado del trabajo cambia a BG_JOB_STATE_ERROR.
Sintaxis
HRESULT JobError(
[in] IBackgroundCopyJob *pJob,
[in] IBackgroundCopyError *pError
);
Parámetros
[in] pJob
Contiene información relacionada con el trabajo, como el número de bytes y archivos transferidos antes de que se produjera el error. También contiene los métodos para reanudar y cancelar el trabajo. No liberar pJob; BITS libera la interfaz cuando el método JobError devuelve.
[in] pError
Contiene información de error, como el archivo que se está procesando en el momento en que se produjo el error irrecuperable y una descripción del error. No liberar pError; BITS libera la interfaz cuando el método JobError devuelve.
Valor devuelto
Este método debe devolver S_OK; de lo contrario, BITS continúa llamando a este método hasta que se devuelve S_OK. Por motivos de rendimiento, debe limitar el número de veces que se devuelve un valor distinto de S_OK a varias veces. Como alternativa a devolver un código de error, considere la posibilidad de devolver siempre S_OK y controlar el error internamente. El intervalo en el que se llama a este método es arbitrario.
Tenga en cuenta que si se produce un error en este método y llamó al método IBackgroundCopyJob2::SetNotifyCmdLine , se ejecuta la línea de comandos y este método no se llama de nuevo.
Comentarios
Después de determinar la causa del error, realice una de las siguientes opciones:
- Para cancelar el trabajo, llame al método IBackgroundCopyJob::Cancel . La solicitud de cancelación no tiene ningún efecto en los trabajos de carga si el error se produjo después de cargar correctamente el archivo. Sin embargo, si el tipo de trabajo es BG_JOB_TYPE_UPLOAD_REPLY y la carga se realizó correctamente, al llamar al método Cancel se cancela la solicitud de los datos de respuesta.
- Para aceptar la parte del trabajo que se transfirió correctamente antes de que se produjera el error, llame al método IBackgroundCopyJob::Complete . Esta opción no se aplica a la carga de trabajos; no se puede completar una parte de un trabajo de carga.
- Para finalizar el procesamiento del trabajo, corrija el problema y, a continuación, llame al método IBackgroundCopyJob::Resume .
Los errores transitorios no generan llamadas al método JobError .
Para determinar si se produjo un error en la parte de carga, respuesta o aplicación de servidor de un trabajo de respuesta de carga, llame al método IBackgroundCopyError::GetError para recuperar el contexto en el que se produjo el error. Error en la aplicación de servidor si el contexto es BG_ERROR_CONTEXT_REMOTE_APPLICATION. El contexto de carga y respuesta es BG_ERROR_CONTEXT_REMOTE_FILE. Error de respuesta si el miembro BytesTotal de la estructura BG_JOB_REPLY_PROGRESS no está BG_SIZE_UNKNOWN. De lo contrario, se produjo un error en la carga.
Ejemplos
Consulte el código de ejemplo de la interfaz IBackgroundCopyCallback .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP |
Servidor mínimo compatible | Windows Server 2003 |
Plataforma de destino | Windows |
Encabezado | bits.h |