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.

Vererbung

Die IExtractIcon-Schnittstelle erbt von der IUnknown-Schnittstelle . IExtractIcon verfügt auch über folgende Arten von Membern:

Methoden

Die IExtractIconA-Schnittstelle verfügt über diese Methoden.

 
IExtractIconA::Extract

Extrahiert ein Symbolbild aus dem angegebenen Speicherort. (ANSI)
IExtractIconA::GetIconLocation

Ruft den Speicherort und den Index eines Symbols ab. (ANSI)

Hinweise

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 Elementssymbols ist die Verwendung von IExtractIcon. Die Shell verwendet IExtractIcon , um Symbole abzurufen, wenn der Inhalt eines Ordners angezeigt wird. Gehen Sie wie folgt vor, um das Symbol eines Objekts mit IExtractIcon abzurufen:

  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 der Schnittstellen-ID von IExtractIcon (IID_IExtractIcon) auf. Der Ordner erstellt ein Objekt zum Verarbeiten der Symbolextraktion und gibt den IExtractIcon-Schnittstellenzeiger des Objekts zurück.
  3. Rufen Sie IExtractIcon::GetIconLocation auf, um den Speicherort des Symbols abzurufen.
  4. Rufen Sie IExtractIcon::Extract auf, um das 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 zeitaufwendig ist. Ausführliche Informationen finden Sie unter IExtractIcon::GetIconLocation.

Namespaceerweiterungen implementieren IExtractIcon , 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 implementieren auch IExtractIcon. Ein Symbolhandler ist ein Shell-Erweiterungshandler, mit dem Sie den Membern eines Dateityps dynamisch Symbole zuweisen können.

Rufen Sie diese Schnittstelle auf, wenn Ihre Anwendung eine flexiblere Methode zum Abrufen des Objektsymbols als SHGetFileInfo benötigt.

Hinweis

Der shlobj_core.h-Header 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 nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shlobj_core.h