SHLoadIndirectString 함수(shlwapi.h)
간접 문자열('@' 기호로 시작하는 문자열)의 형태로 해당 리소스를 지정하면 지정된 텍스트 리소스를 추출합니다.
구문
LWSTDAPI SHLoadIndirectString(
[in] PCWSTR pszSource,
[out] PWSTR pszOutBuf,
[in] UINT cchOutBuf,
void **ppvReserved
);
매개 변수
[in] pszSource
형식: PCWSTR
리소스를 검색할 간접 문자열을 포함하는 버퍼에 대한 포인터입니다. 이 문자열은 '@' 기호로 시작하고 설명 섹션에 설명된 양식 중 하나를 사용해야 합니다. 이 함수는 '@' 기호로 시작하지 않는 문자열을 성공적으로 수락하지만 문자열은 pszOutBuf에 변경되지 않고 전달됩니다.
[out] pszOutBuf
형식: PWSTR
이 함수가 성공적으로 반환될 때 텍스트 리소스를 수신하는 버퍼에 대한 포인터입니다. pszOutBuf와 pszSource는 모두 동일한 버퍼를 가리킬 수 있습니다. 이 경우 원래 문자열을 덮어씁니다.
[in] cchOutBuf
형식: UINT
pszOutBuf가 가리키는 버퍼의 크기(문자)입니다.
ppvReserved
형식: void**
사용되지 않음; 을 NULL로 설정합니다.
반환 값
형식: HRESULT
이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.
설명
간접 문자열은 각각 고유한 해석이 있는 여러 형식으로 제공될 수 있습니다.
-
파일 이름 및 리소스 ID ''' 구문 @filename,리소스 '''
문자열은 리소스 값을 로케이터로 사용하여 라는 파일에서 추출됩니다. 리소스 값이 0 이상인 경우 숫자는 이진 파일의 문자열 인덱스가 됩니다. 숫자가 음수이면 리소스 ID가 됩니다. 검색된 문자열은 출력 버퍼에 복사되고 함수는 S_OK 반환합니다.
- 버전 한정자 ''' 구문이 @filename,resource인 파일 이름 및 리소스 ID; v2 '''
이 양식은 리소스가 변경되었지만 여전히 이전 리소스와 동일한 인덱스 또는 ID를 사용할 때 사용할 수 있습니다. 버전 한정자가 없으면 MUI(다국어 사용자 인터페이스) 캐시는 리소스가 변경되었으며 새로 고쳐지지 않는다는 것을 인식하지 않습니다. 버전 한정자를 추가하면 값이 새 리소스로 표시되고 캐시에 추가됩니다. 새 리소스에 대해 새 ID 또는 인덱스 를 사용하고 가능하지 않은 경우에만 버전 한정자를 사용하는 것이 좋습니다.
-
PRI 파일 경로 및 리소스 ID ''' 구문 @{PRIFilepath?resource} '''
PRI(패키지 리소스 인덱스)는 인덱싱된 리소스 또는 리소스에 대한 참조를 포함하는 Windows 8 도입된 이진 형식입니다. .pri 파일은 앱 패키지의 일부로 번들로 제공됩니다. .pri 파일에 대한 자세한 내용은 Windows 스토어 앱에서 리소스 만들기 및 검색을 참조하세요.
문자열은 리소스 를 로케이터로 사용하여 라는 .pri 파일에서 추출됩니다. 검색된 문자열은 출력 버퍼에 복사되고 함수는 S_OK 반환합니다. 문자열은 현재 Shell 환경 또는 ResourceContext를 기반으로 추출됩니다.
이러한 형식의 간접 문자열 예제는 여기에 나와 있습니다.
@{C:\Program Files\WindowsApps\Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe\resources.pri? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
-
패키지 이름 및 리소스 ID ''' 구문 @{PackageFullName?resource} '''
문자열은 리소스를 로케이터로 사용하여 PackageFullName으로 식별된 패키지의 앱 루트 디렉터리에 저장된 Resources.pri 파일에서 추출됩니다. 검색된 문자열은 출력 버퍼에 복사되고 함수는 S_OK 반환합니다. 문자열은 앱의 환경 또는 ResourceContext에 따라 추출됩니다.
참고 이 문자열은 현재 사용자에 대해 설치된 패키지를 참조해야 합니다. 그렇지 않으면 호출이 실패합니다.@{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/manifestAppDescription}
다음 예제에서는 정규화된 참조 이름이 조회를 제한할 네임스페이스를 지정합니다.
@{Microsoft.Camera_6.2.8376.0_x64__8wekyb3d8bbwe? ms-resource://Microsoft.Camera/resources/manifestAppDescription}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | shlwapi.h |
라이브러리 | Shlwapi.lib |
DLL | Shlwapi.dll(버전 5.5 이상) |