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)