Функция ExtractIconExA (shellapi.h)
Функция ExtractIconEx создает массив дескрипторов для больших или маленьких значков, извлеченных из указанного исполняемого файла, библиотеки DLL или файла значка.
Синтаксис
UINT ExtractIconExA(
[in] LPCSTR lpszFile,
[in] int nIconIndex,
[out] HICON *phiconLarge,
[out] HICON *phiconSmall,
UINT nIcons
);
Параметры
[in] lpszFile
Тип: LPCTSTR
Указатель на строку, завершающуюся нулевым значением, которая указывает имя исполняемого файла, БИБЛИОТЕКи DLL или файла значков, из которого будут извлечены значки.
[in] nIconIndex
Тип: int
Указывает отсчитываемый от нуля индекс первого извлекаемого значка. Например, если это значение равно нулю, функция извлекает первый значок в указанном файле.
Если это значение равно –1, а phiconLarge и phiconSmall имеют значение NULL, функция возвращает общее количество значков в указанном файле. Если файл является исполняемым файлом или библиотекой DLL, возвращаемым значением является количество RT_GROUP_ICON ресурсов. Если файл является ICO-файлом, возвращаемое значение равно 1.
Если это значение является отрицательным числом и phiconLarge или phiconSmall не равно NULL, функция начинается с извлечения значка, идентификатор ресурса которого равен абсолютному значению nIconIndex. Например, используйте -3, чтобы извлечь значок, идентификатор ресурса которого равен 3.
[out] phiconLarge
Тип: HICON*
Указатель на массив дескрипторов значков, который получает дескрипторы больших значков, извлеченных из файла. Если этот параметр имеет значение NULL, большие значки не извлекаются из файла.
[out] phiconSmall
Тип: HICON*
Указатель на массив дескрипторов значков, который получает дескрипторы небольших значков, извлеченных из файла. Если этот параметр имеет значение NULL, из файла не извлекаются маленькие значки.
nIcons
Тип: UINT
Количество значков, извлекаемых из файла.
Возвращаемое значение
Тип: UINT
Если параметр nIconIndex имеет значение -1, а параметры phiconLarge и phiconSmall имеют значение NULL, то возвращаемое значение — это количество значков, содержащихся в указанном файле.
Если параметр nIconIndex имеет любое значение, отличное от -1, а phiconLarge или phiconSmall не равно NULL, возвращаемое значение — это количество значков, успешно извлеченных из файла.
Примечание
Если функция обнаруживает ошибку, она возвращает UINT_MAX. В этом случае можно вызвать GetLastError , чтобы получить код ошибки. Например, эта функция возвращает UINT_MAX , если не удается найти файл, указанный в lpszFile , в то время как параметр nIconIndex имеет любое значение, отличное от -1, и phiconLarge или phiconSmall не имеет значения NULL. В этом случае GetLastError возвращает ERROR_FILE_NOT_FOUND (2).
Комментарии
Если они больше не нужны, необходимо уничтожить все значки, извлеченные с помощью ExtractIconEx , вызвав функцию DestroyIcon .
Чтобы получить размеры больших и малых значков, используйте эту функцию с флагами SM_CXICON, SM_CYICON, SM_CXSMICON и SM_CYSMICON.
Примечание
Заголовок shellapi.h определяет ExtractIconEx в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shellapi.h |
DLL | Shell32.dll |
Набор API | ext-ms-win-shell-shell32-l1-2-1 (представлено в Windows 10 версии 10.0.10240) |