GetFileMUIInfo 함수(winnls.h)
파일에 대한 리소스 관련 정보를 검색합니다.
구문
BOOL GetFileMUIInfo(
[in] DWORD dwFlags,
[in] PCWSTR pcwszFilePath,
[in, out, optional] PFILEMUIINFO pFileMUIInfo,
[in, out] DWORD *pcbFileMUIInfo
);
매개 변수
[in] dwFlags
검색할 정보를 지정하는 플래그입니다. 다음 플래그의 조합이 허용됩니다. 플래그의 기본값은 MUI_QUERY_TYPE | MUI_QUERY_CHECKSUM.
값 | 의미 |
---|---|
|
FILEMUIINFO의 dwFileType 멤버에서 다음 값 중 하나를 검색합니다.
|
|
FILEMUIINFO의 pChecksum 멤버에서 입력 파일의 리소스 체크섬을 검색합니다. 입력 파일에 리소스 구성 데이터가 없는 경우 구조체의 이 멤버에는 0이 포함됩니다. |
|
입력 파일과 연결된 언어를 검색합니다. 언어별 리소스 파일의 경우 이 플래그는 연결된 언어를 요청합니다. LN 파일의 경우 이 플래그는 모듈에 대한 최종 대체 리소스의 언어를 요청합니다. 이 언어는 LN 파일 또는 LN 파일의 리소스 구성 데이터에서 참조하는 별도의 언어별 리소스 파일에 있을 수 있습니다. 자세한 내용은 주의 섹션을 참조하세요. |
|
리소스 구성 데이터에 지정된 언어별 리소스 파일 및 LN 파일의 리소스 종류 목록을 검색합니다. 이 정보에 액세스하는 방법은 설명 섹션을 참조하세요. |
[in] pcwszFilePath
파일 경로를 나타내는 null로 끝나는 문자열에 대한 포인터입니다. 일반적으로 파일은 LN 파일 또는 언어별 리소스 파일입니다. 이러한 형식 중 하나가 아닌 경우 함수가 검색하는 유일한 중요한 값은 MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. 함수는 MUI_QUERY_RESOURCE_TYPES 플래그가 설정된 경우에만 이 값을 검색합니다.
[in, out, optional] pFileMUIInfo
FILEMUIINFO 구조체 및 해당 구조체 다음의 데이터에서 파일 정보를 포함하는 버퍼에 대한 포인터입니다. 정보 버퍼는 구조 자체의 크기보다 훨씬 커야 할 수 있습니다. 플래그 설정에 따라 함수는 구조체에서 검색된 오프셋에 구조체 다음에 상당한 정보를 저장할 수 있습니다. 자세한 내용은 주의 섹션을 참조하세요.
또는 pcbFileMUIInfo가 0으로 설정된 경우 애플리케이션에서 이 매개 변수를 NULL로 설정할 수 있습니다. 이 경우 함수는 pcbFileMUIInfo의 정보 버퍼에 필요한 크기를 검색합니다.
[in, out] pcbFileMUIInfo
pFileMUIInfo로 표시된 파일 정보에 대한 버퍼 크기(바이트)에 대한 포인터입니다. 함수에서 성공적으로 반환되면 이 매개 변수에는 검색된 파일 정보 버퍼의 크기와 이 매개 변수가 포함된 FILEMUIINFO 구조체가 포함됩니다.
또는 애플리케이션이 pFileMUIInfo에서 NULL을 설정하는 경우 이 매개 변수를 0으로 설정할 수 있습니다. 이 경우 함수는 pcbFileMUIInfo에서 필요한 파일 정보 버퍼 크기를 검색합니다. 올바른 양의 메모리를 할당하려면 이 값을 FILEMUIINFO 구조체 자체의 크기에 추가해야 합니다.
반환 값
성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. 확장된 오류 정보를 가져오기 위해 애플리케이션은 GetLastError를 호출할 수 있습니다.
설명
MUI_QUERY_LANGUAGE_NAME 플래그의 경우 이 함수는 dwLanguageNameOffset 멤버의 FILEMUIINFO 시작 부분에서 오프셋(바이트)을 검색합니다.
다음은 입력 파일과 연결된 언어 이름에 액세스하는 샘플 코드입니다.
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwLanguageNameOffset);
MUI_QUERY_RESOURCE_TYPES 플래그의 경우 이 함수는 다음 FILEMUIINFO 멤버에서 언어별 리소스 파일 정보를 검색합니다.
- dwTypeIDMUIOffset 멤버는 언어별 리소스 파일에 포함된 리소스 식별자 배열에 대한 오프셋을 포함합니다.
- dwTypeIDMUISize 멤버에는 언어별 리소스 파일에 대한 리소스 식별자 배열의 크기가 포함됩니다.
- dwTypeNameMUIOffset 멤버는 언어별 리소스 파일에 포함된 리소스 이름 배열에 대한 오프셋을 포함합니다.
- dwTypeIDMainOffset 멤버는 LN 파일에 포함된 리소스 식별자 배열에 대한 오프셋을 포함합니다.
- dwTypeIDMainSize 멤버에는 LN 파일에 대한 리소스 식별자 배열의 크기가 포함됩니다.
- dwTypeNameMainOffset 멤버는 파일에 포함된 리소스 이름 배열에 대한 오프셋을 포함합니다.
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeIDMainOffset);
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
reinterpret_cast<BYTE*>(pFileMUIInfo) +
pFileMUIInfo->dwTypeNameMainOffset);
또 다른 방법은 샘플에 표시된 코드 대신 다음을 작성하는 것입니다. 효과는 동일하며 선택은 엄격하게 스타일 중 하나입니다.
DWORD ix = pFileMUIInfo->dwLanguageNameOffset -
offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));
C# 서명
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetFileMUIInfo(
System.UInt32 dwFlags,
System.String pcwszFilePath,
ref FILEMUIINFO pFileMUIInfo,
ref System.UInt32 pcbFileMUIInfo
);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winnls.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |