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}