Método IBackgroundCopyJob::GetError (bits.h)
Recupera la interfaz de error después de producirse un error.
BITS genera un objeto de error cuando el estado del trabajo es BG_JOB_STATE_ERROR o BG_JOB_STATE_TRANSIENT_ERROR. El servicio no crea un objeto de error cuando se produce un error en una llamada a un método de interfaz IBackgroundCopyXXXX . El objeto de error está disponible hasta que BITS comienza a transferir datos (el estado del trabajo cambia a BG_JOB_STATE_TRANSFERRING) para el trabajo o hasta que se cierra la aplicación.
Sintaxis
HRESULT GetError(
[out] IBackgroundCopyError **ppError
);
Parámetros
[out] ppError
Interfaz de error que proporciona el código de error, una descripción del error y el contexto en el que se produjo el error. Este parámetro también identifica el archivo que se transfiere en el momento en que se produjo el error. Publique ppError cuando haya terminado.
Valor devuelto
Este método devuelve los siguientes valores HRESULT , así como otros.
Código devuelto | Descripción |
---|---|
|
Se generó correctamente el objeto de error. |
|
La interfaz de error solo está disponible después de producirse un error (BG_JOB_STATE_ERROR o BG_JOB_STATE_TRANSIENT_ERROR) y antes de que BITS comience a transferir datos (BG_JOB_STATE_TRANSFERRING). |
Comentarios
El trabajo se coloca en un estado de error en errores irrecuperables o después de que expire el período de tiempo de espera sin progreso para errores transitorios (este período se recupera del método GetNoProgressTimeout ). Use una de las siguientes opciones para determinar si el trabajo está en error:
- Para sondear el estado del trabajo, llame al método IBackgroundCopyJob::GetState . El trabajo está en error si el estado es BG_JOB_STATE_ERROR.
- Para recibir una notificación cuando se produce un error, implemente la interfaz IBackgroundCopyCallback (en concreto, el método JobError ). A continuación, llame al método IBackgroundCopyJob::SetNotifyInterface para registrar la devolución de llamada y el método IBackgroundCopyJob::SetNotifyFlags para establecer la marca BG_NOTIFY_JOB_ERROR.
- Para cancelar el trabajo, llame al método IBackgroundCopyJob::Cancel .
- Para guardar los archivos que se transfirieron correctamente antes de que se produjera el error, llame al método IBackgroundCopyJob::Complete .
- Para finalizar el procesamiento del trabajo, corrija el problema y, a continuación, llame al método IBackgroundCopyJob::Resume .
Para determinar si se produjo un error en la parte de la aplicación de carga, respuesta o servidor de un trabajo de carga-respuesta, 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. Si el error es con la carga o respuesta, el contexto se BG_ERROR_CONTEXT_REMOTE_FILE. Error en la carga si el miembro BytesTotal de la estructura de BG_JOB_REPLY_PROGRESS está BG_SIZE_UNKNOWN. De lo contrario, se produjo un error en la respuesta.
Ejemplos
Consulte el código de ejemplo en el tema Control de errores .
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP |
Servidor mínimo compatible | Windows Server 2003 |
Plataforma de destino | Windows |
Encabezado | bits.h |
Library | Bits.lib |
Archivo DLL | QmgrPrxy.dll |