Eigenschaftenblatthandler
Wenn ein Benutzer mit der rechten Maustaste auf ein Shell-Objekt klickt, enthält das Kontextmenü, das normalerweise angezeigt wird, ein Eigenschaften Element. Wenn Sie dieses Element auswählen, wird ein Eigenschaftenblatt gestartet, das es dem Benutzer ermöglicht, die Eigenschaften des Objekts anzuzeigen und in einigen Fällen zu ändern. Sie können dieses Eigenschaftenblatt anpassen, indem Sie einen Eigenschaftenblatthandlerimplementieren und registrieren.
Die allgemeinen Verfahren zum Implementieren und Registrieren eines Shell-Erweiterungshandlers werden in Erstellen von Shell-Erweiterungshandlernerläutert. Dieses Dokument konzentriert sich auf die Aspekte der Implementierung, die spezifisch für Eigenschaftenblatthandler sind.
- Funktionsweise von Eigenschaftenblatthandlern
- Registrieren und Implementieren eines Eigenschaftenblatthandlers für ein bereitgestelltes Laufwerk
- Verwandte Themen
Funktionsweise von Eigenschaftenblatthandlern
Die folgende Abbildung zeigt das Eigenschaftenfenster für eine Windows XP-Textdatei.
Diese Abbildung zeigt das Standardeigenschaften-Eigenschaftenblatt, das für eine beliebige Datei angezeigt wird. Bei vielen solchen Eigenschaftenblättern können Sie dem Eigenschaftenblatt eine oder mehrere Seiten hinzufügen, indem Sie einen Eigenschaftenblatthandler implementieren und registrieren.
Eigenschaftenblatthandler werden am häufigsten für einen Dateitypregistriert. Jeder Handler kann dem Eigenschaftenfenster für die Klasse eine benutzerdefinierte Seite hinzufügen. Diese Seiten gewähren Benutzern in der Regel Zugriff auf Eigenschaften, die für den jeweiligen Dateityp spezifisch sind. Ein Dateityp, der aus Textdokumenten besteht, kann z. B. eine Seite anzeigen, auf der der Titel und der Autor aufgeführt sind, und eine Abstraktion des Dokuments. Ein Sonderfall dieses Eigenschaftenblatthandlertyps wird verwendet, um dem Eigenschafteneigenschaftenblatt für ein bereitgestelltes Laufwerk eine Seite hinzuzufügen.
Die andere Verwendung für Eigenschaftenblatthandler besteht darin, Seiten in den Eigenschaftenblättern zu ersetzen, die von Systemsteuerungsanwendungen angezeigt werden. Ein Maushersteller kann z. B. einen Eigenschaftenblatthandler verwenden, um die Schaltflächen Seite auf der Mauseigenschaften Eigenschaftenblatts der Systemsteuerung durch eine Seite zu ersetzen, die für die Eigenschaften der Maus angepasst ist.
Wie alle Shell-Erweiterungshandler sind Eigenschaftenblatthandler prozessinterne COM-Objekte (Component Object Model) als DLLs implementiert. Sie müssen zusätzlich zu IUnknown-zwei Schnittstellen exportieren: IShellExtInit und IShellPropSheetExt.
Die IShellExtInit Schnittstelle wird von der Shell verwendet, um den Handler zu initialisieren. Wenn die Shell IShellExtInit::Initializeaufruft, übergibt sie ein Datenobjekt mit dem Namen des Objekts und den Zeiger auf eine Elementbezeichnerliste (PIDL) des Ordners, der die Datei enthält. Der hRegKey--Parameter wird nicht mit Eigenschaftenblatthandlern verwendet. Die IShellExtInit::Initialize Methode muss den Dateinamen aus dem Datenobjekt extrahieren und den Namen und die PIDL des Ordners zur späteren Verwendung speichern. Weitere Details finden Sie im Abschnitt Implementing IShellExtInit Section of Creating Shell Extension Handlers.
Der Rest des Vorgangs erfolgt über die IShellPropSheetExt--Schnittstelle des Handlers. Wenn das Eigenschaftenblatt einem Dateityp zugeordnet ist, ruft die Shell IShellPropSheetExt::AddPages- auf, damit der Handler dem Eigenschaftenblatt eine Seite hinzufügen kann. Wenn das Eigenschaftenblatt einer Systemsteuerungsanwendung zugeordnet ist, ruft die Shell IShellPropSheetExt::ReplacePage auf, damit der Handler eine Seite ersetzen kann.
Registrieren und Implementieren eines Eigenschaftenblatthandlers für ein bereitgestelltes Laufwerk
Jedes bereitgestellte Laufwerk verfügt über ein Eigenschaftenblatt, das vom Benutzer angezeigt werden kann. Die folgende Abbildung zeigt ein Eigenschafteneigenschaftenblatt für ein CD-ROM Laufwerk.
Eigenschaftenblatt
Es gibt eine Vielzahl von Geräten, die als Laufwerke montiert werden können. Da das standardeigenschaftenblatt, das für Datenträgerlaufwerke entwickelt wurde, für einige Geräte möglicherweise nicht ausreicht, kann ein Eigenschaftenblatthandler implementiert werden, um eine Seite hinzuzufügen, die für das bereitgestellte Gerät spezifisch ist. Die grundlegende Implementierung dieses Eigenschaftenblatthandlertyps ist identisch mit der in How to Register and Implement a Property Sheet Handler for a File Type, mit zwei Ausnahmen.
- Das an die IShellExtInit::Initialize Methode übergebene Datenobjekt kann den Laufwerkpfad im CFSTR_MOUNTEDVOLUME Format anstelle des CF_HDROP Formats enthalten. Das CF_HDROP-Format wird verwendet, wenn das Gerät in einen Laufwerkbuchstaben eingebunden wird. Das CFSTR_MOUNTEDVOLUME-Format wird mit NTFS-Dateisystemen verwendet, wenn das Remotegerät in einen Ordner und nicht in einen Laufwerkbuchstaben eingebunden wird.
- Die GUID des Handlers wird unter dem HKEY_CLASSES_ROOT\Drive\shellex\PropertySheetHandlers Schlüssel registriert.
Verwandte Themen
-
Registrieren und Implementieren eines Eigenschaftenblatthandlers für einen Dateityp
-
Registrieren und Implementieren eines Eigenschaftenblatthandlers für eine Systemsteuerungsanwendung