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 |
---|---|
|
Puntatore dell'interfaccia di notifica è stato impostato correttamente. |
|
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
IBackgroundCopyJob2::SetNotifyCmdLine