Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las funcionalidades del Shell se pueden ampliar con entradas del Registro y archivos .ini. Aunque este enfoque para ampliar el shell es sencillo y adecuado para muchos propósitos, es limitado. Por ejemplo, si usa el Registro para especificar un icono personalizado para un tipo de archivo, aparecerá el mismo icono para cada archivo de ese tipo. Extender el shell mediante el Registro no permite cambiar el icono de los distintos elementos de ese tipo de archivo. Otros aspectos del Shell, como el cuadro de diálogo Propiedades que puede mostrarse al hacer clic con el botón derecho sobre un archivo, no pueden modificarse en absoluto mediante el Registro.
Una forma más potente y flexible de extender el Shell es implementar controladores de extensión del Shell. Estos controladores se pueden implementar para una variedad de acciones que el Shell puede realizar. Antes de realizar la acción, shell consulta el controlador de extensión, lo que le da la oportunidad de modificar la acción. Un ejemplo común es un controlador de extensión de menú contextual. Si se implementa uno para un tipo de archivo, se consultará cada vez que se haga clic con el botón derecho en uno de los archivos. A continuación, el controlador puede especificar elementos de menú adicionales en un archivo por archivo, en lugar de tener el mismo conjunto para todos los archivos de ese tipo de archivo.
En este conjunto de temas se describe cómo implementar los controladores de extensión que permiten modificar una variedad de acciones de Shell. Los siguientes controladores están asociados a un tipo de archivo determinado y permiten especificarlo por archivo.
| Controlador | Descripción |
|---|---|
| Controlador de menú contextual | Se llama antes de que se muestre el menú contextual de un archivo. Te permite agregar elementos al menú contextual archivo por archivo. |
| Controlador de datos | Se llama cuando se realiza una operación de arrastrar y soltar en objetos Shell. Le permite proporcionar formatos adicionales del portapapeles al destino de colocación. |
| Controlador de colocación | Se llama cuando se arrastra un objeto de datos sobre un archivo o se suelta sobre él. Permite convertir un archivo en un destino de colocación. |
| Controlador de iconos | Se llama antes de que se muestre el icono de un archivo. Permite reemplazar el icono predeterminado del archivo por un icono personalizado por archivo. |
| Controlador de hoja de propiedades | Se llama antes de que se muestre la hoja de propiedades Properties de un objeto. Permite agregar o reemplazar páginas. |
| Controlador de imágenes en miniatura | Proporciona una imagen para representar el elemento. |
| Manejador de información contextual | Proporciona texto emergente cuando el usuario mantiene el puntero del mouse sobre el objeto. |
| Controlador de metadatos | Proporciona acceso de lectura y escritura a metadatos (propiedades) almacenados en un archivo. Esto se puede usar para extender la vista de detalles, las descripciones emergentes, la página de propiedades y las funciones de agrupación. |
Otros no están asociados a ningún tipo de archivo en particular, pero se invocan antes de algunas operaciones del shell.
| Controlador | Descripción |
|---|---|
| Controlador de columnas | Lo llama el Explorador de Windows antes de que muestre la vista Detalles de una carpeta. Permite agregar columnas personalizadas a la vista Detalles. |
| Controlador de enlace de copia | Se llama cuando se va a mover, copiar, eliminar o cambiar el nombre de un objeto de carpeta o impresora. Permite aprobar o vetar la operación. |
| Controlador de arrastrar y colocar | Se llama cuando se arrastra un archivo con el botón derecho del mouse. Permite modificar el menú contextual que se muestra. |
| Controlador de superposición de iconos | Se llama antes de que se muestre el icono de un archivo. Permite especificar una superposición para el icono del archivo. |
| Controlador de búsqueda | Se utiliza para iniciar un motor de búsqueda. Permite implementar un motor de búsqueda personalizado accesible desde el menú Inicio o Windows Explorer. |
Los detalles de cómo implementar controladores de extensión específicos se tratan en las secciones enumeradas anteriormente. Para ver discusiones sobre los problemas de implementación comunes a todos los controladores de extensión de Shell, consulte estos temas:
Note
Consideraciones de seguridad y estabilidad: Los controladores de extensión de shell son archivos DLL COM en proceso que se cargan directamente en el proceso del Explorador (o cualquier proceso que hospede el Shell). Un error o bloqueo en su extensión hará que el Explorador también se cierre inesperadamente o deje de responder para todos los usuarios.
Requisitos clave:
- Regístrese con
ThreadingModel = Apartment: las vistas del shell de Explorer se ejecutan en un subproceso STA. El usoFreede oBothpuede provocar errores sutiles de subprocesos. - Controlar el reconocimiento de PPP correctamente: el explorador es compatible con PPP por monitor. Las extensiones que suponen una PPP fija se mostrarán incorrectamente en configuraciones con varios monitores.
- Para las aplicaciones empaquetadas (MSIX), utilice el registro basado en manifiesto mediante el elemento
desktop4:Extensiono un paquete disperso en lugar de escribir directamente claves en el Registro. - Considere si un enfoque más sencillo (registro estático de verbos, asociación de archivos
.rego las API Windows.Storage.Provider) puede satisfacer sus necesidades antes de implementar una extensión completa del shell COM.