Condividi tramite


Metodo IBackgroundCopyJob::SetNotifyInterface (bits.h)

Identifica l'implementazione dell'interfaccia IBackgroundCopyCallback in BITS. Usare l'interfaccia IBackgroundCopyCallback per ricevere la notifica degli eventi correlati al processo.

Sintassi

HRESULT SetNotifyInterface(
  IUnknown *Val
);

Parametri

Val

Puntatore dell'interfaccia IBackgroundCopyCallback . Per rimuovere il puntatore dell'interfaccia callback corrente, impostare questo parametro su NULL.

Valore restituito

Questo metodo restituisce i valori HRESULT seguenti, nonché altri.

Codice restituito Descrizione
S_OK
Puntatore dell'interfaccia di notifica è stato impostato correttamente.
BG_E_INVALID_STATE
Lo stato del processo non può essere BG_JOB_STATE_CANCELLED o BG_JOB_STATE_ACKNOWLEDGED.

Commenti

Chiamare questo metodo solo se si implementa l'interfaccia IBackgroundCopyCallback . Utilizzare il metodo SetNotifyInterface insieme al metodo SetNotifyFlags per specificare il tipo di notifica che si vuole ricevere.

L'interfaccia di notifica diventa non valida quando l'applicazione termina; BITS non mantiene l'interfaccia di notifica. Di conseguenza, il processo di inizializzazione dell'applicazione deve chiamare il metodo SetNotifyInterface su tali processi esistenti per cui si vuole ricevere una notifica. Se è necessario acquisire informazioni sullo stato e sullo stato che si sono verificate dall'ultima esecuzione dell'applicazione, eseguire il polling di informazioni sullo stato e sullo stato durante l'inizializzazione dell'applicazione.

Si noti che BITS chiamerà il callback anche se l'evento per cui è già stato registrato.

In alternativa alla ricezione della notifica di callback, è possibile registrare per avere BITS eseguire una riga di comando per gli eventi di errore e trasferiti. Per altre informazioni, vedere il metodo IBackgroundCopyJob2::SetNotifyCmdLine .

Si noti che se più di un'applicazione chiama il metodo SetNotifyInterface per impostare l'interfaccia di notifica per il processo, l'ultima applicazione per chiamare il metodo SetNotifyInterface è quella che riceverà notifiche, le altre applicazioni non riceveranno notifiche.

Esempio

Nell'esempio seguente viene illustrato come chiamare il metodo SetNotifyInterface . Per informazioni dettagliate sulla classe di esempio CNotifyInterface usata nell'esempio seguente, vedere l'interfaccia IBackgroundCopyCallback . L'esempio presuppone che il puntatore dell'interfaccia IBackgroundCopyJob sia valido.

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.
}

Requisiti

Requisito Valore
Client minimo supportato Windows XP
Server minimo supportato Windows Server 2003
Piattaforma di destinazione Windows
Intestazione bits.h
Libreria Bits.lib
DLL QmgrPrxy.dll

Vedi anche

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags