Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os recursos do Shell podem ser estendidos com entradas de registro e arquivos .ini. Embora essa abordagem para estender o Shell seja simples e adequada para muitas finalidades, ela é limitada. Por exemplo, se você usar o Registro para especificar um ícone personalizado para um tipo de arquivo, o mesmo ícone será exibido para cada arquivo desse tipo. Estender o Shell por meio do registro não permite definir ícones diferentes para diferentes membros de um tipo de arquivo. Outros aspectos do Shell, como a folha de propriedades Propriedades que podem ser exibidas quando um arquivo é clicado com o botão direito do mouse, não podem ser modificados com o registro.
Uma abordagem mais eficiente e flexível para estender o Shell é implementar manipuladores de extensão de shell. Esses manipuladores podem ser implementados para uma variedade de ações que o Shell pode executar. Antes de executar a ação, o Shell consulta o manipulador de extensão, dando a ele a oportunidade de modificar a ação. Um exemplo comum é um manipulador de extensão de menu de atalho. Se um for implementado para um tipo de arquivo, ele será consultado sempre que um dos arquivos for clicado com o botão direito do mouse. Em seguida, o manipulador pode especificar itens de menu adicionais em uma base arquivo a arquivo, em vez de ter o mesmo conjunto para todos os arquivos desse tipo de arquivo.
Este conjunto de tópicos discute como implementar os manipuladores de extensão que permitem modificar uma variedade de ações do Shell. Os manipuladores a seguir são associados a um tipo de arquivo específico e permitem que você especifique em uma base arquivo a arquivo.
| Manipulador | Descrição |
|---|---|
| Manipulador de menu de atalho | Chamado antes que o menu de atalho de um arquivo seja exibido. Ele permite que você adicione itens ao menu de atalho em uma base arquivo a arquivo. |
| Manipulador de dados | Chamado quando uma operação de arrastar e soltar é executada em objetos Shell. Ele permite que você forneça formatos adicionais de área de transferência para o alvo de soltura. |
| Manipulador do tipo "soltar" | Chamado quando um objeto de dados é arrastado sobre um arquivo ou solto sobre ele. Ele permite que você transforme um arquivo em um alvo de arrastar e soltar. |
| Manipulador de ícones | Chamado antes que o ícone de um arquivo seja exibido. Ele permite que você substitua o ícone padrão do arquivo por um ícone personalizado em uma base arquivo a arquivo. |
| Manipulador de folha de propriedades | Chamado antes da exibição da folha de propriedades propriedades de um objeto. Ele permite que você adicione ou substitua páginas. |
| Manipulador de imagem em miniatura | Fornece uma imagem para representar o item. |
| Gerenciador de dica de informação | Fornece texto pop-up quando o usuário passa o ponteiro do mouse sobre o objeto. |
| Manipulador de metadados | Fornece acesso de leitura e gravação a metadados (propriedades) armazenados em um arquivo. Isso pode ser usado para estender a exibição de Detalhes, as infodicas, a página de propriedades e os recursos de agrupamento. |
Outros não estão associados a um tipo de arquivo específico, mas são chamados antes de algumas operações do Shell.
| Manipulador | Descrição |
|---|---|
| Manipulador de colunas | Chamado pelo Windows Explorer antes de exibir o modo de exibição em Detalhes de uma pasta. Ele permite que você adicione colunas personalizadas ao modo de exibição Detalhes. |
| Manipulador de gancho de cópia | Chamado quando um objeto de pasta ou impressora está prestes a ser movido, copiado, excluído ou renomeado. Ele permite que você aprove ou vete a operação. |
| Gerenciador de arrastar e soltar | Chamado quando um arquivo é arrastado com o botão direito do mouse. Ele permite que você modifique o menu de atalho exibido. |
| Manipulador de sobreposição de ícones | Chamado antes que o ícone de um arquivo seja exibido. Ele permite que você especifique uma sobreposição para o ícone do arquivo. |
| Manipulador de pesquisa | Chamado para iniciar um mecanismo de busca. Ele permite implementar um mecanismo de pesquisa personalizado acessível no menu Iniciar ou Windows Explorer. |
Os detalhes de como implementar manipuladores de extensão específicos são abordados nas seções listadas acima. Para obter discussões sobre problemas de implementação comuns a todos os manipuladores de extensão do Shell, consulte estes tópicos:
Note
Considerações sobre segurança e estabilidade: Os manipuladores de extensão do Shell são DLLs COM em processo que são carregadas diretamente no processo do Explorer (ou em qualquer processo que hospede o Shell). Uma falha ou travamento na extensão falhará ou desligará o Explorer para todos os usuários.
Principais requisitos:
- Inscreva-se em
ThreadingModel = Apartment— as exibições do Shell do Explorer são executadas em um thread STA. UsarFreeouBothpode causar erros sutis de threading. - Lidar com a conscientização de DPI corretamente — o Explorer tem reconhecimento de DPI por monitor. As extensões que pressupõem que uma DPI fixa será renderizada incorretamente em configurações de vários monitores.
- Para aplicativos empacotados (MSIX), use o registro baseado em manifesto por meio do elemento
desktop4:Extensionou de um pacote esparso em vez de gravar chaves do Registro diretamente. - Considere se uma abordagem mais simples (registro estático de verbo, associação de arquivo
.regou as APIs Windows.Storage.Provider) pode atender às suas necessidades antes de implementar uma extensão de shell COM completa.