Compartilhar via


Método IContextMenu::InvokeCommand (shobjidl_core.h)

Executa o comando associado a um item de menu de atalho.

Sintaxe

HRESULT InvokeCommand(
  CMINVOKECOMMANDINFO *pici
);

Parâmetros

pici

Tipo: LPCMINVOKECOMMANDINFO

Um ponteiro para uma estrutura CMINVOKECOMMANDINFO ou CMINVOKECOMMANDINFOEX que contém detalhes sobre o comando.

Retornar valor

Tipo: HRESULT

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

A interface IContextMenu é exportada por vários manipuladores de extensão do Shell e extensões de namespace. Ele é usado para adicionar comandos a menus de atalho. Quando o usuário seleciona um dos comandos que o manipulador ou a extensão de namespace adicionou a um menu de atalho, o Shell chama o método InvokeCommand desse comando. O comando pode ser especificado pelo deslocamento do identificador de menu, definido quando IContextMenu::QueryContextMenu foi chamado ou pelo verbo associado. Um aplicativo pode invocar esse método diretamente obtendo um ponteiro para a interface IContextMenu de um objeto. Um aplicativo também pode invocar esse método indiretamente chamando ShellExecute ou ShellExecuteEx e especificando um verbo compatível com a extensão ou manipulador de namespace.

Observação aos usuários

Embora o parâmetro pici seja declarado em Shlobj.h como uma estrutura CMINVOKECOMMANDINFO , você pode usar CMINVOKECOMMANDINFO ou CMINVOKECOMMANDINFOEX. Ambos funcionarão para cadeias de caracteres ANSI, mas você deve usar uma estrutura CMINVOKECOMMANDINFOEX para cadeias de caracteres Unicode.

Anotações aos implementadores

Verifique o membro cbSize do pici para determinar qual estrutura (CMINVOKECOMMANDINFO ou CMINVOKECOMMANDINFOEX) foi passada. Se for uma estrutura CMINVOKECOMMANDINFOEX e o membro fMask tiver o sinalizador CMIC_MASK_UNICODE definido, você deverá converter pici em CMINVOKECOMMANDINFOEX para usar as informações Unicode contidas nos últimos cinco membros da estrutura.

Se o verbo, especificado por um nome de verbo canônico ou pela ID de comando não for reconhecido pelo manipulador de menu de contexto, ele deverá retornar uma falha (E_FAIL) para que o verbo possa ser passado para outros manipuladores de menu de contexto que possam implementá-lo.

A partir do Windows Vista, não é suficiente invocar o comando de forma assíncrona simplesmente definindo o sinalizador CMIC_MASK_ASYNCOK no membro fMask da estrutura CMINVOKECOMMANDINFO ou CMINVOKECOMMANDINFOEX . Você também deve definir uma referência de thread no thread de chamada, conforme explicado em Gerenciando referências de thread.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl_core.h (inclua Shobjidl.h)
DLL Shell32.dll (versão 4.0 ou posterior)

Confira também

Icontextmenu