Compartilhar via


Especificando a localização de uma extensão de namespace

A raiz de uma extensão de namespace normalmente é exibida pelo Windows Explorer como uma pasta nas exibições de árvore e pasta. Para que o Windows Explorer exibir os arquivos e subpastas da extensão, especifique onde a pasta raiz está localizada na hierarquia de namespace do Shell. Esse local é chamado de ponto de junção.

Usando pastas virtuais como pontos de junção

A maneira mais simples de definir o ponto de junção de uma extensão é tornar a pasta raiz uma subpasta de uma pasta virtual do sistema. Esse tipo de ponto de junção é chamado de ponto de junção virtual. As pastas Área de Trabalho e Meu Computador são os locais típicos para pontos de junção virtual, mas você também pode definir um ponto de junção virtual em um computador remoto ou nas pastas Meus Locais de Rede, Internet Explorer e Painel de Controle.

Para definir um ponto de junção virtual, crie uma subchave da chave que representa a pasta virtual apropriada e nomeie-a com a forma de cadeia de caracteres do CLSID (identificador de classe) da extensão. O CLSID registrado seria exibido da seguinte maneira.

HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  Virtual Folder Name
                     NameSpace
                        {Extension CLSID}
                           (Default) = Junction Point Name

O Nome da Pasta Virtual é uma das subchaves na tabela a seguir.

Localização Nome da Pasta Virtual
Painel de Controle ControlPanel
Área de Trabalho Área de Trabalho
Rede inteira NetworkNeighborhood\EntireNetwork
Meu Computador Meucomputador
Meus Locais de Rede NetworkNeighborhood
Computador Remoto RemoteComputer
Arquivos de Usuários UsersFiles

 

Extensões remotas devem ser inicializadas com IRemoteComputer.

Usando pastas do sistema de arquivos como pontos de junção

Há duas maneiras de definir pastas do sistema de arquivos como pontos de junção. A abordagem mais simples é criar uma pasta no local apropriado e acrescentar um período ao nome da pasta, seguido pela forma de cadeia de caracteres do CLSID da extensão. Somente o nome da pasta ficará visível no Windows Explorer. O exemplo a seguir cria um ponto de junção com um nome de exibição de MyFolder.

MyFolder.{Extension CLSID}

Como alternativa, você pode definir uma pasta chamada convencionalmente como um ponto de junção por:

  • Tornando a pasta somente leitura.
  • Tornando a pasta uma pasta do sistema chamando PathMakeSystemFolder.
  • Colocando um arquivo de Desktop.ini oculto na pasta que inclui o CLSID da extensão.

Desktop.ini é um arquivo de texto padrão que pode ser adicionado a qualquer pasta para personalizar determinados aspectos do comportamento da pasta. Para obter uma discussão geral sobre como usar esse arquivo, consulte Como personalizar pastas com Desktop.ini. Para definir uma pasta como um ponto de junção, o [. A seção ShellClassInfo] do Desktop.ini deve conter o CLSID da extensão da seguinte maneira:

[.ShellClassInfo]
CLSID={Extension CLSID}

Abrindo uma exibição de uma extensão de namespace

Quando um usuário navega em um ponto de junção, o Windows Explorer cria automaticamente uma exibição da pasta raiz. Você também pode criar uma exibição iniciando explicitamente Explorer.exe com o CLSID da extensão como um argumento. Você pode, por exemplo, usar essa abordagem para iniciar uma exibição de uma extensão de um menu de atalho ou atalho. Por exemplo, para iniciar uma exibição de MyExtension que inclui uma exibição de árvore, você pode usar a cadeia de caracteres de comando a seguir.

%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID}

Uma cadeia de caracteres de comando alternativa pode ser usada para iniciar uma exibição de um objeto dentro da extensão. Esse recurso seria útil, por exemplo, para uma extensão que usa uma exibição de pasta para permitir que os usuários exibam o conteúdo de um dos vários arquivos compactados.

%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID},objectname

O parâmetro objectname é o nome do objeto que deve ser exibido. O Windows Explorer converte o nome em seu PIDL correspondente e passa o PIDL para o método IPersistFolder::Initialize do novo objeto de pasta.

Observação

A cadeia de caracteres CLSID deve ser precedida por um par de dois-pontos (::) ou o comando falhará. O sinalizador slash-e (/e) usado nas duas linhas de comando de exemplo mostradas anteriormente instrui o Windows Explorer a exibir uma exibição de árvore. O sinalizador deve ser separado dos dois dois dois pontos por vírgula. Se você não quiser uma exibição de árvore, omita o sinalizador /e e a vírgula.