EnumResourceNamesA 函式 (libloaderapi.h)
列舉二進位模組內指定型別的資源。 對於 Windows Vista 和更新版本,這通常是 語言中性可攜式可執行檔 (LN 檔案),列舉也會包含來自包含可當地語系化語言資源之對應語言特定資源檔 (.mui 檔案) 的資源。 您也可以 hModule 指定 .mui 檔案,在此情況下只會搜尋該檔案的資源。
語法
BOOL EnumResourceNamesA(
[in, optional] HMODULE hModule,
[in] LPCSTR lpType,
[in] ENUMRESNAMEPROCA lpEnumFunc,
[in] LONG_PTR lParam
);
參數
[in, optional] hModule
類型:HMODULE
要搜尋之模組的句柄。 從 Windows Vista 開始,如果這是 LN 檔案,則搜尋中包含適當的 .mui 檔案(如果有的話)。
如果此參數 NULL,這相當於將句柄傳遞至用來建立目前進程的模組。
[in] lpType
類型:LPCTSTR
要列舉名稱的資源類型。 或者,除了指標之外,此參數也可以 MAKEINTRESOURCE(ID),其中 ID 是代表預先定義資源類型的整數值。 如需預先定義的資源類型清單,請參閱 資源類型。 如需詳細資訊,請參閱下方的<
[in] lpEnumFunc
類型:ENUMRESNAMEPROC
要針對每個列舉資源名稱或標識符呼叫的回調函式指標。 如需詳細資訊,請參閱 ENUMRESNAMEPROC。
[in] lParam
類型:LONG_PTR
傳遞至回調函式的應用程式定義值。 此參數可用於錯誤檢查。
傳回值
類型:BOOL
如果函式成功或 FALSE 函式找不到指定類型的資源,或函式因其他原因而失敗,則傳回值會 TRUE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
言論
如果 IS_INTRESOURCE(lpszType) TRUE,則 lpszType 指定指定資源類型的整數標識符。 否則,它是以 Null 結尾字串的指標。 如果字串的第一個字元是磅號 (#),則其餘字元代表指定資源類型的整數標識碼的十進位數。 例如,字串 “#258” 代表標識碼 258。
針對找到的每個資源,EnumResourceNames 會呼叫應用程式定義的回呼函式,lpEnumFunc、傳遞所找到之每個資源的名稱或標識符,以及傳遞給 EnumResourceNames的各種其他參數。 傳遞的名稱只在回呼內有效 - 如果傳遞的名稱是字串指標,它會指向所有回呼調用重複使用的內部緩衝區。
或者,應用程式可以呼叫 EnumResourceNamesEx,以更精確地控制列舉哪些資源。
如果資源具有標識碼,則會將標識符傳遞至回呼函式;否則,資源名稱會傳遞至回呼函式。 如需詳細資訊,請參閱 ENUMRESNAMEPROC。
EnumResourceNames 函式會繼續列舉資源,直到回呼函式傳回 FALSE 或所有資源都已列舉為止。
從 Windows Vista 開始,如果 hModule 指定 LN 檔案,則列舉的資源可以位於 LN 檔案或與其相關聯的 .mui 檔案中。 如果找不到 .mui 檔案,則只會傳回 LN 檔案中的資源。 搜尋 .mui 檔案的順序是一般資源載入器搜尋順序;如需詳細資訊,請參閱 用戶介面語言管理。 找到一個適當的 .mui 檔案之後,.mui 檔案搜尋就會停止。 由於對應至單一 LN 檔案的所有 .mui 檔案具有相同的資源類型,因此只需要列舉找到的 .mui 檔案中的資源。
列舉永遠不會包含重複專案:如果相同名稱的資源同時包含在 LN 檔案和 .mui 檔案中,則資源只會列舉一次。
例子
如需範例,請參閱 建立資源清單。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 10 組建 20348 |
支援的最低伺服器 | Windows 10 組建 20348 |
標頭 | libloaderapi.h |
連結庫 | Kernel32.lib |
DLL | Kernel32.dll |