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.
O Windows Explorer fornece uma representação gráfica do namespace Shell combinada com ferramentas que permitem que os usuários interajam com objetos Shell. Com uma extensão de namespace, você pode pegar qualquer corpo de dados e fazer com que o Windows Explorer apresente-o ao usuário como uma pasta virtual. Quando um usuário navega nessa pasta, seus dados são apresentados como uma hierarquia estruturada em árvore de pastas e arquivos, muito semelhante ao restante do namespace do Shell. Os usuários e aplicativos são capazes de interagir com o conteúdo dessa pasta virtual da mesma forma que com qualquer outro objeto de namespace. Este documento discute como criar uma extensão de namespace.
- Como funciona uma extensão de namespace
- O objeto de exibição de pasta do sistema padrão (DefView)
-
Como o Windows Explorer interage com uma extensão de namespace
- Vista de Árvore
- de exibição de pasta
- Barra de Menus e Barras de Ferramentas
- da barra de status
Como funciona uma extensão de namespace
Nos bastidores, cada pasta que o Windows Explorer exibe é representada por um objeto COM (Component Object Model) chamado objeto de pasta . Cada vez que o usuário interage com uma pasta ou seu conteúdo, o Shell se comunica com o objeto de pasta associado por meio de uma das várias interfaces padrão. Em seguida, o objeto de pasta faz o que for necessário para responder à ação do usuário e o Shell atualiza a exibição do Windows Explorer.
A maioria dos arquivos e pastas com os quais os usuários interagem fazem parte do sistema de arquivos ou de uma pasta virtual do sistema, como a Lixeira. Outra documentação discutiu como você pode personalizar o comportamento dessas pastas padrão para atender aos requisitos do seu aplicativo modificando o registro ou implementando manipuladores de extensão Shell. No entanto, estender o Shell dessas maneiras é mais útil quando suas informações podem ser prontamente empacotadas na forma de arquivos ou pastas normais do sistema de arquivos.
Há uma série de situações em que armazenar dados como uma coleção de pastas e arquivos do sistema de arquivos pode ser indesejável ou até mesmo impossível. Alguns exemplos deste tipo de dados incluem:
- Uma coleção de itens que é empacotada de forma mais eficaz em um único arquivo, como um banco de dados.
- Uma coleção de itens armazenados em um computador remoto que não tem um sistema de arquivos padrão do Windows. Um exemplo desses dados são as informações armazenadas em um assistente digital pessoal (PDA) ou câmera digital.
- Uma coleção de itens que não representa dados armazenados. Um exemplo desses dados são os links de impressora contidos pela pasta Impressoras padrão.
Uma maneira de apresentar esse tipo de dados a um usuário é escrever um aplicativo para permitir que os usuários visualizem e interajam com os vários itens. No entanto, se seus dados puderem ser apresentados como uma hierarquia de pasta/arquivo, grande parte da funcionalidade que você precisará implementar pode ser serviços de interface do usuário que já são fornecidos pelo Windows Explorer. Uma abordagem muito mais eficiente poderia ser escrever uma extensão de namespace e permitir que o Windows Explorer se torne sua GUI.
Para implementar uma extensão de namespace, suas informações devem ser organizadas como um namespace estruturado em árvore. Seu raiz de namespace é apresentado como uma pasta virtual no namespace do Shell. A pasta raiz e todas as suas subpastas e itens de dados tornam-se parte do namespace do Shell e o Windows Explorer se torna sua interface do usuário. Assim, você pode apresentar suas informações ao usuário de uma maneira familiar e prontamente acessível com muito menos programação de interface do usuário do que seria necessário para um aplicativo personalizado.
Uma extensão de namespace consiste em dois componentes básicos:
- Um gestor de dados
- Uma interface entre o gestor de dados e o Explorador do Windows
O primeiro componente da lista depende inteiramente de si. Pode armazenar e gerir os seus dados da forma que for mais eficaz. O segundo componente é o código necessário para empacotar seus dados como objetos de pasta e manipular a interação com o Windows Explorer. O Windows Explorer pode então chamar esses objetos para permitir que os usuários visualizem e interajam com seus dados como se fossem uma coleção de pastas e arquivos. Os objetos de pasta da extensão de namespace devem interagir com o Windows Explorer como se fossem pastas normais. Antes de tentar implementar uma extensão de namespace, você deve primeiro entender como o Windows Explorer lida com um objeto de pasta.
O objeto de exibição de pasta do sistema padrão (DefView)
O Shell fornece uma implementação padrão da exibição de pasta, coloquialmente conhecida como DefView, para que você possa evitar muito do trabalho de implementar sua própria extensão de namespace. Como alguns recursos de exibição não podem ser obtidos por meio de modos de exibição personalizados, geralmente é recomendável que o objeto de exibição de pasta do sistema padrão seja usado no lugar de um modo de exibição personalizado. Para obter mais informações, consulte SHCreateShellFolderView.
Como o Windows Explorer interage com uma extensão de namespace
O Explorador do Windows fornece aos utilizadores uma GUI que lhes permite realizar uma variedade de tarefas, incluindo:
- Navegando a hierarquia do espaço de nomes e visualizando o conteúdo das pastas.
- Gerenciando o conteúdo do namespace movendo, excluindo e copiando objetos.
- Recuperando uma variedade de informações sobre objetos.
- Lançar aplicações.
A GUI do Windows Explorer tem cinco componentes básicos. A ilustração a seguir nomeia os componentes e mostra onde eles normalmente são exibidos no Windows Explorer.
Quando um usuário exibe uma pasta que pertence a uma extensão de namespace no Windows Explorer, o objeto de pasta tem controle pelo menos parcial sobre o conteúdo de todas as cinco áreas.
Vista da árvore
A visualização em árvore fornece uma exibição de alto nível do namespace. Esta área hospeda um de controle de exibição de árvore de que pode exibir todas as pastas de namespace e a posição da pasta na hierarquia de namespace. Um usuário pode executar várias operações com a área de visualização em árvore, incluindo:
- Exibindo ou ocultando o próximo nível no namespace.
- Copiar, mover ou excluir pastas.
- Clique com o botão direito do mouse em uma pasta para exibir um menu de atalho.
- Selecionar uma pasta e visualizar o seu conteúdo na vista de pastas.
A visualização em árvore comunica-se com objetos de pasta principalmente através da interface IShellFolder. Por exemplo, quando um usuário clica no sinal de adição (+) ao lado do ícone da pasta, o Windows Explorer expande a exibição para mostrar as subpastas da pasta. Para obter as informações necessárias para atualizar a exibição em árvore, o Shell faz várias chamadas para a interface IShellFolder do objeto de pasta para:
- Solicite os atributos da pasta.
- Enumere o conteúdo da pasta.
- Solicite nomes de exibição para cada subpasta.
- Solicite um ícone para exibir ao lado de cada pasta.
Em seguida, o Explorador do Windows atualiza a vista em árvore para mostrar as subpastas da pasta selecionada. Se as subpastas tiverem subpastas, um símbolo '+' será mostrado ao lado do ícone da pasta. Há uma série de tarefas mais sofisticadas que um usuário também pode executar com a visualização em árvore, incluindo:
- Usando a Área de Transferência para cortar ou copiar uma pasta e colá-la noutra pasta.
- Usando arrastar e soltar para cortar ou copiar uma pasta e soltá-la em outra pasta.
- Usando um mecanismo de pesquisa para procurar itens em uma pasta ou suas subpastas.
- Modificando as propriedades da pasta.
Para obter uma discussão mais detalhada sobre como uma extensão de namespace lida com essas ações do usuário, consulte Implementing the Basic Folder Object Interfaces.
Vista de Pasta
Quando um usuário seleciona uma pasta, o conteúdo da pasta é exibido na exibição de pasta. Até certo ponto, a funcionalidade normal do modo de exibição de pasta se sobrepõe ao modo de exibição em árvore. Os usuários podem mover ou copiar pastas, alterar as propriedades da pasta, exibir o conteúdo de uma subpasta, exibir um menu de atalho para uma pasta e assim por diante. No entanto, existem algumas diferenças distintas entre a vista em árvore e a vista em pasta:
- O modo de exibição de pasta exibe apenas o conteúdo de uma única pasta, não parte ou toda a hierarquia de namespace.
- O modo de exibição de pasta exibe objetos de arquivo, bem como objetos de pasta.
- O modo de exibição de pasta pode exibir muito mais informações sobre objetos do que o modo de exibição em árvore.
- O modo de exibição de pasta permite que as extensões de namespace tenham controle quase completo sobre quais informações são exibidas e como. Apenas aspetos menores da visualização em árvore, como ícones de pasta, podem ser modificados.
Ao contrário do modo de exibição em árvore, o Windows Explorer não controla diretamente o conteúdo do modo de exibição de pasta. A vista de pastas é uma vista fornecida pelo Explorador do Windows para objetos de pasta. A exibição e o gerenciamento do conteúdo de uma pasta na exibição de pasta são de responsabilidade do objeto folder. Embora a maioria das visualizações de pasta siga um formato bastante padrão, na verdade há poucas limitações sobre o que pode ser exibido ou como. Um caso extremo é a pasta Internet, que é um navegador completo.
Quando um usuário seleciona uma pasta que pertence à sua extensão de namespace, você cria uma janela e passa seu identificador para o Windows Explorer. Esta janela torna-se uma subjanela da janela de visualização de pastas. O Explorador do Windows fornece as dimensões da janela de vista de pastas, mas não coloca restrições ao conteúdo da janela do seu filho. Em seguida, pode usar a janela secundária para exibir a vista da pasta.
As extensões de namespace usam uma das duas abordagens para criar uma visualização de pasta.
- Use a sua janela filha para alojar um controlo de vista de lista . Esse controle permite que você exiba o conteúdo de uma pasta da mesma maneira que o Windows Explorer modo de exibição clássico.
- Use a janela filho para hospedar um de controle WebBrowser e use um documento HTML dinâmico (DHTML) para exibir o conteúdo da pasta.
Ambas as abordagens exibem uma exibição de pasta que se parece muito com a exibida para pastas do sistema. No entanto, se você quiser usar um esquema de exibição diferente, você é livre para fazê-lo.
Barra de menus e barras de ferramentas
Como a maioria dos aplicativos do Windows, o Windows Explorer fornece ao usuário uma coleção de ferramentas. Uma seleção completa de ferramentas está disponível através da barra de menus. As ferramentas mais usadas também são representadas por botões ou caixas de edição em uma barra de ferramentas. Ao contrário de muitos aplicativos do Windows, a barra de menus do Windows Explorer é, na verdade, um de controle de barra de ferramentas que foi personalizado para se comportar como um menu convencional. Tanto a barra de menus quanto a barra de ferramentas são incorporadas em um controle de rebar para permitir que os usuários organizem os controles individuais de acordo com as suas necessidades.
Por padrão, o Windows Explorer oferece suporte a um conjunto padrão de botões e itens de menu, como Copiar e Propriedades. Sua extensão de namespace pode personalizar a barra de menus e as barras de ferramentas excluindo ferramentas padrão e adicionando ferramentas personalizadas. Quando o objeto de exibição de pasta é inicializado, o Windows Explorer passa um ponteiro para seu interface de IShellBrowser. Esta interface suporta vários métodos que você pode chamar para personalizar a barra de menus e barra de ferramentas. Quando o utilizador seleciona um dos itens de menu personalizados ou botões da barra de ferramentas, o Windows Explorer encaminha mensagens WM_COMMAND para itens de menu e barra de ferramentas personalizados ao procedimento de janela da janela filha.
Barra de estado
A barra de status do Windows Explorer exibe informações sobre o objeto selecionado no momento. Sua extensão de namespace pode usar a barra de status para exibir informações de status, como uma cadeia de caracteres de texto. Você pode personalizar a barra de status chamando IShellBrowser.