Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este tópico está organizado da seguinte forma:
- Escolha um método de verbo
- Estender um menu de atalho
- Suporte para métodos verbais por sistema operacional
- Tópicos relacionados
Escolha um método de verbo
É altamente recomendável que você implemente um menu de atalho usando um dos métodos verbais estáticos.
Métodos verbais estáticos
Os verbos estáticos são os verbos mais simples de implementar, mas ainda fornecem uma funcionalidade rica. Escolha sempre o método de menu de atalho mais simples que atenda às suas necessidades.
| Verbo estático | Descrição |
|---|---|
| CreateProcess com parâmetros de linha de comando | Este é o meio mais simples e familiar de implementar um verbo estático. Um processo é invocado através de uma chamada para a função CreateProcess com os ficheiros selecionados e quaisquer parâmetros opcionais passados na linha de comandos. Isso abre o arquivo ou pasta. Este método tem as seguintes limitações:
|
| DropTarget/IDropTarget | Uma ativação verbal baseada em COM significa que suporta ativação in-proc ou out-of-proc. DropTarget/IDropTarget também suporta a reutilização de um manipulador já em execução quando a interface IDropTarget é implementada por um servidor local. Ele também expressa perfeitamente os itens através do objeto de dados organizado e fornece uma referência na cadeia de sites de invocação, permitindo que você interaja com o invocador através do QueryService. |
| Windows 7 e posterior: IExecuteCommand | O método de implementação mais direto. Como este é um método de invocação baseado em COM (como o DropTarget), esta interface suporta ativação no processo ("in-proc") e fora do processo ("out-of-proc"). O verbo implementa IExecuteCommand e IObjectWithSelectione, opcionalmente, IInitializeCommand. Os itens são passados diretamente como uma matriz de itens do Shell e mais parâmetros do invocador estão disponíveis para a implementação do verbo, incluindo o ponto de invocação, o estado do teclado e assim por diante. |
| Windows 7 e posterior:ExplorerCommand/ IExplorerCommand | Permite que fontes de dados que fornecem seus comandos de módulo de comando por meio de IExplorerCommandProvider usem esses comandos como verbos em um menu de atalho. Como essa interface suporta apenas a ativação em processo, ela é recomendada para uso por fontes de dados do Shell que precisam compartilhar a implementação entre comandos e menus de atalho. |
Observação
IExplorerCommand é um híbrido entre um verbo estático e dinâmico. IExplorerCommand foi declarado no Windows Vista, mas sua capacidade de implementar um verbo em um menu de atalho é nova no Windows 7.
Para obter mais informações sobre IDropTarget e consultas Shell para atributos de associação de arquivo, consulte Tipos Percebidos e Registo de Aplicações.
Métodos Verbais Dinâmicos Preferidos
Os seguintes métodos verbais dinâmicos são preferidos:
| Tipo de verbo | Descrição |
|---|---|
| Verbo estático (listado na tabela anterior) + Sintaxe de consulta avançada (AQS) | Esta escolha proporciona visibilidade dinâmica do verbo. |
| Windows 7 e posterior: IExplorerCommand | Essa opção permite uma implementação comum de verbos e comandos do explorador que são exibidos no módulo de comando no Windows Explorer. |
| Windows 7 e posterior: IExplorerCommandState + verbo estático | Esta escolha também obtém visibilidade dinâmica do verbo. É um modelo híbrido onde um manipulador simples em processo é usado para calcular se um determinado verbo estático deve ser exibido. Isso pode ser aplicado a todos os métodos de implementação de verbos estáticos para alcançar um comportamento dinâmico e minimizar a exposição da lógica em processo. IExplorerCommandState tem a vantagem de ser executado em um thread em segundo plano e, assim, evita travamentos da interface do usuário. É consideravelmente mais simples do que IContextMenu. |
Métodos de verbos dinâmicos desencorajados
IContextMenu é o método mais poderoso, mas também o mais complicado de implementar. Ele é baseado em objetos COM em processo que são executados no thread do chamador, que é geralmente o Windows Explorer, mas pode ser qualquer aplicativo que hospede os itens. IContextMenu suporta visibilidade de verbos, ordenação e desenho personalizado. Alguns desses recursos foram adicionados aos recursos verbais estáticos, como um ícone a ser associado a um comando, e IExplorerCommand para lidar com a visibilidade.
Se você precisar estender o menu de atalho para um tipo de arquivo registrando um verbo dinâmico para o tipo de arquivo, siga as instruções fornecidas em Personalizando um menu de atalho usando verbos dinâmicos.
Estender um menu de atalho
Depois de escolher um método de verbo, você pode estender um menu de atalho para um tipo de arquivo registrando um verbo estático para o tipo de arquivo. Para obter mais informações, consulte Criando manipuladores de menu de contexto.
Suporte para métodos verbais por sistema operacional
O suporte para métodos de invocação de verbos por sistema operacional está listado na tabela a seguir.
| Método Verb | Windows XP | Windows Vista | Windows 7 e versões posteriores |
|---|---|---|---|
| CriarProcesso | X | X | X |
| DDE | X | X | X |
| DropTarget | X | X | X |
| ExecuteCommand | X | X | |
| ExplorerCommand | X | ||
| ExplorerCommandState | X |
Tópicos relacionados
-
Práticas recomendadas para manipuladores de menu de atalho e verbos de seleção múltipla
-
Menus de atalho (contexto) e manipuladores de menu de atalho