Guide pratique pour créer des gestionnaires de suppression

Par défaut, les fichiers ne sont pas des cibles de suppression. Vous pouvez transformer les membres d’un type de fichier en cibles de déplacement en implémentant et en inscrivant un gestionnaire de suppressions.

Si un gestionnaire de suppressions est inscrit pour un type de fichier, il est appelé chaque fois qu’un objet est déplacé ou déposé sur un membre du type de fichier. L’interpréteur de commandes gère l’opération en appelant les méthodes appropriées sur l’interface IDropTarget du gestionnaire.

Les procédures générales d’implémentation et d’inscription d’un gestionnaire d’extensions Shell sont décrites dans Création de gestionnaires d’extensions Shell. Ce document se concentre sur les aspects de l’implémentation spécifiques aux gestionnaires de suppression.

Instructions

Étape 1 : Implémentation des gestionnaires drop

Comme tous les gestionnaires d’extension Shell, les gestionnaires de suppression sont des objets COM (Component Object Model) in-process implémentés en tant que DLL. Ils exportent deux interfaces en plus d’IUnknown : IPersistFile et IDropTarget.

L’interpréteur de commandes initialise le gestionnaire via son interface IPersistFile . Il utilise cette interface pour demander l’identificateur de classe (CLSID) du gestionnaire et lui fournit le nom du fichier. Pour une présentation générale de l’implémentation des gestionnaires d’extensions Shell, y compris l’interface IPersistFile , consultez Création de gestionnaires d’extensions d’interpréteur de commandes.

Une fois le gestionnaire de suppressions initialisé, l’interpréteur de commandes appelle la méthode appropriée sur l’interface IDropTarget du gestionnaire.

Étape 2 : Inscription des gestionnaires de suppression

Les gestionnaires de suppression sont inscrits sous la sous-clé de ce type de fichier.

HKEY_CLASSES_ROOT
   ProgID
      shellex
         DropHandler

Créez une sous-clé de DropHandler nommée pour le gestionnaire et définissez la valeur par défaut de la sous-clé sur la forme de chaîne du GUID CLSID du gestionnaire. Pour une présentation générale de l’inscription des gestionnaires d’extensions Shell, consultez Création de gestionnaires d’extensions Shell.

L’exemple suivant illustre les entrées de Registre qui activent un gestionnaire de suppression pour un exemple de type de fichier .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}

Création de gestionnaires d’extensions d’environnement

IDropTarget

IPersistFile