EnumResourceLanguagesA 函数 (winbase.h)

枚举与二进制模块关联的指定类型和名称的语言特定资源。

语法

BOOL EnumResourceLanguagesA(
  [in] HMODULE          hModule,
  [in] LPCSTR           lpType,
  [in] LPCSTR           lpName,
  [in] ENUMRESLANGPROCA lpEnumFunc,
  [in] LONG_PTR         lParam
);

参数

[in] hModule

类型:HMODULE

要搜索的模块的句柄。 从 Windows Vista 开始,如果这是 语言中性可移植可执行文件(LN 文件),则会在搜索中包含适当的 .mui 文件(如果有)。 如果这是特定的 .mui 文件,则仅搜索该文件的资源。

如果此参数 NULL,则相当于将句柄传递给用于创建当前进程的模块。

[in] lpType

类型:LPCTSTR

要为其枚举语言的资源类型。 或者,此参数可以 MAKEINTRESOURCE(ID),其中 ID 是表示预定义资源类型的整数值。 有关预定义资源类型的列表,请参阅 资源类型。 有关详细信息,请参阅下面的“备注”部分。

[in] lpName

类型:LPCTSTR

要为其枚举语言的资源的名称。 或者,可以 MAKEINTRESOURCE(ID),其中 ID 是资源的整数标识符,而不是指针。 有关详细信息,请参阅下面的“备注”部分。

[in] lpEnumFunc

类型:ENUMRESLANGPROC

指向要为每个枚举资源语言调用的回调函数的指针。 有关详细信息,请参阅 EnumResLangProcA

[in] lParam

类型:LONG_PTR

传递给回调函数的应用程序定义值。 此参数可用于错误检查。

返回值

类型:BOOL

如果成功或 FALSE,则返回 TRUE。 若要获取扩展的错误信息,请调用 GetLastError

言论

如果 IS_INTRESOURCElpTypeTRUE,则 lpType 指定给定资源类型的整数标识符。 否则,它是指向以 null 结尾的字符串的指针。 如果字符串的第一个字符是井号(#),则其余字符表示一个十进制数字,该数字指定资源类型的整数标识符。 例如,字符串“#258”表示标识符 258。

同样,如果 IS_INTRESOURCElpNameTRUE,则 lpName 指定给定资源的整数标识符。 否则,它是指向以 null 结尾的字符串的指针。 如果字符串的第一个字符是磅号 (#),则剩余字符表示一个指定资源的整数标识符的十进制数。

从 Windows Vista 开始,二进制模块通常是 语言中性可移植可执行文件(LN 文件),枚举还将包含包含可本地化语言资源的相应语言特定资源文件(.mui 文件)中的资源。

对于找到的每个资源,EnumResourceLanguages 调用应用程序定义的回调函数 lpEnumFunc,传递资源所查找语言的语言(请参阅 语言标识符),以及传递给 EnumResourceLanguages的各种其他参数。

或者,应用程序可以调用 EnumResourceLanguagesEx,从而更准确地控制枚举的资源。

EnumResourceLanguages 函数继续枚举资源语言,直到回调函数返回 FALSE 或枚举所有资源语言。

在 Windows Vista 及更高版本中,如果 hModule 指定 LN 文件,则枚举的资源可以驻留在 LN 文件或与之关联的 .mui 文件中。 如果未找到 .mui 文件,则仅返回来自 LN 文件的资源。 与 EnumResourceNamesEnumResourceTypes不同,此搜索将查看多个 .mui 文件。 枚举以与 EnumUILanguages关联的文件夹中的 .mui 文件开头。 这些文件后跟任何其他 .mui 文件,其路径符合 MUI 资源管理中所述的方案。 最后,还会搜索由 hModule 指定的文件。

枚举永远不会包含重复项:如果 LN 文件和 .mui 文件中都包含具有相同名称、类型和语言的资源,则资源将仅枚举一次。

例子

有关示例,请参阅 创建资源列表

注意

winbase.h 标头将 EnumResourceLanguages 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非中性编码别名与非非编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winbase.h (包括 Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

概念

EnumResLangProc

EnumResourceLanguagesEx

EnumResourceNames

EnumResourceTypes

参考

资源