Можете ли вы добавить пользовательское сообщение к предупреждающему сообщению IFileOperation для папки?

#winapi #windows-shell

#winapi #windows-оболочка

Вопрос:

Я использую IFileOperation для удаления файлов и папок. Папки просто говорят, что собираются удалить его, но не предупреждают, что все содержимое также будет удалено (я понимаю, что, возможно, не захочется их считать, если элементов много, но было бы неплохо, если бы была возможность). Я хотел бы добавить это предупреждение. Есть ли какой-то способ? Если нет, могу ли я создать собственное приглашение, но при этом показывать его ход?

ТИА!!

Комментарии:

1. Я не уверен, что понимаю проблему, которую вы пытаетесь решить. Мне трудно представить, как удаление папки не может привести к удалению всего ее содержимого.

2. Вы хотите показать два предупреждения? Вы можете подключать события удаления learn.microsoft.com/en-us/windows/win32/api/shobjidl_core /… также вы уже используете FOF_WANTNUKEWARNING learn.microsoft.com/en-us/windows/win32/api/shobjidl_core /…

3. @SimonMourier да, это выглядит интересно. Мне бы очень хотелось, чтобы в одном приглашении было просто больше предупреждения о том, что все содержимое также будет удалено. Но этот IFileOperationProgressSink выглядит так, как будто это может быть достойным способом (возможно, даже автоответчик и поймать этот хук). Как мне использовать IFileOperationProgressSink? Запрашивать ли его IFileOperation перед PerformOperation() ? Я не использую этот флаг, поскольку предполагаю, что по умолчанию (без подавления), хотя shift-del, похоже, ничего не изменил, всегда корзина.

4. Вы можете использовать его двумя способами. Сначала вы должны создать COM-объект, который реализует IFileOperationProgressSink, а затем передать его в fo->Advise(yourSink) или / и использовать его для каждой операции fo->DeleteItem(item, yourSink) .