Compartir a través de


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.

Syntax

HRESULT SetNotifyInterface(
  IUnknown *Val
);

Parámetros

Val

Puntero de interfaz IBackgroundCopyCallback . Para quitar el puntero de 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 de retorno Description
S_OK
El puntero de 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.

Observaciones

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 finaliza la aplicación; 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 notificaciones de devolución de llamada, puede registrarse para que BITS ejecute una línea de comandos para 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.

Examples

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

Requirement Importancia
Cliente mínimo compatible Windows XP
Servidor mínimo admitido Windows Server 2003
de la plataforma de destino de Windows
Header bits.h
Library Bits.lib
DLL de QmgrPrxy.dll

Consulte también

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags