다음을 통해 공유


Windows Installer 메시지 구문 분석

외부 UI 처리기는 MsiSetExternalUI 함수의 dwMessagedFilter 매개 변수로 지정된 설치 관리자 메시지 목록을 처리할 수 있습니다. 이러한 메시지 중 일부는 직접 사용할 수 있는 문자열을 포함하며, 외부 UI 처리기가 유용하려면 메시지를 구문 분석하고 처리해야 할 수 있습니다. 외부 UI 처리기는 설치에 영향을 주는 작업을 수행하지 않고 Windows Installer 메시지만 모니터링해야 할 수 있습니다.

다음 Windows Installer 메시지에는 대화 상자에서 표시할 수 있고 추가 처리가 필요하지 않은 문자열이 포함되어 있습니다. 이러한 메시지에는 대화 상자에서 표시할 단추 및 아이콘 목록이 포함되어 있습니다. MB_ICONMASK, MB_DEFMASKMB_TYPEMASK 값을 사용하여 아이콘과 단추를 지정할 수 있습니다.

INSTALLMESSAGE_FATALEXIT

설치가 조기 종료되었습니다.

INSTALLMESSAGE_ERROR

서식이 지정된 오류 메시지입니다.

INSTALLMESSAGE_WARNING

서식이 지정된 경고 메시지입니다.

INSTALLMESSAGE_INFO

서식이 지정된 로그 메시지입니다.

INSTALLMESSAGE_USER

서식이 지정된 사용자 메시지입니다.

INSTALLMESSAGE_OUTOFDISKSPACE

디스크 공간 부족 상태를 나타내는 서식이 지정된 메시지

외부 사용자 처리기는 다음 Windows Installer 메시지를 사용하여 Windows Installer UI의 시퀀스를 모니터링할 수 있습니다. 설치 관리자는 각 대화 상자 표시될 때 Windows Installer UI 시퀀스의 시작 부분과 UI 시퀀스의 끝에 이러한 메시지를 보냅니다. 이러한 메시지를 사용하기 위해 필요한 처리는 없습니다.

INSTALLMESSAGE_TERMINATE

이 메시지는 UI 시퀀스의 끝을 나타냅니다. 문자열은 null 문자열입니다.

INSTALLMESSAGE_INITIALIZE

이 메시지는 UI 시퀀스가 시작되었음을 나타냅니다. 문자열은 null 문자열입니다.

INSTALLMESSAGE_SHOWDIALOG

문자열에는 현재 대화 상자의 이름이 포함됩니다.

다음 Windows Installer 메시지는 외부 UI 처리기에서 추가 처리가 필요합니다.

INSTALLMESSAGE_RESOLVESOURCE

외부 사용자 인터페이스 처리기는 0을 반환하고 Windows Installer가 메시지를 처리하도록 허용해야 합니다. 외부 사용자 인터페이스 처리기는 이 메시지를 모니터링할 수 있지만 설치에 영향을 주는 작업을 수행해서는 안 됩니다.

INSTALLMESSAGE_FILESINUSE

외부 UI는 이 메시지에 대한 응답으로 FilesInUse 대화 상자를 표시해야 합니다.

INSTALLMESSAGE_RMFILESINUSE

외부 UI는 이 메시지에 대한 응답으로 MsiRMFilesInUse 대화 상자를 표시해야 합니다. Windows Installer 버전 4.0부터 사용할 수 있습니다. 이 메시지에 대한 자세한 내용은 외부 UI에서 다시 시작 관리자 사용을 참조하세요.

INSTALLMESSAGE_ACTIONSTART

이 메시지는 현재 작업에 대한 정보를 제공합니다. 형식은 작업 [1]: [2]입니다. [3], 여기서는 필드 1과 필드 2를 구분하는 데 콜론을 사용하고 필드 2와 필드 3을 구분하는 데 마침표가 사용됩니다. 필드 [1]에는 Time 속성 형식을 사용하여 작업이 시작된 시간이 포함됩니다. 필드 [2]에는 시퀀스 테이블의 작업 이름이 포함됩니다. 필드 [3]에서는 ActionText 테이블 또는 MsiProcessMessage 함수에서 작업의 설명을 제공합니다.

INSTALLMESSAGE_ACTIONDATA

