다음을 통해 공유


MsiProcessMessage 함수(msiquery.h)

MsiProcessMessage 함수는 처리를 위해 설치 관리자에게 오류 레코드를 보냅니다.

구문

int MsiProcessMessage(
  [in] MSIHANDLE      hInstall,
  [in] INSTALLMESSAGE eMessageType,
  [in] MSIHANDLE      hRecord
);

매개 변수

[in] hInstall

DLL 사용자 지정 작업에 제공되거나 MsiOpenPackage, MsiOpenPackageEx 또는 MsiOpenProduct를 통해 가져온 설치에 대한 핸들입니다.

[in] eMessageType

eMessage 매개 변수는 다음 메시지 유형 중 하나를 지정하는 값이어야 합니다. 푸시 단추 또는 아이콘이 있는 메시지 상자를 표시하려면 OR 연산자를 사용하여 MessageBox 및 MessageBoxEx 함수에서 사용하는 표준 메시지 상자 스타일에 INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING 또는 INSTALLMESSAGE_USER 추가합니다. 자세한 내용은 아래 설명을 참조하세요.

의미
INSTALLMESSAGE_FATALEXIT
조기 종료, 잠재적으로 치명적인 메모리 부족.
INSTALLMESSAGE_ERROR
형식이 지정된 오류 메시지,
 
[1]은 오류 테이블의 메시지 번호입니다.
INSTALLMESSAGE_WARNING
형식이 지정된 경고 메시지,
 
[1]은 오류 테이블의 메시지 번호입니다.
INSTALLMESSAGE_USER
사용자 요청 메시지,
 
[1]은 오류 테이블의 메시지 번호입니다.
INSTALLMESSAGE_INFO
로그에 대한 정보 메시지,
 
표시할 수 없습니다.
INSTALLMESSAGE_FILESINUSE
교체하기 전에 닫아야 하는 현재 사용 중인 파일 목록입니다.
INSTALLMESSAGE_RESOLVESOURCE
유효한 원본 위치를 확인하도록 요청합니다.
INSTALLMESSAGE_RMFILESINUSE
교체하기 전에 닫아야 하는 현재 사용 중인 파일 목록입니다. Windows Installer 버전 4.0부터 사용할 수 있습니다. 이 메시지에 대한 자세한 내용은 외부 UI에서 다시 시작 관리자 사용을 참조하세요.
INSTALLMESSAGE_OUTOFDISKSPACE
디스크 공간 부족 메시지입니다.
INSTALLMESSAGE_ACTIONSTART
진행률: 작업의 시작,
 
[1] 작업 이름,
 
[2] 설명,
 
[3] ACTIONDATA 메시지에 대한 템플릿입니다.
INSTALLMESSAGE_ACTIONDATA
작업 데이터입니다. 레코드 필드는 ACTIONSTART 메시지의 템플릿에 해당합니다.
INSTALLMESSAGE_PROGRESS
진행률 표시줄 정보입니다. 아래 레코드 필드에 대한 설명을 참조하세요.
INSTALLMESSAGE_COMMONDATA
취소 단추를 사용하도록 설정하려면 [1]을 2로, [2]를 1로 설정합니다.

취소 단추를 사용하지 않도록 설정하려면 [1]을 2로, [2]를 0으로 설정합니다.

[in] hRecord

메시지 형식 및 데이터를 포함하는 레코드에 대한 핸들입니다.

반환 값

이 함수는 int를 반환합니다.

설명

MsiProcessMessage 함수는 활성화된 로깅 작업을 수행하고 실행을 연기합니다. 다양한 메시지 유형에 대해 선택적으로 로깅을 사용하도록 설정할 수 있습니다.

INSTALLMESSAGE_FATALEXIT INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING 및 INSTALLMESSAGE_USER 메시지의 경우 필드 0이 설정되지 않은 경우 필드 1을 오류 테이블의 오류 메시지에 해당하는 오류 코드로 설정해야 합니다. 그런 다음 표시를 위해 사용자 인터페이스 처리기에 전달하기 전에 오류 테이블의 템플릿을 사용하여 메시지의 형식을 지정합니다.

진행률 표시줄 메시지에 대한 레코드 필드

다음은 eMessageType이 INSTALLMESSAGE_PROGRESS 설정된 레코드 필드에 대해 설명합니다. 필드 1은 진행률 메시지의 유형을 지정합니다. 다른 필드의 의미는 이 필드의 값에 따라 달라집니다. 필드 1에 설정할 수 있는 가능한 값은 다음과 같습니다.
필드 1 값 필드 1 설명
0 진행률 표시줄을 다시 설정하고 막대에 예상되는 총 틱의 수를 설정합니다.
1 현재 작업에서 보낼 진행률 메시지와 관련된 정보를 제공합니다.
2 진행률 표시줄을 증분합니다.
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 사용 안 함  
 

자세한 내용 및 코드 샘플은 ProgressBar에 사용자 지정 작업 추가를 참조하세요.

메시지 상자 표시

푸시 단추 또는 아이콘이 있는 메시지 상자를 표시하려면 OR 연산자를 사용하여 MessageBox 및 MessageBoxEx에서 사용하는 메시지 상자 옵션으로 INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING 또는 INSTALLMESSAGE_USER 추가합니다. 사용 가능한 푸시 단추 옵션은 MB_OK, MB_OKCANCEL, MB_ABORTRETRYIGNORE, MB_YESNOCANCEL, MB_YESNO 및 MB_RETRYCANCEL. 사용 가능한 기본 단추 옵션은 MB_DEFBUTTON1, MB_DEFBUTTON2 및 MB_DEFBUTTON3. 사용 가능한 아이콘 옵션은 MB_ICONERROR, MB_ICONQUESTION, MB_ICONWARNING 및 MB_ICONINFORMATION. 아이콘 옵션을 지정하지 않으면 Windows Installer는 메시지 유형에 따라 기본 아이콘 스타일을 선택합니다.

예를 들어 MsiProcessMessage 에 대한 다음 호출은 MB_ICONWARNING 아이콘과 MB_ABORTRETRYCANCEL 단추가 있는 INSTALLMESSAGE_ERROR 메시지를 보냅니다.

PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall, 
                  INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING),
                  hRec);

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

MsiProcessMessage를 사용하여 메시지를 보내는 방법에 대한 자세한 내용은 MsiProcessMessage를 사용하여 Windows Installer에 메시지 보내기를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 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
대상 플랫폼 Windows
헤더 msiquery.h
라이브러리 Msi.lib
DLL Msi.dll

추가 정보

설치 관리자 작업 함수

MsiProcessMessage를 사용하여 Windows Installer에 메시지 보내기