Freigeben über


Erstellen einer Kabinettrückrufroutine

Da die Setup-API keine Standardmäßige Rückrufroutine für Ablagen liefert, müssen Sie eine Routine bereitstellen. Die Rückrufroutine, die die SetupIterateCabinet-Funktion benötigt, muss dieselbe Form aufweisen wie die, auf die von FileCallback verwiesen wird.

Es folgt die Syntax, die SetupIterateCabinet verwendet, um eine Benachrichtigung an die Rückrufroutine zu senden.

MsgHandler(          //the specified callback routine
    Context,         //context used by the callback routine
    Notification,    //cabinet notification
    Param1,          //additional notification information
    Param2           //additional notification information
);

Der Context-Parameter ist ein Void-Zeiger auf eine Kontextvariable oder -struktur, die von der Rückrufroutine verwendet werden kann, um Informationen zu speichern, die zwischen nachfolgenden Aufrufen der Rückrufroutine beibehalten werden müssen.

Die Implementierung dieses Kontexts wird von der Rückrufroutine angegeben und wird von SetupIterateCabinet nie referenziert oder geändert.

Der Notification-Parameter ist eine ganze Zahl ohne Vorzeichen und einer der folgenden Werte.

Benachrichtigung Beschreibung
SPFILENOTIFY_FILEEXTRACTED Die Datei wurde aus dem Schrank extrahiert.
SPFILENOTIFY_FILEINCABINET In der Ablage wird eine Datei gefunden.
SPFILENOTIFY_NEEDNEWCABINET Die aktuelle Datei wird in der nächsten Ablage fortgesetzt.

 

Die beiden letzten Parameter , Param1 und Param2, sind ebenfalls ganze Zahlen ohne Vorzeichen und enthalten zusätzliche Informationen, die für die Benachrichtigung relevant sind. Weitere Informationen zu den Benachrichtigungen, die von SetupIterateCabinet gesendet werden, finden Sie unter Cabinet File Notifications.

Eine SP_FILE_NOTIFY_CALLBACK Routine gibt eine ganze Zahl ohne Vorzeichen zurück. Die Kabinettrückrufroutine sollte abhängig von der Benachrichtigung einen der folgenden Werte zurückgeben.

Für die SPFILENOTIFY_FILEINCABINET Benachrichtigung erwartet SetupIterateCabinet , dass von der Rückrufroutine einer der folgenden Werte zurückgegeben wird.

Wert Bedeutung
FILEOP_ABORT Abbrechen der Ablageverarbeitung.
FILEOP_DOIT Extrahieren Sie die aktuelle Datei.
FILEOP_SKIP Überspringen Sie die aktuelle Datei.

 

Für SPFILENOTIFY_NEEDNEWCABINET und SPFILENOTIFY_FILEEXTRACTED Benachrichtigungen erwartet SetupIterateCabinet , dass einer der folgenden Werte von der Rückrufroutine zurückgegeben wird.

Wert Bedeutung
NO_ERROR Es ist kein Fehler aufgetreten, fahren Sie mit der Verarbeitung des Schranks fort.
ERROR_XXX Ein Fehler des angegebenen Typs ist aufgetreten. Die SetupIterateCabinet-Funktion gibt FALSE zurück, und der angegebene Fehlercode wird durch einen Aufruf von GetLastError zurückgegeben.

 

Wenn die Rückrufroutine FILEOP_DOIT zurückgibt, muss die Routine auch einen vollständigen Zielpfad bereitstellen. Weitere Informationen finden Sie unter SPFILENOTIFY_FILEINCABINET.