共用方式為


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

從結構的開頭到 DWORD 陣列的位移,以位元組為單位,列舉 LN 檔案中包含的資源類型。

dwTypeNameMainOffset

位移,以位元組為單位,從 結構的開頭到多字串陣列中以 Null 結尾的字串系列,列舉 LN 檔案中包含的資源名稱。

dwTypeIDMUISize

陣列的大小,其位移由 dwTypeIDMUIOffset 指示。 大小也會對應至 dwTypeNameMUIOffset 所指示字串數列中的字串數目。

dwTypeIDMUIOffset

從結構的開頭到 DWORD 陣列的位移,以位元組為單位,列舉 LN 檔案中包含的資源類型。

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

多語系使用者介面

多語系使用者介面宏

多語系使用者介面結構