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)