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

指向要为每个枚举资源名称或 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 10内部版本 20348
最低受支持的服务器 Windows 10内部版本 20348
标头 libloaderapi.h
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

概念性

参考