EnumResourceNamesW 函数 (libloaderapi.h)
枚举二进制模块中指定类型的资源。 对于 Windows Vista 及更高版本,这通常是 非特定语言的可移植可执行文件 (LN 文件) ,枚举还将包括相应语言特定资源文件 (.mui 文件) 包含可本地化语言资源的资源。 hModule 还可以指定 .mui 文件,在这种情况下,仅搜索该文件的资源。
语法
BOOL EnumResourceNamesW(
[in, optional] HMODULE hModule,
[in] LPCWSTR lpType,
[in] ENUMRESNAMEPROCW lpEnumFunc,
[in] LONG_PTR lParam
);
parameters
[in, optional] hModule
类型: HMODULE
要搜索的模块的句柄。 从 Windows Vista 开始,如果这是 LN 文件,则相应的 .mui 文件 (是否存在任何) 包含在搜索中。
如果此参数为 NULL,则等效于将句柄传递到用于创建当前进程的模块。
[in] lpType
类型: LPCTSTR
要为其枚举名称的资源的类型。 或者,此参数可以是 MAKEINTRESOURCE (ID) ,其中 ID 是表示预定义资源类型的整数值,而不是指针。 有关预定义资源类型的列表,请参阅 资源类型。 有关详细信息,请参阅下面的 “备注 ”部分。
[in] lpEnumFunc
类型: ENUMRESNAMEPROC
指向要为每个枚举资源名称或 ID 调用的回调函数的指针。 有关详细信息,请参阅 ENUMRESNAMEPROC。
[in] lParam
类型: LONG_PTR
传递给回调函数的应用程序定义值。 此参数可用于错误检查。
返回值
类型: BOOL
如果函数成功,则返回值为 TRUE ;如果函数找不到指定类型的资源,或者如果函数因其他原因而失败,则返回值为 FALSE 。 要获得更多的错误信息,请调用 GetLastError。
注解
如果 IS_INTRESOURCE (lpszType) 为 TRUE,则 lpszType 指定给定资源类型的整数标识符。 否则,它是指向以 null 结尾的字符串的指针。 如果字符串的第一个字符是井号 (#) ,则剩余字符表示指定资源类型的整数标识符的十进制数。 例如,字符串“#258”表示标识符 258。
对于找到的每个资源, EnumResourceNames 调用应用程序定义的回调函数 lpEnumFunc,传递它找到的每个资源的名称或 ID,以及传递给 EnumResourceNames 的其他各种参数。
或者,应用程序可以调用 EnumResourceNamesEx,从而更精确地控制枚举的资源。
如果资源具有 ID,则 ID 将传递给回调函数;否则,资源名称将传递给回调函数。 有关详细信息,请参阅 ENUMRESNAMEPROC。
EnumResourceNames 函数继续枚举资源,直到回调函数返回 FALSE 或已枚举所有资源。
从 Windows Vista 开始,如果 hModule 指定 LN 文件,则枚举的资源可以驻留在 LN 文件或与之关联的 .mui 文件中。 如果未找到 .mui 文件,则仅返回 LN 文件中的资源。 .mui 文件的搜索顺序是通常的资源加载程序搜索顺序;有关详细信息 ,请参阅用户界面语言管理 。 找到适当的 .mui 文件后,.mui 文件搜索将停止。 由于与单个 LN 文件对应的所有 .mui 文件具有相同的资源类型,因此只需枚举找到的 .mui 文件中的资源。
枚举永远不会包含重复项:如果 LN 文件和 .mui 文件中都包含同名的资源,则资源将仅枚举一次。
示例
有关示例,请参阅 创建资源列表。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | libloaderapi.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |