Вы правы, SHFileOperation чрезвычайно проще в использовании (по сравнению с shellexexuteex), однако поведение этой функции немного отличается.Если вы выполняете операцию SHFileOperation, например копирование или вырезание в приложении, если вы возвращаетесь непосредственно в проводник Windows, пункт контекстного меню «вставка» недоступен.Кажется, оболочка работает не так, как с whellexecuteex.С ShellExecuteEx, выполняемым в приложении и одним файлом, проводник напрямую включает элемент «вставка».
В любом случае, WinApi / ShellApi не очень понятно об этом, так как в итоге существует много способов скопировать файл (s): - SHellExecuteEx с глаголом 'copy' - SHFileOperation - ClipBoard: при имитации события удаления файла ...
Но в любом случае поведение элемента контекста оболочки отмены / возврата аналогично процессу проводника,- ShellExecuteEx хорошо включает функции отмены / повтора, но работает только с файлом синглов (или не документирован); - SHFileOperation позволяет работать со списком файлов (как вы говорили, разделенных # 0, в конце списка двойным # 0., НоКонтекстное меню SHell, по-видимому, не так глубоко, как ShellExecuteEx, связано с этой операцией. - Буфер обмена: также допускает список файлов, но не все действия (только копирование, а не вставка), потому что «вставка», скорее, является своего рода операцией перемещения с перетаскиванием., а не буфер обмена, даже если ShellApi указывает, что он немного похож ... они используют специальные структуры, которые нигде больше не используются ...
Синтез: это не совсем понятно.по крайней мере, 3 способа работы с файлами, но если мы говорим о списке файлов, это менее логично и даже кошмарно: вам приходится иметь дело со старой структурой, которую никто не использует, кроме трех парней из Microsoft, которые все еще работают над функциями оболочки... (или нет).