Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Перечисляет ресурсы указанного типа, связанные с указанным двоичным модулем. Поиск может включать как LN-файл, так и связанные с ним MUI-файлы, или его можно ограничить несколькими способами.
Синтаксис
BOOL EnumResourceNamesExW(
[in, optional] HMODULE hModule,
LPCWSTR lpType,
[in] ENUMRESNAMEPROCW lpEnumFunc,
[in] LONG_PTR lParam,
[in] DWORD dwFlags,
[in] LANGID LangId
);
Параметры
[in, optional] hModule
Тип: HMODULE
Дескриптор модуля для поиска. Как правило, это файл LN, и если установлен флаг RESOURCE_ENUM_MUI , в поиск включаются соответствующие MUI-файлы. Кроме того, это может быть дескриптор MUI-файла или другого LN-файла.
Если этот параметр имеет значение NULL, это эквивалентно передаче дескриптора в модуль, используемый для создания текущего процесса.
lpType
Тип: LPCTSTR
Тип ресурса, для которого перечисляется имя. Кроме того, вместо указателя этот параметр может быть MAKEINTRESOURCE(ID), где ID — это целочисленное значение, представляющее предопределенный тип ресурса. Список стандартных типов ресурсов см. в разделе Типы ресурсов. Дополнительные сведения см. в разделе Примечания ниже.
[in] lpEnumFunc
Тип: ENUMRESNAMEPROC
Указатель на функцию обратного вызова, вызываемую для каждого перечисленного имени ресурса. Дополнительные сведения см. в разделе EnumResNameProc.
[in] lParam
Тип: LONG_PTR
Определяемое приложением значение, передаваемое функции обратного вызова. Этот параметр можно использовать при проверке ошибок.
[in] dwFlags
Тип: DWORD
Тип файла для поиска. Поддерживаются следующие значения. Обратите внимание, что если dwFlags равно нулю, предполагается, что будут указаны флаги RESOURCE_ENUM_LN и RESOURCE_ENUM_MUI .
| Значение | Значение |
|---|---|
|
Выполните поиск ресурсов в MUI-файлах, связанных с LN-файлом, указанным в hModule , и с текущими языковыми параметрами, следуя обычной стратегии загрузчика ресурсов (см. раздел Управление языком пользовательского интерфейса). Кроме того, если LangId не является нулевым, будет выполняться поиск только в указанном MUI-файле. Обычно этот флаг следует использовать, только если hModule ссылается на LN-файл. Если hModule ссылается на MUI-файл, то этот файл фактически охватывается флагом RESOURCE_ENUM_LN , несмотря на имя флага. |
|
Выполняет поиск в файле, заданном hModule, независимо от того, является ли файл LN, файл другим типом LN или MUI-файлом. |
|
Выполняет дополнительную проверку раздела ресурса и его ссылки в заголовке PE, выполняя перечисление, чтобы убедиться, что ресурсы правильно отформатированы. Проверка устанавливает максимальное ограничение в 260 символов для каждого перечисленного имени. |
[in] LangId
Тип: LANGID
Язык локализации, используемый для фильтрации поиска в модуле MUI. Этот параметр используется, только если флаг RESOURCE_ENUM_MUI установлен в dwFlags. Если указан ноль, все MUI-файлы, соответствующие текущим языковым предпочтениям, включаются в поиск в соответствии с обычной стратегией загрузчика ресурсов (см. раздел Управление языком пользовательского интерфейса). Если указан ненулевой идентификатор LangId , поиск будет выполняться только в mui-файле, который соответствует указанному LangId.
Возвращаемое значение
Тип: BOOL
Функция TRUE в случае успешного выполнения или FALSE , если функция не находит ресурс указанного типа или если функция завершается сбоем по другой причине. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Если IS_INTRESOURCE(lpszType) имеет значение TRUE, то lpszType задает целочисленный идентификатор заданного типа ресурса. В противном случае это указатель на строку, завершаемую null. Если первым символом строки является знак фунта (#), то остальные символы представляют десятичное число, указывающее
целочисленный идентификатор типа ресурса. Например, строка "No 258" представляет идентификатор 258.
Поиск перечисления может включать как файл LN, так и связанные с ним MUI-файлы. Он может быть ограничен одним двоичным модулем любого типа. Он также может быть ограничен MUI-файлами, связанными с одним LN-файлом. Указав LN-файл для параметра hModule и ненулевого параметра LangId , поиск может быть ограничен уникальным MUI-файлом, связанным с этим файлом LN и языком.
Для каждого найденного ресурса EnumResourceNamesEx вызывает определяемую приложением функцию обратного вызова lpEnumFunc, передавая имя или идентификатор каждого найденного ресурса, а также различные другие параметры, переданные в EnumResourceNamesEx.
Если ресурс имеет идентификатор, идентификатор возвращается в функцию обратного вызова; В противном случае имя ресурса возвращается функции обратного вызова. Дополнительные сведения см. в разделе EnumResNameProc.
Функция EnumResourceNamesEx продолжает перечислять имена ресурсов, пока функция обратного вызова не вернет значение FALSE или не будут перечислены все имена ресурсов для этого типа.
Если hModule указывает LN-файл и выбраны оба флага, перечисляемые имена соответствуют ресурсам, находящимся либо в этом файле LN, либо в файлах MUI, связанных с ним. Если MUI-файлы не найдены, возвращаются только имена из LN-файла. После обнаружения одного подходящего MUI-файла поиск не будет продолжен, так как все MUI-файлы, соответствующие одному LN-файлу, имеют одинаковые имена ресурсов.
Если значения dwFlags и LangId равны нулю, функция ведет себя так же, как EnumResourceNames.
Если LangId не является нулевым, будет выполняться поиск только в MUI-файле, соответствующем этому идентификатору языка. Резервные языковые резервы не будут использоваться. Если MUI-файл для этого языка не существует, перечисление будет пустым (если только ресурсы для этого языка не существуют в LN-файле, а флаг также установлен для поиска в LN-файле).
Перечисление никогда не включает дубликаты: если ресурсы для определенного языка содержатся как в LN-файле, так и в MUI-файле, имя будет перечислено только один раз.
Примеры
Пример см. в разделе Создание списка ресурсов.
Примечание
Заголовок libloaderapi.h определяет EnumResourceNamesEx в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
| Минимальная версия клиента | Windows Vista [только классические приложения] |
| Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
| Целевая платформа | Windows |
| Header | libloaderapi.h (включая Windows.h) |
| Библиотека | Kernel32.lib |
| DLL | Kernel32.dll |
См. также
Основные понятия
Справочные материалы