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.