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


Метод 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