MsiFormatRecordW 함수(msiquery.h)
MsiFormatRecord 함수는 형식 문자열을 사용하여 레코드 필드 데이터 및 속성의 형식을 지정합니다.
통사론
UINT MsiFormatRecordW(
[in] MSIHANDLE hInstall,
[in] MSIHANDLE hRecord,
[out] LPWSTR szResultBuf,
[in, out] LPDWORD pcchResultBuf
);
매개 변수
[in] hInstall
설치를 처리합니다. 이 경우 레코드 필드 매개 변수만 처리되고 대체에 속성을 사용할 수 없는 경우 생략할 수 있습니다.
[in] hRecord
서식을 지정할 레코드에 대한 핸들입니다. 템플릿 문자열은 참조된 데이터 매개 변수 뒤에 레코드 필드 0에 저장되어야 합니다.
[out] szResultBuf
null로 종료된 형식의 문자열을 수신하는 버퍼에 대한 포인터입니다. szResultBuf대해 null(value=0)을 전달하여 버퍼 크기를 확인하지 마세요. 빈 문자열(예: "")을 전달하여 버퍼의 크기를 가져올 수 있습니다. 그런 다음 함수는 ERROR_MORE_DATA 반환하고 pcchResultBuf 종료 null 문자를 포함하지 않고 TCHAR필수 버퍼 크기를 포함합니다. ERROR_SUCCESS반환 시 pcchResultBuf 종료 null 문자를 포함하지 않고 버퍼에 기록된 TCHAR수를 포함합니다.
[in, out] pcchResultBuf
szResultBuf
반환 값
MsiFormatRecord 함수는 다음 값 중 하나를 반환합니다.
발언
MsiFormatRecord 함수는 다음 형식 프로세스를 사용합니다.
형식이 지정된 매개 변수는 대괄호 [...]로 묶입니다. 대괄호는 내부 외부에서 대체가 확인되므로 반복할 수 있습니다.
문자열의 일부가 중괄호 { }로 묶이고 대괄호가 없는 경우 중괄호를 포함하여 변경되지 않은 상태로 유지됩니다.
문자열의 일부가 중괄호 { } 중괄호로 묶이고 하나 이상의 속성 이름을 포함하는 경우 모든 속성이 발견되면 중괄호 없이 텍스트(확인된 대체 포함)가 표시됩니다. 속성을 찾을 수 없으면 중괄호와 중괄호 자체의 모든 텍스트가 제거됩니다.
지연된 실행 사용자 지정 작업의 경우 msiFormatRecord
다음 단계에서는 MsiFormatRecord 함수를 사용하여 문자열의 서식을 지정하는 방법을 설명합니다.
MsiFormatRecord 함수를 사용하여 문자열의 서식을 지정하려면
- 숫자 매개 변수는 표식을 해당 레코드 필드의 값으로 바꿔 텍스트가 생성되지 않는 누락 또는 null 값으로 대체됩니다.
-
결과 문자열은 다음에 설명된 해당 값으로 기록되지 않은 매개 변수를 대체하여 처리됩니다.
- "[propertyname]" 형식의 부분 문자열이 발견되면 속성 값으로 바뀝니다.
- "[%environmentvariable]" 형식의 부분 문자열이 있으면 환경 변수의 값이 대체됩니다.
- 양식의 부분 문자열 "[#filekey]"이 발견되면 파일의 전체 경로로 바뀝니다. 파일 테이블키로 사용되는 filekey 값으로 바뀝니다. "[#filekey]" 값은 비어 있으며 설치 관리자가 CostInitialize 작업, FileCost 작업및 CostFinalize 작업실행할 때까지 경로로 대체되지 않습니다. "[#filekey]" 값은 파일이 속한 구성 요소의 설치 상태에 따라 달라집니다. 구성 요소가 원본에서 실행되는 경우 값은 파일의 원본 위치에 대한 경로입니다. 구성 요소가 로컬로 실행되는 경우 값은 설치 후 파일의 대상 위치에 대한 경로입니다. 구성 요소가 없으면 경로가 비어 있습니다. 구성 요소의 설치 상태를 확인하는 방법에 대한 자세한 내용은 기능, 구성 요소, 파일설치를 확인하세요.
- "[$componentkey]" 형식의 부분 문자열이 발견되면 구성 요소의 설치 디렉터리로 대체되고 구성 요소 테이블키로 사용되는 componentkey 값으로 바뀝니다. "[$
componentkey ]" 값은 비어 있으며 설치 관리자가CostInitialize 작업 실행, FileCost 작업및 CostFinalize 작업 때까지 디렉터리로 대체되지 않습니다. "[$componentkey]" 값은 구성 요소의 설치 상태에 따라 달라집니다. 구성 요소가 원본에서 실행되는 경우 값은 파일의 원본 디렉터리입니다. 구성 요소가 로컬로 실행되는 경우 값은 설치 후 대상 디렉터리입니다. 구성 요소가 없으면 값은 비워 집니다. 구성 요소의 설치 상태를 확인하는 방법에 대한 자세한 내용은 기능, 구성 요소, 파일설치를 확인하세요. - 구성 요소가 이미 설치되어 있고 현재 설치 중에 다시 설치, 제거 또는 이동되지 않는 경우 구성 요소의 작업 상태는 null이므로 문자열 "[$componentkey]"은 Null로 평가됩니다.
- "[\c]" 형식의 부분 문자열이 발견되면 추가 처리 없이 문자로 바뀝니다. 백슬래시 뒤의 첫 번째 문자만 유지됩니다. 다른 모든 항목이 제거됩니다.
메모
msiquery.h 헤더는 MSiFormatRecord를 유니코드 전처리기 상수의 정의에 따라 이 함수의 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 |
헤더 | msiquery.h |
라이브러리 | Msi.lib |
DLL | Msi.dll |