Compartilhar via


Como criar manipuladores de descarte

Por padrão, os arquivos não são destinos de descarte. Você pode transformar os membros de um tipo de arquivo em destinos de soltar implementando e registrando um manipulador de drop.

Se um manipulador de soltar for registrado para um tipo de arquivo, ele será chamado sempre que um objeto for arrastado ou descartado em um membro do tipo de arquivo. O Shell gerencia a operação chamando os métodos apropriados na interface IDropTarget do manipulador.

Os procedimentos gerais para implementar e registrar um manipulador de extensão do Shell são discutidos em Criando manipuladores de extensão do Shell. Este documento se concentra nesses aspectos de implementação específicos para remover manipuladores.

Instruções

Etapa 1: Implementando manipuladores de descarte

Como todos os manipuladores de extensão do Shell, os manipuladores de soltar são objetos COM (Component Object Model) em processo implementados como DLLs. Eles exportam duas interfaces além de IUnknown: IPersistFile e IDropTarget.

O Shell inicializa o manipulador por meio de sua interface IPersistFile . Ele usa essa interface para solicitar o CLSID (identificador de classe) do manipulador e fornece o nome do arquivo. Para obter uma discussão geral sobre como implementar manipuladores de extensão do Shell, incluindo a interface IPersistFile , consulte Criando manipuladores de extensão do Shell.

Depois que o manipulador de soltar for inicializado, o Shell chamará o método apropriado na interface IDropTarget do manipulador.

Etapa 2: Registrando manipuladores de descarte

Manipuladores de soltar são registrados na subchave desse tipo de arquivo.

HKEY_CLASSES_ROOT
   ProgID
      shellex
         DropHandler

Crie uma subchave do DropHandler chamada para o manipulador e defina o valor padrão da subchave para a forma de cadeia de caracteres do GUID CLSID do manipulador. Para obter uma discussão geral sobre como registrar manipuladores de extensão do Shell, consulte Criando manipuladores de extensão do shell.

O exemplo a seguir ilustra as entradas do Registro que habilitam um manipulador de soltar para um exemplo de tipo de arquivo .myp.

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}

Criar Manipuladores de Extensão de Shell

Idroptarget

IPersistFile