CMINVOKECOMMANDINFO-Struktur (shobjidl_core.h)
Enthält Informationen, die von IContextMenu::InvokeCommand zum Aufrufen eines Kontextmenübefehls benötigt werden.
Syntax
typedef struct _CMINVOKECOMMANDINFO {
DWORD cbSize;
DWORD fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
DWORD dwHotKey;
HANDLE hIcon;
} CMINVOKECOMMANDINFO;
Member
cbSize
Art: DWORD
Die Größe dieser Struktur in Bytes.
fMask
Art: DWORD
Null oder mindestens eins der folgenden Flags.
CMIC_MASK_HOTKEY
Das dwHotKey-Element ist gültig.
CMIC_MASK_ICON
Das hIcon-Element ist gültig. Ab Windows Vista wird dieses Flag nicht verwendet.
CMIC_MASK_FLAG_NO_UI
Das System wird daran gehindert, Benutzeroberflächenelemente (z. B. Fehlermeldungen) beim Ausführen eines Befehls anzuzeigen.
CMIC_MASK_NO_CONSOLE
Wenn ein Kontextmenühandler einen neuen Prozess erstellen muss, wird normalerweise eine neue Konsole erstellt. Das Festlegen des CMIC_MASK_NO_CONSOLE-Flags unterdrückt die Erstellung einer neuen Konsole.
CMIC_MASK_FLAG_SEP_VDM
Dieses Flag ist nur gültig, wenn auf eine 16-Bit-Windows-basierte Anwendung verwiesen wird. Wenn festgelegt, wird die Anwendung, auf die die Verknüpfung verweist, auf einen privaten virtuellen DOS-Computer (VDM) ausgeführt. Siehe Hinweise.
CMIC_MASK_ASYNCOK
Warten Sie, bis die DDE-Unterhaltung beendet wurde, bevor Sie zurückkehren.
CMIC_MASK_NOASYNC
Windows Vista und höher. Die Implementierung von IContextMenu::InvokeCommand sollte synchron sein und nicht zurückgegeben werden, bevor sie abgeschlossen ist. Da dies empfohlen wird, kann das Aufrufen von Anwendungen, die dieses Flag angeben, nicht garantieren, dass diese Anforderung berücksichtigt wird, wenn sie mit der Implementierung des Von ihnen aufgerufenen Verbs nicht vertraut sind.
CMIC_MASK_SHIFT_DOWN
Die UMSCHALTTASTE wird gedrückt. Verwenden Sie dies, anstatt den aktuellen Status der Tastatur abzurufen, der sich seit dem Aufrufen des Verbs möglicherweise geändert hat.
CMIC_MASK_CONTROL_DOWN
Die STRG-TASTE wird gedrückt. Verwenden Sie dies, anstatt den aktuellen Status der Tastatur abzurufen, der sich seit dem Aufrufen des Verbs möglicherweise geändert hat.
CMIC_MASK_FLAG_LOG_USAGE
Gibt an, dass die Implementierung von IContextMenu::InvokeCommand möglicherweise das Element nachverfolgen möchte, das für Features wie das Menü "Zuletzt verwendete Dokumente" aufgerufen wird.
CMIC_MASK_NOZONECHECKS
Führen Sie keine Zonenüberprüfung aus. Dieses Flag ermöglicht ShellExecuteEx die Umgehung der Zonenüberprüfung, die von IAttachmentExecute eingerichtet wurde.
hwnd
Typ: HWND
Ein Handle für das Fenster, das der Besitzer des Kontextmenüs ist. Eine Erweiterung kann dieses Handle auch als Besitzer aller angezeigten Meldungs- oder Dialogfelder verwenden.
lpVerb
Typ: LPCSTR
Die Adresse einer NULL-endendierten Zeichenfolge, die den sprachunabhängigen Namen des auszuführenden Befehls angibt. Dieser Member ist in der Regel eine Zeichenfolge, wenn ein Befehl von einer Anwendung aktiviert wird. Das System stellt vordefinierte konstante Werte für die folgenden Befehlszeichenfolgen bereit.
Dauerhaft | Befehlszeichenfolge |
---|---|
CMDSTR_RUNAS | "RunAs" |
CMDSTR_PRINT | "Drucken" |
CMDSTR_PREVIEW | "Vorschau" |
CMDSTR_OPEN | "Öffnen" |
Dies ist kein fester Satz; Neue kanonische Verben können von Kontextmenühandlern erfunden werden, und Anwendungen können sie aufrufen.
Wenn ein kanonisches Verb vorhanden ist und ein Menühandler das kanonische Verb nicht implementiert, muss ein Fehlercode zurückgegeben werden, damit der nächste Handler dieses Verb verarbeiten kann. Andernfalls wird die Funktionalität des Systems, einschließlich ShellExecute, unterbrochen.
Alternativ kann dieser Parameter anstelle eines Zeigers MAKEINTRESOURCE(offset) sein, wobei offset der Menübezeichneroffset des auszuführenden Befehls ist. Implementierungen können das Makro IS_INTRESOURCE verwenden, um zu erkennen, dass diese Alternative verwendet wird. Die Shell verwendet diese Alternative, wenn der Benutzer einen Menübefehl auswäht.
lpParameters
Typ: LPCSTR
Eine optionale Zeichenfolge, die Parameter enthält, die an den Befehl übergeben werden. Das Format dieser Zeichenfolge wird durch den Befehl bestimmt, der aufgerufen werden soll. Dieser Member ist für Menüelemente, die von einer Shell-Erweiterung eingefügt werden, immer NULL .
lpDirectory
Typ: LPCSTR
Ein optionaler Arbeitsverzeichnisname. Dieser Member ist für Menüelemente, die von einer Shell-Erweiterung eingefügt werden, immer NULL .
nShow
Typ: int
Ein Satz von SW_ Werten, die an die ShowWindow-Funktion übergeben werden sollen, wenn der Befehl ein Fenster anzeigt oder eine Anwendung startet.
dwHotKey
Art: DWORD
Eine optionale Tastenkombination, die jeder durch den Befehl aktivierten Anwendung zugewiesen werden soll. Wenn der fMask-Parameter keine CMIC_MASK_HOTKEY angibt, wird dieser Member ignoriert.
hIcon
Typ: HANDLE
Ein Symbol, das für jede anwendung verwendet werden soll, die durch den Befehl aktiviert wird. Wenn der fMask-Member keine CMIC_MASK_ICON angibt, wird dieser Member ignoriert.
Hinweise
Obwohl die IContextMenu::InvokeCommand-Deklaration eine CMINVOKECOMMANDINFO-Struktur für den pici-Parameter angibt, kann sie auch eine CMINVOKECOMMANDINFOEX-Struktur akzeptieren. Wenn Sie diese Methode implementieren, müssen Sie cbSize untersuchen, um festzustellen, welche Struktur übergeben wurde.
Anforderungen
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | shobjidl_core.h (shobjidl.h einschließen) |