Поделиться через


Функция EnumResourceLanguagesExW (libloaderapi.h)

Перечисляет языковые ресурсы указанного типа и имени, связанные с указанным двоичным модулем. Расширяет EnumResourceLanguages , предоставляя дополнительный контроль над перечислением.

Синтаксис

BOOL EnumResourceLanguagesExW(
  [in] HMODULE          hModule,
  [in] LPCWSTR          lpType,
  [in] LPCWSTR          lpName,
  [in] ENUMRESLANGPROCW 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

Указатель на функцию обратного вызова для каждого языка перечислимого ресурса. Дополнительные сведения см. в разделе EnumResLangProcW.

[in] lParam

Тип: LONG_PTR

Определяемое приложением значение, передаваемое функции обратного вызова. Этот параметр можно использовать при проверке ошибок.

[in] dwFlags

Тип: DWORD

Тип файла для поиска. Поддерживаются следующие значения. Обратите внимание, что если dwFlags равно нулю, предполагается, что будут указаны флаги RESOURCE_ENUM_LN и RESOURCE_ENUM_MUI .

Значение Значение
RESOURCE_ENUM_MUI
0x0002
Поиск ресурсов для конкретного языка в MUI-файлах, связанных с LN-файлом, указанным hModule. Кроме того, если LangId не имеет нулевых значений, поиск будет выполняться только в mui-файле, который соответствует указанному LangId. Обычно этот флаг следует использовать только в том случае, если hModule ссылается на LN-файл. Если hModule ссылается на MUI-файл, то на этот файл фактически распространяется флаг RESOURCE_LN , несмотря на имя флага. Сведения о последовательности поиска см. в разделе Примечания ниже.
RESOURCE_ENUM_LN
0x0001
Выполняет поиск в файле, указанном в hModule, независимо от того, является ли файл LN, другим типом LN-файла или MUI-файлом.
RESOURCE_ENUM_MUI_SYSTEM
0x0004
Ограничивает поиск в MUI-файлах языками MUI, установленными системой.
RESOURCE_ENUM_VALIDATE
0x0008
Выполняет дополнительную проверку раздела ресурса и его ссылки в заголовке PE, выполняя перечисление, чтобы убедиться, что ресурсы имеют правильный формат.

[in] LangId

Тип: LANGID

Язык локализации, используемый для фильтрации поиска в MUI-файле. Этот параметр используется, только если флаг RESOURCE_ENUM_MUI установлен в dwFlags. Если указано ноль, в поиск включаются все 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-файлы или ограничиваться одним двоичным модулем любого типа или MUI-файлами, связанными с одним LN-файлом. Кроме того, указав LN-файл для параметра hModule и ненулевого параметра LangId , поиск можно ограничить уникальным MUI-файлом, связанным с этим LN-файлом и языком.

Функция 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 в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header libloaderapi.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Основные понятия

EnumResLangProcW

EnumResourceNamesEx

EnumResourceTypesEx

MAKEINTRESOURCE

Справочные материалы

Ресурсы