Метод IShellIcon::GetIconOf (shobjidl_core.h)
Возвращает значок для объекта в определенной папке.
Синтаксис
HRESULT GetIconOf(
PCUITEMID_CHILD pidl,
UINT flags,
int *pIconIndex
);
Параметры
pidl
Тип: LPCITEMIDLIST
Адрес структуры ITEMIDLIST , указывающий относительное расположение папки.
flags
Тип: UINT
Флаги, указывающие способ отображения значка. Этот параметр может быть равен нулю или одному из следующих значений.
GIL_FORSHELL
Значок должен отображаться в папке оболочки.
GIL_OPENICON
Если доступны изображения с открытым и закрытым состоянием, значок должен находиться в открытом состоянии. Если этот флаг не указан, значок должен находиться в закрытом состоянии. Этот флаг обычно используется для объектов папок.
pIconIndex
Тип: LPINT
Адрес индекса значка в списке системных образов. Можно вернуть следующие стандартные индексы списка изображений.
0
Документ (пустая страница, не связанная)
1
Документ (с данными на странице)
2
Приложение (расширение имени файла должно быть .exe, .com или .bat)
3
Папка (обычная)
4
Папка (открыть)
Возвращаемое значение
Тип: HRESULT
Возвращает S_OK, если lpIconIndex содержит правильный индекс списка системных изображений, или S_FALSE, если не удается получить значок для этого объекта.
Комментарии
Если не удается получить значок для этого объекта с помощью GetIconOf, используйте метод GetUIObjectOf , чтобы получить объект, поддерживающий метод Extract .
IShellIcon::GetIconOf завершается сбоем , если coInitialize не вызывается первым.
Примечание к вызывающим приложениям
Индекс возвращается из списка системных образов.Примечание для разработчиков
Если используемый индекс значка не является одним из перечисленных стандартных образов, разработчик обязан добавить образ в список системных образов, а затем поместить индекс в параметр lpIconIndex . Чтобы предотвратить слишком большой размер списка системных образов, каждый образ следует добавлять только один раз.Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | shobjidl_core.h (включая Shobjidl.h) |
DLL | Shell32.dll (версия 4.0 или более поздняя) |