Crear una rutina de devolución de llamada de gabinete
Dado que la API de instalación no proporciona una rutina de devolución de llamada de gabinete predeterminada, debe proporcionar una rutina. La rutina de devolución de llamada que requiere la función SetupIterateCabinet debe tener el mismo formato que los señalados por FileCallback.
A continuación se muestra la sintaxis que usa SetupIterateCabinet para enviar una notificación a la rutina de devolución de llamada.
MsgHandler( //the specified callback routine
Context, //context used by the callback routine
Notification, //cabinet notification
Param1, //additional notification information
Param2 //additional notification information
);
El parámetro Context es un puntero void a una variable o estructura de contexto que la rutina de devolución de llamada puede usar para almacenar información que debe conservarse entre las llamadas posteriores a la rutina de devolución de llamada.
La rutina de devolución de llamada especifica la implementación de este contexto y setupIterateCabinet nunca hace referencia a ella ni la modifica.
El parámetro Notification es un entero sin signo y será uno de los valores siguientes.
Notification | Descripción |
---|---|
SPFILENOTIFY_FILEEXTRACTED | El archivo se ha extraído del gabinete. |
SPFILENOTIFY_FILEINCABINET | Se encuentra un archivo en el gabinete. |
SPFILENOTIFY_NEEDNEWCABINET | El archivo actual continúa en el siguiente gabinete. |
Los dos parámetros finales, Param1 y Param2, también son enteros sin signo y contienen información adicional relevante para la notificación. Para obtener más información sobre las notificaciones enviadas por SetupIterateCabinet, vea Notificaciones de archivo de archivado.
Una rutina SP_FILE_NOTIFY_CALLBACK devuelve un entero sin signo. La rutina de devolución de llamada del gabinete debe devolver uno de los valores siguientes en función de la notificación.
Para la notificación de SPFILENOTIFY_FILEINCABINET, SetupIterateCabinet espera que la rutina de devolución de llamada devuelva uno de los siguientes valores.
Valor | Significado |
---|---|
FILEOP_ABORT | Anular el procesamiento del gabinete. |
FILEOP_DOIT | Extraiga el archivo actual. |
FILEOP_SKIP | Omita el archivo actual. |
Para las notificaciones de SPFILENOTIFY_NEEDNEWCABINET y SPFILENOTIFY_FILEEXTRACTED, SetupIterateCabinet espera que la rutina de devolución de llamada devuelva uno de los siguientes valores.
Valor | Significado |
---|---|
NO_ERROR | No se encontró ningún error, continúe procesando el gabinete. |
ERROR_XXX | Error del tipo especificado. La función SetupIterateCabinet devolverá FALSE y una llamada a GetLastError devolverá el código de error especificado. |
Si la rutina de devolución de llamada devuelve FILEOP_DOIT, la rutina también debe proporcionar una ruta de acceso de destino completa. Para obtener más información, consulte SPFILENOTIFY_FILEINCABINET.