Freigeben über


IExtractIconA-Schnittstelle (shlobj_core.h)

Macht Methoden verfügbar, mit denen ein Client das Symbol abrufen kann, das einem der Objekte in einem Ordner zugeordnet ist.

Erbschaft

Die IExtractIcon Schnittstelle erbt von der IUnknown--Schnittstelle. IExtractIcon hat auch folgende Typen von Membern:

Methodik

Die IExtractIconA--Schnittstelle weist diese Methoden auf.

 
IExtractIconA::Extract

Extrahiert ein Symbolbild aus der angegebenen Position. (ANSI)
IExtractIconA::GetIconLocation

Ruft die Position und den Index eines Symbols ab. (ANSI)

Bemerkungen

Es gibt zwei Möglichkeiten, das Symbol eines Objekts abzurufen. Die einfachste Möglichkeit besteht darin, SHGetFileInfo-aufzurufen. Dieser Ansatz ist jedoch unflexibel und kann langsam sein. Eine flexiblere und effizientere Möglichkeit zum Abrufen des Symbols eines Elements besteht darin, IExtractIcon-zu verwenden. Die Shell verwendet IExtractIcon, um Symbole abzurufen, wenn der Inhalt eines Ordners angezeigt wird. Gehen Sie wie folgt vor, um IExtractIcon zum Abrufen des Symbols eines Objekts zu verwenden:

  1. Rufen Sie einen Zeiger auf die IShellFolder- Schnittstelle des Ordners ab, der das Objekt enthält.
  2. Rufen Sie IShellFolder::GetUIObjectOf mit dem Zeiger auf eine Elementbezeichnerliste (PIDL) des Objekts und die Schnittstellen-ID von IExtractIcon (IID_IExtractIcon) auf. Der Ordner erstellt ein Objekt zum Behandeln der Symbolextraktion und gibt den IExtractIcon- Schnittstellenzeiger des Objekts zurück.
  3. Rufen Sie IExtractIcon::GetIconLocation auf, um die Position des Symbols abzurufen.
  4. Rufen Sie IExtractIcon::Extract auf, um den Handle des Symbols abzurufen.
Es kann auch möglich sein, Symbole asynchron in einem Hintergrundthread zu extrahieren. Dieser Ansatz ist nützlich, wenn die Extraktion ein zeitaufwendiger Vorgang ist. Weitere Informationen finden Sie unter IExtractIcon::GetIconLocation.

NamespaceerweiterungenIExtractIcon implementieren, um Symbole für ihre Objekte bereitzustellen. Ein Client ruft einen IExtractIcon Schnittstellenzeiger für ein Objekt in einem Ordner ab, indem die IShellFolder::GetUIObjectOf-Methode des Ordners aufgerufen wird. Die IShellFolder::GetUIObjectOf-Implementierung muss ein Objekt erstellen, um die Symbolextraktion zu verarbeiten und einen Zeiger auf die IExtractIcon Schnittstelle des Objekts zurückzugeben.

Symbolhandler auch IExtractIconimplementieren. Ein Symbolhandler ist ein Shellerweiterungshandlertyp, mit dem Sie den Elementen eines Dateityps dynamisch Symbolezuweisen können.

Rufen Sie diese Schnittstelle auf, wenn Ihre Anwendung eine flexiblere Möglichkeit benötigt, um das Symbol eines Objekts abzurufen, als SHGetFileInfo-.

Anmerkung

Der header shlobj_core.h definiert IExtractIcon als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows XP [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- shlobj_core.h