EnumResourceTypesExA 函式 (libloaderapi.h)
列舉與指定二進位模組相關聯的資源類型。 搜尋可以同時包含 語言中性可攜式可執行檔 檔案(LN 檔案)及其相關聯的 .mui 檔案。 或者,它可以限製為任何類型的單一二進位模組,或與單一 LN 檔案相關聯的 .mui 檔案。 搜尋也可以限制為包含特定語言資源的單一相關聯 .mui 檔案。
針對找到的每個資源類型,EnumResourceTypesEx 會呼叫應用程式定義的回呼函式,lpEnumFunc,傳遞它找到的資源類型,以及傳遞給 EnumResourceTypesEx的各種其他參數。
語法
BOOL EnumResourceTypesExA(
[in, optional] HMODULE hModule,
[in] ENUMRESTYPEPROCA lpEnumFunc,
[in] LONG_PTR lParam,
[in] DWORD dwFlags,
[in] LANGID LangId
);
參數
[in, optional] hModule
類型:HMODULE
要搜尋之模組的句柄。 這通常是 LN 檔案,如果已設定旗標 RESOURCE_ENUM_MUI,則可以在搜尋中包含適當的 .mui 檔案。 或者,這可以是 .mui 檔案或其他 LN 檔案的句柄。
如果此參數 NULL,則相當於將句柄傳遞至用來建立目前進程的模組。
[in] lpEnumFunc
類型:ENUMRESTYPEPROC
要針對每個列舉資源類型呼叫的回調函式指標。 如需詳細資訊,請參閱 EnumResTypeProc。
[in] lParam
類型:LONG_PTR
傳遞至回調函式的應用程式定義值。
[in] dwFlags
類型:DWORD
要搜尋的文件類型。 支援下列值。 請注意,如果 dwFlags 為零,則會假設指定 RESOURCE_ENUM_LN 和 RESOURCE_ENUM_MUI 旗標。
價值 | 意義 |
---|---|
|
依照一般資源載入器策略,搜尋其中一個與 hModule 和目前語言喜好設定所指定檔案相關聯的 .mui 檔案中的資源類型(請參閱 使用者介面語言管理)。 或者,如果 LangId 為非零,則只會搜尋 LangId 所指定之語言的 .mui 檔案。 通常只有在 hModule 參考 LN 檔案時,才應該使用此旗標。 如果 hModule 參考 .mui 檔案,則即使旗標的名稱,該檔案實際上仍會由 RESOURCE_ENUM_LN 旗標所涵蓋。 |
|
只搜尋 hModule所指定的檔案,不論檔案是 LN 檔案還是 .mui 檔案。 |
|
在執行 列舉時,對資源區段及其參考執行額外的驗證,以確保資源已正確格式化。 驗證會為每個列舉的類型設定 260 個字元的最大限制。 |
[in] LangId
類型:LANGID
用來篩選 MUI 模組中搜尋的語言。 只有在 dwFlags中設定 RESOURCE_ENUM_MUI 旗標時,才會使用此參數。 如果指定零,則符合目前語言喜好設定的所有 .mui 檔案都會包含在搜尋中,遵循一般資源載入器策略(請參閱 使用者介面語言管理)。 如果指定了非零 LangId,則搜尋的唯一 .mui 檔案會是符合指定 LangId。
傳回值
類型:BOOL
如果成功或 FALSE 函式找不到指定之類型的資源,或函式因其他原因而失敗,則傳回 TRUE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
言論
EnumResourceTypesEx 函式會繼續列舉資源類型,直到回呼函式傳回 FALSE 或所有資源類型都已列舉為止。
如果 hModule 指定 LN 檔案,而且選取這兩個旗標,則列舉的類型會對應至位於 LN 檔案或與其相關聯的 .mui 檔案中的資源。 如果找不到 .mui 檔案,則只會傳回 LN 檔案中的類型。 找到一個適當的 .mui 檔案之後,搜尋將不會繼續,因為對應至單一 LN 檔案的所有 .mui 檔案具有相同的資源類型。
如果 dwFlags 和 LangId 都是零,則函式的行為就像 EnumResourceTypes。
如果 LangId 為非零,則只會搜尋對應至該語言識別碼的 .mui 檔案。 將不會使用語言後援。 如果該語言的 .mui 檔案不存在,列舉將會是空的(除非該語言的資源存在於 LN 檔案中,而且旗標也會設定為搜尋 LN 檔案)。
列舉永遠不會包含重複專案:如果特定語言的資源同時包含在 LN 檔案和 .mui 檔案中,則類型只會列舉一次。
例子
如需範例,請參閱 建立資源清單。
注意
libloaderapi.h 標頭會根據 UNICODE 預處理器常數的定義,將 EnumResourceTypesEx 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
支援的最低伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | libloaderapi.h (包括 Windows.h) |
連結庫 | Kernel32.lib |
DLL | Kernel32.dll |
另請參閱
概念
參考