共用方式為


EnumResourceNamesExA 函式 (libloaderapi.h)

列舉與指定二進位模組相關聯的指定型別資源。 搜尋可以同時包含 LN 檔案及其相關聯的 .mui 檔案,也可以透過數種方式加以限制。

語法

BOOL EnumResourceNamesExA(
  [in, optional] HMODULE          hModule,
                 LPCSTR           lpType,
  [in]           ENUMRESNAMEPROCA lpEnumFunc,
  [in]           LONG_PTR         lParam,
  [in]           DWORD            dwFlags,
  [in]           LANGID           LangId
);

參數

[in, optional] hModule

類型: HMODULE

要搜尋之模組的控制碼。 這通常是 LN 檔案,如果已設定旗 標RESOURCE_ENUM_MUI ,則會在搜尋中包含適當的 .mui 檔案。 或者,這可以是 .mui 檔案或其他 LN 檔案的控制碼。

如果此參數為 Null,則相當於將控制碼傳遞至用來建立目前進程的模組。

lpType

類型: LPCSTR

要列舉名稱的資源類型。 或者,這個參數可以是 MAKEINTRESOURCE (識別碼) ,其中 ID 是代表預先定義資源類型的整數值。 如需預先定義的資源類型清單,請參閱 資源類型。 如需詳細資訊,請參閱下面的<備註>一節。

[in] lpEnumFunc

類型: ENUMRESNAMEPROC

要針對每個列舉資源名稱呼叫之回呼函式的指標。 如需詳細資訊,請參閱 EnumResNameProc

[in] lParam

類型: LONG_PTR

傳遞至回呼函式的應用程式定義值。 此參數可用於錯誤檢查。

[in] dwFlags

類型: DWORD

要搜尋的檔案類型。 支援下列值。 請注意,如果 dwFlags 為零,則會假設指定 RESOURCE_ENUM_LNRESOURCE_ENUM_MUI 旗標。

意義
RESOURCE_ENUM_MUI
0x0002
在 .mui 檔案中搜尋與 hModule 所指定之 LN 檔案相關聯的資源,並使用目前的語言喜好設定,遵循一般資源載入器策略 (請參閱 使用者介面語言管理) 。 或者,如果 LangId 為非零,則只會搜尋指定的 .mui 檔案。 通常只有在 hModule 參考 LN 檔案時,才應該使用此旗標。 如果 hModule 參考 .mui 檔案,則即使旗標的名稱,該檔案實際上仍會由 RESOURCE_ENUM_LN 旗標所涵蓋。
RESOURCE_ENUM_LN
0x0001
搜尋 hModule指定的檔案,不論檔案是 LN 檔案、另一種類型的 LN 檔案還是 .mui 檔案。
RESOURCE_ENUM_VALIDATE
0x0008
在執行列舉時,對資源區段及其參考執行額外驗證,以確保資源的格式正確。 驗證會為每個列舉的名稱設定 260 個字元的最大限制。

[in] LangId

類型: LANGID

用來篩選 MUI 模組中搜尋的當地語系化語言。 只有在dwFlags中設定RESOURCE_ENUM_MUI旗標時,才會使用此參數。 如果指定零,則會在搜尋中包含符合目前語言喜好設定的所有 .mui 檔案,遵循一般資源載入器策略 (請參閱 使用者介面語言管理) 。 如果指定了非零 的 LangId ,則唯一搜尋的 .mui 檔案會是符合指定 LangId的檔案。

傳回值

類型: BOOL

如果成功,則為 TRUE ;如果函式找不到所指定類型的資源,或函式因其他原因而失敗,則為 FALSE 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

如果 IS_INTRESOURCE (lpszType) 為 TRUE則 lpszType 會指定指定指定資源類型的整數識別碼。 否則,它是 Null 終止字串的指標。 如果字串的第一個字元是井字型大小 (#) ,則其餘字元代表指定 的十進位數

資源類型的整數識別碼。 例如,字串 「#258」 代表識別碼 258。

列舉搜尋可以同時包含 LN 檔案及其相關聯的 .mui 檔案。 它可以限制為任何類型的單一二進位模組。 它也可以限制為與單一 LN 檔案相關聯的 .mui 檔案。 藉由指定 hModule 參數和非零 LangId 參數的 LN 檔案,搜尋可以限制為與該 LN 檔案和語言相關聯的唯一 .mui 檔案。

針對找到的每個資源, EnumResourceNamesEx 會呼叫應用程式定義的回呼函式 lpEnumFunc、傳遞其找到的每個資源名稱或識別碼,以及傳遞給 EnumResourceNamesEx的各種其他參數。

如果資源具有識別碼,則會將識別碼傳回回回呼函式;否則,資源名稱會傳回回回呼函式。 如需詳細資訊,請參閱 EnumResNameProc

EnumResourceNamesEx函式會繼續列舉資源名稱,直到回呼函式傳回FALSE或已列舉此類型的所有資源名稱為止。

如果 hModule 指定 LN 檔案,而且已選取這兩個旗標,則列舉的名稱會對應到位於該 LN 檔案中的資源或與其相關聯的 .mui 檔案。 如果找不到 .mui 檔案,則只會傳回 LN 檔案的名稱。 找到一個適當的 .mui 檔案之後,搜尋將不會繼續,因為對應至單一 LN 檔案的所有 .mui 檔案具有相同的資源名稱。

如果 dwFlagsLangId 都是零,則函式的行為就像 EnumResourceNames

如果 LangId 為非零,則只會搜尋對應至該語言識別項的 .mui 檔案。 將不會使用語言後援。 如果該語言的 .mui 檔案不存在,除非該語言的資源存在於 LN 檔案中,否則列舉將會是空的 (,而且旗標會設定為搜尋 LN 檔案以及) 。

列舉永遠不會包含重複專案:如果特定語言的資源同時包含在 LN 檔案和 .mui 檔案中,則只會列舉名稱一次。

範例

如需範例,請參閱 建立資源清單

注意

libloaderapi.h 標頭會將 EnumResourceNamesEx 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 libloaderapi.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

概念

EnumResNameProc

EnumResourceLanguagesEx

EnumResourceNames

EnumResourceTypesEx

參考

資源