https://git.reactos.org/?p=reactos.git;a=commitdiff;h=a48aa2110209aa0d39501e281a268890dc6afc7a

commit a48aa2110209aa0d39501e281a268890dc6afc7a
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Thu Apr 23 04:19:20 2020 +0900
Commit:     GitHub <[email protected]>
CommitDate: Thu Apr 23 04:19:20 2020 +0900

    [SENDMAIL][ZIPFLDR][MYDOCS] Fix creation of SendTo files (#2616)
    
    - Improve and move SendTo files creation code and timing.
    - Delete IDS_DESKLINK of shell32.
    - Add IDS_DESKLINK into sendmail.
    CORE-16924
---
 dll/shellext/mydocs/mydocs.cpp      |  46 +++++++++++
 dll/shellext/sendmail/lang/de-DE.rc |   7 ++
 dll/shellext/sendmail/lang/en-US.rc |   1 +
 dll/shellext/sendmail/lang/es-ES.rc |   7 ++
 dll/shellext/sendmail/lang/fr-FR.rc |   7 ++
 dll/shellext/sendmail/lang/he-IL.rc |   7 ++
 dll/shellext/sendmail/lang/id-ID.rc |   7 ++
 dll/shellext/sendmail/lang/ja-JP.rc |   7 ++
 dll/shellext/sendmail/lang/pl-PL.rc |   7 ++
 dll/shellext/sendmail/lang/pt-PT.rc |   7 ++
 dll/shellext/sendmail/lang/ru-RU.rc |   7 ++
 dll/shellext/sendmail/resource.h    |   3 +-
 dll/shellext/sendmail/sendmail.cpp  |  47 +++++++++++
 dll/shellext/sendmail/sendmail.rc   |  27 ++++++
 dll/shellext/zipfldr/zipfldr.cpp    |  44 ++++++++++
 dll/win32/shell32/CSendToMenu.cpp   | 159 ------------------------------------
 dll/win32/shell32/CSendToMenu.h     |   3 -
 dll/win32/shell32/lang/bg-BG.rc     |   1 -
 dll/win32/shell32/lang/ca-ES.rc     |   1 -
 dll/win32/shell32/lang/cs-CZ.rc     |   1 -
 dll/win32/shell32/lang/da-DK.rc     |   1 -
 dll/win32/shell32/lang/de-DE.rc     |   1 -
 dll/win32/shell32/lang/el-GR.rc     |   1 -
 dll/win32/shell32/lang/en-GB.rc     |   1 -
 dll/win32/shell32/lang/en-US.rc     |   1 -
 dll/win32/shell32/lang/es-ES.rc     |   1 -
 dll/win32/shell32/lang/et-EE.rc     |   1 -
 dll/win32/shell32/lang/fi-FI.rc     |   1 -
 dll/win32/shell32/lang/fr-FR.rc     |   1 -
 dll/win32/shell32/lang/he-IL.rc     |   1 -
 dll/win32/shell32/lang/hi-IN.rc     |   1 -
 dll/win32/shell32/lang/hu-HU.rc     |   1 -
 dll/win32/shell32/lang/id-ID.rc     |   1 -
 dll/win32/shell32/lang/it-IT.rc     |   1 -
 dll/win32/shell32/lang/ja-JP.rc     |   1 -
 dll/win32/shell32/lang/ko-KR.rc     |   1 -
 dll/win32/shell32/lang/nl-NL.rc     |   1 -
 dll/win32/shell32/lang/no-NO.rc     |   1 -
 dll/win32/shell32/lang/pl-PL.rc     |   1 -
 dll/win32/shell32/lang/pt-BR.rc     |   1 -
 dll/win32/shell32/lang/pt-PT.rc     |   1 -
 dll/win32/shell32/lang/ro-RO.rc     |   1 -
 dll/win32/shell32/lang/ru-RU.rc     |   1 -
 dll/win32/shell32/lang/sk-SK.rc     |   1 -
 dll/win32/shell32/lang/sl-SI.rc     |   1 -
 dll/win32/shell32/lang/sq-AL.rc     |   1 -
 dll/win32/shell32/lang/sv-SE.rc     |   1 -
 dll/win32/shell32/lang/tr-TR.rc     |   1 -
 dll/win32/shell32/lang/uk-UA.rc     |   1 -
 dll/win32/shell32/lang/zh-CN.rc     |   1 -
 dll/win32/shell32/lang/zh-TW.rc     |   1 -
 dll/win32/shell32/shresdef.h        |   1 -
 52 files changed, 230 insertions(+), 198 deletions(-)

diff --git a/dll/shellext/mydocs/mydocs.cpp b/dll/shellext/mydocs/mydocs.cpp
index c5954c1ff88..1268510bf4e 100644
--- a/dll/shellext/mydocs/mydocs.cpp
+++ b/dll/shellext/mydocs/mydocs.cpp
@@ -16,6 +16,47 @@ END_OBJECT_MAP()
 CComModule gModule;
 LONG g_ModuleRefCnt = 0;
 
+static BOOL
+CreateEmptyFile(LPCWSTR pszFile)
+{
+    HANDLE hFile;
+    hFile = CreateFileW(pszFile, GENERIC_WRITE, FILE_SHARE_READ, NULL,
+                        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+    if (hFile != INVALID_HANDLE_VALUE)
+    {
+        CloseHandle(hFile);
+        return TRUE;
+    }
+    return FALSE;
+}
+
+static HRESULT
+CreateSendToMyDocuments(LPCWSTR pszSendTo)
+{
+    WCHAR szTarget[MAX_PATH], szSendToFile[MAX_PATH];
+
+    SHGetSpecialFolderPathW(NULL, szTarget, CSIDL_MYDOCUMENTS, FALSE);
+
+    StringCbCopyW(szSendToFile, sizeof(szSendToFile), pszSendTo);
+    PathAppendW(szSendToFile, PathFindFileNameW(szTarget));
+    StringCbCatW(szSendToFile, sizeof(szSendToFile), L".mydocs");
+
+    if (!CreateEmptyFile(szSendToFile))
+    {
+        ERR("CreateEmptyFile(%S, %S) failed!\n", szSendToFile, szTarget);
+        return E_FAIL;
+    }
+
+    return S_OK;
+}
+
+static HRESULT
+GetDefaultUserSendTo(LPWSTR pszPath)
+{
+    return SHGetFolderPathW(NULL, CSIDL_SENDTO, INVALID_HANDLE_VALUE,
+                            SHGFP_TYPE_DEFAULT, pszPath);
+}
+
 STDAPI DllCanUnloadNow(void)
 {
     if (g_ModuleRefCnt)
@@ -40,6 +81,11 @@ STDAPI DllRegisterServer(void)
     if (FAILED_UNEXPECTEDLY(hr))
         return hr;
 
+    WCHAR szSendTo[MAX_PATH];
+    hr = GetDefaultUserSendTo(szSendTo);
+    if (SUCCEEDED(hr))
+        CreateSendToMyDocuments(szSendTo);
+
     return S_OK;
 }
 
diff --git a/dll/shellext/sendmail/lang/de-DE.rc 
b/dll/shellext/sendmail/lang/de-DE.rc
new file mode 100644
index 00000000000..d4709389293
--- /dev/null
+++ b/dll/shellext/sendmail/lang/de-DE.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "Desktop (Verknüpfung erstellen)"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/lang/en-US.rc 
b/dll/shellext/sendmail/lang/en-US.rc
index 20ec90700cb..c5811e70659 100644
--- a/dll/shellext/sendmail/lang/en-US.rc
+++ b/dll/shellext/sendmail/lang/en-US.rc
@@ -2,5 +2,6 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
 
 STRINGTABLE
 {
+    IDS_DESKLINK, "Desktop (Create shortcut)"
     IDS_SHORTCUT, "Shortcut to %s"
 }
diff --git a/dll/shellext/sendmail/lang/es-ES.rc 
b/dll/shellext/sendmail/lang/es-ES.rc
new file mode 100644
index 00000000000..d6a6382f013
--- /dev/null
+++ b/dll/shellext/sendmail/lang/es-ES.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "Crear acceso directo en el Escritorio"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/lang/fr-FR.rc 
b/dll/shellext/sendmail/lang/fr-FR.rc
new file mode 100644
index 00000000000..a5a65575e90
--- /dev/null
+++ b/dll/shellext/sendmail/lang/fr-FR.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "Bureau (Créer un raccourci)"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/lang/he-IL.rc 
b/dll/shellext/sendmail/lang/he-IL.rc
new file mode 100644
index 00000000000..37ae63195ed
--- /dev/null
+++ b/dll/shellext/sendmail/lang/he-IL.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "שולחן העבודה (צור קיצור דרך)"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/lang/id-ID.rc 
b/dll/shellext/sendmail/lang/id-ID.rc
new file mode 100644
index 00000000000..b88a26027ee
--- /dev/null
+++ b/dll/shellext/sendmail/lang/id-ID.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "Desktop (Buat pintasan)"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/lang/ja-JP.rc 
b/dll/shellext/sendmail/lang/ja-JP.rc
new file mode 100644
index 00000000000..647041d62bc
--- /dev/null
+++ b/dll/shellext/sendmail/lang/ja-JP.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "デスクトップ (ショートカットの作成)"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/lang/pl-PL.rc 
b/dll/shellext/sendmail/lang/pl-PL.rc
new file mode 100644
index 00000000000..633bb81a657
--- /dev/null
+++ b/dll/shellext/sendmail/lang/pl-PL.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "Pulpit (utwórz skrót)"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/lang/pt-PT.rc 
b/dll/shellext/sendmail/lang/pt-PT.rc
new file mode 100644
index 00000000000..19d03b91b65
--- /dev/null
+++ b/dll/shellext/sendmail/lang/pt-PT.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "Área de trabalho (Criar atalho)"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/lang/ru-RU.rc 
b/dll/shellext/sendmail/lang/ru-RU.rc
new file mode 100644
index 00000000000..aa6e247227c
--- /dev/null
+++ b/dll/shellext/sendmail/lang/ru-RU.rc
@@ -0,0 +1,7 @@
+LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
+
+STRINGTABLE
+{
+    IDS_DESKLINK, "Рабочий стол (создать ярлык)"
+    IDS_SHORTCUT, "Shortcut to %s"
+}
diff --git a/dll/shellext/sendmail/resource.h b/dll/shellext/sendmail/resource.h
index 72b69650f76..7b13f185c92 100644
--- a/dll/shellext/sendmail/resource.h
+++ b/dll/shellext/sendmail/resource.h
@@ -2,7 +2,7 @@
  * PROJECT:     sendmail
  * LICENSE:     LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
  * PURPOSE:     DeskLink implementation
- * COPYRIGHT:   Copyright 2019 Katayama Hirofumi MZ 
([email protected])
+ * COPYRIGHT:   Copyright 2019-2020 Katayama Hirofumi MZ 
([email protected])
  */
 
 #ifndef RESOURCE_H_
@@ -10,5 +10,6 @@
 
 #define IDR_DESKLINK 100
 #define IDS_SHORTCUT 1000
+#define IDS_DESKLINK 21
 
 #endif
diff --git a/dll/shellext/sendmail/sendmail.cpp 
b/dll/shellext/sendmail/sendmail.cpp
index 6cdaae92032..a1de97ec1ae 100644
--- a/dll/shellext/sendmail/sendmail.cpp
+++ b/dll/shellext/sendmail/sendmail.cpp
@@ -15,6 +15,47 @@ END_OBJECT_MAP()
 
 CComModule gModule;
 LONG g_ModuleRefCnt = 0;
+HINSTANCE g_hModule;
+
+static BOOL
+CreateEmptyFile(LPCWSTR pszFile)
+{
+    HANDLE hFile;
+    hFile = CreateFileW(pszFile, GENERIC_WRITE, FILE_SHARE_READ, NULL,
+                        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+    if (hFile != INVALID_HANDLE_VALUE)
+    {
+        CloseHandle(hFile);
+        return TRUE;
+    }
+    return FALSE;
+}
+
+static HRESULT
+CreateSendToDeskLink(LPCWSTR pszSendTo)
+{
+    WCHAR szTarget[MAX_PATH], szSendToFile[MAX_PATH];
+
+    LoadStringW(g_hModule, IDS_DESKLINK, szTarget, _countof(szTarget));
+    StringCbCatW(szTarget, sizeof(szTarget), L".DeskLink");
+
+    StringCbCopyW(szSendToFile, sizeof(szSendToFile), pszSendTo);
+    PathAppendW(szSendToFile, szTarget);
+
+    if (!CreateEmptyFile(szSendToFile))
+    {
+        ERR("CreateEmptyFile('%ls')\n", szSendToFile);
+        return E_FAIL;
+    }
+    return S_OK;
+}
+
+static HRESULT
+GetDefaultUserSendTo(LPWSTR pszPath)
+{
+    return SHGetFolderPathW(NULL, CSIDL_SENDTO, INVALID_HANDLE_VALUE,
+                            SHGFP_TYPE_DEFAULT, pszPath);
+}
 
 STDAPI DllCanUnloadNow(void)
 {
@@ -40,6 +81,11 @@ STDAPI DllRegisterServer(void)
     if (FAILED_UNEXPECTEDLY(hr))
         return hr;
 
+    WCHAR szSendTo[MAX_PATH];
+    hr = GetDefaultUserSendTo(szSendTo);
+    if (SUCCEEDED(hr))
+        CreateSendToDeskLink(szSendTo);
+
     return S_OK;
 }
 
@@ -117,6 +163,7 @@ STDAPI_(BOOL) DllMain(HINSTANCE hInstance, DWORD dwReason, 
LPVOID fImpLoad)
     TRACE("%p 0x%x %p\n", hInstance, dwReason, fImpLoad);
     if (dwReason == DLL_PROCESS_ATTACH)
     {
+        g_hModule = hInstance;
         gModule.Init(ObjectMap, hInstance, NULL);
         DisableThreadLibraryCalls(hInstance);
     }
diff --git a/dll/shellext/sendmail/sendmail.rc 
b/dll/shellext/sendmail/sendmail.rc
index 8b4d4f7eb38..55636184134 100644
--- a/dll/shellext/sendmail/sendmail.rc
+++ b/dll/shellext/sendmail/sendmail.rc
@@ -18,6 +18,33 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 
 IDR_DESKLINK REGISTRY "res/desklink.rgs"
 
+#ifdef LANGUAGE_DE_DE
+    #include "lang/de-DE.rc"
+#endif
 #ifdef LANGUAGE_EN_US
     #include "lang/en-US.rc"
 #endif
+#ifdef LANGUAGE_ES_ES
+    #include "lang/es-ES.rc"
+#endif
+#ifdef LANGUAGE_FR_FR
+    #include "lang/fr-FR.rc"
+#endif
+#ifdef LANGUAGE_HE_IL
+    #include "lang/he-IL.rc"
+#endif
+#ifdef LANGUAGE_ID_ID
+    #include "lang/id-ID.rc"
+#endif
+#ifdef LANGUAGE_JA_JP
+    #include "lang/ja-JP.rc"
+#endif
+#ifdef LANGUAGE_PL_PL
+    #include "lang/pl-PL.rc"
+#endif
+#ifdef LANGUAGE_PT_PT
+    #include "lang/pt-PT.rc"
+#endif
+#ifdef LANGUAGE_RU_RU
+    #include "lang/ru-RU.rc"
+#endif
diff --git a/dll/shellext/zipfldr/zipfldr.cpp b/dll/shellext/zipfldr/zipfldr.cpp
index eecb1ac02de..5dee2d1cb24 100644
--- a/dll/shellext/zipfldr/zipfldr.cpp
+++ b/dll/shellext/zipfldr/zipfldr.cpp
@@ -47,6 +47,45 @@ static void init_zlib()
     fill_win32_filefunc64W(&g_FFunc);
 }
 
+static BOOL
+CreateEmptyFile(LPCWSTR pszFile)
+{
+    HANDLE hFile;
+    hFile = CreateFileW(pszFile, GENERIC_WRITE, FILE_SHARE_READ, NULL,
+                        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+    if (hFile != INVALID_HANDLE_VALUE)
+    {
+        CloseHandle(hFile);
+        return TRUE;
+    }
+    return FALSE;
+}
+
+static HRESULT
+CreateSendToZip(LPCWSTR pszSendTo)
+{
+    WCHAR szTarget[MAX_PATH], szSendToFile[MAX_PATH];
+
+    LoadStringW(g_hModule, IDS_FRIENDLYNAME, szTarget, _countof(szTarget));
+
+    StringCbCopyW(szSendToFile, sizeof(szSendToFile), pszSendTo);
+    PathAppendW(szSendToFile, szTarget);
+    StringCbCatW(szSendToFile, sizeof(szSendToFile), L".ZFSendToTarget");
+    if (!CreateEmptyFile(szSendToFile))
+    {
+        DPRINT1("CreateEmptyFile('%ls')\n", szSendToFile);
+        return E_FAIL;
+    }
+    return S_OK;
+}
+
+static HRESULT
+GetDefaultUserSendTo(LPWSTR pszPath)
+{
+    return SHGetFolderPathW(NULL, CSIDL_SENDTO, INVALID_HANDLE_VALUE,
+                            SHGFP_TYPE_DEFAULT, pszPath);
+}
+
 EXTERN_C
 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
 {
@@ -87,6 +126,11 @@ STDAPI DllRegisterServer()
     if (FAILED(hr))
         return hr;
 
+    WCHAR szSendTo[MAX_PATH];
+    hr = GetDefaultUserSendTo(szSendTo);
+    if (SUCCEEDED(hr))
+        CreateSendToZip(szSendTo);
+
     return S_OK;
 }
 
diff --git a/dll/win32/shell32/CSendToMenu.cpp 
b/dll/win32/shell32/CSendToMenu.cpp
index fc4a224ea85..9e9fbe8afeb 100644
--- a/dll/win32/shell32/CSendToMenu.cpp
+++ b/dll/win32/shell32/CSendToMenu.cpp
@@ -156,169 +156,10 @@ void CSendToMenu::UnloadAllItems()
     }
 }
 
-BOOL CSendToMenu::FolderHasAnyItems() const
-{
-    WCHAR szPath[MAX_PATH];
-    SHGetSpecialFolderPathW(NULL, szPath, CSIDL_SENDTO, FALSE);
-
-    PathAppendW(szPath, L"*");
-
-    WIN32_FIND_DATAW find;
-    HANDLE hFind = FindFirstFileW(szPath, &find);
-    if (hFind == INVALID_HANDLE_VALUE)
-        return FALSE;
-
-    BOOL bFound = FALSE;
-    do
-    {
-        if (wcscmp(find.cFileName, L".") == 0 ||
-            wcscmp(find.cFileName, L"..") == 0 ||
-            _wcsicmp(find.cFileName, L"desktop.ini") == 0)
-        {
-            continue;
-        }
-
-        bFound = TRUE;
-        break;
-    } while (FindNextFileW(hFind, &find));
-
-    FindClose(hFind);
-    return bFound;
-}
-
-static BOOL CreateEmptyFile(LPCWSTR pszFile)
-{
-    HANDLE hFile;
-    hFile = CreateFileW(pszFile, GENERIC_WRITE, FILE_SHARE_READ, NULL,
-                        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
-    CloseHandle(hFile);
-    return hFile != INVALID_HANDLE_VALUE;
-}
-
-static HRESULT
-CreateShellLink(
-    LPCWSTR pszLinkPath,
-    LPCWSTR pszTargetPath OPTIONAL,
-    LPCITEMIDLIST pidlTarget OPTIONAL,
-    LPCWSTR pszArg OPTIONAL,
-    LPCWSTR pszDir OPTIONAL,
-    LPCWSTR pszIconPath OPTIONAL,
-    INT iIconNr OPTIONAL,
-    LPCWSTR pszComment OPTIONAL)
-{
-    CComPtr<IShellLinkW> psl;
-    HRESULT hr = CoCreateInstance(CLSID_ShellLink, NULL,
-                                  CLSCTX_INPROC_SERVER,
-                                  IID_PPV_ARG(IShellLinkW, &psl));
-    if (FAILED_UNEXPECTEDLY(hr))
-        return hr;
-
-    if (pszTargetPath)
-    {
-        hr = psl->SetPath(pszTargetPath);
-        if (FAILED_UNEXPECTEDLY(hr))
-            return hr;
-    }
-    else if (pidlTarget)
-    {
-        hr = psl->SetIDList(pidlTarget);
-        if (FAILED_UNEXPECTEDLY(hr))
-            return hr;
-    }
-    else
-    {
-        ERR("invalid argument\n");
-        return E_INVALIDARG;
-    }
-
-    if (pszArg)
-        hr = psl->SetArguments(pszArg);
-
-    if (pszDir)
-        hr = psl->SetWorkingDirectory(pszDir);
-
-    if (pszIconPath)
-        hr = psl->SetIconLocation(pszIconPath, iIconNr);
-
-    if (pszComment)
-        hr = psl->SetDescription(pszComment);
-
-    CComPtr<IPersistFile> ppf;
-    hr = psl->QueryInterface(IID_PPV_ARG(IPersistFile, &ppf));
-    if (FAILED_UNEXPECTEDLY(hr))
-        return hr;
-
-    hr = ppf->Save(pszLinkPath, TRUE);
-    if (FAILED_UNEXPECTEDLY(hr))
-        return hr;
-
-    return hr;
-}
-
-HRESULT CSendToMenu::CreateSendToFiles(LPCWSTR pszSendTo)
-{
-    WCHAR szTarget[MAX_PATH];
-    WCHAR szSendToFile[MAX_PATH];
-    WCHAR szShell32[MAX_PATH];
-    HRESULT hr;
-
-    /* create my documents */
-    SHGetSpecialFolderPathW(NULL, szTarget, CSIDL_MYDOCUMENTS, FALSE);
-
-    StringCbCopyW(szSendToFile, sizeof(szSendToFile), pszSendTo);
-    PathAppendW(szSendToFile, PathFindFileNameW(szTarget));
-    StringCbCatW(szSendToFile, sizeof(szSendToFile), L".lnk");
-
-    GetSystemDirectoryW(szShell32, ARRAY_SIZE(szShell32));
-    PathAppendW(szShell32, L"shell32.dll");
-    hr = CreateShellLink(szSendToFile, szTarget, NULL, NULL, NULL,
-                         szShell32, -IDI_SHELL_MY_DOCUMENTS, NULL);
-    if (FAILED_UNEXPECTEDLY(hr))
-        ERR("CreateShellLink(%S, %S) failed!\n", szSendToFile, szTarget);
-
-    /* create desklink */
-    StringCbCopyW(szSendToFile, sizeof(szSendToFile), pszSendTo);
-    LoadStringW(shell32_hInstance, IDS_DESKLINK, szTarget, _countof(szTarget));
-    StringCbCatW(szTarget, sizeof(szTarget), L".DeskLink");
-    PathAppendW(szSendToFile, szTarget);
-    if (!CreateEmptyFile(szSendToFile))
-    {
-        ERR("CreateEmptyFile\n");
-    }
-
-    /* create zipped compressed folder */
-    HINSTANCE hZipFldr =
-        LoadLibraryExW(L"zipfldr.dll", NULL, LOAD_LIBRARY_AS_DATAFILE);
-    if (hZipFldr)
-    {
-#define IDS_FRIENDLYNAME 10195
-        LoadStringW(hZipFldr, IDS_FRIENDLYNAME, szTarget, _countof(szTarget));
-#undef IDS_FRIENDLYNAME
-        FreeLibrary(hZipFldr);
-
-        StringCbCopyW(szSendToFile, sizeof(szSendToFile), pszSendTo);
-        PathAppendW(szSendToFile, szTarget);
-        StringCbCatW(szSendToFile, sizeof(szSendToFile), L".ZFSendToTarget");
-        if (!CreateEmptyFile(szSendToFile))
-        {
-            ERR("CreateEmptyFile\n");
-        }
-    }
-
-    return S_OK;
-}
-
 HRESULT CSendToMenu::LoadAllItems(HWND hwnd)
 {
     UnloadAllItems();
 
-    if (!FolderHasAnyItems())
-    {
-        WCHAR szPath[MAX_PATH];
-        SHGetSpecialFolderPathW(NULL, szPath, CSIDL_SENDTO, FALSE);
-        CreateSendToFiles(szPath);
-    }
-
     CComHeapPtr<ITEMIDLIST_ABSOLUTE> pidlSendTo;
 
     m_pSendTo.Release();
diff --git a/dll/win32/shell32/CSendToMenu.h b/dll/win32/shell32/CSendToMenu.h
index 2156f1ee75e..2f59319921e 100644
--- a/dll/win32/shell32/CSendToMenu.h
+++ b/dll/win32/shell32/CSendToMenu.h
@@ -69,9 +69,6 @@ private:
     HRESULT LoadAllItems(HWND hwnd);
     void UnloadAllItems();
 
-    BOOL FolderHasAnyItems() const;
-    HRESULT CreateSendToFiles(LPCWSTR pszSendTo);
-
     UINT InsertSendToItems(HMENU hMenu, UINT idFirst, UINT idMenu);
 
     SENDTO_ITEM *FindItemFromIdOffset(UINT IdOffset);
diff --git a/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc
index 61590e669fd..eb4278be4d1 100644
--- a/dll/win32/shell32/lang/bg-BG.rc
+++ b/dll/win32/shell32/lang/bg-BG.rc
@@ -770,7 +770,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc
index b046ec113c2..4f9c535ea3d 100644
--- a/dll/win32/shell32/lang/ca-ES.rc
+++ b/dll/win32/shell32/lang/ca-ES.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc
index 49edf7bc821..a5dfe14431f 100644
--- a/dll/win32/shell32/lang/cs-CZ.rc
+++ b/dll/win32/shell32/lang/cs-CZ.rc
@@ -775,7 +775,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc
index 73cb4c7b791..35d470cb76f 100644
--- a/dll/win32/shell32/lang/da-DK.rc
+++ b/dll/win32/shell32/lang/da-DK.rc
@@ -775,7 +775,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc
index ed353d9cbe1..93e56871036 100644
--- a/dll/win32/shell32/lang/de-DE.rc
+++ b/dll/win32/shell32/lang/de-DE.rc
@@ -770,7 +770,6 @@ BEGIN
     IDS_EJECT "Auswerfen"
     IDS_DISCONNECT "Trennen"
     IDS_OPENFILELOCATION "Date&ipfad öffnen"
-    IDS_DESKLINK "Desktop (Verknüpfung erstellen)"
     IDS_SENDTO_MENU "S&enden an"
 
     IDS_MOVEERRORTITLE "Fehler beim Verschieben der Datei/des Ordners"
diff --git a/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc
index d2f9abcd3fd..8457e340311 100644
--- a/dll/win32/shell32/lang/el-GR.rc
+++ b/dll/win32/shell32/lang/el-GR.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc
index d778623377b..e9b4f104eb1 100644
--- a/dll/win32/shell32/lang/en-GB.rc
+++ b/dll/win32/shell32/lang/en-GB.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc
index dc5bc3001ce..692d30c7a6e 100644
--- a/dll/win32/shell32/lang/en-US.rc
+++ b/dll/win32/shell32/lang/en-US.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc
index 7629f98b54d..4f455ebcedd 100644
--- a/dll/win32/shell32/lang/es-ES.rc
+++ b/dll/win32/shell32/lang/es-ES.rc
@@ -778,7 +778,6 @@ BEGIN
     IDS_EJECT "Extraer"
     IDS_DISCONNECT "Desconectar"
     IDS_OPENFILELOCATION "Abrir &ubicación del archivo"
-    IDS_DESKLINK "Crear acceso directo en el Escritorio"
     IDS_SENDTO_MENU "E&nviar a"
 
     IDS_MOVEERRORTITLE "Error moviendo Archivo o Carpeta"
diff --git a/dll/win32/shell32/lang/et-EE.rc b/dll/win32/shell32/lang/et-EE.rc
index c6e41d8299a..e991c453a22 100644
--- a/dll/win32/shell32/lang/et-EE.rc
+++ b/dll/win32/shell32/lang/et-EE.rc
@@ -776,7 +776,6 @@ BEGIN
     IDS_EJECT "Väljuta"
     IDS_DISCONNECT "Katkesta ühendus"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc
index 15599ef59d2..030f61fa496 100644
--- a/dll/win32/shell32/lang/fi-FI.rc
+++ b/dll/win32/shell32/lang/fi-FI.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc
index 3e884987946..da591320759 100644
--- a/dll/win32/shell32/lang/fr-FR.rc
+++ b/dll/win32/shell32/lang/fr-FR.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Éjecter"
     IDS_DISCONNECT "Déconnecter"
     IDS_OPENFILELOCATION "Ouvrir l'empla&cement du fichier"
-    IDS_DESKLINK "Bureau (Créer un raccourci)"
     IDS_SENDTO_MENU "Envo&yer vers"
 
     IDS_MOVEERRORTITLE "Erreur lors du déplacement du fichier ou du dossier"
diff --git a/dll/win32/shell32/lang/he-IL.rc b/dll/win32/shell32/lang/he-IL.rc
index 820b5861570..ce627168410 100644
--- a/dll/win32/shell32/lang/he-IL.rc
+++ b/dll/win32/shell32/lang/he-IL.rc
@@ -771,7 +771,6 @@ BEGIN
     IDS_EJECT "הוצא"
     IDS_DISCONNECT "נתק"
     IDS_OPENFILELOCATION "&פתח מיקום קובץ"
-    IDS_DESKLINK "שולחן העבודה (צור קיצור דרך)"
     IDS_SENDTO_MENU "&שלח אל"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/hi-IN.rc b/dll/win32/shell32/lang/hi-IN.rc
index 6599a48d36f..021128b9dc2 100644
--- a/dll/win32/shell32/lang/hi-IN.rc
+++ b/dll/win32/shell32/lang/hi-IN.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "इजेक्ट"
     IDS_DISCONNECT "डिस्कनेक्ट"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc
index 5b9fa0f0cfa..1bda926b3f4 100644
--- a/dll/win32/shell32/lang/hu-HU.rc
+++ b/dll/win32/shell32/lang/hu-HU.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Kiadás"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/id-ID.rc b/dll/win32/shell32/lang/id-ID.rc
index 800649f20ef..f8490a593f6 100644
--- a/dll/win32/shell32/lang/id-ID.rc
+++ b/dll/win32/shell32/lang/id-ID.rc
@@ -766,7 +766,6 @@ BEGIN
     IDS_EJECT "Keluarkan"
     IDS_DISCONNECT "Putuskan"
     IDS_OPENFILELOCATION "&Buka lokasi berkas"
-    IDS_DESKLINK "Desktop (Buat pintasan)"
     IDS_SENDTO_MENU "Kiri&m Ke"
 
     IDS_MOVEERRORTITLE "Kesalahan memindahkan Berkas atau Folder"
diff --git a/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc
index 27b6ffdaba9..ec3a800d2c2 100644
--- a/dll/win32/shell32/lang/it-IT.rc
+++ b/dll/win32/shell32/lang/it-IT.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc
index 27049132c6a..2de16366853 100644
--- a/dll/win32/shell32/lang/ja-JP.rc
+++ b/dll/win32/shell32/lang/ja-JP.rc
@@ -766,7 +766,6 @@ BEGIN
     IDS_EJECT "取り出し"
     IDS_DISCONNECT "接続の切断"
     IDS_OPENFILELOCATION "ファイルの場所を開く(&I)"
-    IDS_DESKLINK "デスクトップ (ショートカットの作成)"
     IDS_SENDTO_MENU "送る(&N)"
 
     IDS_MOVEERRORTITLE "ファイルまたはフォルダの移動のエラー"
diff --git a/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc
index e00bc84dfb3..fe824489892 100644
--- a/dll/win32/shell32/lang/ko-KR.rc
+++ b/dll/win32/shell32/lang/ko-KR.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc
index 7e6a33b3273..5a92eeb0572 100644
--- a/dll/win32/shell32/lang/nl-NL.rc
+++ b/dll/win32/shell32/lang/nl-NL.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc
index 5d6e5832eb8..73eefc09b1d 100644
--- a/dll/win32/shell32/lang/no-NO.rc
+++ b/dll/win32/shell32/lang/no-NO.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc
index 7728d4c2a09..667969a9f71 100644
--- a/dll/win32/shell32/lang/pl-PL.rc
+++ b/dll/win32/shell32/lang/pl-PL.rc
@@ -775,7 +775,6 @@ BEGIN
     IDS_EJECT "Wysuń"
     IDS_DISCONNECT "Odłącz"
     IDS_OPENFILELOCATION "O&twórz lokalizację pliku"
-    IDS_DESKLINK "Pulpit (utwórz skrót)"
     IDS_SENDTO_MENU "Wyślij d&o"
 
     IDS_MOVEERRORTITLE "Błąd przenoszenia pliku lub folderu"
diff --git a/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc
index 8ef64f05475..882b4b21dc2 100644
--- a/dll/win32/shell32/lang/pt-BR.rc
+++ b/dll/win32/shell32/lang/pt-BR.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc
index 1eb2a024814..6b4e32298c9 100644
--- a/dll/win32/shell32/lang/pt-PT.rc
+++ b/dll/win32/shell32/lang/pt-PT.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Ejectar"
     IDS_DISCONNECT "Desligar"
     IDS_OPENFILELOCATION "Abrir localização do f&icheiro"
-    IDS_DESKLINK "Área de trabalho (Criar atalho)"
     IDS_SENDTO_MENU "&Enviar para"
 
     IDS_MOVEERRORTITLE "Erro ao mover pasta ou ficheiro"
diff --git a/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc
index 885559fe59a..68d03c714b3 100644
--- a/dll/win32/shell32/lang/ro-RO.rc
+++ b/dll/win32/shell32/lang/ro-RO.rc
@@ -771,7 +771,6 @@ BEGIN
     IDS_EJECT "S&coate"
     IDS_DISCONNECT "Deconectea&ză"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc
index 665443078f4..f0662d91c35 100644
--- a/dll/win32/shell32/lang/ru-RU.rc
+++ b/dll/win32/shell32/lang/ru-RU.rc
@@ -776,7 +776,6 @@ BEGIN
     IDS_EJECT "Извлечь"
     IDS_DISCONNECT "Отсоединить"
     IDS_OPENFILELOCATION "Открыть &расположение объекта"
-    IDS_DESKLINK "Рабочий стол (создать ярлык)"
     IDS_SENDTO_MENU "Отправит&ь"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc
index 403956196d8..7dd0ae87053 100644
--- a/dll/win32/shell32/lang/sk-SK.rc
+++ b/dll/win32/shell32/lang/sk-SK.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc
index dbdef73b378..d67feceb0f2 100644
--- a/dll/win32/shell32/lang/sl-SI.rc
+++ b/dll/win32/shell32/lang/sl-SI.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc
index c249e0b955d..0f8e4754a21 100644
--- a/dll/win32/shell32/lang/sq-AL.rc
+++ b/dll/win32/shell32/lang/sq-AL.rc
@@ -773,7 +773,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc
index 64881741295..f9e8ec731ec 100644
--- a/dll/win32/shell32/lang/sv-SE.rc
+++ b/dll/win32/shell32/lang/sv-SE.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc
index aef28fb801c..cf5e06c9765 100644
--- a/dll/win32/shell32/lang/tr-TR.rc
+++ b/dll/win32/shell32/lang/tr-TR.rc
@@ -771,7 +771,6 @@ BEGIN
     IDS_EJECT "Eject"
     IDS_DISCONNECT "Disconnect"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc
index 3bac38eb8fc..9f9c65e3712 100644
--- a/dll/win32/shell32/lang/uk-UA.rc
+++ b/dll/win32/shell32/lang/uk-UA.rc
@@ -769,7 +769,6 @@ BEGIN
     IDS_EJECT "Витягнути"
     IDS_DISCONNECT "Відключити"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc
index 510d6d75bbd..e18e895944f 100644
--- a/dll/win32/shell32/lang/zh-CN.rc
+++ b/dll/win32/shell32/lang/zh-CN.rc
@@ -777,7 +777,6 @@ BEGIN
     IDS_EJECT "弹出"
     IDS_DISCONNECT "断开"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc
index af61fb63a45..0e5c707a4c7 100644
--- a/dll/win32/shell32/lang/zh-TW.rc
+++ b/dll/win32/shell32/lang/zh-TW.rc
@@ -778,7 +778,6 @@ BEGIN
     IDS_EJECT "退出"
     IDS_DISCONNECT "中斷"
     IDS_OPENFILELOCATION "Open f&ile location"
-    IDS_DESKLINK "Desktop (Create shortcut)"
     IDS_SENDTO_MENU "Se&nd To"
 
     IDS_MOVEERRORTITLE "Error Moving File or Folder"
diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h
index 412dec29c58..7cd84a0f4c8 100644
--- a/dll/win32/shell32/shresdef.h
+++ b/dll/win32/shell32/shresdef.h
@@ -229,7 +229,6 @@
 #define IDS_DISCONNECT           340
 
 #define IDS_OPENFILELOCATION     341
-#define IDS_DESKLINK             342
 #define IDS_SENDTO_MENU          343
 
 #define IDS_MOVEERRORTITLE       344

Reply via email to