EnumResourceLanguagesExW 函式 (libloaderapi.h)
列舉與指定二進位模組相關聯之指定型別和名稱的語言特定資源。 藉由允許對列舉進行更多控制,以擴充 EnumResourceLanguages 。
語法
BOOL EnumResourceLanguagesExW(
[in] HMODULE hModule,
[in] LPCWSTR lpType,
[in] LPCWSTR lpName,
[in] ENUMRESLANGPROCW lpEnumFunc,
[in] LONG_PTR lParam,
[in] DWORD dwFlags,
[in] LANGID LangId
);
參數
[in] hModule
類型: HMODULE
要搜尋之模組的句柄。 這通常是 語言中性可攜式可執行檔 (LN 檔案) ,如果已設定旗標 RESOURCE_ENUM_MUI ,則會在搜尋中包含適當的 .mui 檔案。 或者,這可以是 .mui 檔案或其他 LN 檔案的句柄。 如果這是特定的 .mui 檔案,則只會搜尋該檔案的資源。
如果此參數為 NULL,則相當於將句柄傳遞至用來建立目前進程的模組。
[in] lpType
類型: LPCTSTR
要列舉語言的資源類型。 或者,這個參數可以是 MAKEINTRESOURCE (標識碼) ,其中ID是代表預先定義資源類型的整數值。 如需預先定義的資源類型清單,請參閱 資源類型。 如需詳細資訊
資訊,請參閱下方的一節。
[in] lpName
類型: LPCTSTR
要列舉語言的資源名稱。 或者,這個參數可以是 MAKEINTRESOURCE (標識碼) ,其中ID是資源的整數標識碼。 如需詳細資訊,請參閱下面的<備註>一節。
[in] lpEnumFunc
類型: ENUMRESLANGPROC
要針對每個列舉資源語言呼叫之回呼函式的指標。 如需詳細資訊,請參閱 EnumResLangProcW。
[in] lParam
類型: LONG_PTR
傳遞至回呼函式的應用程式定義值。 此參數可用於錯誤檢查。
[in] dwFlags
類型: DWORD
要搜尋的文件類型。 支援下列值。 請注意,如果 dwFlags 為零,則會假設指定RESOURCE_ENUM_LN和RESOURCE_ENUM_MUI旗標。
[in] LangId
類型: LANGID
用來篩選 .mui 檔案中搜尋的當地語系化語言。 只有在 dwFlags 中設定RESOURCE_ENUM_MUI旗標時,才會使用此參數。 如果指定零,則搜尋中會包含所有 .mui 檔案。 如果指定了非零 的 LangId ,則搜尋的唯一 .mui 檔案將是符合指定 之 LangId 的檔案。
傳回值
類型: BOOL
如果函式成功,則傳回 TRUE;如果函式找不到指定之型別的資源,或函式因其他原因而失敗,則傳回 TRUE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
如果 IS_INTRESOURCE (lpType) 為 TRUE, 則 lpType 會指定指定資源類型的整數標識碼。 否則,它是以 Null 結尾字串的指標。 如果字串的第一個字元是 (#) 的井字元號,則其餘字元代表指定的十進制數
資源類型的整數標識碼。 例如,字串 “#258” 代表標識碼 258。
同樣地,如果 IS_INTRESOURCE (lpName) 為 TRUE, 則 lpName 會指定指定資源的整數標識符。 否則,它是以 Null 結尾字串的指標。 如果字串的第一個字元是 (#) 的井字元號,則其餘字元代表指定的十進制數
資源的整數標識碼。
從 Windows Vista 開始,二進位模組通常是 LN 檔案,列舉也會包含來自對應語言特定資源文件的資源, (.mui 檔案) 包含可當地語系化語言資源。
針對找到的每個這類資源, EnumResourceLanguagesEx 會呼叫應用程式定義的回呼函式 lpEnumFunc,並將語言標識符傳遞至回呼函式, (請參閱找到 資源之語言的語言標識符 () ,以及傳遞至 EnumResourceLanguagesEx) 的各種其他參數。
搜尋可以同時包含 LN 檔案及其相關聯的 .mui 檔案,也可以限制為任何類型的單一二進位模組,或與單一 LN 檔案相關聯的 .mui 檔案。 此外,藉由指定 hModule 參數和非零 LangId 參數的 LN 檔案,搜尋可以限制為與該 LN 檔案和語言相關聯的唯一 .mui 檔案。
EnumResourceLanguagesEx 函式會繼續列舉資源語言,直到回呼函式傳回 FALSE 或已列舉所有資源語言為止。
如果 hModule 指定 LN 檔案,而且同時選取這兩個旗標,則列舉的語言會包含資源位於 LN 檔案或與其相關聯的任何 .mui 檔案中的所有語言。 如果找不到 .mui 檔案,則只會傳回 LN 檔案中的語言。
如果 dwFlags 包含 RESOURCE_ENUM_MUI 或 NULL , 且 LangId 為 0,則列舉會先包含與所有系統安裝的 .mui 檔案相關聯的語言,並使用從 EnumUILanguages 擷取的語言。 最後,如果也會設定 RESOURCE_ENUM_LN 旗標,也會搜尋 hModule 所指定的檔案。
如果 LangId 不是零,則只會搜尋對應至該語言標識碼的 .mui 檔案。 不會使用語言後援。 如果該語言的 .mui 檔案不存在,則列舉將會是空的 (,除非該語言的資源存在於 LN 檔案中,而且旗標會設定為搜尋 LN 檔案以及) 。
列舉永遠不會包含重複專案:如果特定語言的資源同時包含在 LN 檔案和 .mui 檔案中,則只會列舉類型一次。
範例
如需範例,請參閱 建立資源清單。
注意
libloaderapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 EnumResourceLanguagesEx 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | libloaderapi.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |
另請參閱
概念
參考