Especificar la ubicación de una extensión de espacio de nombres

Normalmente, el Explorador de Windows muestra la raíz de una extensión de espacio de nombres como una carpeta en las vistas de árbol y carpeta. Para que el Explorador de Windows muestre los archivos y subcarpetas de la extensión, debe especificar dónde se encuentra la carpeta raíz en la jerarquía del espacio de nombres de Shell. Esta ubicación se conoce como punto de unión.

Uso de carpetas virtuales como puntos de unión

La manera más sencilla de definir el punto de unión de una extensión es convertir la carpeta raíz en una subcarpeta de una carpeta virtual del sistema. Este tipo de punto de unión se conoce como punto de unión virtual. Las carpetas Escritorio y Mi equipo son las ubicaciones típicas de los puntos de unión virtual, pero también puede definir un punto de unión virtual en un equipo remoto o en las carpetas Mis sitios de red, Internet Explorer y Panel de control.

Para definir un punto de unión virtual, cree una subclave de la clave que represente la carpeta virtual adecuada y asígnele el nombre con el formato de cadena del identificador de clase de la extensión (CLSID). El CLSID registrado aparecerá de la siguiente manera.

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

Nombre de carpeta virtual es una de las subclaves de la tabla siguiente.

Location Nombre de carpeta virtual
Panel de control Controlpanel
Escritorio Dispositivo de escritorio
Toda la red NetworkNeighborhood\EntireNetwork
Mi PC Miequipo
Mis sitios de red NetworkNeighborhood
Equipo remoto RemoteComputer
Archivos de usuarios UsersFiles

 

Las extensiones remotas deben inicializarse con IRemoteComputer.

Uso de carpetas del sistema de archivos como puntos de unión

Hay dos maneras de definir carpetas del sistema de archivos como puntos de unión. El enfoque más sencillo es crear una carpeta en la ubicación adecuada y anexar un punto al nombre de la carpeta, seguido del formato de cadena del CLSID de la extensión. Solo el nombre de la carpeta estará visible en el Explorador de Windows. En el ejemplo siguiente se crea un punto de unión con un nombre para mostrar de MyFolder.

MyFolder.{Extension CLSID}

Como alternativa, puede definir una carpeta con nombre convencional como punto de unión:

  • Hacer que la carpeta sea de solo lectura.
  • Para convertir la carpeta en una carpeta del sistema, llame a PathMakeSystemFolder.
  • Colocación de un archivo Desktop.ini oculto en la carpeta que incluye el CLSID de la extensión.

Desktop.ini es un archivo de texto estándar que se puede agregar a cualquier carpeta para personalizar determinados aspectos del comportamiento de la carpeta. Para obtener una explicación general sobre cómo usar este archivo, vea How to Customize Folders with Desktop.ini. Para definir una carpeta como punto de unión, [. La sección ShellClassInfo] de Desktop.ini debe contener el CLSID de la extensión de la siguiente manera:

[.ShellClassInfo]
CLSID={Extension CLSID}

Abrir una vista de una extensión de espacio de nombres

Cuando un usuario navega a un punto de unión, el Explorador de Windows crea automáticamente una vista de la carpeta raíz. También puede crear una vista iniciando explícitamente Explorer.exe con el CLSID de la extensión como argumento. Por ejemplo, puede usar este enfoque para iniciar una vista de una extensión desde un menú contextual o un acceso directo. Por ejemplo, para iniciar una vista de MyExtension que incluya una vista de árbol, puede usar la siguiente cadena de comandos.

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

Se puede usar una cadena de comando alternativa para iniciar una vista de un objeto dentro de la extensión. Esta característica sería útil, por ejemplo, para una extensión que usa una vista de carpeta para permitir a los usuarios ver el contenido de uno de varios archivos comprimidos.

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

El parámetro objectname es el nombre del objeto que se va a ver. El Explorador de Windows convierte el nombre en su PIDL correspondiente y pasa el PIDL al método IPersistFolder::Initialize del nuevo objeto de carpeta.

Nota

La cadena CLSID debe ir precedida de un par de dos puntos (::) o se producirá un error en el comando. La marca de barra diagonal e (/e) usada en las dos líneas de comandos de ejemplo mostradas anteriormente indica al Explorador de Windows que muestre una vista de árbol. La marca debe estar separada de los dos dos puntos por una coma. Si no desea una vista de árbol, omita la marca /e y la coma.