ControlEvent 개요
ControlEvents는 Win32 기반 애플리케이션의 Microsoft Windows 메시지와 유사합니다. 그러나 Windows 메시지를 수신하는 콜백 함수를 만들고 SendMessage 함수를 사용하여 Windows 메시지를 보내는 대신 UI(사용자 인터페이스) 설치 관리자 및 컨트롤이 ControlEvents를 게시합니다. 특정 ControlEvents를 구독하도록 다른 컨트롤 및 설치 관리자를 지정하면 구독 컨트롤의 특성을 변경할 수 있습니다. 작업 컨트롤을 대화 상자에 추가하려면 UI 작성자가 ControlEvent 테이블의 ControlEvents 게시를 지정하고 EventMapping 테이블의 ControlEvents에 컨트롤을 구독합니다.
설치 관리자는 EventMapping 테이블에 나열된 구독 컨트롤에 다음 이벤트를 게시합니다. ProgressBar 컨트롤 또는 Billboard 컨트롤은 일반적으로 SetProgress를 구독하고 나머지는 Text 컨트롤에 의해 구독됩니다.
다음 이벤트는 항목 선택이 SelectionTree 컨트롤 또는 DirectoryList 컨트롤에서 이동될 때 컨트롤에 의해 게시됩니다. 구독 컨트롤은 동일한 대화 상자에 있고 EventMapping 테이블에 나열되어야 합니다.
SelectionDescription ControlEvent
다음 ControlEvents는 대화 상자에서 PushButton 컨트롤 또는 CheckBox 컨트롤과 상호 작용하여 사용자의 재량에 따라 게시할 수 있습니다. Checkbox 컨트롤은 AddLocal, AddSource, Remove, DoAction 및 SetProperty 이벤트만 게시할 수 있습니다. Windows Server 2003 이상에서 제공되는 Windows Installer 버전을 사용하면 SelectionTree 컨트롤이 DoAction, ControlEvent 및 SetProperty ControlEvents를 게시할 수 있습니다. UI 작성자는 ControlEvent 테이블에 ControlEvent를 나열해야 합니다. 설치 관리자의 UI 처리기는 이러한 이벤트의 구독자입니다.
CheckExistingTargetPath ControlEvent
ValidateProductID ControlEvent
PushButton 컨트롤은 동일한 대화 상자에 있는 구독 SelectionTree 컨트롤 또는 DirectoryList 컨트롤에 다음 이벤트를 게시할 수 있습니다. PushButton 컨트롤은 ControlEvent 테이블에 나열되어야 하며 구독 컨트롤은 EventMapping 테이블에 나열되어야 합니다.
DirectoryListOpen ControlEvent
제어 이벤트는 일반적으로 UI를 전체 UI 수준에서 실행해야 합니다. 대부분의 ControlEvents는 축소된 UI 또는 기본 UI에서 작동하지 않는데, 이러한 수준에서는 모덜리스 대화 상자만 표시하기 때문입니다. ActionText, AddSource, SetProgress, TimeRemaining 및 ScriptInProgress 이벤트는 예외이며 축소된 UI나 기본 UI에서 작동합니다. UI 수준에 대한 자세한 내용은 사용자 인터페이스 수준을 참조하세요.
PushButton 컨트롤 또는 Checkbox 컨트롤에서 ControlEvent를 게시하여 사용자 지정 작업을 실행할 수 있습니다. 대화 상자의 이름과 ControlEvent를 게시하는 컨트롤을 사용하여 ControlEvent 테이블에 레코드를 추가합니다. 이 컨트롤은 사용자 지정 작업을 실행하도록 설치 관리자에게 알리는 DoAction ControlEvent를 게시해야 합니다. Windows XP 또는 이전 시스템에서는 SelectionTree 컨트롤에서 ControlEvent를 게시하여 사용자 지정 작업을 실행할 수 없습니다.
특정 ControlEvents에 대한 자세한 내용은 사용자 인터페이스 참조에서 표준 ControlEvents 목록을 참조하세요.