Auswählen einer statischen oder dynamischen Kontextmenümethode
Dieses Thema ist wie folgt organisiert:
- Choose a Verb Method
- Erweitern eines Kontextmenüs
- Unterstützung für Verbmethoden nach Betriebssystem
- Verwandte Themen
Choose a Verb Method
Es wird dringend empfohlen, ein Kontextmenü mit einer der statischen Verbmethoden zu implementieren.
Static Verb-Methoden
Statische Verben sind die einfachsten Zu implementierenden Verben, bieten aber weiterhin umfangreiche Funktionen. Wählen Sie immer die einfachste Kontextmenümethode aus, die Ihren Anforderungen entspricht.
Statisches Verb | Beschreibung |
---|---|
CreateProcess mit Befehlszeilenparametern | Dies ist das einfachste und vertrautste Mittel zur Implementierung eines statischen Verbs. Ein Prozess wird über einen Aufruf der CreateProcess-Funktion mit den ausgewählten Dateien und allen optionalen Parametern aufgerufen, die als Befehlszeile übergeben werden. Dadurch wird die Datei oder der Ordner geöffnet. Diese Methode hat die folgenden Einschränkungen:
|
DropTarget/IDropTarget | Eine COM-basierte Verbaktivierung bedeutet, dass die In-Proc- oder Out-of-Proc-Aktivierung unterstützt wird. DropTarget/IDropTarget unterstützt auch die erneute Verwendung eines bereits ausgeführten Handlers, wenn die IDropTarget-Schnittstelle von einem lokalen Server implementiert wird. Außerdem werden die Elemente über das marshallalierte Datenobjekt perfekt ausgedrückt und ein Verweis auf die aufrufende Websitekette bereitgestellt, sodass Sie über den QueryService mit dem Aufrufer interagieren können. |
Windows 7 und höher: IExecuteCommand | Die direkteste Implementierungsmethode. Da es sich um eine COM-basierte Aufrufmethode (wie DropTarget) handelt, unterstützt diese Schnittstelle die In-Proc- und Out-of-Proc-Aktivierung. Das Verb implementiert IExecuteCommand und IObjectWithSelection und optional IInitializeCommand. Die Elemente werden direkt als Shellelementarray übergeben, und weitere Parameter aus dem Aufrufer sind für die Verbimplementierung verfügbar, einschließlich des Aufrufpunkts, des Tastaturzustands usw. |
Windows 7 und höher:ExplorerCommand/ IExplorerCommand | Ermöglicht Datenquellen, die ihre Befehlsmodulbefehle über IExplorerCommandProvider bereitstellen, diese Befehle als Verben in einem Kontextmenü zu verwenden. Da diese Schnittstelle nur die Prozessaktivierung unterstützt, wird die Verwendung von Shell-Datenquellen empfohlen, die die Implementierung zwischen Befehlen und Kontextmenüs gemeinsam nutzen müssen. |
Hinweis
IExplorerCommand ist eine Hybridlösung zwischen einem statischen und dynamischen Verb. IExplorerCommand wurde in Windows Vista deklariert, aber seine Fähigkeit, ein Verb in einem Kontextmenü zu implementieren, ist neu in Windows 7.
Weitere Informationen zu IDropTarget- und Shell-Abfragen für Dateizuordnungsattribute finden Sie unter "Wahrgenommene Typen und Anwendungsregistrierung".
Bevorzugte Dynamische Verb-Methoden
Die folgenden dynamischen Verbmethoden werden bevorzugt:
Verbtyp | Beschreibung |
---|---|
Statisches Verb (in der vorherigen Tabelle aufgeführt) + Erweiterte Abfragesyntax (AQS) | Diese Auswahl erhält dynamische Verbsichtbarkeit. |
Windows 7 und höher: IExplorerCommand | Diese Option ermöglicht eine allgemeine Implementierung von Verben und Explorer-Befehlen, die im Befehlsmodul in Windows Explorer angezeigt werden. |
Windows 7 und höher: IExplorerCommandState + statisches Verb | Diese Option erhält auch die dynamische Verbsichtbarkeit. Es handelt sich um ein Hybridmodell, bei dem ein einfacher In-Process-Handler verwendet wird, um zu berechnen, ob ein bestimmtes statisches Verb angezeigt werden soll. Dies kann auf alle statischen Verbimplementierungsmethoden angewendet werden, um dynamisches Verhalten zu erzielen und die Gefährdung der Prozesslogik zu minimieren. IExplorerCommandState hat den Vorteil, auf einem Hintergrundthread ausgeführt zu werden, und dadurch werden UI-Blockaden vermieden. Es ist wesentlich einfacher als IContextMenu. |
Entmutigte dynamische Verbmethoden
IContextMenu ist die leistungsfähigste, aber auch die komplizierteste Methode für die Implementierung. Sie basiert auf inprozessinternen COM-Objekten, die im Thread des Aufrufers ausgeführt werden, der in der Regel Windows-Explorer, aber eine beliebige Anwendung sein kann, die die Elemente hosten. IContextMenu unterstützt Verbsichtbarkeit, Sortierung und benutzerdefinierte Zeichnung. Einige dieser Features wurden den statischen Verbfeatures hinzugefügt, z. B. einem Symbol, das einem Befehl zugeordnet werden soll, und IExplorerCommand , um die Sichtbarkeit zu bewältigen.
Wenn Sie das Kontextmenü für einen Dateityp erweitern müssen, indem Sie ein dynamisches Verb für den Dateityp registrieren, folgen Sie den Anweisungen unter Anpassen eines Kontextmenüs mit dynamischen Verben.
Erweitern eines Kontextmenüs
Nachdem Sie eine Verbmethode ausgewählt haben, können Sie ein Kontextmenü für einen Dateityp erweitern, indem Sie ein statisches Verb für den Dateityp registrieren. Weitere Informationen finden Sie unter Erstellen von Kontextmenühandlern.
Unterstützung für Verbmethoden nach Betriebssystem
Die Unterstützung für Verbaufrufmethoden nach Betriebssystem ist in der folgenden Tabelle aufgeführt.
Verb-Methode | Windows XP | Windows Vista | Windows 7 und höher |
---|---|---|---|
CreateProcess | X | X | X |
DDE | X | X | X |
DropTarget | X | X | X |
ExecuteCommand | X | X | |
ExplorerCommand | X | ||
ExplorerCommandState | X |
Zugehörige Themen