이 문자열의 형식은 ActionText 테이블에 제공되거나 MsiProcessMessage 함수에서 제공된 템플릿 값에 의해 지정됩니다. INSTALLMESSAGE_ACTIONSTART 메시지 다음에는 개수 무제한의 INSTALLMESSAGE_ACTIONDATA 메시지가 있을 수 있습니다.

INSTALLMESSAGE_COMMONDATA

이 메시지에는 언어, 캡션 및 CancelShow의 세 가지 하위 형식이 있습니다. 문자열에는 숫자와 콜론으로 구분된 세 개의 필드가 있을 수 있습니다. 모든 필드가 필수는 아닙니다. 메시지는 NULL 또는 빈(“”) 문자열일 수 있습니다.

언어

필드 1에는 이 문자열에 언어 정보가 포함되어 있음을 나타내는 값 0이 포함되어 있습니다. 필드 2에는 숫자 식별자(LANGID)인 언어 값이 포함되어 있습니다. 필드 3은 ANSI 코드 페이지를 나타내는 값입니다.

캡션

필드 1에는 이 문자열에 캡션 또는 제목 텍스트가 포함되어 있음을 나타내는 값 1이 포함되어 있습니다. 필드 2에는 외부 UI 처리기가 대화 상자의 제목 캡션으로 사용할 수 있는 텍스트가 포함되어 있습니다. 필드 3은 NULL이거나 빈("") 문자열입니다. 캡션 메시지에 필드 3이 없을 수 있습니다.

CancelShow

필드 1에는 이 문자열에 취소 단추를 표시할지 여부에 대한 정보가 포함되어 있음을 나타내는 값 2가 포함되어 있습니다. 취소 단추를 숨겨야 하는 경우 필드 2에는 값 0이 포함됩니다. 취소 단추를 표시해야 하는 경우 필드 2에는 값 1이 포함됩니다.

INSTALLMESSAGE_PROGRESS

이 메시지에는 Reset, ActionInfo, ProgressReport 및 ProgressAddition의 네 가지 하위 형식이 있습니다. 외부 처리기는 초기화 진행률 메시지가 처음 수신될 때까지 이러한 메시지에 대해 작업해서는 안 됩니다. 이렇게 하면 진행률 표시줄의 총 틱 수를 예상할 수 있습니다.

초기화

필드 1에는 진행률 표시줄의 초기화를 나타내는 값 0이 포함됩니다. 필드 2에는 진행률 표시줄의 총 틱 수가 포함됩니다. 필드 3에는 앞으로 진행률 표시줄 동작에 대한 값 0이 포함됩니다. 필드 3에는 뒤로 진행률 표시줄 동작에 대한 값 1이 포함됩니다. 필드 4의 값 0은 설치가 진행 중이며 남은 시간을 계산할 수 있음을 의미합니다. 필드 4의 값 1은 스크립트가 실행되고 “잠시 기다려 주세요...”를 의미합니다. 메시지를 표시할 수 있습니다. 총 틱 수의 추정치는 근사치이며 부정확할 수 있습니다.

ActionInfo

필드 1에는 이 문자열에 작업 정보가 포함되어 있음을 나타내는 값 1이 포함되어 있습니다. 필드 2에는 현재 작업에서 보낸 각 ActionData 메시지에 대해 진행률 표시줄이 이동하는 틱 수가 포함됩니다. 필드 3에 값 0이 포함된 경우 필드 2를 무시합니다. 필드 3에 값 1이 포함된 경우 현재 작업에서 보낸 각 ActionData 메시지에 대해 필드 2의 틱 수만큼 진행률 표시줄을 증분합니다. 필드 4가 사용되지 않습니다.

ProgressReport

필드 1에는 이 문자열에 진행률 정보가 포함되어 있음을 나타내는 값 2가 포함되어 있습니다. 필드 2에는 진행률 표시줄이 이동한 틱 수가 포함됩니다. 필드 3이 사용되지 않습니다. 필드 4가 사용되지 않습니다.

ProgressAddition

필드 1에는 작업에서 진행률 표시줄에 틱을 추가할 수 있음을 나타내는 값 3이 포함되어 있습니다. 필드 2에는 총 예상 진행률 틱 수에 추가할 틱 수가 포함됩니다. 필드 3이 사용되지 않습니다. 필드 4가 사용되지 않습니다.