ICopyHook

【勇芳软件工作室】汉化HomePreviousNext

ICopyHook接口是一个基于COM的界面,用于创建一个复制钩子处理程序(一个shell扩展),用于确定是否可以移动,复制,重命名或删除shell文件夹或打印机对象。在执行其中一个操作之前,shell调用ICopyHook::CopyCallback.

复制钩子处理程序(即OLE进程内服务器(DLL))不执行任务本身,但会批准或不批准操作。如果shell从复制钩子处理程序获得批准,则它执行文件系统操作。复制钩子处理程序不会被通知操作的成功,所以不能监视对文件夹对象的操作,除非通过FindFirstChangeNotify.

文件夹对象可以有多个复制钩子处理程序。例如,即使shell已经具有为特定文件夹对象注册的复制钩子处理程序,您仍然可以注册自己的一个。如果为对象注册了两个或多个复制钩子处理程序,则在执行指定的文件系统操作之前,shell会简单地调用它们。

该shell直接初始化ICopyHook,而不先使用IShellExtInitIPersistFile接口。

CopyCallback返回一个整数值,指示shell是否应该执行该操作。shell将调用为文件夹对象注册的每个复制钩子处理程序,直到所有处理程序被调用或其中一个返回了除IDYES之外的值。处理程序还可以返回IDYES以指定应执行操作,或IDNO或IDCANCEL来指定应停止该操作。

何时实施

实现复制钩子处理程序,例如对于共享文件夹,当您想要能够控制何时或如果。这些文件系统操作在给定对象上执行。

何时使用

你不直接调用这个shell扩展。ICopyHook::CopyCallback在移动,复制,重命名或删除shell文件夹对象之前由shell调用。

Vtable Order中的方法

IUnknown方法描述
QueryInterface返回指向支持的接口的指针。
AddRef增加引用计数。
发布减少引用计数。

ICopyHook方法描述
CopyCallback确定是否允许或禁止文件夹对象上的移动,复制,删除或重命名操作。