Información general sobre ControlEvent
Los ControlEvents son análogos a los mensajes de Microsoft Windows en las aplicaciones basadas en Win32. Sin embargo, en lugar de crear una función de devolución de llamada para recibir mensajes de Windows y enviar mensajes de Windows con la función SendMessage , el instalador de la interfaz de usuario (UI) y los controles publican elementos ControlEvent. Se pueden especificar otros controles y el instalador para suscribirse a determinados ControlEvents que, después, cambiarán los atributos del control de suscripción. Para agregar controles de trabajo a los cuadros de diálogo, el autor de la interfaz de usuario especifica la publicación de ControlEvents en la tabla ControlEvent y suscribe controles a ControlEvents en la tabla EventMapping.
El instalador publicará los siguientes eventos para suscribir los controles que se muestran en la tabla EventMapping. Un control ProgressBar o un control Billboard normalmente se suscriben a SetProgress, el resto se suscriben mediante controles de texto.
El control publica los siguientes eventos cuando la selección de elementos se mueve en un control SelectionTree o e un control DirectoryList. Los controles de suscripción se deben encontrar en el mismo cuadro de diálogo y deben aparecer en la tabla EventMapping.
SelectionDescription ControlEvent
Los siguientes ControlEvents se pueden publicar a discreción de un usuario mediante la interacción con un control PushButton o un control CheckBox en un cuadro de diálogo. El control Checkbox solo puede publicar los eventos AddLocal, AddSource, Remove, DoAction y SetProperty. Con las versiones de Windows Installer que se incluyen con Windows Server 2003 y posteriores, el control SelectionTree puede publicar los ControlEvents doAction, ControlEvent y SetProperty. El autor de la interfaz de usuario debe enumerar el ControlEvent en la tabla ControlEvent. El controlador de la interfaz de usuario del instalador es el suscriptor a estos eventos.
CheckExistingTargetPath ControlEvent
ValidateProductID ControlEvent
Un control PushButton puede publicar los siguientes eventos en un control SelectionTree de suscripción o en un control DirectoryList ubicado en el mismo cuadro de diálogo. El control PushButton debe aparecer en la tabla ControlEvent y los controles de suscripción deben aparecer en la tabla EventMapping.
DirectoryListOpen ControlEvent
Por lo general, los eventos de control requieren que la interfaz de usuario se ejecute en el nivel de interfaz de usuario completa. La mayoría de los elementos de ControlEvent no funcionarán con una interfaz de usuario reducida ni con una interfaz de usuario básica, ya que estos niveles solo muestran cuadros de diálogo sin modelo. Los eventos ActionText, AddSource, SetProgress, TimeRemaining y ScriptInProgress son excepciones y funcionarán en una interfaz de usuario reducida o básica. Para más información sobre los niveles de la interfaz de usuario, consulte Niveles de la interfaz de usuario.
Para ejecutar acciones personalizadas, publique un ControlEvent desde un control PushButton o un control Checkbox. Agregue un registro a la tabla ControlEvent con los nombres del cuadro de diálogo y el control que publica el ControlEvent. Este control debe publicar un ControlEvent DoAction que notifique al instalador que ejecute la acción personalizada. Ni en Windows XP ni en los sistemas anteriores, se puede ejecutar una acción personalizada mediante la publicación de un ControlEvent desde un control SelectionTree.
Para más información sobre ControlEvents concretos, vea la lista de ControlEvents estándar en la Referencia de la interfaz de usuario.