Поделиться через


Интерфейс IExtractIconA (shlobj_core.h)

Предоставляет методы, позволяющие клиенту получить значок, связанный с одним из объектов в папке.

Наследство

Интерфейс IExtractIcon наследует от интерфейса IUnknown. IExtractIcon также имеет следующие типы элементов:

Методика

Интерфейс IExtractIconA имеет эти методы.

 
IExtractIconA::Extract

Извлекает изображение значка из указанного расположения. (ANSI)
IExtractIconA::GetIconLocation

Возвращает расположение и индекс значка. (ANSI)

Замечания

Существует два способа извлечения значка объекта. Самый простой способ — вызвать SHGetFileInfo. Однако этот подход является негибким и может быть медленным. Более гибкий и эффективный способ получения значка элемента — использовать IExtractIcon. Оболочка использует IExtractIcon для получения значков при отображении содержимого папки. Чтобы использовать IExtractIcon для получения значка объекта, сделайте следующее:

  1. Получите указатель на интерфейс IShellFolder папки, содержащей объект.
  2. Вызовите IShellFolder::GetUIObjectOf с указателем на список идентификаторов элементов (PIDL) объекта и идентификатор интерфейса IExtractIcon (IID_IExtractIcon). Папка создает объект для обработки извлечения значков и возвращает указатель интерфейса IExtractIc on.
  3. Вызовите IExtractIcon::GetIconLocation, чтобы получить расположение значка.
  4. Вызовите IExtractIcon::Extract, чтобы получить дескриптор значка.
Кроме того, можно асинхронно извлекать значки в фоновом потоке. Этот подход полезен при извлечении много времени. Дополнительные сведения см. в разделе IExtractIcon::GetIconLocation.

расширения пространства имен реализовать IExtractIcon для предоставления значков для своих объектов. Клиент получает указатель интерфейса IExtractIcon для объекта в папке путем вызова метода IShellFolder::GetUIObjectOf. Реализация IShellFolder::GetUIObjectOf должна создать объект для обработки извлечения значка и возврата указателя на интерфейс объекта IExtractIcon.

обработчики значков также реализуют IExtractIcon. Обработчик значков — это тип обработчика расширений оболочки, который позволяет динамически назначать значки членам типа файла.

Вызовите этот интерфейс, если приложению требуется более гибкий способ получения значка объекта, чем SHGetFileInfo.

Заметка

Заголовок shlobj_core.h определяет IExtractIcon как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка shlobj_core.h