Share via


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
S_OK
El puntero de la interfaz de notificación se estableció correctamente.
BG_E_INVALID_STATE
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

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags