Partager via


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 le même formulaire que celles pointées par 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 Context est un pointeur void vers une variable ou une structure de contexte qui peut être utilisé par la routine de rappel pour stocker des informations qui doivent persister entre les appels suivants à la routine de rappel.

L’implémentation de ce contexte est spécifiée par la routine de rappel, et elle n’est jamais référencée ou modifiée par SetupIterateCabinet.

Le paramètre 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 rencontré dans l’armoire.
SPFILENOTIFY_NEEDNEWCABINET Le fichier actuel est poursuivi dans le cabinet 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 cabinet.

Une routine SP_FILE_NOTIFY_CALLBACK retourne un entier non signé. La routine de rappel de l’armoire 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
FILEOP_ABORT Abandonner le traitement de l’armoire.
FILEOP_DOIT Extrayez le fichier actif.
FILEOP_SKIP Ignorez le fichier actif.

 

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
NO_ERROR Aucune erreur n’a été rencontrée, poursuivez le traitement de l’armoire.
ERROR_XXX Une erreur du type spécifié s’est produite. La fonction SetupIterateCabinet retourne 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 cible complet. Pour plus d’informations , consultez SPFILENOTIFY_FILEINCABINET.