Поделиться через


Интерфейс ICopyHookW (shlobj.h)

Предоставляет метод, который создает обработчик перехватчика копирования. Обработчик перехватчика копирования — это расширение оболочки, определяющее, можно ли перемещать, копировать, переименовать или удалить папку оболочки или объект принтера. Оболочка вызывает метод ICopyHookW::CopyCallback перед выполнением одной из этих операций.

Наследство

Интерфейс ICopyHookW наследует от интерфейса IUnknown.

Методика

Интерфейс ICopyHookW имеет эти методы.

 
ICopyHookW::CopyCallback

Определяет, разрешено ли оболочке перемещать, копировать, удалять или переименовывать папку или объект принтера. (Юникод)

Замечания

Обработчик перехватчика копирования, который является сервером в процессе OLE (dll), не выполняет задачу, но утверждает или не одобряет действие. Если оболочка получает утверждение от обработчика перехватчика копирования, она выполняет операцию файловой системы. Обработчики перехватчиков копирования не сообщают об успешном выполнении операции, поэтому они не могут отслеживать действия, выполняемые для объектов папок, если не используется FindFirstChangeNotification.

Объект папки может иметь несколько обработчиков перехватчика копирования. Например, даже если в оболочке уже есть обработчик перехватчика копирования, зарегистрированный для определенного объекта папки, вы по-прежнему можете зарегистрировать один из собственных. Если для объекта зарегистрированы два или более обработчиков перехватчика копирования, оболочка просто вызывает каждую из них перед выполнением одной из указанных операций файловой системы.

Оболочка инициализирует ICopyHookA напрямую без использования интерфейса IShellExtInit.

CopyCallback возвращает целое значение, указывающее, должна ли оболочка выполнять операцию. Оболочка вызывает каждый обработчик перехватчика копирования, зарегистрированный для объекта папки, пока все обработчики не будут вызваны или пока один из них не вернул значение, отличное от IDYES. Обработчик возвращает IDYES, чтобы указать, что операция должна выполняться, или IDNO или IDCANCEL, чтобы указать, что операция должна быть прекращена.

Реализуйте обработчик перехватчика копирования, когда вы хотите управлять тем, когда или если эти операции файловой системы выполняются для данного объекта. Например, можно использовать обработчик перехватчика копирования в общих папках.

Вы не вызываете это расширение оболочки напрямую. CopyCallback вызывается оболочкой перед перемещением, копированием, удалением или переименованием объекта папки Shell.

Заметка

Заголовок shlobj.h определяет ICopyHook как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
заголовка shlobj.h