다음을 통해 공유


MsiSetFeatureStateA 함수(msiquery.h)

MsiSetFeatureState 함수는 기능을 지정된 상태로 설정합니다.

통사론

UINT MsiSetFeatureStateA(
  [in] MSIHANDLE    hInstall,
  [in] LPCSTR       szFeature,
  [in] INSTALLSTATE iState
);

매개 변수

[in] hInstall

DLL 사용자 지정 작업에 제공되거나 MsiOpenPackage, MsiOpenPackageEx또는 msiOpenProduct통해 얻은 설치에 대한 핸들입니다.

[in] szFeature

기능의 이름을 지정합니다.

[in] iState

설정할 상태를 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
INSTALLSTATE_ABSENT
기능이 설치되지 않았습니다.
INSTALLSTATE_LOCAL
이 기능은 로컬 드라이브에 설치됩니다.
INSTALLSTATE_SOURCE
이 기능은 원본, CD 또는 네트워크에서 실행됩니다.
INSTALLSTATE_ADVERTISED
이 기능은 보급됩니다.

반환 값

MsiSetFeatureState 함수는 다음 값을 반환합니다.

발언

MsiSetFeatureState 함수는 기능 테이블 및 해당 자식에서 기능의 선택 상태 변경을 요청합니다. 따라서 변경된 기능 레코드에 연결된 모든 구성 요소의 작업 상태도 새 기능 선택 상태에 따라 적절하게 업데이트됩니다.

msiSetFeatureState호출하기 전에 MsiSetInstallLevel 함수를 호출해야 .

MsiSetFeatureState 호출되면 설치 관리자는 지정된 기능에 연결된 각 구성 요소의 작업 상태를 지정된 상태로 설정하려고 시도합니다. 그러나 요청을 완전히 구현할 수 없는 일반적인 상황이 있습니다. 예를 들어 기능이 FeatureComponents 테이블을 통해 구성 요소 A와 구성 요소 B에 연결되어 있고 구성 요소 A에는 msidbComponentAttributesLocalOnly 특성이 있고 구성 요소 B에는 msidbComponentAttributesSourceOnly 특성이 있습니다. 이 경우 요청된 상태가 INSTALLSTATE_LOCAL 또는 INSTALLSTATE_SOURCE MsiSetFeatureState 호출되는 경우 두 구성 요소 모두에 대해 요청을 완전히 구현할 수 없습니다. 이 경우 두 구성 요소가 모두 켜지고 구성 요소 A가 로컬로 설정되고 구성 요소 B가 원본으로 설정됩니다.

두 개 이상의 기능이 단일 구성 요소(일반적인 시나리오)에 연결된 경우 해당 구성 요소의 최종 작업 상태는 다음과 같이 결정됩니다.

  • 하나 이상의 기능을 구성 요소를 로컬로 설치해야 하는 경우 이 기능은 로컬 상태로 설치됩니다.
  • 하나 이상의 기능을 원본에서 구성 요소를 실행해야 하는 경우 이 기능은 원본 상태로 설치됩니다.
  • 하나 이상의 기능에서 구성 요소를 제거해야 하는 경우 작업 상태가 없습니다.
프로그램데이터베이스 함수를 호출하는 참조하세요.

함수가 실패하면 MsiGetLastErrorRecord사용하여 확장 오류 정보를 가져올 수 있습니다.

메모

msiquery.h 헤더는 MSiSetFeatureState를 유니코드 전처리기 상수의 정의에 따라 이 함수의 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
헤더 msiquery.h
라이브러리 Msi.lib
DLL Msi.dll

참고 항목

설치 관리자 선택 함수