MsiGetComponentPathExA 함수(msi.h)
MsiGetComponentPathEx 함수는 설치된 구성 요소의 전체 경로를 반환합니다. 구성 요소의 키 경로가 레지스트리 키인 경우 함수는 레지스트리 키를 반환합니다.
이 함수는 기존 MsiGetComponentPath 함수를 확장하여 사용자 계정 및 설치 컨텍스트에서 구성 요소를 검색할 수 있도록 합니다.
구문
INSTALLSTATE MsiGetComponentPathExA(
[in] LPCSTR szProductCode,
[in] LPCSTR szComponentCode,
[in, optional] LPCSTR szUserSid,
[in, optional] MSIINSTALLCONTEXT dwContext,
[out, optional] LPSTR lpOutPathBuffer,
[in, out, optional] LPDWORD pcchOutPathBuffer
);
매개 변수
[in] szProductCode
애플리케이션의 제품 코드 GUID를 지정하는 null로 끝나는 문자열 값입니다. 함수는 이 애플리케이션에서 사용하는 설치된 구성 요소의 경로를 가져옵니다.
[in] szComponentCode
구성 요소 코드 GUID를 지정하는 null로 끝나는 문자열 값입니다. 함수는 이 구성 요소 코드가 있는 설치된 구성 요소의 경로를 가져옵니다.
[in, optional] szUserSid
시스템의 사용자에 대한 SID(보안 식별자)를 지정하는 null로 끝나는 문자열 값입니다. 함수는 이 SID로 식별된 사용자 계정 아래에 설치된 애플리케이션의 설치된 구성 요소 경로를 가져옵니다. 특수 SID 문자열 s-1-1-0(모두)은 시스템의 모든 사용자를 지정합니다. 이 매개 변수가 NULL인 경우 함수는 현재 로그온한 사용자에 대해서만 설치된 구성 요소의 경로를 가져옵니다.
SID 유형 | 의미 |
---|---|
|
현재 로그온한 사용자를 지정합니다. |
|
시스템의 특정 사용자를 지정합니다. 사용자 SID의 예는 "S-1-3-64-2415071341-1358098788-3127455600-2561"입니다. |
|
시스템의 모든 사용자를 지정합니다. |
[in, optional] dwContext
설치 컨텍스트를 지정하는 플래그입니다. 함수는 지정된 설치 컨텍스트에 설치된 애플리케이션의 설치된 구성 요소 경로를 가져옵니다. 이 매개 변수는 다음 값의 조합일 수 있습니다.
[out, optional] lpOutPathBuffer
구성 요소의 경로를 수신하는 문자열 값입니다. 이 매개 변수는 NULL일 수 있습니다. 구성 요소가 레지스트리 키인 경우 레지스트리 루트는 숫자로 표시됩니다. 레지스트리 하위 키 경로인 경우 키 경로의 끝에 백슬래시가 있습니다. 레지스트리 값 키 경로인 경우 끝에 백슬래시가 없습니다. 예를 들어 HKEY_CURRENT_USER\SOFTWARE\Microsoft 의 32비트 운영 체제의 레지스트리 경로는 "01:\SOFTWARE\Microsoft"로 반환됩니다. 32비트 운영 체제에서 반환되는 레지스트리 루트는 다음 표와 같이 정의됩니다.
Root | 의미 |
---|---|
|
00 |
|
01 |
|
02 |
|
03 |
[in, out, optional] pcchOutPathBuffer
szPathBuf 매개 변수가 가리키는 TCHAR의 버퍼 크기를 받는 위치에 대한 포인터입니다. 이 위치의 값은 종료 null 문자를 포함하여 문자열의 TCHAR 수로 설정되어야 합니다. 버퍼의 크기가 너무 작으면 이 매개 변수는 종결 null 문자를 개수에 포함하지 않고 문자열 값의 길이를 받습니다.
반환 값
MsiGetComponentPathEx 함수는 다음 값을 반환합니다.
값 | 의미 |
---|---|
|
요청되는 구성 요소가 컴퓨터에서 비활성화됩니다. |
|
구성 데이터가 손상되었습니다. |
|
구성 요소가 설치되지 않았습니다. |
|
함수 매개 변수 중 하나가 잘못되었습니다. |
|
구성 요소가 로컬로 설치됩니다. |
|
구성 요소가 원본에서 실행되도록 설치됩니다. |
|
구성 요소 원본에 액세스할 수 없습니다. |
|
제품 코드 또는 구성 요소 ID를 알 수 없습니다. |
|
구성 요소가 손상되었거나 부분적으로 누락되어 복구가 필요합니다. |
설명
MsiGetComponentPathEx 함수는 다음과 같은 이유로 INSTALLSTATE_ABSENT 또는 INSTALL_STATE_UNKNOWN 반환할 수 있습니다.
- INSTALLSTATE_ABSENT
애플리케이션은 MsiUseFeature 및 필요한 경우 MsiConfigureFeature를 호출하여 기능이 설치되었는지 제대로 확인하지 못했습니다.
- INSTALLSTATE_UNKNOWN
이 기능은 게시되지 않습니다. 애플리케이션은 이전에 MsiQueryFeatureState 또는 MsiEnumFeatures를 호출하여 이를 결정했어야 합니다. 애플리케이션은 초기화하는 동안 이러한 호출을 합니다. 애플리케이션은 게시되는 것으로 알려진 기능만 사용해야 합니다. msiUseFeature에서도 INSTALLSTATE_UNKNOWN 반환되었어야 하므로 MsiUseFeature가 호출되지 않았거나 반환 값이 제대로 검사되지 않았습니다.
참고
msi.h 헤더는 MSiGetComponentPathEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입에 대한 규칙을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer 런타임 요구 사항을 참조하세요. |
대상 플랫폼 | Windows |
헤더 | msi.h |
라이브러리 | Msi.lib |
DLL | Msi.dll |
추가 정보
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기