Функция 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)

См. также раздел

ExtractAssociatedIcon

ExtractAssociatedIconEx

ExtractIcon