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.
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 SelectionDescription
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 CheckExistingTargetPath
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 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.