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


Функция 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), где идентификатор представляет собой целочисленное значение, представляющее предопределенный тип ресурса. Список стандартных типов ресурсов см. в разделе Типы ресурсов. Дополнительные сведения

сведения см. в разделе "Примечания" ниже.

[in] lpName

Тип: LPCTSTR

Имя ресурса, для которого перечисляется язык. Кроме того, вместо указателя этот параметр можно MAKEINTRESOURCE(идентификатор), где идентификатор является целым идентификатором ресурса. Дополнительные сведения см. в разделе "Примечания" ниже.

[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, то единственным поиском по моди-файлу будет тот, который соответствует указанному LangId.

Возвращаемое значение

Тип: BOOL

Возвращает TRUE, если функция завершается успешно или FALSE, если функция не находит ресурс указанного типа или если функция завершается ошибкой по другой причине. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.

Замечания

Если IS_INTRESOURCE(lpType) TRUE, то lpType указывает целый идентификатор заданного типа ресурса. В противном случае это указатель на строку, завершаемую значением NULL. Если первый символ строки является знаком фунта (#), остальные символы представляют десятичное число, указывающее

целочисленный идентификатор типа ресурса. Например, строка "#258" представляет идентификатор 258.

Аналогичным образом, если IS_INTRESOURCE(lpName) TRUE, то lpName указывает целый идентификатор заданного ресурса. В противном случае это указатель на строку, завершаемую значением NULL. Если первый символ строки является знаком фунта (#), остальные символы представляют десятичное число, указывающее

целочисленный идентификатор ресурса.

Начиная с Windows Vista двоичный модуль обычно является файлом LN, а перечисление также будет включать ресурсы из соответствующих файлов ресурсов для конкретного языка (MI-файлы), которые содержат локализованные языковые ресурсы.

Для каждого найденного ресурса EnumResourceLanguagesEx вызывает определяемую приложением функцию обратного вызова lpEnumFunc, передавая в функцию обратного вызова идентификатор языка (см. идентификаторы языка ) языка, для которого найден ресурс (а также различные другие параметры, переданные в EnumResourceLanguagesEx).

Поиск может включать как LN-файл, так и связанные с ним MI-файлы, либо может быть ограничен одним двоичным модулем любого типа или файлами MUI, связанными с одним LN-файлом. Кроме того, указав LN-файл для параметра hModule и ненулевого LangId, поиск может быть ограничен уникальным файлом MUI, связанным с этим LN-файлом и языком.

Функция en EnumResourceLanguagesEx продолжает перечислять языки ресурсов, пока функция обратного вызова не возвращает false или все языки ресурсов.

Если hModule указывает LN-файл, а оба флага выбраны, то перечисленные языки включают все языки, ресурсы которых находятся в LN-файле или в любых файлах MUI, связанных с ним. Если файлы MUI не найдены, возвращаются только языки из LN-файла.

Если dwFlags содержит RESOURCE_ENUM_MUI или NULL и LangId 0, перечисление сначала включает языки, связанные со всеми системными файлами MUI, используя языки, полученные из EnumUILanguages.. Наконец, если флаг RESOURCE_ENUM_LN также задан, выполняется поиск файла, указанного hModule.

Если LangId ненулевое, будет выполняться поиск только муи-файла, соответствующего этому идентификатору языка. Резервные копии языков не будут использоваться. Если mui-файл для этого языка не существует, перечисление будет пустым (если ресурсы для этого языка не существуют в LN-файле, а флаг также будет выполнять поиск файла LN).

Перечисление никогда не включает дубликаты: если ресурсы для определенного языка содержатся как в LN-файле, так и в mui-файле, тип будет перечислен только один раз.

Примеры

Пример см. в разделе Создание списка ресурсов.

Заметка

Заголовок libloaderapi.h определяет EnumResourceLanguagesEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2008 [только классические приложения]
целевая платформа Виндоус
заголовка libloaderapi.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

концептуальные

EnumResLangProcW

EnumResourceNamesEx

EnumResourceTypesEx

MAKEINTRESOURCE

Справочник

ресурсов