Estrutura CMINVOKECOMMANDINFO (shobjidl_core.h)
Contém informações necessárias por IContextMenu::InvokeCommand para invocar um comando de menu de atalho.
Sintaxe
typedef struct _CMINVOKECOMMANDINFO {
DWORD cbSize;
DWORD fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
DWORD dwHotKey;
HANDLE hIcon;
} CMINVOKECOMMANDINFO;
Membros
cbSize
Tipo: DWORD
O tamanho dessa estrutura, em bytes.
fMask
Tipo: DWORD
Zero ou um ou mais dos sinalizadores a seguir.
CMIC_MASK_HOTKEY
O membro dwHotKey é válido.
CMIC_MASK_ICON
O membro hIcon é válido. A partir do Windows Vista, esse sinalizador não é usado.
CMIC_MASK_FLAG_NO_UI
O sistema é impedido de exibir elementos da interface do usuário (por exemplo, mensagens de erro) durante a execução de um comando.
CMIC_MASK_NO_CONSOLE
Se um manipulador de menu de atalho precisar criar um novo processo, ele normalmente criará um novo console. Definir o sinalizador CMIC_MASK_NO_CONSOLE suprime a criação de um novo console.
CMIC_MASK_FLAG_SEP_VDM
Esse sinalizador é válido somente ao se referir a um aplicativo baseado no Windows de 16 bits. Se definido, o aplicativo para o qual o atalho aponta é executado em uma VDM (Máquina Virtual dos DOS) privada. Consulte Observações.
CMIC_MASK_ASYNCOK
Aguarde até que a conversa DDE seja encerrada antes de retornar.
CMIC_MASK_NOASYNC
Windows Vista e posterior. A implementação de IContextMenu::InvokeCommand deve ser síncrona, não retornando antes de ser concluída. Como isso é recomendado, chamar aplicativos que especificam esse sinalizador não pode garantir que essa solicitação será respeitada se eles não estiverem familiarizados com a implementação do verbo que estão invocando.
CMIC_MASK_SHIFT_DOWN
A tecla SHIFT está pressionada. Use isso em vez de sondar o estado atual do teclado que pode ter sido alterado desde que o verbo foi invocado.
CMIC_MASK_CONTROL_DOWN
A tecla CTRL está pressionada. Use isso em vez de sondar o estado atual do teclado que pode ter sido alterado desde que o verbo foi invocado.
CMIC_MASK_FLAG_LOG_USAGE
Indica que a implementação de IContextMenu::InvokeCommand pode querer acompanhar o item que está sendo invocado para recursos como o menu "Documentos recentes".
CMIC_MASK_NOZONECHECKS
Não execute uma marcar de zona. Esse sinalizador permite que ShellExecuteEx ignore a verificação de zona colocada em prática por IAttachmentExecute.
hwnd
Digite: HWND
Um identificador para a janela que é o proprietário do menu de atalho. Uma extensão também pode usar esse identificador como o proprietário de qualquer caixa de mensagem ou caixa de diálogo exibida.
lpVerb
Tipo: LPCSTR
O endereço de uma cadeia de caracteres terminada em nulo que especifica o nome independente de idioma do comando a ser executado. Esse membro normalmente é uma cadeia de caracteres quando um comando está sendo ativado por um aplicativo. O sistema fornece valores constantes predefinidos para as cadeias de caracteres de comando a seguir.
Constante | Cadeia de caracteres de comando |
---|---|
CMDSTR_RUNAS | "RunAs" |
CMDSTR_PRINT | "Imprimir" |
CMDSTR_PREVIEW | "Versão prévia" |
CMDSTR_OPEN | "Abrir" |
Este não é um conjunto fixo; novos verbos canônicos podem ser inventados por manipuladores de menu de contexto e os aplicativos podem invocá-los.
Se existir um verbo canônico e um manipulador de menus não implementar o verbo canônico, ele deverá retornar um código de falha para permitir que o próximo manipulador possa lidar com esse verbo. Não fazer isso interromperá a funcionalidade no sistema, incluindo ShellExecute.
Como alternativa, em vez de um ponteiro, esse parâmetro pode ser MAKEINTRESOURCE(offset), em que offset é o deslocamento de identificador de menu do comando a ser realizado. As implementações podem usar a macro IS_INTRESOURCE para detectar que essa alternativa está sendo empregada. O Shell usa essa alternativa quando o usuário escolhe um comando de menu.
lpParameters
Tipo: LPCSTR
Uma cadeia de caracteres opcional que contém parâmetros que são passados para o comando . O formato dessa cadeia de caracteres é determinado pelo comando que deve ser invocado. Esse membro é sempre NULL para itens de menu inseridos por uma extensão do Shell.
lpDirectory
Tipo: LPCSTR
Um nome de diretório de trabalho opcional. Esse membro é sempre NULL para itens de menu inseridos por uma extensão do Shell.
nShow
Tipo: int
Um conjunto de valores SW_ a serem passados para a função ShowWindow se o comando exibir uma janela ou iniciar um aplicativo.
dwHotKey
Tipo: DWORD
Um atalho de teclado opcional a ser atribuído a qualquer aplicativo ativado pelo comando . Se o parâmetro fMask não especificar CMIC_MASK_HOTKEY, esse membro será ignorado.
hIcon
Tipo: HANDLE
Um ícone a ser usado para qualquer aplicativo ativado pelo comando . Se o membro fMask não especificar CMIC_MASK_ICON, esse membro será ignorado.
Comentários
Embora a declaração IContextMenu::InvokeCommand especifique uma estrutura CMINVOKECOMMANDINFO para o parâmetro pici , ela também pode aceitar uma estrutura CMINVOKECOMMANDINFOEX . Se você estiver implementando esse método, deverá inspecionar cbSize para determinar qual estrutura foi passada.
Requisitos
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] |
Cabeçalho | shobjidl_core.h (inclua Shobjidl.h) |