Erstellen von Abbruchhandlern

Standardmäßig sind Dateien keine Abbruchziele. Sie können die Member eines Dateityps zu Abbruchzielen machen, indem Sie einen Abbruchhandler implementieren und registrieren.

Wenn ein Abbruchhandler für einen Dateityp registriert ist, wird er immer dann aufgerufen, wenn ein Objekt auf einen Member des Dateityps gezogen oder gelöscht wird. Die Shell verwaltet den Vorgang, indem die entsprechenden Methoden für die IDropTarget-Schnittstelle des Handlers aufgerufen werden.

Die allgemeinen Verfahren zum Implementieren und Registrieren eines Shell-Erweiterungshandlers werden unter Creating Shell Extension Handlers (Erstellen von Shellerweiterungshandlern) erläutert. Dieses Dokument konzentriert sich auf die Aspekte der Implementierung, die für Abbruchhandler spezifisch sind.

Instructions

Schritt 1: Implementieren von Abbruchhandlern

Wie alle Shell-Erweiterungshandler sind Abbruchhandler In-Process-Component Object Model (COM)-Objekte, die als DLLs implementiert sind. Sie exportieren zusätzlich zu IUnknownzwei Schnittstellen: IPersistFile und IDropTarget.

Die Shell initialisiert den Handler über die IPersistFile-Schnittstelle. Sie verwendet diese Schnittstelle, um den Klassenbezeichner (CLSID) des Handlers an fordern und mit dem Namen der Datei zur Verfügung zu stellen. Eine allgemeine Erörterung der Implementierung von Shell-Erweiterungshandlern, einschließlich der IPersistFile-Schnittstelle, finden Sie unter Creating Shell Extension Handlers.

Nachdem der Abbruchhandler initialisiert wurde, ruft die Shell die entsprechende Methode für die IDropTarget-Schnittstelle des Handlers auf.

Schritt 2: Registrieren von Abbruchhandlern

Abbruchhandler werden unter dem Unterschlüssel dieses Dateityps registriert.

HKEY_CLASSES_ROOT
   ProgID
      shellex
         DropHandler

Erstellen Sie einen Unterschlüssel von DropHandler mit dem Namen für den Handler, und legen Sie den Standardwert des Unterschlüssels auf die Zeichenfolgenform der CLSID-GUID des Handlers fest. Eine allgemeine Erörterung des Registrierens von Shell-Erweiterungshandlern finden Sie unter Creating Shell Extension Handlers.

Das folgende Beispiel veranschaulicht Registrierungseinträge, die einen Abbruchhandler für einen .myp-Beispieldateityp aktivieren.

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}

Erstellen von Shellerweiterungshandlern

Idroptarget

Ipersistfile