EnumResourceLanguagesExA 函数 (libloaderapi.h)
枚举与指定二进制模块关联的指定类型和名称的特定于语言的资源。 通过允许对枚举进行更多控制来扩展 EnumResourceLanguages 。
语法
BOOL EnumResourceLanguagesExA(
[in] HMODULE hModule,
[in] LPCSTR lpType,
[in] LPCSTR lpName,
[in] ENUMRESLANGPROCA lpEnumFunc,
[in] LONG_PTR lParam,
[in] DWORD dwFlags,
[in] LANGID LangId
);
参数
[in] hModule
类型: HMODULE
要搜索的模块的句柄。 通常,这是一个 与语言无关的可移植可执行文件 (LN 文件) ,如果设置了标志 RESOURCE_ENUM_MUI ,则搜索中会包含相应的 .mui 文件。 或者,这可以是 .mui 文件或其他 LN 文件的句柄。 如果这是一个特定的 .mui 文件,则只搜索该文件的资源。
如果此参数为 NULL,则等效于将句柄传递到用于创建当前进程的模块。
[in] lpType
类型: LPCTSTR
要为其枚举语言的资源的类型。 或者,此参数可以是 MAKEINTRESOURCE (ID) ,其中 ID 是表示预定义资源类型的整数值,而不是指针。 有关预定义资源类型的列表,请参阅 资源类型。 有关
信息,请参阅下面的“备注”部分。
[in] lpName
类型: LPCTSTR
要为其枚举语言的资源的名称。 或者,此参数可以是 MAKEINTRESOURCE (ID) ,其中 ID 是资源的整数标识符,而不是指针。 有关详细信息,请参阅下面的“备注”部分。
[in] lpEnumFunc
类型: ENUMRESLANGPROC
指向要为每个枚举资源语言调用的回调函数的指针。 有关详细信息,请参阅 EnumResLangProcA。
[in] lParam
类型: LONG_PTR
传递给回调函数的应用程序定义值。 此参数可用于错误检查。
[in] dwFlags
类型:DWORD
要搜索的文件类型。 支持以下值: 请注意,如果 dwFlags 为零,则假定指定 RESOURCE_ENUM_LN 和 RESOURCE_ENUM_MUI 标志。
[in] LangId
类型: LANGID
用于筛选 .mui 文件中的搜索的本地化语言。 仅当在 dwFlags 中设置了RESOURCE_ENUM_MUI标志时,才使用此参数。 如果指定零,则搜索中包括所有 .mui 文件。 如果指定了非零 LangId ,则搜索的唯一 .mui 文件将是与指定的 LangId 匹配的文件。
返回值
类型: BOOL
如果函数成功,则返回 TRUE ;如果函数找不到指定类型的资源,或者如果函数因其他原因而失败,则返回 FALSE 。 要获得更多的错误信息,请调用 GetLastError。
注解
如果 IS_INTRESOURCE (lpType) 为 TRUE,则 lpType 指定给定资源类型的整数标识符。 否则,它是指向以 null 结尾的字符串的指针。 如果字符串的第一个字符是井号 (#) ,则剩余字符表示指定 的十进制数
资源类型的整数标识符。 例如,字符串“#258”表示标识符 258。
同样,如果 IS_INTRESOURCE (lpName) 为 TRUE,则 lpName 指定给定资源的整数标识符。 否则,它是指向以 null 结尾的字符串的指针。 如果字符串的第一个字符是井号 (#) ,则剩余字符表示指定 的十进制数
资源的整数标识符。
从 Windows Vista 开始,二进制模块通常是 LN 文件,枚举还将包含相应语言特定资源文件 (.mui 文件) 包含可本地化语言资源的资源。
对于找到的每个此类资源, EnumResourceLanguagesEx 调用应用程序定义的回调函数 lpEnumFunc,将语言标识符传递给回调函数 (请参阅 (找到资源的语言的语言 标识符) ,以及传递给 EnumResourceLanguagesEx) 的其他各种参数。
搜索可以包括 LN 文件及其关联的 .mui 文件,也可以限制为任何类型的单个二进制模块或与单个 LN 文件关联的 .mui 文件。 此外,通过为 hModule 参数指定 LN 文件和非零 LangId 参数,搜索可以限制为与该 LN 文件和语言关联的唯一 .mui 文件。
EnumResourceLanguagesEx 函数继续枚举资源语言,直到回调函数返回 FALSE 或枚举所有资源语言。
如果 hModule 指定 LN 文件,并且选择了这两个标志,则枚举的语言包括其资源驻留在 LN 文件或与之关联的任何 .mui 文件中的所有语言。 如果未找到 .mui 文件,则仅返回 LN 文件中的语言。
如果 dwFlags 包含 RESOURCE_ENUM_MUI 或 NULL 且 LangId 为 0,则枚举首先包含与所有系统安装的 .mui 文件关联的语言(使用从 EnumUILanguages 检索的语言)。 最后,如果还设置了 RESOURCE_ENUM_LN 标志,则还会搜索 由 hModule 指定的文件。
如果 LangId 为非零值,则仅搜索与该语言标识符对应的 .mui 文件。 不会使用语言回退。 如果该语言的 .mui 文件不存在,则枚举将为空 (除非 LN 文件中存在该语言的资源,并且标志设置为搜索 LN 文件以及) 。
枚举永远不会包含重复项:如果特定语言的资源同时包含在 LN 文件和 .mui 文件中,则类型将仅枚举一次。
示例
有关示例,请参阅 创建资源列表。
注意
libloaderapi.h 标头将 EnumResourceLanguagesEx 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | libloaderapi.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |
另请参阅
概念性
引用