다음을 통해 공유


MsiSetExternalUIRecord 함수(msi.h)

MsiSetExternalUIRecord 함수는 외부 UI(사용자 인터페이스) 처리기를 사용하도록 설정합니다.

구문

UINT MsiSetExternalUIRecord(
  [in]            INSTALLUI_HANDLER_RECORD  puiHandler,
  [in]            DWORD                     dwMessageFilter,
  [in]            LPVOID                    pvContext,
  [out, optional] PINSTALLUI_HANDLER_RECORD ppuiPrevHandler
);

매개 변수

[in] puiHandler

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

현재 외부 UI 처리기를 사용하지 않도록 설정하려면 이 매개 변수가 NULL 값으로 설정된 함수를 호출합니다.

[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

콜백 함수에 전달되는 애플리케이션 컨텍스트에 대한 포인터입니다.

이 매개 변수는 오류 검사에 사용할 수 있습니다.

[out, optional] ppuiPrevHandler

INSTALLUI_HANDLER_RECORD 사양을 준수하는 이전에 설정된 콜백 함수에 대한 포인터를 반환하거나 이전에 콜백이 설정되지 않은 경우 NULL을 반환합니다.

반환 값

반환 코드 설명
ERROR_SUCCESS
함수가 성공적으로 완료됩니다.
ERROR_CALL_NOT_IMPLEMENTED
이 값은 사용자 지정 작업에서 이 함수를 호출하려고 했음을 나타냅니다.

이 함수는 사용자 지정 작업에서 호출할 수 없습니다.

설명

이 함수는 사용자 지정 작업에서 호출할 수 없습니다.

MsiSetExternalUIRecord를 호출하여 사용하도록 설정된 외부 UI 처리기는 Record 개체 형식의 메시지를 받습니다. MsiSetExternalUI를 호출하여 사용하도록 설정된 외부 UI 처리기는 문자열 형식의 메시지를 받습니다. 외부 UI는 항상 Windows Installer 내부 UI 전에 호출됩니다. 사용 가능한 레코드 기반 외부 UI는 문자열 기반 외부 UI 전에 호출됩니다. 레코드 기반 외부 UI 처리기가 0을 반환하면 메시지가 사용 가능한 문자열 기반 외부 UI 처리기로 전송됩니다. 외부 UI 처리기가 0이 아닌 값을 반환하면 내부 Windows Installer UI 처리기가 표시되지 않으며 메시지가 처리된 것으로 간주됩니다.

이 함수는 설정한 외부 사용자 인터페이스를 저장합니다. 현재 외부 UI 처리기를 이전 처리기로 바꾸려면 함수를 호출하고 INSTALLUI_HANDLER_RECORDpuiHandler 매개 변수로, 0을 dwMessageFilter 매개 변수로 지정합니다.

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

이 외부 UI 처리기를 사용하지 않도록 설정하려면 puiHandler 매개 변수에 대한 NULL 값을 사용하여 MsiSetExternalUIRecord를 호출합니다.

Windows Installer 2.0 및 Windows Installer 3.0: 지원되지 않습니다. MsiSetExternalUIRecord 함수는 Windows Installer 3.1부터 사용할 수 있습니다.

레코드 기반 외부 처리기 사용에 대한 자세한 내용은 MsiSetExternalUIRecord를 사용하여 설치 모니터링을 참조하세요.

요구 사항

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

참고 항목

인터페이스 및 로깅 함수

Windows Installer 3.0 이하에서 지원되지 않음