Visão geral do ControlEvent

ControlEvents são análogos a mensagens do Microsoft Windows em aplicativos baseados em Win32. No entanto, em vez de criar uma função de retorno de chamada para receber mensagens do Windows e enviar mensagens do Windows com a função SendMessage, o instalador da interface do usuário e os controles publicam ControlEvents. Outros controles e o instalador podem ser especificados para assinar ControlEvents específicos que, em seguida, alterarão os atributos do controle de assinatura. Para adicionar controles de trabalho às caixas de diálogo, o autor da interface do usuário especifica a publicação de ControlEvents na tabela ControlEvent e assina controles para ControlEvents na tabela EventMapping.

O instalador publicará os eventos a seguir para assinar controles listados na tabela EventMapping. Um controle ProgressBar ou o controle Billboard normalmente assina SetProgress, o restante é assinado pelos controles Text.

ActionData ControlEvent

ActionText ControlEvent

SetProgress ControlEvent

TimeRemaining ControlEvent

ScriptInProgress ControlEvent

Os eventos a seguir são publicados pelo controle quando a seleção de item é movida em um controle SelectionTree ou um controle DirectoryList. Os controles de assinatura devem estar localizados na mesma caixa de diálogo e listados na tabela EventMapping.

IgnoreChange ControlEvent

SelectionDescription ControlEvent

SelectionSize ControlEvent

SelectionPath ControlEvent

SelectionAction ControlEvent

SelectionNoItems ControlEvent

Os ControlEvents a seguir podem ser publicados a critério de um usuário interagindo com um controle PushButton ou um controle CheckBox em uma caixa de diálogo. O controle Checkbox só pode publicar os eventos AddLocal, AddSource, Remove, DoAction e SetProperty. Com as versões do Windows Installer fornecidas com o Windows Server 2003 e posterior, o controle SelectionTree pode publicar o DoAction, ControlEvent e SetProperty ControlEvents. O autor da interface do usuário deve listar o ControlEvent na tabela ControlEvent. O manipulador de interface do usuário do instalador é o assinante desses eventos.

AddLocal ControlEvent

AddSource ControlEvent

CheckExistingTargetPath ControlEvent

CheckTargetPath ControlEvent

DoAction ControlEvent

EnableRollback ControlEvent

EndDialog ControlEvent

NewDialog ControlEvent

Reinstalar ControlEvent

ReinstallMode ControlEvent

Remover ControlEvent

Restaurar ControlEvent

SetInstallLevel ControlEvent

SetProperty ControlEvent

SetTargetPath ControlEvent

SpawnDialog ControlEvent

SpawnWaitDialog ControlEvent

ValidateProductID ControlEvent

Um controle PushButton pode publicar os eventos a seguir em um controle SelectionTree inscrito ou no controle DirectoryList localizado na mesma caixa de diálogo. O controle PushButton deve ser listado na tabela ControlEvent e os controles de assinatura devem ser listados na tabela EventMapping.

SelectionBrowse ControlEvent

DirectoryListUp ControlEvent

DirectoryListNew ControlEvent

DirectoryListOpen ControlEvent

Eventos de controle geralmente exigem que a interface do usuário seja executada no nível completo da interface do usuário. A maioria dos ControlEvents não funcionará com uma interface do usuário reduzida ou uma interface do usuário básica porque esses níveis exibem apenas caixas de diálogo sem janela restrita. Os eventos ActionText, AddSource, SetProgress, TimeRemaining e ScriptInProgress são exceções e funcionarão na interface do usuário reduzida ou básica. Para obter mais informações sobre os níveis de interface do usuário, confira Níveis de interface do usuário.

Você pode executar ações personalizadas publicando um ControlEvent de um controle PushButton ou um controle Checkbox. Adicione um registro à tabela ControlEvent com os nomes da caixa de diálogo e o controle que publica o ControlEvent. Esse controle deve publicar um DoAction ControlEvent notificando o instalador para executar a ação personalizada. No Windows XP ou em sistemas anteriores, você não pode executar uma ação personalizada publicando um ControlEvent de um controle SelectionTree.

Para obter mais informações sobre ControlEvents específicos, confira a lista de ControlEvents padrão na Referência de Interface do Usuário.