ControlEvent, vue d’ensemble

Les événements ControlEvent sont analogues aux messages Microsoft Windows dans les applications Win32. Cependant, au lieu de créer une fonction de rappel pour recevoir des messages Windows et d’envoyer des messages Windows avec la fonction SendMessage, le programme d’installation et les contrôles de l’interface utilisateur publient des ControlEvents. D’autres contrôles et le programme d’installation peuvent être spécifiés pour s’abonner à des ControlEvents spécifiques qui vont ensuite modifier les attributs du contrôle d’abonnement. Pour ajouter des contrôles opérationnels aux boîtes de dialogue, le créateur de l’interface utilisateur spécifie la publication de ControlEvents dans la table ControlEvent et abonne les contrôles à ControlEvents dans la table EventMapping.

Le programme d’installation va publier les événements suivants sur les contrôles d’abonnement listés dans la table EventMapping. Un contrôle ProgressBar ou Billboard s’abonne généralement à SetProgress, les contrôles Text s’abonnant au reste.

ControlEvent ActionData

ControlEvent ActionText

ControlEvent SetProgress

ControlEvent TimeRemaining

ControlEvent ScriptInProgress

Les événements suivants sont publiés par le contrôle quand la sélection d’élément est déplacée dans un contrôle SelectionTree ou DirectoryList. Les contrôles d’abonnement doivent se trouver dans la même boîte de dialogue et être listés dans la table EventMapping.

ControlEvent IgnoreChange

ControlEvent SelectionDescription

ControlEvent SelectionSize

ControlEvent SelectionPath

ControlEvent SelectionAction

ControlEvent SelectionNoItems

Les événements ControlEvent suivants peuvent être publiés à la discrétion d’un utilisateur en interagissant avec un contrôle PushButton ou un contrôle CheckBox dans une boîte de dialogue. Le contrôle Checkbox peut publier seulement les événements AddLocal, AddSource, Remove, DoAction et SetProperty. Avec les versions de Windows Installer fournies avec Windows Server 2003 et ultérieur, le contrôle SelectionTree peut publier les ControlEvents DoAction, ControlEvent et SetProperty. Le créateur de l’interface utilisateur doit lister l’événement ControlEvent dans la table ControlEvent. Le gestionnaire d’interface utilisateur du programme d’installation est l’abonné à ces événements.

ControlEvent AddLocal

ControlEvent AddSource

ControlEvent CheckExistingTargetPath

ControlEvent CheckTargetPath

ControlEvent DoAction

ControlEvent EnableRollback

ControlEvent EndDialog

ControlEvent NewDialog

ControlEvent Reinstall

ControlEvent ReinstallMode

ControlEvent Remove

ControlEvent Reset

ControlEvent SetInstallLevel

ControlEvent SetProperty

ControlEvent SetTargetPath

ControlEvent SpawnDialog

ControlEvent SpawnWaitDialog

ControlEvent ValidateProductID

Un contrôle PushButton peut publier les événements suivants dans un contrôle SelectionTree ou DirectoryList abonné situé dans la même boîte de dialogue. Le contrôle PushButton doit être listé dans la table ControlEvent et les contrôles d’abonnement doivent être listés dans la table EventMapping.

ControlEvent SelectionBrowse

ControlEvent DirectoryListUp

ControlEvent DirectoryListNew

ControlEvent DirectoryListOpen

Les événements de contrôle nécessitent généralement que l’interface utilisateur soit exécutée au niveau complet de l’interface utilisateur. La plupart des ControlEvents ne fonctionnent pas avec une interface utilisateur réduite ou une interface utilisateur de base, car ces niveaux affichent seulement des boîtes de dialogue non modales. Les événements ActionText, AddSource, SetProgress, TimeRemaining et ScriptInProgress sont des exceptions et fonctionnent dans une interface utilisateur réduite ou de base. Pour plus d’informations sur les niveaux d’interface utilisateur, consultez Niveaux d’interface utilisateur.

Vous pouvez exécuter des actions personnalisées en publiant un ControlEvent depuis un contrôle PushButton ou un contrôle Checkbox. Ajoutez un enregistrement à la table ControlEvent avec les noms de la boîte de dialogue et du contrôle publiant le ControlEvent. Ce contrôle doit publier un ControlEvent DoAction informant le programme d’installation d’exécuter l’action personnalisée. Sur Windows XP ou des systèmes antérieurs, vous ne pouvez pas exécuter une action personnalisée en publiant un ControlEvent à partir d’un contrôle SelectionTree.

Pour plus d’informations sur des ControlEvents particuliers, consultez la liste des ControlEvents standard dans Informations de référence sur l’interface utilisateur.