Share via


ICopyHookW-Schnittstelle (shlobj.h)

Macht eine Methode verfügbar, die einen Kopierhookhandler erstellt. Ein Kopierhakenhandler ist eine Shell-Erweiterung, die bestimmt, ob ein Shellordner oder ein Druckerobjekt verschoben, kopiert, umbenannt oder gelöscht werden kann. Die Shell ruft die ICopyHookW::CopyCallback-Methode auf, bevor einer dieser Vorgänge ausgeführt wird.

Vererbung

Die ICopyHookW-Schnittstelle erbt von der IUnknown-Schnittstelle.

Methoden

Die ICopyHookW-Schnittstelle verfügt über diese Methoden.

 
ICopyHookW::CopyCallback

Bestimmt, ob die Shell einen Ordner oder ein Druckerobjekt verschieben, kopieren, löschen oder umbenennen darf. (Unicode)

Hinweise

Der Kopierhookhandler, bei dem es sich um einen OLE-In-Process-Server (eine DLL) handelt, führt die Aufgabe selbst nicht aus, genehmigt oder lehnt die Aktion jedoch ab. Wenn die Shell die Genehmigung vom Kopierhookhandler erhält, führt sie den Dateisystemvorgang aus. Kopierhookhandler werden nicht über den Erfolg eines Vorgangs informiert, sodass sie keine Aktionen überwachen können, die für Ordnerobjekte ausgeführt werden, es sei denn , FindFirstChangeNotification wird verwendet.

Ein Ordnerobjekt kann über mehrere Kopierhakenhandler verfügen. Auch wenn die Shell beispielsweise bereits über einen kopierhak-Handler verfügt, der für ein bestimmtes Ordnerobjekt registriert ist, können Sie dennoch einen eigenen registrieren. Wenn zwei oder mehr Kopierhookhandler für ein Objekt registriert sind, ruft die Shell einfach jeden von ihnen auf, bevor einer der angegebenen Dateisystemvorgänge ausgeführt wird.

Die Shell initialisiert ICopyHookA direkt, ohne zuerst die IShellExtInit-Schnittstelle zu verwenden.

CopyCallback gibt einen int-Wert zurück, der angibt, ob die Shell den Vorgang ausführen soll. Die Shell ruft jeden für ein Ordnerobjekt registrierten Kopierhookhandler auf, bis alle Handler aufgerufen wurden oder bis einer von ihnen einen anderen Wert als IDYES zurückgegeben hat. Der Handler gibt IDYES zurück, um anzugeben, dass der Vorgang ausgeführt werden soll, oder IDNO oder IDCANCEL, um anzugeben, dass der Vorgang abgebrochen werden soll.

Implementieren Sie einen Kopierhookhandler, wenn Sie steuern möchten, wann oder ob diese Dateisystemvorgänge für ein bestimmtes Objekt ausgeführt werden. Sie können z. B. einen Kopierhookhandler für freigegebene Ordner verwenden.

Sie rufen diese Shell-Erweiterung nicht direkt auf. CopyCallback wird von der Shell aufgerufen, bevor ein Shell-Ordnerobjekt verschoben, kopiert, gelöscht oder umbenannt wird.

Hinweis

Der shlobj.h-Header definiert ICopyHook als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Header shlobj.h