Freigeben über


Erstellen einer benutzerdefinierten Warteschlangenrückrufroutine

Zusätzlich zur Verwendung des Standardwarteschlangenrückrufs können Sie eine benutzerdefinierte Rückrufroutine schreiben. Diese Funktion muss das gleiche Format 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 Standard-Warteschlangenrückrufroutine bereitgestellte zu behandeln.

Wenn nur ein kleiner Teil des Verhaltens der Standardwarteschlangenrückrufroutine geändert werden muss, können Sie eine benutzerdefinierte Rückrufroutine erstellen, um die Benachrichtigungen zu filtern, wobei nur diejenigen behandelt werden, die besonderes Verhalten erfordern, und setupDefaultQueueCallback für die anderen aufrufen.

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 Löschfehlerbenachrichtigungen zurück. Für alle anderen Benachrichtigungen übergibt MyCallback den Wert, den die Standard-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 Standard-Warteschlangenrückrufroutine aufruft, muss der von SetupInitDefaultQueueCallback oder SetupInitDefaultQueueCallbackEx zurückgegebene Void-Zeiger an die Standardrückrufroutine übergeben werden.