ICopyHook
The ICopyHook
interface is a COM-based interface used to create a copy hook handler, a shell
extension, that determines whether it is all right to move, copy, rename, or
delete a shell folder or printer object. The shell calls ICopyHook::CopyCallback
The copy hook
handler, which is an OLE in-process server (a DLL), does not perform the task
itself, but does approve or disapprove the action. If the shell receives
approval from the copy hook handler, it performs the file system operation.
Copy hook handlers are not informed about the success of an operation, so
cannot monitor actions taken on folder objects, except via FindFirstChangeNotify.
A folder
object can have multiple copy hook handlers. For example, even if the shell
already has a copy hook handler registered for a particular folder object, you
can still register one of your own. If two or more copy hook handlers are
registered for an object, the shell simply calls each of them before performing
one the specified file system operations.
The shell initializes
ICopyHook directly, without using the IShellExtInit
CopyCallback returns an integer value that indicates whether or
not the shell should perform the operation. The shell will call each copy hook
handler registered for a folder object until either all the handlers have been
called or one of them has returned a value other than IDYES. The handler can
also return IDYES to specify that the operation should be performed, or IDNO or
IDCANCEL to specify that the operation should be discontinued.
When to Implement
Implement a
copy hook handler, for example for shared folders, when you want to be able to
control when, or if. these file system operations are performed on a given
object.
When to Use
You don t call
this shell extension directly. ICopyHook::CopyCallback is called by the
shell prior to moving, copying, renaming, or deleting a shell folder object.
Methods in Vtable Order
IUnknown
Methods |
Description |
QueryInterface |
Returns
pointers to supported interfaces. |
AddRef |
Increments
reference count. |
Release |
Decrements
reference count. |
ICopyHook
Methods |
Description |
CopyCallback |
Determines
whether a move, copy, delete, or rename operation on a folder object should
be allowed or disallowed. |