다음을 통해 공유


FILEMUIINFO 구조체(winnls.h)

MUI 사용과 관련된 파일에 대한 정보를 포함합니다. 이 데이터의 대부분은 특정 파일에 대한 리소스 구성 데이터에 저장됩니다. GetFileMUIInfo에서 이 구조를 검색할 때 모든 필드가 반드시 채워지는 것은 아닙니다. 사용되는 필드는 애플리케이션이 해당 함수에 전달한 플래그에 따라 달라집니다.

참고 MUI 애플리케이션은 MUI 매크로를 사용하여 이 구조에 액세스할 수 있습니다.
 

구문

typedef struct _FILEMUIINFO {
  DWORD dwSize;
  DWORD dwVersion;
  DWORD dwFileType;
  BYTE  pChecksum[16];
  BYTE  pServiceChecksum[16];
  DWORD dwLanguageNameOffset;
  DWORD dwTypeIDMainSize;
  DWORD dwTypeIDMainOffset;
  DWORD dwTypeNameMainOffset;
  DWORD dwTypeIDMUISize;
  DWORD dwTypeIDMUIOffset;
  DWORD dwTypeNameMUIOffset;
  BYTE  abBuffer[8];
} FILEMUIINFO, *PFILEMUIINFO;

멤버

dwSize

선언된 8바이트를 지나 확장할 수 있는 버퍼를 포함한 구조체의 크기입니다. 허용되는 최소값은 입니다 sizeof(FILEMUIINFO).

dwVersion

구조체의 버전입니다. 현재 버전은 0x001.

dwFileType

파일 형식입니다. 가능한 값은 다음과 같습니다.

  • MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL. 입력 파일에 리소스 구성 데이터가 없습니다. 이 파일 형식은 이전 실행 파일에 일반적입니다. 이 파일 형식을 지정하면 다른 파일 형식은 유용한 정보를 제공하지 않습니다.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN. 입력 파일은 LN 파일입니다.
  • MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI. 입력 파일은 언어별 리소스 파일입니다.

pChecksum[16]

LN 파일 또는 언어별 리소스 파일인 경우 파일에 대한 128비트 체크섬에 대한 포인터입니다.

pServiceChecksum[16]

서비스에 사용되는 파일에 대한 128비트 체크섬에 대한 포인터입니다.

dwLanguageNameOffset

구조체의 시작부터 언어별 리소스 파일의 언어 이름 문자열 또는 LN 파일의 궁극적인 대체 언어 이름 문자열까지 오프셋(바이트)입니다.

dwTypeIDMainSize

오프셋이 dwTypeIDMainOffset으로 표시되는 배열의 크기입니다. 크기는 dwTypeNameMainOffset으로 표시된 다중 문자열 배열의 문자열 수에도 해당합니다.

dwTypeIDMainOffset

구조체의 시작부터 LN 파일에 포함된 리소스 형식을 열거하는 DWORD 배열까지 오프셋(바이트)입니다.

dwTypeNameMainOffset

구조체의 시작부터 LN 파일에 포함된 리소스 이름을 열거하는 다중 문자열 배열의 일련의 null로 끝나는 문자열까지 오프셋(바이트)입니다.

dwTypeIDMUISize

dwTypeIDMUIOffset으로 표시된 오프셋이 있는 배열의 크기입니다. 크기는 dwTypeNameMUIOffset으로 표시된 일련의 문자열 수에도 해당합니다.

dwTypeIDMUIOffset

구조체의 시작부터 LN 파일에 포함된 리소스 형식을 열거하는 DWORD 배열까지 오프셋(바이트)입니다.

dwTypeNameMUIOffset

구조체의 시작부터 LN 파일에 포함된 리소스 이름을 열거하는 다중 문자열 배열까지 오프셋(바이트)입니다.

abBuffer[8]

이 구조체에 할당된 메모리의 나머지입니다. 이 배열을 올바르게 사용하려면 설명 섹션을 참조하세요.

설명

모든 오프셋은 구조체의 기본에서 가져옵니다. 오프셋이 0이면 데이터를 사용할 수 없음을 나타냅니다.

다음은 오프셋으로 설명된 구조체의 위치에 대한 데이터에 액세스하는 방법을 보여 주는 예제입니다. 이 예제에서는 dwLanguageNameOffset으로 정의된 위치를 사용하여 언어 이름 문자열에 액세스합니다.

PFILEMUIINFO pFileMUIInfo = NULL;

Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);

LPWSTR lpszLang = reinterpret_cast<LPWSTR>(reinterpret_cast<BYTE*>(pFileMUIInfo) + pFileMUIInfo->dwLanguageNameOffset);

이 예제에서는 두 개의 재해석 캐스트를 사용합니다. 먼저 코드가 BYTE*로 캐스팅되므로 오프셋에 대한 포인터 산술 연산이 바이트 단위로 수행됩니다. 그런 다음, 코드는 결과 포인터를 원하는 형식으로 캐스팅합니다.

또는 아래와 같이 코드를 작성할 수 있습니다. 효과는 동일합니다. 선택은 엄격하게 스타일 중 하나입니다.

PFILEMUIINFO pFileMUIInfo = NULL;

Allocate_pFileMUIInfo_AndPassTo_GetFileMUIInfo(&pFileMUIInfo);

DWORD ix = pFileMUIInfo->dwLanguageNameOffset - offsetof(struct _FILEMUIINFO, abBuffer);
LPWSTR lpszLang = reinterpret_cast<LPWSTR>(&(pFileMUIInfo->abBuffer[ix]));

C# 서명

unsafe public struct FILEMUIINFO
        {
            public System.UInt32 dwSize;
            public System.UInt32 dwVersion;
            public System.UInt32 dwFileType;
            public fixed System.Byte pChecksum[16];
            public fixed System.Byte pServiceChecksum[16];
            public System.UInt32 dwLanguageNameOffset;
            public System.UInt32 dwTypeIDMainSize;
            public System.UInt32 dwTypeIDMainOffset;
            public System.UInt32 dwTypeNameMainOffset;
            public System.UInt32 dwTypeIDMUISize;
            public System.UInt32 dwTypeIDMUIOffset;
            public System.UInt32 dwTypeNameMUIOffset;
            public fixed System.Byte abBuffer[8];
        }

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
머리글 winnls.h(Windows.h 포함)

추가 정보

GetFileMUIInfo

다국어 사용자 인터페이스

다국어 사용자 인터페이스 매크로

다국어 사용자 인터페이스 구조