다음을 통해 공유


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.

의미
MUI_QUERY_TYPE
FILEMUIINFOdwFileType 멤버에서 다음 값 중 하나를 검색합니다.
  • MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL: 지정된 입력 파일에 리소스 구성 데이터가 없습니다. 따라서 LN 파일이나 언어별 리소스 파일이 아닙니다. 이 형식의 파일은 이전 실행 파일에 일반적입니다. 이 파일 형식을 지정하면 함수는 다른 형식에 대한 유용한 정보를 검색하지 않습니다.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. 입력 파일은 LN 파일입니다.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. 입력 파일은 LN 파일과 연결된 언어별 리소스 파일입니다.
MUI_QUERY_CHECKSUM
FILEMUIINFOpChecksum 멤버에서 입력 파일의 리소스 체크섬을 검색합니다. 입력 파일에 리소스 구성 데이터가 없는 경우 구조체의 이 멤버에는 0이 포함됩니다.
MUI_QUERY_LANGUAGE_NAME
입력 파일과 연결된 언어를 검색합니다. 언어별 리소스 파일의 경우 이 플래그는 연결된 언어를 요청합니다. LN 파일의 경우 이 플래그는 모듈에 대한 최종 대체 리소스의 언어를 요청합니다. 이 언어는 LN 파일 또는 LN 파일의 리소스 구성 데이터에서 참조하는 별도의 언어별 리소스 파일에 있을 수 있습니다. 자세한 내용은 주의 섹션을 참조하세요.
MUI_QUERY_RESOURCE_TYPES
리소스 구성 데이터에 지정된 언어별 리소스 파일 및 LN 파일의 리소스 종류 목록을 검색합니다. 이 정보에 액세스하는 방법은 설명 섹션을 참조하세요.

[in] pcwszFilePath

파일 경로를 나타내는 null로 끝나는 문자열에 대한 포인터입니다. 일반적으로 파일은 LN 파일 또는 언어별 리소스 파일입니다. 이러한 형식 중 하나가 아닌 경우 함수가 검색하는 유일한 중요한 값은 MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. 함수는 MUI_QUERY_RESOURCE_TYPES 플래그가 설정된 경우에만 이 값을 검색합니다.

[in, out, optional] pFileMUIInfo

FILEMUIINFO 구조체 및 해당 구조체 다음의 데이터에서 파일 정보를 포함하는 버퍼에 대한 포인터입니다. 정보 버퍼는 구조 자체의 크기보다 훨씬 커야 할 수 있습니다. 플래그 설정에 따라 함수는 구조체에서 검색된 오프셋에 구조체 다음에 상당한 정보를 저장할 수 있습니다. 자세한 내용은 주의 섹션을 참조하세요.

또는 pcbFileMUIInfo가 0으로 설정된 경우 애플리케이션에서 이 매개 변수를 NULL로 설정할 수 있습니다. 이 경우 함수는 pcbFileMUIInfo의 정보 버퍼에 필요한 크기를 검색합니다.

참고pFileMUIInfo 값이 NULL이 아니면 dwSize 멤버를 FILEMUIINFO 구조체의 크기(정보 버퍼 포함)로 설정해야 하며 dwVersion 멤버를 현재 버전의 0x001 설정해야 합니다.
 

[in, out] pcbFileMUIInfo

pFileMUIInfo로 표시된 파일 정보에 대한 버퍼 크기(바이트)에 대한 포인터입니다. 함수에서 성공적으로 반환되면 이 매개 변수에는 검색된 파일 정보 버퍼의 크기와 이 매개 변수가 포함된 FILEMUIINFO 구조체가 포함됩니다.

또는 애플리케이션이 pFileMUIInfo에서 NULL을 설정하는 경우 이 매개 변수를 0으로 설정할 수 있습니다. 이 경우 함수는 pcbFileMUIInfo에서 필요한 파일 정보 버퍼 크기를 검색합니다. 올바른 양의 메모리를 할당하려면 이 값을 FILEMUIINFO 구조체 자체의 크기에 추가해야 합니다.

참고pFileMUIInfo 값이 NULL이 아닌 경우 이 매개 변수의 값은 FILEMUIINFOdwSize 멤버 값과 일치해야 합니다.
 

반환 값

성공하면 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 멤버는 언어별 리소스 파일에 포함된 리소스 이름 배열에 대한 오프셋을 포함합니다.
입력 파일이 LN 파일인 경우 함수는 위의 모든 구조체 멤버를 채웁니다. 또한 다음 멤버를 채웁니다.
  • dwTypeIDMainOffset 멤버는 LN 파일에 포함된 리소스 식별자 배열에 대한 오프셋을 포함합니다.
  • dwTypeIDMainSize 멤버에는 LN 파일에 대한 리소스 식별자 배열의 크기가 포함됩니다.
  • dwTypeNameMainOffset 멤버는 파일에 포함된 리소스 이름 배열에 대한 오프셋을 포함합니다.
다음은 LN 파일의 리소스 식별자 배열에 액세스하는 샘플 코드입니다.
DWORD *pdwTypeID = reinterpret_cast<DWORD *>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeIDMainOffset);

참고 언어별 리소스 목록은 동일한 방식으로 액세스됩니다.
 
다음은 LN 파일에서 리소스 이름의 다중 문자열 배열에 액세스하는 샘플 코드입니다.
LPWSTR lpszNames = reinterpret_cast<LPWSTR>(
        reinterpret_cast<BYTE*>(pFileMUIInfo) +
        pFileMUIInfo->dwTypeNameMainOffset);

참고 언어별 리소스 목록은 동일한 방식으로 액세스됩니다.
 
각 코드 샘플은 두 개의 재해석 캐스트를 사용합니다. 먼저 오프셋에 대한 포인터 산술 연산이 바이트 단위로 수행되도록 코드가 BYTE*로 캐스팅됩니다. 그런 다음, 코드는 결과 포인터를 원하는 형식으로 캐스팅합니다.

또 다른 방법은 샘플에 표시된 코드 대신 다음을 작성하는 것입니다. 효과는 동일하며 선택은 엄격하게 스타일 중 하나입니다.

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

참고 항목

FILEMUIINFO

GetThreadUILanguage

다국어 사용자 인터페이스

다국어 사용자 인터페이스 함수

SetThreadPreferredUILanguages

SetThreadUILanguage