MsiEnumComponentsExA 함수(msi.h)
MsiEnumComponentsEx 함수는 설치된 구성 요소를 열거합니다. 함수는 호출할 때마다 한 구성 요소에 대한 구성 요소 코드를 검색합니다. 구성 요소 코드는 구성 요소, 버전 및 언어에 고유한 문자열 GUID입니다.
Windows Installer 4.5 이전: 지원되지 않습니다. 이 함수는 Windows Installer 5.0부터 사용할 수 있습니다.
통사론
UINT MsiEnumComponentsExA(
[in, optional] LPCSTR szUserSid,
[in] DWORD dwContext,
[in] DWORD dwIndex,
[out, optional] CHAR [39] szInstalledComponentCode,
[out, optional] MSIINSTALLCONTEXT *pdwInstalledContext,
[out, optional] LPSTR szSid,
[in, out] LPDWORD pcchSid
);
매개 변수
[in, optional] szUserSid
SID(보안 식별자)를 포함하는 null로 끝나는 문자열입니다. 설치된 구성 요소의 열거형은 이 SID로 식별된 사용자로 확장됩니다. 특수 SID 문자열 s-1-1-0(모두)은 시스템에 있는 모든 사용자의 모든 제품에 설치된 모든 구성 요소의 열거형을 지정합니다. s-1-1-0 이외의 SID 값은 특정 사용자의 사용자 SID를 지정하고 지정된 사용자가 설치한 애플리케이션 인스턴스로 열거형을 제한합니다.
SID 유형 | 의미 |
---|---|
|
현재 로그온한 사용자를 지정합니다. |
|
시스템의 특정 사용자에 대한 열거형입니다. 사용자 SID의 예는 "S-1-3-64-2415071341-1358098788-3127455600-2561"입니다. |
|
시스템의 모든 사용자를 지정합니다. |
특수 SID 문자열 s-1-5-18(시스템)은 컴퓨터별 설치 컨텍스트에 설치된 애플리케이션을 열거하는 데 사용할 수 없습니다. SID 값을 s-1-5-18로 설정하면 ERROR_INVALID_PARAMETER 반환됩니다.
[in] dwContext
설치된 구성 요소의 열거를 지정된 설치 컨텍스트에 설치된 제품의 인스턴스로 제한하는 플래그입니다. 이 열거형에는 szUserSid지정된 사용자가 설치한 제품 인스턴스만 포함됩니다.
[in] dwIndex
검색할 구성 요소의 인덱스를 지정합니다. 이 매개 변수는 MsiEnumComponentsEx 함수에 대한 첫 번째 호출의 경우 0이어야 합니다. 후속 호출마다 인덱스가 1씩 증가해야 합니다. 함수에 대한 이전 호출이 ERROR_SUCCESS 반환하는 경우에만 인덱스가 증가해야 합니다. 구성 요소는 순서가 지정되지 않으며 함수에서 어떤 순서로든 반환할 수 있습니다.
[out, optional] szInstalledComponentCode
설치된 구성 요소에 대한 구성 요소 코드 GUID를 수신하는 출력 버퍼입니다. 버퍼의 길이는 구성 요소 코드를 포함하는 null로 끝나는 문자열 값을 보유할 수 있을 만큼 커야 합니다. 처음 38개의 TCHAR 문자는 구성 요소에 대한 GUID를 수신하고 39번째 문자는 종료 NULL 문자를 받습니다.
[out, optional] pdwInstalledContext
구성 요소를 설치한 애플리케이션을 설치 컨텍스트에 제공하는 플래그입니다.
기 | 의미 |
---|---|
|
애플리케이션은 사용자별 관리형 설치 컨텍스트에 설치됩니다. |
|
애플리케이션은 사용자별 관리되지 않는 설치 컨텍스트에 설치됩니다. |
|
애플리케이션은 컴퓨터별 설치 컨텍스트에 설치됩니다. |
[out, optional] szSid
구성 요소를 소유한 애플리케이션을 설치한 사용자를 식별하는 SID(보안 식별자)를 받습니다. 이 애플리케이션 인스턴스가 컴퓨터별 설치 컨텍스트에 설치된 경우 위치는 빈 문자열을 받습니다.
이 위치에 있는 버퍼의 길이는 SID를 포함하는 null로 끝나는 문자열 값을 보유할 수 있을 만큼 커야 합니다. 버퍼가 너무 작으면 함수는 ERROR_MORE_DATA 반환하고 pcchSid 가리키는 위치는 종료 NULL 문자를 포함하지 않고 SID에서 TCHAR 수를 받습니다.
SID 유형 | 의미 |
---|---|
|
애플리케이션은 컴퓨터별 설치 컨텍스트에 설치됩니다. |
|
애플리케이션을 설치한 시스템의 사용자에 대한 SID입니다. |
[in, out] pcchSid
종료 null 문자를 포함하지 않고 SID에서 TCHAR 수를 받습니다. 함수가 반환되면 이 변수는 함수가 SID를 성공적으로 복사하고 null 문자를 szSid가리키는 버퍼 위치에 종료할 수 있는지 여부를 요청된 SID의 크기로 설정합니다. 크기는 종료 null 문자를 포함하지 않고 요청된 값에서 TCHAR 수로 반환됩니다.
이 매개 변수는
반환 값
MsiEnumProductsEx 함수는 다음 값 중 하나를 반환합니다.
반환 코드 | 묘사 |
---|---|
|
관리자 권한은 현재 사용자가 아닌 사용자가 설치한 애플리케이션의 구성 요소를 열거하는 데 필요합니다. |
|
구성 데이터가 손상되었습니다. |
|
잘못된 매개 변수가 함수에 전달됩니다. |
|
열거할 구성 요소가 더 이상 없습니다. |
|
함수가 성공했습니다. |
|
제공된 버퍼가 너무 작아서 전체 값을 보유하지 못했습니다. |
|
함수가 실패했습니다. |
발언
메모
msi.h 헤더는 MSiEnumComponentsEx를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Server 2012, Windows 8, Windows Server 2008 R2 또는 Windows 7의 Windows Installer 5.0. Windows Installer 버전에 필요한 최소 Windows 서비스 팩에 대한 자세한 내용은 Windows Installer Run-Time 요구 사항을 참조하세요. |
대상 플랫폼 | Windows |
헤더 | msi.h |
라이브러리 | Msi.lib |
DLL | Msi.dll |