Метод ICopyHookA::CopyCallback (shlobj.h)
Определяет, будет ли оболочке разрешено перемещать, копировать, удалять или переименовывать объект папки или принтера.
Синтаксис
UINT CopyCallback(
HWND hwnd,
UINT wFunc,
UINT wFlags,
PCSTR pszSrcFile,
DWORD dwSrcAttribs,
PCSTR pszDestFile,
DWORD dwDestAttribs
);
Параметры
hwnd
Дескриптор окна, который обработчик перехватчика копирования должен использовать в качестве родительского элемента для любых элементов пользовательского интерфейса, которые обработчик может потребоваться отобразить. Если FOF_SILENT указано в wFunc, метод должен игнорировать этот параметр.
wFunc
Выполняемая операция. Этот параметр может быть одним из значений, перечисленных в элементе wFunc структуры SHFILEOPSTRUCT .
wFlags
Флаги, управляющие операцией. Этот параметр может иметь одно или несколько значений, перечисленных в элементе fFlags структуры SHFILEOPSTRUCT .
Для перехватчиков копирования принтера это значение является одним из следующих значений, определенных в Shellapi.h.
Значение | Описание |
---|---|
PO_DELETE | Принтер удаляется. pszSrcFile указывает на полный путь к указанному принтеру. |
PO_RENAME | Принтер переименовываются. Параметр pszSrcFile указывает на новое имя принтера. Параметр pszDestFile указывает на старое имя. |
PO_PORTCHANGE | Не поддерживается. Не используйте. |
PO_REN_PORT | Не поддерживается. Не используйте. |
pszSrcFile
Указатель на строку, содержащую имя исходной папки.
dwSrcAttribs
Атрибуты исходной папки. Этот параметр может быть сочетанием любого флага атрибута файла (FILE_ATTRIBUTE_*), определенных в файлах заголовков. См. раздел Константы атрибутов файлов.
pszDestFile
Указатель на строку, содержащую имя конечной папки.
dwDestAttribs
Атрибуты конечной папки. Этот параметр может быть сочетанием любого флага атрибута файла (FILE_ATTRIBUTE_*), определенных в файлах заголовков. См. раздел Константы атрибутов файлов.
Возвращаемое значение
Возвращает целочисленное значение, указывающее, должна ли оболочка выполнять операцию. Это может быть:
Значение | Описание |
---|---|
IDYES | Разрешает операцию. |
IDNO | Запрещает операцию с этой папкой, но продолжается с другими утвержденными операциями (например, операцией пакетного копирования). |
IDCANCEL | Предотвращает текущую операцию и отменяет все ожидающие операции. |
Комментарии
Оболочка вызывает каждый обработчик перехватчика копирования, зарегистрированный для объекта папки или принтера, пока не будут вызваны все обработчики или пока один из них не вернет IDNO или IDCANCEL.
Обработчики перехватчиков копирования для папок регистрируются под следующим ключом:
HKEY_CLASSES_ROOT/Directory/Shellex/CopyHookHandlers/your_copyhook/{значение CLSID copyhook}
Обработчики перехватчиков копирования для принтеров регистрируются в следующем ключе.
HKEY_CLASSES_ROOT/Printers/Shellex/CopyHookHandlers/your_copyhook/{значение CLSID copyhook}
При вызове этого метода оболочка инициализирует интерфейс ICopyHookA напрямую без использования интерфейса IShellExtInit .
Требования
Требование | Значение |
---|---|
Заголовок | shlobj.h |