Creazione di una routine di callback di Cabinet
Poiché l'API di installazione non fornisce una routine di callback di cabinet predefinita, è necessario fornire una routine. La routine di callback richiesta dalla funzione SetupIterateCabinet deve avere la stessa forma di quelle a cui punta fileCallback.
Di seguito è riportata la sintassi usata da SetupIterateCabinet per inviare una notifica alla routine di callback.
MsgHandler( //the specified callback routine
Context, //context used by the callback routine
Notification, //cabinet notification
Param1, //additional notification information
Param2 //additional notification information
);
Il parametro Context è un puntatore void a una variabile di contesto o a una struttura che può essere usata dalla routine di callback per archiviare informazioni che devono essere mantenute tra le chiamate successive alla routine di callback.
Questa implementazione del contesto viene specificata dalla routine di callback e non viene mai fatto riferimento o modificato da SetupIterateCabinet.
Il parametro Notification è un intero senza segno e sarà uno dei valori seguenti.
Notifica | Descrizione |
---|---|
SPFILENOTIFY_FILEEXTRACTED | Il file è stato estratto dal gabinetto. |
SPFILENOTIFY_FILEINCABINET | Viene rilevato un file nel gabinetto. |
SPFILENOTIFY_NEEDNEWCABINET | Il file corrente viene continuato nel successivo gabinetto. |
I due parametri finali, Param1 e Param2, sono anche interi senza segno e contengono informazioni aggiuntive rilevanti per la notifica. Per altre informazioni sulle notifiche inviate da SetupIterateCabinet, vedere Notifiche file di archivio.
Una routine SP_FILE_NOTIFY_CALLBACK restituisce un intero senza segno. La routine di callback del cabinet deve restituire uno dei valori seguenti a seconda della notifica.
Per la notifica di SPFILENOTIFY_FILEINCABINET, SetupIterateCabinet prevede che uno dei valori seguenti venga restituito dalla routine di callback.
Valore | Significato |
---|---|
FILEOP_ABORT | Interruzione dell'elaborazione del gabinetto. |
FILEOP_DOIT | Estrarre il file corrente. |
FILEOP_SKIP | Ignorare il file corrente. |
Per le notifiche di SPFILENOTIFY_NEEDNEWCABINET e SPFILENOTIFY_FILEEXTRACTED, SetupIterateCabinet prevede che uno dei valori seguenti venga restituito dalla routine di callback.
Valore | Significato |
---|---|
NO_ERROR | Non è stato rilevato alcun errore, continuare a elaborare il gabinetto. |
ERROR_XXX | Si è verificato un errore del tipo specificato. La funzione SetupIterateCabinet restituirà FALSE e il codice di errore specificato verrà restituito da una chiamata a GetLastError. |
Se la routine di callback restituisce FILEOP_DOIT, la routine deve anche fornire un percorso di destinazione completo. Per altre informazioni, vedere SPFILENOTIFY_FILEINCABINET.