Freigeben über


IBackgroundCopyJob::SetNotifyInterface-Methode (bits.h)

Identifiziert Ihre Implementierung der IBackgroundCopyCallback-Schnittstelle für BITS. Verwenden Sie die IBackgroundCopyCallback-Schnittstelle , um Benachrichtigungen über auftragsbezogene Ereignisse zu erhalten.

Syntax

HRESULT SetNotifyInterface(
  IUnknown *Val
);

Die Parameter

Val

Ein IBackgroundCopyCallback-Schnittstellenzeiger . Um den aktuellen Rückrufschnittstellenzeiger zu entfernen, legen Sie diesen Parameter auf NULL fest.

Rückgabewert

Diese Methode gibt die folgenden HRESULT-Werte sowie andere zurück.

Rückgabecode Description
S_OK
Der Zeiger der Benachrichtigungsschnittstelle wurde erfolgreich festgelegt.
BG_E_INVALID_STATE
Der Status des Auftrags kann nicht BG_JOB_STATE_CANCELLED oder BG_JOB_STATE_ACKNOWLEDGED werden.

Bemerkungen

Rufen Sie diese Methode nur auf, wenn Sie die IBackgroundCopyCallback-Schnittstelle implementieren. Verwenden Sie die SetNotifyInterface-Methode in Verbindung mit der SetNotifyFlags-Methode , um den Typ der Benachrichtigung anzugeben, die Sie empfangen möchten.

Die Benachrichtigungsschnittstelle wird ungültig, wenn Die Anwendung beendet wird. BITS behält die Benachrichtigungsschnittstelle nicht bei. Daher sollte der Initialisierungsprozess Ihrer Anwendung die SetNotifyInterface-Methode für die vorhandenen Aufträge aufrufen, für die Sie eine Benachrichtigung erhalten möchten. Wenn Sie Status- und Statusinformationen erfassen müssen, die seit der letzten Ausführung der Anwendung aufgetreten sind, können Sie während der Anwendungsinitialisierung Status- und Statusinformationen abrufen.

Beachten Sie, dass BITS Ihren Rückruf auch dann aufruft, wenn das Ereignis, für das Sie sich bereits registriert haben, bereits aufgetreten ist.

Als Alternative zum Empfangen von Rückrufbenachrichtigungen können Sie registrieren, dass BITS eine Befehlszeile für Fehler- und übertragene Ereignisse ausführt. Weitere Informationen finden Sie unter der IBackgroundCopyJob2::SetNotifyCmdLine-Methode .

Beachten Sie, dass die letzte Anwendung, die die SetNotifyInterface-Methode aufruft, um die Benachrichtigungsschnittstelle für den Auftrag festzulegen, die letzte Anwendung, um die SetNotifyInterface-Methode aufzurufen, die Benachrichtigungen empfängt – die anderen Anwendungen erhalten keine Benachrichtigungen.

Examples

Das folgende Beispiel zeigt, wie die SetNotifyInterface-Methode aufgerufen wird. Ausführliche Informationen zur im folgenden Beispiel verwendeten CNotifyInterface-Beispielklasse finden Sie in der IBackgroundCopyCallback-Schnittstelle . Im Beispiel wird davon ausgegangen, dass der IBackgroundCopyJob-Schnittstellenzeiger gültig ist.

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

Anforderungen

Anforderung Wert
Mindestens unterstützter Client Windows XP
Mindestanforderungen für unterstützte Server Windows Server 2003
Zielplattform Fenster
Header bits.h
Library Bits.lib
DLL QmgrPrxy.dll

Siehe auch

IBackgroundCopyCallback

IBackgroundCopyJob2::SetNotifyCmdLine

IBackgroundCopyJob::GetNotifyInterface

IBackgroundCopyJob::SetNotifyFlags