Création d’une routine de rappel d’armoire
Étant donné que l’API d’installation ne fournit pas de routine de rappel d’armoire par défaut, vous devez fournir une routine. La routine de rappel requise par la fonction SetupIterateCabinet doit avoir la même forme que celle vers laquelle pointe FileCallback.
Voici la syntaxe utilisée par SetupIterateCabinet pour envoyer une notification à la routine de rappel.
MsgHandler( //the specified callback routine
Context, //context used by the callback routine
Notification, //cabinet notification
Param1, //additional notification information
Param2 //additional notification information
);
Le paramètre de contexte est un pointeur void vers une structure ou une variable de contexte qui peut être utilisée par la routine de rappel pour stocker des informations qui doivent être conservées entre les appels suivants de la routine de rappel.
L’implémentation de ce contexte est spécifiée par la routine de rappel et n’est jamais référencée ou modifiée par SetupIterateCabinet.
Le paramètre de notification est un entier non signé et sera l’une des valeurs suivantes.
| Notification | Description |
|---|---|
| SPFILENOTIFY _ FILEEXTRACTED | Le fichier a été extrait de l’armoire. |
| SPFILENOTIFY _ FILEINCABINET | Un fichier est trouvé dans le fichier CAB. |
| SPFILENOTIFY _ NEEDNEWCABINET | Le fichier actuel se poursuit dans le fichier CAB suivant. |
Les deux derniers paramètres, param1 et param2, sont également des entiers non signés et contiennent des informations supplémentaires relatives à la notification. Pour plus d’informations sur les notifications envoyées par SetupIterateCabinet, consultez notifications de fichier CAB.
Une _ routine de rappel de notification de fichier SP _ _ retourne un entier non signé. La routine de rappel du fichier cab doit retourner l’une des valeurs suivantes en fonction de la notification.
Pour la _ notification SPFILENOTIFY FILEINCABINET, SetupIterateCabinet s’attend à ce que l’une des valeurs suivantes soit retournée par la routine de rappel.
| Valeur | Signification |
|---|---|
| _abandon FILEOP | Abandon du traitement du fichier CAB. |
| FILEOP _ doit | Extrayez le fichier actif. |
| FILEOP _ Ignorer | Ignore le fichier actuel. |
Pour les _ notifications SPFILENOTIFY NEEDNEWCABINET et SPFILENOTIFY _ FILEEXTRACTED, SetupIterateCabinet s’attend à ce que l’une des valeurs suivantes soit retournée par la routine de rappel.
| Valeur | Signification |
|---|---|
| AUCUNE _ erreur | Aucune erreur ne s’est produite. poursuivez le traitement du fichier CAB. |
| ERREUR _ xxx | Une erreur du type spécifié s’est produite. La fonction SetupIterateCabinet retourne la valeur false et le code d’erreur spécifié est retourné par un appel à GetLastError. |
Si la routine de rappel retourne FILEOP _ doit, la routine doit également fournir un chemin d’accès cible complet. Pour plus d’informations, consultez SPFILENOTIFY _ FILEINCABINET.