Session.Message 메서드

Session 개체의 Message 메서드는 활성화된 로깅 작업을 수행하고 엔진과 연결된 UI 처리기 개체에 대한 실행을 연기합니다. 다양한 메시지 유형에 대해 로깅을 선택적으로 사용하도록 설정할 수 있습니다. EnableLog 메서드를 참조하세요.

레코드 필드 0에 서식 문자열이 포함된 경우 다른 필드의 데이터 서식을 지정하는 데 사용됩니다. 그렇지 않으면 메시지가 오류, 경고 또는 사용자 메시지인 경우 메시지 형식 및 반환 값에 대한 레코드의 필드 1에 있는 오류 번호를 사용하여 현재 데이터베이스의 오류 테이블에서 메시지 템플릿을 찾으려고 시도합니다.

구문

Session.Message(
  kind,
  record
)

매개 변수

kind

kind 매개 변수는 다음 값 중 하나여야 합니다. 푸시 단추와 아이콘이 있는 메시지 상자를 표시하려면 MessageBox alc MessageBoxEx에서 사용하는 표준 메시지 상자 스타일을 msiMessageTypeError, msiMessageTypeWarning 또는 msiMessageTypeUser에 추가하여 kind의 값을 계산합니다. 자세한 내용은 아래의 주의 섹션을 참조하세요.

상수 의미
msiMessageTypeFatalExit
&H00000000
조기 종료, 잠재적으로 치명적인 메모리 부족.
msiMessageTypeError
&H01000000
형식이 지정된 오류 메시지인 [1]은 오류 테이블의 메시지 번호입니다.
msiMessageTypeWarning
&H02000000
형식이 지정된 경고 메시지인 [1]은 오류 테이블의 메시지 번호입니다.
msiMessageTypeUser
&H03000000
사용자 요청 메시지인 [1]은 오류 테이블의 메시지 번호입니다.
msiMessageTypeInfo
&H04000000
로그에 대한 정보 메시지로, 표시되는 내용이 아닙니다.
msiMessageTypeFilesInUse
&H05000000
사용 중인 파일 목록으로, 교체해야 합니다.
msiMessageTypeResolveSource
&H06000000
유효한 원본 위치를 확인하도록 요청합니다.
msiMessageTypeOutOfDiskSpace
&H07000000
디스크 공간 부족 메시지입니다.
msiMessageTypeActionStart
&H08000000
작업 시작, [1] 작업 이름, [2] 설명, ACTIONDATA 메시지에 대한 [3] 템플릿.
msiMessageTypeActionData
&H09000000
작업 데이터입니다. 레코드 필드는 ACTIONSTART 메시지의 템플릿에 해당합니다.
msiMessageTypeProgress
&H0A000000
진행률 표시줄 정보입니다. 아래 레코드 필드에 대한 설명을 참조하세요.
msiMessageTypeCommonData
&H0B000000
취소 단추를 사용하도록 설정하려면 [1]을 2로, [2]를 1로 설정합니다.
취소 단추를 사용하지 않도록 설정하려면 [1]을 2로, [2]를 0으로 설정합니다.

 

record

메시지별 필드를 포함하는 필수 Record 개체입니다.

반환 값

상수
msiMessageStatusError
-1
msiMessageStatusNone
0
msiMessageStatusOk
1
msiMessageStatusCancel
2
msiMessageStatusAbort
3
msiMessageStatusRetry
4
msiMessageStatusIgnore
5
msiMessageStatusYes
6
msiMessageStatusNo
7

 

설명

메시지 레코드 필드

다음은 msiMessageTypeProgress가 메시지 유형으로 전달될 때의 레코드 필드 정의에 대해 설명합니다.

필드 1은 진행률 메시지의 유형을 지정합니다. 다른 필드의 의미는 이 필드의 값에 따라 달라집니다. 필드 1에 설정할 수 있는 가능한 값은 다음과 같습니다.

