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


Метод IFileOperation::SetOperationFlags (shobjidl_core.h)

Задает параметры для текущей операции.

Синтаксис

HRESULT SetOperationFlags(
  [in] DWORD dwOperationFlags
);

Параметры

[in] dwOperationFlags

Тип: DWORD

Флаги, управляющие операцией с файлом. Этот элемент может быть сочетанием следующих флагов. Флаги FOF определяются в Shellapi.h, а флаги FOFX — в Shobjidl.h.

Примечание Если этот метод не вызывается, по умолчанию используется значение FOF_ALLOWUNDO | FOF_NOCONFIRMMKDIR.
 

FOF_ALLOWUNDO (0x0040)

По возможности сохраните сведения об отмене.

До Windows Vista операции можно было отменить только из того же процесса, который выполнял исходную операцию.

В Системах Windows Vista и более поздних версий область отмены является сеансом пользователя. Любой процесс, запущенный в сеансе пользователя, может отменить другую операцию. Состояние отмены хранится в процессе Explorer.exe, и пока этот процесс выполняется, он может координировать функции отмены.

Если параметр исходного файла не содержит полный путь и имена файлов, этот флаг игнорируется.

FOF_FILESONLY (0x0080)

Выполняйте операцию только с файлами (а не с папками), если указано имя файла с подстановочными знаками (.).

FOF_NOCONFIRMATION (0x0010)

Ответьте да для всех отображаемых диалоговых окон.

FOF_NOCONFIRMMKDIR (0x0200)

Не подтверждать создание новой папки, если операция требует ее создания.

FOF_NO_CONNECTED_ELEMENTS (0x2000)

Не перемещайте подключенные элементы в группу. Перемещайте только указанные файлы.

FOF_NOCOPYSECURITYATTRIBS (0x0800)

Не копируйте атрибуты безопасности элемента.

FOF_NOERRORUI (0x0400)

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

FOF_NORECURSION (0x1000)

Работать только в локальной папке. Не избежать рекурсивной работы в подкаталогах.

FOF_RENAMEONCOLLISION (0x0008)

Присвойте элементу новое имя в операции перемещения, копирования или переименования, если элемент с целевым именем уже существует.

FOF_SILENT (0x0004)

Диалоговое окно хода выполнения не отображается.

FOF_WANTNUKEWARNING (0x4000)

Отправьте предупреждение, если файл или папка уничтожаются во время операции удаления, а не перезапускается. Этот флаг частично переопределяет FOF_NOCONFIRMATION.

FOFX_ADDUNDORECORD (0x20000000)

Представлено в Windows 8. Операция с файлом была вызвана пользователем и должна быть помещена в стек отмены. Этот флаг предпочтителен для FOF_ALLOWUNDO.

FOFX_NOSKIPJUNCTIONS (0x00010000)

Перейдите к разделу Соединения пространств имен оболочки. По умолчанию соединения не вводятся. Дополнительные сведения о соединениях см. в разделе Указание расположения расширения пространства имен.

По возможности создайте жесткую ссылку, а не новый экземпляр файла в назначении.

FOFX_SHOWELEVATIONPROMPT (0x00040000)

Если для операции требуются повышенные права, а для флага FOF_NOERRORUI задано отключение пользовательского интерфейса ошибки, все равно отобразится запрос пользовательского интерфейса UAC.

FOFX_EARLYFAILURE (0x00100000)

Если FOFX_EARLYFAILURE заданы вместе с FOF_NOERRORUI, весь набор операций останавливается при обнаружении любой ошибки в любой операции. Этот флаг действителен, только если задано FOF_NOERRORUI.

FOFX_PRESERVEFILEEXTENSIONS (0x00200000)

Переименуйте конфликты таким образом, чтобы сохранить расширения имен файлов. Этот флаг действителен, только если задано FOF_RENAMEONCOLLISION.

FOFX_KEEPNEWERFILE (0x00400000)

При возникновении конфликта сохраните новый файл или папку на основе свойства Дата изменения. Это выполняется автоматически без пользовательского интерфейса запроса.

FOFX_NOCOPYHOOKS (0x00800000)

Не используйте перехватчики копирования.

FOFX_NOMINIMIZEBOX (0x01000000)

Не допускайте свертывание диалогового окна хода выполнения.

FOFX_MOVEACLSACROSSVOLUMES (0x02000000)

Скопируйте атрибуты безопасности исходного элемента в целевой элемент при выполнении операции перемещения между томами. Без этого флага целевой элемент получает атрибуты безопасности своей новой папки.

FOFX_DONTDISPLAYSOURCEPATH (0x04000000)

Не отображайте путь к исходному элементу в диалоговом окне хода выполнения.

FOFX_DONTDISPLAYDESTPATH (0x08000000)

Не отображайте путь к целевому элементу в диалоговом окне хода выполнения.

FOFX_RECYCLEONDELETE (0x00080000)

Представлено в Windows 8. При удалении файла отправьте его в корзину, а не окончательно.

FOFX_REQUIREELEVATION (0x10000000)

Представлено в Windows Vista с пакетом обновления 1 (SP1). Пользователь ожидает требования для повышения прав, поэтому не выводит диалоговое окно с запросом подтверждения повышения прав.

FOFX_COPYASDOWNLOAD (0x40000000)

Представлено в Windows 7. В диалоговом окне хода выполнения отображается сообщение "Скачивание " вместо копирования .

FOFX_DONTDISPLAYLOCATIONS (0x80000000)

Представлено в Windows 7. Не отображайте строку расположения в диалоговом окне хода выполнения.

Возвращаемое значение

Тип: HRESULT

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Установите эти флаги перед вызовом IFileOperation::P erformOperations , чтобы определить параметры для любых выполняемых операций, таких как копирование, удаление или переименование.

Требования

Требование Значение
Минимальная версия клиента Windows Vista, Windows 7 [только классические приложения]
Минимальная версия сервера Windows Server 2008 R2 [только классические приложения]
Целевая платформа Windows
Header shobjidl_core.h (включая Shobjidl.h)