Compartir a través de


Creación de controladores de colocación

De forma predeterminada, los archivos no son destinos de eliminación. Puede convertir los miembros de un tipo de archivo en destinos de colocación mediante la implementación y el registro de un controlador de colocación.

Si se registra un controlador de colocación para un tipo de archivo, se llama cada vez que se arrastra o se coloca un objeto en un miembro del tipo de archivo. Shell administra la operación llamando a los métodos adecuados en la interfaz IDropTarget del controlador.

Los procedimientos generales para implementar y registrar un controlador de extensión de Shell se describen en Creación de controladores de extensión de Shell. Este documento se centra en los aspectos de la implementación específicos de los controladores de colocación.

Instrucciones

Paso 1: Implementar controladores de colocación

Al igual que todos los controladores de extensión de Shell, los controladores de colocación son objetos del modelo de objetos componentes (COM) en proceso implementados como archivos DLL. Exportan dos interfaces además de IUnknown: IPersistFile e IDropTarget.

Shell inicializa el controlador a través de su interfaz IPersistFile . Usa esta interfaz para solicitar el identificador de clase (CLSID) del controlador y le proporciona el nombre del archivo. Para obtener una explicación general sobre cómo implementar controladores de extensión de Shell, incluida la interfaz IPersistFile , consulte Creación de controladores de extensión de Shell.

Una vez inicializado el controlador de colocación, shell llama al método adecuado en la interfaz IDropTarget del controlador.

Paso 2: Registrar controladores de colocación

Los controladores de colocación se registran en la subclave de este tipo de archivo.

HKEY_CLASSES_ROOT
   ProgID
      shellex
         DropHandler

Cree una subclave de DropHandler denominada para el controlador y establezca el valor predeterminado de la subclave en la forma de cadena del GUID CLSID del controlador. Para obtener una explicación general sobre cómo registrar controladores de extensión de Shell, consulte Creación de controladores de extensión de Shell.

En el ejemplo siguiente se muestran las entradas del Registro que habilitan un controlador de colocación para un tipo de archivo .myp de ejemplo.

HKEY_CLASSES_ROOT
   .myp
      (Default) = MyProgram.1
   CLSID
      {00000000-1111-2222-3333-444444444444}
         InProcServer32
            (Default) = C:\MyDir\MyCommand.dll
            ThreadingModel = Apartment
   MyProgram.1
      (Default) = MyProgram Application
      shellex
         DropHandler
            (Default) = {00000000-1111-2222-3333-444444444444}

Creación de controladores de extensiones de shell

IDropTarget

IPersistFile