IBackgroundCopyJob::SetNotifyInterface-Methode (bits.h)
Identifiziert Ihre Implementierung der IBackgroundCopyCallback-Schnittstelle zu BITS. Verwenden Sie die IBackgroundCopyCallback-Schnittstelle , um Benachrichtigungen über auftragsbezogene Ereignisse zu erhalten.
Syntax
HRESULT SetNotifyInterface(
IUnknown *Val
);
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 | Beschreibung |
---|---|
|
Der Zeiger der Benachrichtigungsschnittstelle wurde erfolgreich festgelegt. |
|
Der Status des Auftrags kann nicht BG_JOB_STATE_CANCELLED oder BG_JOB_STATE_ACKNOWLEDGED werden. |
Hinweise
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 erhalten möchten.
Die Benachrichtigungsschnittstelle wird ungültig, wenn Ihre Anwendung beendet wird. BITS speichert die Benachrichtigungsschnittstelle nicht. 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, rufen Sie während der Anwendungsinitialisierung Status- und Statusinformationen ab.
Beachten Sie, dass BITS Ihren Rückruf auch dann aufruft, wenn das Ereignis, für das Sie sich registriert haben, bereits aufgetreten ist.
Alternativ zum Empfangen einer Rückrufbenachrichtigung können Sie sich registrieren, damit BITS eine Befehlszeile für Fehler und übertragene Ereignisse ausführt. Weitere Informationen finden Sie in der IBackgroundCopyJob2::SetNotifyCmdLine-Methode .
Wenn mehr als eine Anwendung die SetNotifyInterface-Methode aufruft, um die Benachrichtigungsschnittstelle für den Auftrag festzulegen, ist die letzte Anwendung, die die SetNotifyInterface-Methode aufruft, die Benachrichtigungen empfängt. Die anderen Anwendungen erhalten keine Benachrichtigungen.
Beispiele
Das folgende Beispiel zeigt, wie die SetNotifyInterface-Methode aufgerufen wird. Ausführliche Informationen zur CNotifyInterface-Beispielklasse, die im folgenden Beispiel verwendet wird, finden Sie unter 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 |
---|---|
Unterstützte Mindestversion (Client) | Windows XP |
Unterstützte Mindestversion (Server) | Windows Server 2003 |
Zielplattform | Windows |
Kopfzeile | bits.h |
Bibliothek | Bits.lib |
DLL | QmgrPrxy.dll |
Weitere Informationen
IBackgroundCopyJob2::SetNotifyCmdLine