MsiSetExternalUIA 함수(msi.h)

MsiSetExternalUI 함수는 외부 사용자 인터페이스 처리기를 사용하도록 설정합니다. 이 외부 UI 처리기는 일반 내부 사용자 인터페이스 처리기 전에 호출됩니다. 외부 UI 처리기에는 메시지를 처리했음을 나타내기 위해 0이 아닌 값을 반환하여 내부 UI를 표시하지 않는 옵션이 있습니다. 자세한 내용은 사용자 인터페이스 정보를 참조하세요.

구문

INSTALLUI_HANDLERA MsiSetExternalUIA(
  [in] INSTALLUI_HANDLERA puiHandler,
  [in] DWORD              dwMessageFilter,
  [in] LPVOID             pvContext
);

매개 변수

[in] puiHandler

INSTALLUI_HANDLER 사양을 준수하는 콜백 함수를 지정합니다.

[in] dwMessageFilter

외부 메시지 처리기를 사용하여 처리할 메시지를 지정합니다. 외부 처리기가 0이 아닌 결과를 반환하는 경우 해당 메시지는 UI로 전송되지 않고 로깅을 사용하도록 설정된 경우 메시지가 기록됩니다. 자세한 내용은 MsiEnableLog 함수를 참조하세요.

의미
INSTALLLOGMODE_FILESINUSE
사용 중인 파일 정보입니다. 이 메시지가 수신되면 FilesInUse 대화 상자 가 표시됩니다.
INSTALLLOGMODE_FATALEXIT
설치가 조기 종료되었습니다.
INSTALLLOGMODE_ERROR
오류 메시지가 기록됩니다.
INSTALLLOGMODE_WARNING
경고 메시지가 기록됩니다.
INSTALLLOGMODE_USER
사용자 요청이 기록됩니다.
INSTALLLOGMODE_INFO
표시되지 않는 상태 메시지가 기록됩니다.
INSTALLLOGMODE_RESOLVESOURCE
유효한 원본 위치를 확인하도록 요청합니다.
INSTALLLOGMODE_RMFILESINUSE
사용 중인 파일 정보입니다. 이 메시지가 수신되면 MsiRMFilesInUse 대화 상자 가 표시됩니다.
INSTALLLOGMODE_OUTOFDISKSPACE
디스크 공간이 부족합니다.
INSTALLLOGMODE_ACTIONSTART
새 설치 작업의 시작이 기록됩니다.
INSTALLLOGMODE_ACTIONDATA
설치 작업이 있는 데이터 레코드가 기록됩니다.
INSTALLLOGMODE_COMMONDATA
사용자 인터페이스 초기화에 대한 매개 변수가 기록됩니다.
INSTALLLOGMODE_PROGRESS
진행률 표시줄 정보입니다. 이 메시지에는 지금까지의 단위 및 총 단위 수에 대한 정보가 포함됩니다. 메시지 형식에 대한 설명은 MsiProcessMessage 함수를 참조하세요. 이 메시지는 외부 사용자 인터페이스로만 전송되며 기록되지 않습니다.
INSTALLLOGMODE_INITIALIZE
자동 설치가 아닌 경우 기본 UI 가 초기화됩니다. 전체 UI 설치인 경우 전체 UI가 아직 초기화되지 않습니다. 이 메시지는 외부 사용자 인터페이스로만 전송되며 기록되지 않습니다.
INSTALLLOGMODE_TERMINATE
전체 UI를 사용하는 경우 전체 UI가 종료됩니다. 자동 설치가 아닌 경우 기본 UI 는 아직 종료되지 않았습니다. 이 메시지는 외부 사용자 인터페이스로만 전송되며 기록되지 않습니다.
INSTALLLOGMODE_SHOWDIALOG
전체 UI 대화 상자를 표시하기 전에 전송됩니다. 이 메시지는 외부 사용자 인터페이스로만 전송되며 기록되지 않습니다.
INSTALLLOGMODE_INSTALLSTART
제품 설치가 시작됩니다.

메시지에는 제품의 ProductName 및 ProductCode가 포함됩니다.

INSTALLLOGMODE_INSTALLEND
제품 설치가 종료됩니다.

메시지에는 제품의 ProductName, ProductCode 및 반환 값이 포함됩니다.

[in] pvContext

콜백 함수에 전달되는 애플리케이션 컨텍스트에 대한 포인터입니다. 이 매개 변수는 오류 검사에 사용할 수 있습니다.

반환 값

반환 값은 이전에 설정된 외부 처리기이거나 이전에 설정된 처리기가 없는 경우 0입니다.

설명

이전 UI 처리기를 복원하기 위해 MsiSetExternalUI 에 대한 첫 번째 호출에서 반환된 INSTALLUI_HANDLER 사용하여 MsiSetExternalUI 에 대한 두 번째 호출을 수행하고 dwMessageFilter에 대해 0을 지정합니다.

msiSetInternalUIdwUILevel 매개 변수를 INSTALLUILEVEL_NONE 설정하여 호출되지 않는 한 puiHandler 매개 변수가 가리키는 외부 사용자 인터페이스 처리기는 외부 사용자 인터페이스를 완전히 제어할 수 없습니다. MsiSetInternalUI가 호출되지 않으면 내부 사용자 인터페이스 수준이 기본적으로 INSTALLUILEVEL_BASIC. 따라서 외부 사용자 인터페이스 처리기에서 처리되지 않는 메시지는 Windows Installer에서 처리됩니다. 초기 "설치 준비 중. . ." 외부 사용자 인터페이스 처리기가 모든 메시지를 처리하는 경우에도 대화 상자가 항상 나타납니다.

MsiSetExternalUI부트스트래핑 애플리케이션에서만 호출해야 합니다. 사용자 지정 작업에서 MsiSetExternalUI 를 호출할 수 없습니다.

참고

msi.h 헤더는 MSiSetExternalUI를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 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 Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer 런타임 요구 사항을 참조하세요.
대상 플랫폼 Windows
헤더 msi.h
라이브러리 Msi.lib
DLL Msi.dll

참고 항목

인터페이스 및 로깅 함수