Функция EnumResourceNamesA (libloaderapi.h)
Перечисляет ресурсы указанного типа в двоичном модуле. Для Windows Vista и более поздних версий это, как правило, не зависящий от языка переносимый исполняемый файл (LN-файл ), и перечисление также будет включать ресурсы из соответствующих файлов ресурсов для конкретного языка (MUI-файлы), которые содержат локализуемые языковые ресурсы. HModule также может указать MUI-файл, и в этом случае выполняется поиск ресурсов только в этом файле.
Синтаксис
BOOL EnumResourceNamesA(
[in, optional] HMODULE hModule,
[in] LPCSTR lpType,
[in] ENUMRESNAMEPROCA lpEnumFunc,
[in] LONG_PTR lParam
);
Параметры
[in, optional] hModule
Тип: HMODULE
Дескриптор модуля для поиска. Начиная с Windows Vista, если это LN-файл, в поиск включаются соответствующие MUI-файлы (если таковые существуют).
Если этот параметр имеет значение NULL, это эквивалентно передаче дескриптора в модуль, используемый для создания текущего процесса.
[in] lpType
Тип: LPCTSTR
Тип ресурса, для которого перечисляется имя. Кроме того, вместо указателя этот параметр может быть MAKEINTRESOURCE(ID), где ID — это целочисленное значение, представляющее предопределенный тип ресурса. Список стандартных типов ресурсов см. в разделе Типы ресурсов. Дополнительные сведения см. в разделе Примечания ниже.
[in] lpEnumFunc
Тип: ENUMRESNAMEPROC
Указатель на функцию обратного вызова, вызываемую для каждого перечисленного имени или идентификатора ресурса. Дополнительные сведения см. в разделе ENUMRESNAMEPROC.
[in] lParam
Тип: LONG_PTR
Определяемое приложением значение, передаваемое функции обратного вызова. Этот параметр можно использовать при проверке ошибок.
Возвращаемое значение
Тип: BOOL
Возвращаемое значение равно TRUE , если функция завершается успешно, или FALSE , если функция не находит ресурс указанного типа или если функция завершается сбоем по другой причине. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
Комментарии
Если IS_INTRESOURCE(lpszType) имеет значение TRUE, то lpszType задает целочисленный идентификатор заданного типа ресурса. В противном случае это указатель на строку, завершаемую null. Если первым символом строки является знак фунта (#), то остальные символы представляют десятичное число, задающее целочисленный идентификатор типа ресурса. Например, строка "No 258" представляет идентификатор 258.
Для каждого найденного ресурса EnumResourceNames вызывает определяемую приложением функцию обратного вызова lpEnumFunc, передавая имя или идентификатор каждого найденного ресурса, а также различные другие параметры, переданные в EnumResourceNames.
Кроме того, приложения могут вызывать EnumResourceNamesEx, что обеспечивает более точное управление перечислением ресурсов.
Если ресурс имеет идентификатор, идентификатор передается в функцию обратного вызова; в противном случае имя ресурса передается в функцию обратного вызова. Дополнительные сведения см. в разделе ENUMRESNAMEPROC.
Функция EnumResourceNames продолжает перечислять ресурсы, пока функция обратного вызова не вернет значение FALSE или не будут перечислены все ресурсы.
Начиная с Windows Vista, если hModule указывает LN-файл, перечисляемые ресурсы могут находиться либо в LN-файле, либо в mui-файле, связанном с ним. Если MUI-файлы не найдены, возвращаются только ресурсы из LN-файла. Порядок, в котором выполняется поиск в MUI-файлах, соответствует обычному порядку поиска загрузчика ресурсов; Дополнительные сведения см. в разделе Управление языком пользовательского интерфейса . После того как будет найден соответствующий MUI-файл, поиск в MUI-файле останавливается. Так как все MUI-файлы, соответствующие одному LN-файлу, имеют одинаковые типы ресурсов, необходимо перечислить только ресурсы в найденном MUI-файле.
Перечисление никогда не включает дубликаты: если ресурсы с одинаковым именем содержатся как в LN-файле, так и в MUI-файле, ресурс будет перечислен только один раз.
Примеры
Пример см. в разделе Создание списка ресурсов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | сборка Windows 10 20348 |
Минимальная версия сервера | сборка Windows 10 20348 |
Верхняя часть | libloaderapi.h |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |