From 8ef8e41cc9483f7665666641cfdd48f5d71a1a7c Mon Sep 17 00:00:00 2001 From: Denis Malikov Date: Wed, 15 Dec 2021 21:42:47 +0700 Subject: [PATCH] [SHELL32] Show error message if move or copy operation failed (#4155) This allows user to know when there is not enough space on the target media, when there is no permissions for the operation, or some other error. CORE-9239 --- dll/win32/shell32/lang/bg-BG.rc | 2 ++ dll/win32/shell32/lang/ca-ES.rc | 2 ++ dll/win32/shell32/lang/cs-CZ.rc | 2 ++ dll/win32/shell32/lang/da-DK.rc | 2 ++ dll/win32/shell32/lang/de-DE.rc | 2 ++ dll/win32/shell32/lang/el-GR.rc | 2 ++ dll/win32/shell32/lang/en-GB.rc | 2 ++ dll/win32/shell32/lang/en-US.rc | 2 ++ dll/win32/shell32/lang/es-ES.rc | 2 ++ dll/win32/shell32/lang/et-EE.rc | 2 ++ dll/win32/shell32/lang/fi-FI.rc | 2 ++ dll/win32/shell32/lang/fr-FR.rc | 2 ++ dll/win32/shell32/lang/he-IL.rc | 2 ++ dll/win32/shell32/lang/hi-IN.rc | 2 ++ dll/win32/shell32/lang/hu-HU.rc | 2 ++ dll/win32/shell32/lang/id-ID.rc | 2 ++ dll/win32/shell32/lang/it-IT.rc | 2 ++ dll/win32/shell32/lang/ja-JP.rc | 2 ++ dll/win32/shell32/lang/ko-KR.rc | 2 ++ dll/win32/shell32/lang/nl-NL.rc | 2 ++ dll/win32/shell32/lang/no-NO.rc | 2 ++ dll/win32/shell32/lang/pl-PL.rc | 2 ++ dll/win32/shell32/lang/pt-BR.rc | 2 ++ dll/win32/shell32/lang/pt-PT.rc | 2 ++ dll/win32/shell32/lang/ro-RO.rc | 2 ++ dll/win32/shell32/lang/ru-RU.rc | 6 ++-- dll/win32/shell32/lang/sk-SK.rc | 2 ++ dll/win32/shell32/lang/sl-SI.rc | 2 ++ dll/win32/shell32/lang/sq-AL.rc | 2 ++ dll/win32/shell32/lang/sv-SE.rc | 2 ++ dll/win32/shell32/lang/tr-TR.rc | 2 ++ dll/win32/shell32/lang/uk-UA.rc | 2 ++ dll/win32/shell32/lang/zh-CN.rc | 2 ++ dll/win32/shell32/lang/zh-TW.rc | 2 ++ dll/win32/shell32/shlfileop.cpp | 51 +++++++++++++++++++++++++++++++++ dll/win32/shell32/shresdef.h | 2 ++ 36 files changed, 123 insertions(+), 2 deletions(-) diff --git a/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc index 29053c2ddcd..703d1837dad 100644 --- a/dll/win32/shell32/lang/bg-BG.rc +++ b/dll/win32/shell32/lang/bg-BG.rc @@ -806,6 +806,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc index 6262d5a19ee..12063262bc3 100644 --- a/dll/win32/shell32/lang/ca-ES.rc +++ b/dll/win32/shell32/lang/ca-ES.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc index dafe2216d03..187c0c2c892 100644 --- a/dll/win32/shell32/lang/cs-CZ.rc +++ b/dll/win32/shell32/lang/cs-CZ.rc @@ -811,6 +811,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Složku '%1' nebylo možné vytvořit" IDS_CREATEFOLDER_CAPTION "Složku nebylo možné vytvořit" diff --git a/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc index 3e6baa9b2ae..6f41e1b47df 100644 --- a/dll/win32/shell32/lang/da-DK.rc +++ b/dll/win32/shell32/lang/da-DK.rc @@ -811,6 +811,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc index f176b284e9b..e9aa547ecff 100644 --- a/dll/win32/shell32/lang/de-DE.rc +++ b/dll/win32/shell32/lang/de-DE.rc @@ -806,6 +806,8 @@ BEGIN IDS_COPYERRORSAME "'%s' kann nicht kopiert werden: Quell- und Zieldatei sind identisch." IDS_MOVEERRORSUBFOLDER "'%s' kann nicht verschoben werden: Der Zielorder ist ein Unterordner des Quellordners." IDS_COPYERRORSUBFOLDER "'%s' kann nicht kopiert werden: Der Zielorder ist ein Unterordner des Quellordners." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED " Der Ordner kann nicht erstellt werden '%1'" IDS_CREATEFOLDER_CAPTION " Der Ordner kann nicht erstellt werden." diff --git a/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc index 813d78e3989..3aaa46cf184 100644 --- a/dll/win32/shell32/lang/el-GR.rc +++ b/dll/win32/shell32/lang/el-GR.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc index e8400de4545..cc4dad3cbe3 100644 --- a/dll/win32/shell32/lang/en-GB.rc +++ b/dll/win32/shell32/lang/en-GB.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc index 5d36961e0cd..757e4ea2bc3 100644 --- a/dll/win32/shell32/lang/en-US.rc +++ b/dll/win32/shell32/lang/en-US.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc index 596203601f0..30437706199 100644 --- a/dll/win32/shell32/lang/es-ES.rc +++ b/dll/win32/shell32/lang/es-ES.rc @@ -814,6 +814,8 @@ BEGIN IDS_COPYERRORSAME "Imposible copiar '%s': El archivo de origen y el de destino son el mismo." IDS_MOVEERRORSUBFOLDER "Imposible mover '%s': La carpeta de destino es un subdirectorio de la de origen." IDS_COPYERRORSUBFOLDER "Imposible copiar '%s': La carpeta de destino es un subdirectorio de la de origen." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "No se pudo crear la carpeta '%1'" IDS_CREATEFOLDER_CAPTION "No se pudo crear la carpeta" diff --git a/dll/win32/shell32/lang/et-EE.rc b/dll/win32/shell32/lang/et-EE.rc index e36e88aabc4..d77888fa7bb 100644 --- a/dll/win32/shell32/lang/et-EE.rc +++ b/dll/win32/shell32/lang/et-EE.rc @@ -812,6 +812,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Ei saa luua kausta '%1'" IDS_CREATEFOLDER_CAPTION "Ei saa kausta luua" diff --git a/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc index c37618c3af9..a20594097ed 100644 --- a/dll/win32/shell32/lang/fi-FI.rc +++ b/dll/win32/shell32/lang/fi-FI.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc index 86b1b69717e..fdcb8e66a01 100644 --- a/dll/win32/shell32/lang/fr-FR.rc +++ b/dll/win32/shell32/lang/fr-FR.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Impossible de copier '%s' : Les noms des fichiers source et destination sont identiques." IDS_MOVEERRORSUBFOLDER "Impossible de déplacer '%s' : Le dossier de destination est un sous-dossier du dossier source." IDS_COPYERRORSUBFOLDER "Impossible de copier '%s' : Le dossier de destination est un sous-dossier du dossier source." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Impossible de créer le dossier '%1'" IDS_CREATEFOLDER_CAPTION "Impossible de créer un dossier" diff --git a/dll/win32/shell32/lang/he-IL.rc b/dll/win32/shell32/lang/he-IL.rc index b8e3ce71d08..f086b8abb10 100644 --- a/dll/win32/shell32/lang/he-IL.rc +++ b/dll/win32/shell32/lang/he-IL.rc @@ -807,6 +807,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/hi-IN.rc b/dll/win32/shell32/lang/hi-IN.rc index cb6ad494f48..3096d6999a3 100644 --- a/dll/win32/shell32/lang/hi-IN.rc +++ b/dll/win32/shell32/lang/hi-IN.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "फ़ोल्डर '%1' बनाने में असमर्थ" IDS_CREATEFOLDER_CAPTION "फ़ोल्डर बनाने में असमर्थ" diff --git a/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc index c2ec4d550d6..45febcd796d 100644 --- a/dll/win32/shell32/lang/hu-HU.rc +++ b/dll/win32/shell32/lang/hu-HU.rc @@ -804,6 +804,8 @@ BEGIN IDS_COPYERRORSAME "'%s' nem másolható: a forrás- és célfájl ugyanaz." IDS_MOVEERRORSUBFOLDER "'%s' nem mozgatható: a célmappa a forrásmappa egyik almappája." IDS_COPYERRORSUBFOLDER "'%s' nem másolható: a célmappa a forrásmappa egyik almappája." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Nem sikerült a(z) '%1' mappa létrehozása." IDS_CREATEFOLDER_CAPTION "Nem sikerült létrehozni a mappát" diff --git a/dll/win32/shell32/lang/id-ID.rc b/dll/win32/shell32/lang/id-ID.rc index 4c8e9a72e04..03a6d9a123e 100644 --- a/dll/win32/shell32/lang/id-ID.rc +++ b/dll/win32/shell32/lang/id-ID.rc @@ -802,6 +802,8 @@ BEGIN IDS_COPYERRORSAME "Tidak bisa menyalin '%s': Nama berkas asal dan tujuan sama." IDS_MOVEERRORSUBFOLDER "Tidak bisa memindahkan '%s': Folder tujuan merupakan subfolder dari folder asal." IDS_COPYERRORSUBFOLDER "Tidak bisa menyalin '%s': Folder tujuan merupakan subfolder dari folder asal." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Tidak bisa membuat folder folder '%1'" IDS_CREATEFOLDER_CAPTION "Tidak bisa membuat folder" diff --git a/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc index 6f1093cd913..615ff750298 100644 --- a/dll/win32/shell32/lang/it-IT.rc +++ b/dll/win32/shell32/lang/it-IT.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc index 763f17f4779..ff6eb6994a1 100644 --- a/dll/win32/shell32/lang/ja-JP.rc +++ b/dll/win32/shell32/lang/ja-JP.rc @@ -802,6 +802,8 @@ BEGIN IDS_COPYERRORSAME "コピーできません '%s': コピー元とコピー先のファイル名が同じです。" IDS_MOVEERRORSUBFOLDER "移動できません '%s': 移動先のフォルダは移動元のフォルダのサブフォルダです。" IDS_COPYERRORSUBFOLDER "コピーできません '%s': コピー先のフォルダはコピー元のフォルダのサブフォルダです。" + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "フォルダ '%1' を作成できません" IDS_CREATEFOLDER_CAPTION "フォルダを作成できません" diff --git a/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc index 8939d0e7947..8f77796c636 100644 --- a/dll/win32/shell32/lang/ko-KR.rc +++ b/dll/win32/shell32/lang/ko-KR.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc index 16cf100515b..d86abbe3566 100644 --- a/dll/win32/shell32/lang/nl-NL.rc +++ b/dll/win32/shell32/lang/nl-NL.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc index 086d403e6da..7eaca4b45e9 100644 --- a/dll/win32/shell32/lang/no-NO.rc +++ b/dll/win32/shell32/lang/no-NO.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc index 9214d71d909..dec9704c99b 100644 --- a/dll/win32/shell32/lang/pl-PL.rc +++ b/dll/win32/shell32/lang/pl-PL.rc @@ -811,6 +811,8 @@ BEGIN IDS_COPYERRORSAME "Nie można skopiować '%s': Nazwy plików źródłowego i docelowego są takie same." IDS_MOVEERRORSUBFOLDER "Nie można przenieść '%s': Folder docelowy jest podfolderem folderu źródłowego." IDS_COPYERRORSUBFOLDER "Nie można skopiować '%s': Folder docelowy jest podfolderem folderu źródłowego." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Nie można utworzyć folderu '%1'" IDS_CREATEFOLDER_CAPTION "Nie można utworzyć folderu" diff --git a/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc index 614f1ef8dc0..922a741bb01 100644 --- a/dll/win32/shell32/lang/pt-BR.rc +++ b/dll/win32/shell32/lang/pt-BR.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc index 2d58a03cd79..84ce916ffa8 100644 --- a/dll/win32/shell32/lang/pt-PT.rc +++ b/dll/win32/shell32/lang/pt-PT.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Impossivel copiar '%s': Os nomes dos arquivos de origem e de destino são os mesmos." IDS_MOVEERRORSUBFOLDER "Impossivel mover '%s': A pasta de destino é uma subpasta da pasta de origem." IDS_COPYERRORSUBFOLDER "Impossivel copiar '%s': A pasta de destino é uma subpasta da pasta de origem." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Impossivel criar pasta '%1'" IDS_CREATEFOLDER_CAPTION "Impossivel criar pasta" diff --git a/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc index 1de40d0d214..52262c0e66e 100644 --- a/dll/win32/shell32/lang/ro-RO.rc +++ b/dll/win32/shell32/lang/ro-RO.rc @@ -807,6 +807,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Nu poate fi creat un dosar cu numele „%1”" IDS_CREATEFOLDER_CAPTION "Nu poate fi creat dosar" diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc index 8c8fdcdc7b7..fd4b752c8b8 100644 --- a/dll/win32/shell32/lang/ru-RU.rc +++ b/dll/win32/shell32/lang/ru-RU.rc @@ -805,13 +805,15 @@ BEGIN IDS_OPENFILELOCATION "Открыть &расположение объекта" IDS_SENDTO_MENU "Отправит&ь" - IDS_MOVEERRORTITLE "Error Moving File or Folder" - IDS_COPYERRORTITLE "Error Copying File or Folder" + IDS_MOVEERRORTITLE "Ошибка при перемещении папки или файла" + IDS_COPYERRORTITLE "Ошибка при копировании папки или файла" IDS_MOVEERRORSAMEFOLDER "Cannot move '%s': The destination folder is the same as the source folder." IDS_MOVEERRORSAME "Cannot move '%s': The source and destination file names are the same." IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Не удаётся переместить '%s': %s" + IDS_COPYERROR "Не удаётся скопировать '%s': %s" IDS_CREATEFOLDER_DENIED "Невозможно создать папку '%1'" IDS_CREATEFOLDER_CAPTION "Невозможно создать папку" diff --git a/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc index 2bfb217380d..f880a915846 100644 --- a/dll/win32/shell32/lang/sk-SK.rc +++ b/dll/win32/shell32/lang/sk-SK.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc index a7f42e94382..d2a99c525e6 100644 --- a/dll/win32/shell32/lang/sl-SI.rc +++ b/dll/win32/shell32/lang/sl-SI.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc index 32c275cc326..bb63c6f5f8c 100644 --- a/dll/win32/shell32/lang/sq-AL.rc +++ b/dll/win32/shell32/lang/sq-AL.rc @@ -809,6 +809,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Unable to create the folder '%1'" IDS_CREATEFOLDER_CAPTION "Unable to create folder" diff --git a/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc index 915ef081f52..5fd6a37ceac 100644 --- a/dll/win32/shell32/lang/sv-SE.rc +++ b/dll/win32/shell32/lang/sv-SE.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Kunde inte skapa mappen '%1'" IDS_CREATEFOLDER_CAPTION "Kunde inte skapa mapp" diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc index 52d060c06d9..aaaf53eabd4 100644 --- a/dll/win32/shell32/lang/tr-TR.rc +++ b/dll/win32/shell32/lang/tr-TR.rc @@ -807,6 +807,8 @@ BEGIN IDS_COPYERRORSAME "'%s' kopyalanamıyor: Kaynak ve hedef dosya adları aynı." IDS_MOVEERRORSUBFOLDER "'%s' taşınamıyor: Hedef dizin, kaynak dizinin bir alt dizinidir." IDS_COPYERRORSUBFOLDER "'%s' kopyalanamıyor: Hedef dizin, kaynak dizinin bir alt dizinidir." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED """%1"" dizini oluşturulamıyor." IDS_CREATEFOLDER_CAPTION "Dizin Oluşturulamıyor" diff --git a/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc index 6a465c79edf..e03599d3be3 100644 --- a/dll/win32/shell32/lang/uk-UA.rc +++ b/dll/win32/shell32/lang/uk-UA.rc @@ -805,6 +805,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "Не вдалося створити папку '%1'" IDS_CREATEFOLDER_CAPTION "Не вдалося створити папку" diff --git a/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc index cafd0a4dff4..42ae713d7ef 100644 --- a/dll/win32/shell32/lang/zh-CN.rc +++ b/dll/win32/shell32/lang/zh-CN.rc @@ -813,6 +813,8 @@ BEGIN IDS_COPYERRORSAME "Cannot copy '%s': The source and destination file names are the same." IDS_MOVEERRORSUBFOLDER "Cannot move '%s': The destination folder is a subfolder of the source folder." IDS_COPYERRORSUBFOLDER "Cannot copy '%s': The destination folder is a subfolder of the source folder." + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "无法创建文件夹 '%1'" IDS_CREATEFOLDER_CAPTION "无法创建文件夹" diff --git a/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc index 064076cd7a5..8e1e75b9d01 100644 --- a/dll/win32/shell32/lang/zh-TW.rc +++ b/dll/win32/shell32/lang/zh-TW.rc @@ -813,6 +813,8 @@ BEGIN IDS_COPYERRORSAME "無法複製「%s」:來源及目的地的檔案名稱相同。" IDS_MOVEERRORSUBFOLDER "無法移動「%s」:目的資料夾是來源資料夾的子資料夾。" IDS_COPYERRORSUBFOLDER "無法複製「%s」:目的資料夾是來源資料夾的子資料夾。" + IDS_MOVEERROR "Cannot move '%s': %s" + IDS_COPYERROR "Cannot copy '%s': %s" IDS_CREATEFOLDER_DENIED "無法建立資料夾「%1」" IDS_CREATEFOLDER_CAPTION "無法建立資料夾" diff --git a/dll/win32/shell32/shlfileop.cpp b/dll/win32/shell32/shlfileop.cpp index 8fd4179ba93..59aa0cf2b09 100644 --- a/dll/win32/shell32/shlfileop.cpp +++ b/dll/win32/shell32/shlfileop.cpp @@ -663,6 +663,48 @@ EXTERN_C DWORD WINAPI Win32DeleteFileW(LPCWSTR path) return (SHNotifyDeleteFileW(NULL, path) == ERROR_SUCCESS); } +#ifdef __REACTOS__ +/************************************************************************ + * CheckForError [internal] + * + * Show message box if operation failed + * + * PARAMS + * op [I] File Operation context + * error [I] Error code + * src [I] Source file full name + * + */ +static DWORD CheckForError(FILE_OPERATION *op, DWORD error, LPCWSTR src) +{ + CStringW strTitle, strMask, strText; + LPWSTR lpMsgBuffer; + + if (error == ERROR_SUCCESS || (op->req->fFlags & (FOF_NOERRORUI | FOF_SILENT))) + goto exit; + + strTitle.LoadStringW(op->req->wFunc == FO_COPY ? IDS_COPYERRORTITLE : IDS_MOVEERRORTITLE); + + FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, + NULL, + error, + MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), + (LPWSTR)&lpMsgBuffer, + 0, + NULL); + + strText.Format(op->req->wFunc == FO_COPY ? IDS_COPYERROR : IDS_MOVEERROR, + PathFindFileNameW(src), + lpMsgBuffer); + + MessageBoxW(op->req->hwnd, strText, strTitle, MB_ICONERROR); + LocalFree(lpMsgBuffer); + +exit: + return error; +} +#endif + /************************************************************************ * SHNotifyMoveFile [internal] * @@ -710,7 +752,12 @@ static DWORD SHNotifyMoveFileW(FILE_OPERATION *op, LPCWSTR src, LPCWSTR dest, BO SHChangeNotify(isdir ? SHCNE_RMDIR : SHCNE_DELETE, SHCNF_PATHW, src, NULL); return ERROR_SUCCESS; } + +#ifdef __REACTOS__ + return CheckForError(op, GetLastError(), src); +#else return GetLastError(); +#endif } /************************************************************************ @@ -757,7 +804,11 @@ static DWORD SHNotifyCopyFileW(FILE_OPERATION *op, LPCWSTR src, LPCWSTR dest, BO return ERROR_SUCCESS; } +#ifdef __REACTOS__ + return CheckForError(op, GetLastError(), src); +#else return GetLastError(); +#endif } /************************************************************************* diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h index dcad860d37f..b6bb348d2ba 100644 --- a/dll/win32/shell32/shresdef.h +++ b/dll/win32/shell32/shresdef.h @@ -250,6 +250,8 @@ #define IDS_COPYERRORSAME 348 #define IDS_MOVEERRORSUBFOLDER 349 #define IDS_COPYERRORSUBFOLDER 350 +#define IDS_MOVEERROR 351 +#define IDS_COPYERROR 352 #define IDS_MENU_EMPTY 34561