Erstellen einer benutzerdefinierten Warteschlangenrückrufroutine

Zusätzlich zur Verwendung des standardmäßigen Warteschlangenrückrufs können Sie eine benutzerdefinierte Rückrufroutine schreiben. Diese Funktion muss das gleiche Formular wie FileCallback haben. Dies ist nützlich, wenn Sie eine Rückrufroutine benötigen, um eine Benachrichtigung auf eine andere Weise als die von der standarden Warteschlangenrückrufroutine bereitgestellte Zu behandeln.

Wenn nur ein kleiner Teil des Standardverhaltens der Warteschlangenrückrufroutine geändert werden muss, können Sie eine benutzerdefinierte Rückrufroutine erstellen, um die Benachrichtigungen zu filtern. Dabei werden nur die Benachrichtigungen, die ein besonderes Verhalten erfordern, und den Aufruf von SetupDefaultQueueCallback für die anderen Benutzer durchgeführt.

Wenn Sie z. B. Fehler beim Löschen von Dateien benutzerdefinierte behandeln möchten, können Sie eine benutzerdefinierte Rückruffunktion erstellen: MyCallback. Diese Funktion würde SPFILENOTIFY _ DELETEERROR-Benachrichtigungen abfangen und verarbeiten und die Standardmäßige Warteschlangenrückruffunktion für alle anderen Benachrichtigungen aufrufen. MyCallback gibt einen Wert für die Benachrichtigungen zu Löschfehlern zurück. Für alle anderen Benachrichtigungen übergibt MyCallback den Wert, den die Standardmäßige Warteschlangenrückrufroutine an die Warteschlange zurückgegeben hat.

Dieser Ablauf der Steuerung wird im folgenden Diagramm veranschaulicht.

Pfeile und Felder mit Datenfluss für benutzerdefinierte Rückruffunktion

Wichtig

Wenn die benutzerdefinierte Rückruffunktion die Standardmäßige Warteschlangenrückrufroutine aufruft, muss sie den void-Zeiger, der von SetupInitDefaultQueueCallback oder SetupInitDefaultQueueCallbackEx zurückgegeben wird, an die Standardrückrufroutine übergeben.