ICopyHookW 接口 (shlobj.h)

公开创建 复制挂钩处理程序的方法。 复制挂钩处理程序是一个 Shell 扩展,用于确定是否可以移动、复制、重命名或删除 Shell 文件夹或打印机对象。 Shell 在执行其中一项操作之前调用 ICopyHookW::CopyCallback 方法。

遗产

ICopyHookW 接口继承自 IUnknown 接口。

方法

ICopyHookW 接口具有这些方法。

 
ICopyHookW::CopyCallback

确定是否允许 Shell 移动、复制、删除或重命名文件夹或打印机对象。 (Unicode)

言论

复制挂钩处理程序(即 OLE 进程内服务器(dll)不执行任务本身,但它确实批准或取消批准该操作。 如果 Shell 收到复制挂钩处理程序的批准,它将执行文件系统操作。 复制挂钩处理程序不会通知操作是否成功,因此,除非使用 findFirstChangeNotification ,否则它们无法监视对文件夹对象执行的操作。

文件夹对象可以有多个复制挂钩处理程序。 例如,即使 Shell 已经为特定文件夹对象注册了复制挂钩处理程序,你仍然可以注册自己的一个。 如果为对象注册了两个或多个复制挂钩处理程序,Shell 只需先调用每个处理程序,然后再执行指定的文件系统操作之一。

Shell 直接初始化 ICopyHookA,而无需先使用 IShellExtInit 接口。

CopyCallback 返回指示 Shell 是否应执行操作的 int 值。 Shell 将调用为文件夹对象注册的每个复制挂钩处理程序,直到调用所有处理程序,或者直到其中一个处理程序返回 IDYES 以外的值为止。 处理程序返回 IDYES 以指定应执行操作,或指定应停止操作的 IDNO 或 IDCANCEL。

在想要控制何时或是否对给定对象执行这些文件系统操作时,实现复制挂钩处理程序。 例如,你可能希望在共享文件夹上使用复制挂钩处理程序。

不直接调用此 Shell 扩展。 CopyCallback 在移动、复制、删除或重命名 Shell 文件夹对象之前由 Shell 调用。

注意

shlobj.h 标头将 ICopyHook 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。

要求

要求 价值
标头 shlobj.h