EnumResourceTypesExW 函式 (libloaderapi.h)
列舉與指定二進位模組相關聯的資源類型。 搜尋可以同時包含 語言中性可攜式可執行檔 (LN 檔案) 及其相關聯的 .mui 檔案。 或者,它可以限制為任何類型的單一二進位模組,或限制為與單一 LN 檔案相關聯的 .mui 檔案。 搜尋也可以限制為單一相關聯的 .mui 檔案,其中包含特定語言的資源。
針對找到的每個資源類型, EnumResourceTypesEx 會呼叫應用程式定義的回呼函式 lpEnumFunc,並傳遞它找到的資源類型,以及傳遞給 EnumResourceTypesEx的各種其他參數。
語法
BOOL EnumResourceTypesExW(
[in, optional] HMODULE hModule,
[in] ENUMRESTYPEPROCW 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
如果函式找不到指定之類型的資源,或函式因其他原因而失敗,則傳回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 標頭會將 EnumResourceTypesEx 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | libloaderapi.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |
另請參閱
概念
參考