Metodo IContextMenu::InvokeCommand (shobjidl_core.h)

Esegue il comando associato a una voce di menu di scelta rapida.

Sintassi

HRESULT InvokeCommand(
  CMINVOKECOMMANDINFO *pici
);

Parametri

pici

Tipo: LPCMINVOKECOMMANDINFO

Puntatore a una struttura CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFOEX che contiene specifiche relative al comando.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

L'interfaccia IContextMenu viene esportata da diversi gestori di estensione shell ed estensioni dello spazio dei nomi. Viene usato per aggiungere comandi ai menu di scelta rapida. Quando l'utente seleziona uno dei comandi aggiunti al gestore o all'estensione dello spazio dei nomi a un menu di scelta rapida, shell chiama il metodo InvokeCommand del comando. Il comando può essere specificato dall'offset dell'identificatore di menu, definito quando è stato chiamato IContextMenu::QueryContextMenu o dal verbo associato. Un'applicazione può richiamare questo metodo direttamente ottenendo un puntatore all'interfaccia IContextMenu di un oggetto. Un'applicazione può anche richiamare questo metodo indirettamente chiamando ShellExecute o ShellExecuteEx e specificando un verbo supportato dall'estensione o dal gestore dello spazio dei nomi.

Nota per gli utenti

Anche se il parametro pici è dichiarato in Shlobj.h come struttura CMINVOKECOMMANDINFO , è possibile usare CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFOEX. Entrambi funzioneranno per le stringhe ANSI, ma è necessario usare una struttura CMINVOKECOMMANDINFOEX per le stringhe Unicode.

Note per gli implementatori

Controllare il membro cbSize di pici per determinare la struttura (CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFOEX) passata. Se si tratta di una struttura CMINVOKECOMMANDINFOEX e il membro fMask ha il flag CMIC_MASK_UNICODE impostato, è necessario eseguire il cast pici a CMINVOKECOMMANDINFOEX per utilizzare le informazioni Unicode contenute negli ultimi cinque membri della struttura.

Se il verbo specificato da un nome verbo canonico o l'ID comando non viene riconosciuto dal gestore del menu di scelta rapida, deve restituire un errore (E_FAIL) in modo che il verbo possa essere passato ad altri gestori di menu di scelta rapida che potrebbero implementarlo.

A partire da Windows Vista, non è sufficiente richiamare il comando in modo asincrono semplicemente impostando il flag CMIC_MASK_ASYNCOK nel membro fMask della struttura CMINVOKECOMMANDINFO o CMINVOKECOMMANDINFOEX . È inoltre necessario impostare un riferimento al thread sul thread chiamante, come illustrato in Gestione dei riferimenti ai thread.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shobjidl_core.h (include Shobjidl.h)
DLL Shell32.dll (versione 4.0 o successiva)

Vedi anche

IContextMenu