메시지 이름 필드 1 설명
MasterReset 0 진행률 표시줄을 다시 설정하고 막대에 예상되는 총 틱의 수를 설정합니다.
ActionInfo 1 현재 작업에서 보낼 진행률 메시지와 관련된 정보를 제공합니다.
ProgressReport 2 진행률 표시줄을 증분합니다.
ProgressAddition 3 작업(예: CustomAction)이 진행률 표시줄의 예상 총 진행률 수에 틱을 추가할 수 있도록 합니다.

 

필드 2의 의미는 다음과 같이 필드 1의 값에 따라 달라집니다.

필드 1 값 필드 2 설명
0 진행률 표시줄에 예상되는 총 틱의 수입니다.
1 각 ActionData 메시지에 대해 진행률 표시줄이 이동하는 틱의 수입니다. 필드 3이 0이면 이 필드는 무시됩니다.
2 진행률 표시줄이 이동한 틱의 수입니다.
3 총 예상 진행률에 추가할 틱의 수입니다.

 

필드 3의 의미는 다음과 같이 필드 1의 값에 따라 달라집니다.

필드 1 값 필드 3 값 필드 3 설명
0 0 앞으로 진행률 표시줄(왼쪽에서 오른쪽)
  1 뒤로 진행률 표시줄(오른쪽에서 왼쪽)
1 0 현재 작업은 명시적 ProgressReport 메시지를 보냅니다.
  1 ActionData 메시지를 보낼 때마다 필드 2에 지정된 틱 수만큼 진행률 표시줄을 증분합니다.
2 사용 안 함
3 사용 안 함

 

필드 4의 의미는 다음과 같이 필드 1의 값에 따라 달라집니다.

필드 1 값 필드 4 값 필드 4 설명
0 0 실행이 진행 중입니다. 이 경우 UI는 남은 시간을 계산하고 표시할 수 있습니다.
  1 실행 스크립트 만들기 이 경우 설치 관리자가 설치 준비를 완료하는 동안 대기하라는 메시지가 UI에 표시될 수 있습니다.
1 사용 안 함
2 사용 안 함
3 사용 안 함

 

메시지 상자 표시

푸시 단추와 아이콘이 있는 메시지 상자를 표시하려면 MessageBoxMessageBoxEx에서 사용하는 표준 메시지 상자 스타일을 msiMessageTypeError, msiMessageTypeWarning 또는 msiTypeUser에 추가하여 kind의 값을 계산합니다. VBScript에 사용할 수 있는 푸시 단추 옵션은 vbOKOnly(MB_OK), vbOKCancel(MB_OKCANCEL), vbAbortRetryIgnore(MB_ABORTRETRYIGNORE), vbYesNoCancel(MB_YESNOCANCEL), vbYesNo(MB_YESNO) 및 vbRetryCancel(MB_RETRYCANCEL)입니다. VBScript에 사용할 수 있는 아이콘 옵션은 vbCritical(MB_ICONERROR), vbQuestion(MB_ICONQUESTION), vbExclamation(MB_ICONWARNING) 및 vbInformation(MB_ICONINFORMATION)입니다.

예를 들어 다음 호출은 vbExclamation 아이콘 및 vbYesNo 단추가 있는 msiMessageTypeError 메시지를 보냅니다.

Session.Message &H01000034, record

사용자 지정 작업이 Message 메서드를 호출하는 경우 사용자 지정 작업은 사용자가 취소를 처리할 수 있어야 하며 msiDoActionStatusUserExit를 반환해야 합니다.

요구 사항

요구 사항
버전
Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Server 2008 또는 Windows Vista의 Windows Installer 4.0 또는 Windows Installer 4.5. Windows Server 2003 또는 Windows XP의 Windows Installer
DLL
Msi.dll
IID
IID_ISession은 000C109E-0000-0000-C000-000000000046으로 정의됩니다.