IContextMenuSite::D oContextMenuPopup-Methode (shobjidl_core.h)
[DoContextMenuPopup ist ab Windows Server 2003 nicht mehr verfügbar.]
Erstellt und zeigt ein Kontextmenü an, verfolgt die Auswahl von Elementen in diesem Menü und ruft einen ausgewählten Befehl auf.
Syntax
HRESULT DoContextMenuPopup(
[in] IUnknown *punkContextMenu,
[in] UINT fFlags,
[in] POINT pt
);
Parameter
[in] punkContextMenu
Typ: IUnknown*
Ein Zeiger auf die IUnknown-Implementierung des Kontextmenüs.
[in] fFlags
Typ: UINT
Optionale Flags, die angeben, wie das Kontextmenü geändert werden kann. Dieser Parameter kann auf eine beliebige Kombination der folgenden Werte festgelegt werden. Die restlichen Bits des Worts mit niedriger Reihenfolge werden vom System reserviert. Das hochgeordnete Wort kann für kontextspezifische Kommunikation verwendet werden. Der CMF_RESERVED Wert kann verwendet werden, um das Wort mit niedriger Reihenfolge zu maskieren.
CMF_NORMAL (0x00000000)
0x00000000. Gibt den normalen Vorgang an. Eine Kontextmenüerweiterung, Namespaceerweiterung oder Drag-and-Drop-Handler können alle Menüelemente hinzufügen.
CMF_DEFAULTONLY (0x00000001)
0x00000001. Dieses Flag wird festgelegt, wenn der Benutzer die Standardaktion aktiviert, in der Regel durch Doppelklicken. Dieses Flag bietet einen Hinweis für die Kontextmenüerweiterung, nichts hinzuzufügen, wenn das Standardelement im Menü nicht geändert wird. Eine Kontextmenüerweiterung oder ein Drag-and-Drop-Handler sollte keine Menüelemente hinzufügen, wenn dieser Wert angegeben ist. Eine Namespaceerweiterung sollte nur das Standardelement hinzufügen (falls vorhanden).
CMF_VERBSONLY (0x00000002)
0x00000002. Dieses Flag wird festgelegt, wenn das Kontextmenü für ein Verknüpfungsobjekt steht. Kontextmenühandler sollten diesen Wert ignorieren.
CMF_EXPLORE (0x00000004)
0x00000004. Dieses Flag wird festgelegt, wenn das Windows-Explorer-Strukturfenster vorhanden ist.
CMF_NOVERBS (0x00000008)
0x00000008. Dieses Flag ist für Elemente festgelegt, die im Menü "Senden an" angezeigt werden. Kontextmenühandler sollten diesen Wert ignorieren.
CMF_CANRENAME (0x00000010)
0x00000010. Dieses Flag wird festgelegt, wenn die aufrufende Anwendung die Umbenennung von Elementen unterstützt. Eine Kontextmenüerweiterung oder ein Drag-and-Drop-Handler sollte dieses Flag ignorieren. Eine Namespaceerweiterung sollte dem Menü ggf. ein Umbenennungselement hinzufügen.
CMF_NODEFAULT (0x00000020)
0x00000020. Dieses Flag wird festgelegt, wenn kein Element im Menü als Standard festgelegt wurde. Ein Drag-and-Drop-Handler sollte dieses Flag ignorieren. Eine Namespaceerweiterung sollte keines der Menüelemente auf den Standardwert festlegen.
CMF_INCLUDESTATIC (0x00000040)
Dieser Wert ist nicht verfügbar.
Windows Server 2003 und Windows XP: 0x00000040. Dieses Flag wird festgelegt, wenn ein statisches Menü erstellt wird. Nur der Browser sollte dieses Flag verwenden. Alle anderen Kontextmenüerweiterungen sollten dieses Flag ignorieren.
CMF_ITEMMENU (0x00000080)
0x00000080. Dieses Flag wird festgelegt, wenn die aufrufende Anwendung ein Kontextmenü für ein Element in der Ansicht aufruft (im Gegensatz zum Hintergrund der Ansicht).
Windows Server 2003 und Windows XP: Dieser Wert ist nicht verfügbar.
CMF_EXTENDEDVERBS (0x00000100)
0x00000100. Dieses Flag wird festgelegt, wenn die aufrufende Anwendung erweiterte Verben wünscht. Normale Verben werden angezeigt, wenn der Benutzer mit der rechten Maustaste auf ein Objekt klickt. Um erweiterte Verben anzuzeigen, muss der Benutzer mit der rechten Maustaste klicken, während er die UMSCHALTTASTE drückt.
CMF_DISABLEDVERBS (0x00000200)
0x00000200. Dieses Flag wird festgelegt, wenn die aufrufende Anwendung Verben aufrufen möchte, die andernfalls deaktiviert sind, z. B. Legacymenüs.
Windows Server 2003 und Windows XP: Dieser Wert ist nicht verfügbar.
CMF_ASYNCVERBSTATE (0x00000400)
0x00000400. Dieses Flag wird festgelegt, wenn der Verbzustand asynchron ausgewertet werden kann.
Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert ist nicht verfügbar.
CMF_OPTIMIZEFORINVOKE (0x00000800)
0x00000800. Informiert Kontextmenühandler, die den Aufruf eines Verbs nicht unterstützen, über einen kanonischen Verbnamen, um diese Verarbeitung in ihrer IContextMenu::QueryContextMenu-Implementierung zu umgehen.
Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert ist nicht verfügbar.
CMF_SYNCCASCADEMENU (0x00001000)
0x00001000.
Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert ist nicht verfügbar.
CMF_DONOTPICKDEFAULT (0x00002000)
0x00001000. Wenn kein Verb explizit angegeben ist, verwenden Sie kein Standardverb an seiner Stelle.
Windows Server 2008, Windows Vista, Windows Server 2003 und Windows XP: Dieser Wert ist nicht verfügbar.
CMF_RESERVED (0xffff0000)
0xffff0000. Dieses Flag ist eine Bitmaske, die alle Bits angibt, die nicht verwendet werden sollen. Diese darf nur als Maske verwendet werden. Übergeben Sie dies nicht als Parameterwert.
[in] pt
Typ: POINT
Speicherort, an dem das Kontextmenü angezeigt werden soll. Dieser Punkt gibt die Position der oberen linken Ecke des Menüs in Bildschirmkoordinaten an.
Rückgabewert
Typ: HRESULT
Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Nicht unterstützt |
Zielplattform | Windows |
Kopfzeile | shobjidl_core.h (shobjidl.h einschließen) |
DLL | Shell32.dll (Version 5.0 oder höher) |