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) |