Método IBackgroundCopyJob::SetNotifyInterface (bits.h)
Identifica la implementación de la interfaz IBackgroundCopyCallback en BITS. Use la interfaz IBackgroundCopyCallback para recibir notificaciones de eventos relacionados con el trabajo.
Sintaxis
HRESULT SetNotifyInterface(
IUnknown *Val
);
Parámetros
Val
Puntero de interfaz IBackgroundCopyCallback . Para quitar el puntero de la interfaz de devolución de llamada actual, establezca este parámetro en NULL.
Valor devuelto
Este método devuelve los siguientes valores HRESULT , así como otros.
Código devuelto | Descripción |
---|---|
|
El puntero de la interfaz de notificación se estableció correctamente. |
|
El estado del trabajo no puede ser BG_JOB_STATE_CANCELLED ni BG_JOB_STATE_ACKNOWLEDGED. |
Comentarios
Llame a este método solo si implementa la interfaz IBackgroundCopyCallback . Use el método SetNotifyInterface junto con el método SetNotifyFlags para especificar el tipo de notificación que desea recibir.
La interfaz de notificación deja de ser válida cuando la aplicación finaliza; BITS no conserva la interfaz de notificación. Como resultado, el proceso de inicialización de la aplicación debe llamar al método SetNotifyInterface en los trabajos existentes para los que desea recibir la notificación. Si necesita capturar información de estado y progreso que se produjo desde la última vez que se ejecutó la aplicación, sondee la información de estado y progreso durante la inicialización de la aplicación.
Tenga en cuenta que BITS llamará a la devolución de llamada incluso si el evento para el que se registró ya se ha producido.
Como alternativa a recibir una notificación de devolución de llamada, puede registrarse para que BITS ejecute una línea de comandos para los eventos de error y transferidos. Para obtener más información, consulte el método IBackgroundCopyJob2::SetNotifyCmdLine .
Tenga en cuenta que si más de una aplicación llama al método SetNotifyInterface para establecer la interfaz de notificación para el trabajo, la última aplicación para llamar al método SetNotifyInterface es la que recibirá notificaciones; las demás aplicaciones no recibirán notificaciones.
Ejemplos
En el ejemplo siguiente se muestra cómo llamar al método SetNotifyInterface . Para obtener más información sobre la clase de ejemplo CNotifyInterface usada en el ejemplo siguiente, vea la interfaz IBackgroundCopyCallback . En el ejemplo se supone que el puntero de interfaz IBackgroundCopyJob es válido.
IBackgroundCopyJob* pJob;
CNotifyInterface* pNotify = new CNotifyInterface();
hr = pJob->SetNotifyInterface(pNotify);
if (SUCCEEDED(hr))
{
hr = pJob->SetNotifyFlags(BG_NOTIFY_JOB_TRANSFERRED |
BG_NOTIFY_JOB_ERROR);
}
pNotify->Release();
pNofity = NULL;
if (FAILED(hr))
{
//Handle error - unable to register for event notification.
}
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 |
Consulte también
IBackgroundCopyJob2::SetNotifyCmdLine