Criando uma rotina de retorno de chamada de gabinete
Como a API de Instalação não fornece uma rotina de retorno de chamada de gabinete padrão, você precisa fornecer uma rotina. A rotina de retorno de chamada que a função SetupIterateCabinet requer deve ter o mesmo formato que aqueles apontados por FileCallback.
A seguir está a sintaxe que SetupIterateCabinet usa para enviar uma notificação para a rotina de retorno de chamada.
MsgHandler( //the specified callback routine
Context, //context used by the callback routine
Notification, //cabinet notification
Param1, //additional notification information
Param2 //additional notification information
);
O parâmetro Context é um ponteiro nulo para uma variável de contexto ou estrutura que pode ser usada pela rotina de retorno de chamada para armazenar informações que precisam persistir entre chamadas subsequentes para a rotina de retorno de chamada.
A implementação desse contexto é especificada pela rotina de retorno de chamada e nunca é referenciada ou alterada por SetupIterateCabinet.
O parâmetro Notification é um inteiro sem sinal e será um dos valores a seguir.
Notificação | Descrição |
---|---|
SPFILENOTIFY_FILEEXTRACTED | O arquivo foi extraído do gabinete. |
SPFILENOTIFY_FILEINCABINET | Um arquivo é encontrado no gabinete. |
SPFILENOTIFY_NEEDNEWCABINET | O arquivo atual continua no próximo gabinete. |
Os dois parâmetros finais, Param1 e Param2, também são inteiros sem sinal e contêm informações adicionais relevantes para a notificação. Para obter mais informações sobre as notificações enviadas por SetupIterateCabinet, consulte Notificações de arquivo de gabinete.
Uma rotina SP_FILE_NOTIFY_CALLBACK retorna um inteiro sem sinal. A rotina de retorno de chamada do gabinete deve retornar um dos valores a seguir, dependendo da notificação.
Para a notificação de SPFILENOTIFY_FILEINCABINET, SetupIterateCabinet espera que um dos valores a seguir seja retornado pela rotina de retorno de chamada.
Valor | Significado |
---|---|
FILEOP_ABORT | Anular o processamento do gabinete. |
FILEOP_DOIT | Extraia o arquivo atual. |
FILEOP_SKIP | Ignore o arquivo atual. |
Para SPFILENOTIFY_NEEDNEWCABINET e SPFILENOTIFY_FILEEXTRACTED notificações, SetupIterateCabinet espera que um dos valores a seguir seja retornado pela rotina de retorno de chamada.
Valor | Significado |
---|---|
NO_ERROR | Nenhum erro foi encontrado, continue processando o gabinete. |
ERROR_XXX | Ocorreu um erro do tipo especificado. A função SetupIterateCabinet retornará FALSE e o código de erro especificado será retornado por uma chamada para GetLastError. |
Se a rotina de retorno de chamada retornar FILEOP_DOIT, a rotina também deverá fornecer um caminho de destino completo. Para obter mais informações , consulte SPFILENOTIFY_FILEINCABINET.