mirror of
https://github.com/reactos/reactos.git
synced 2025-04-25 08:00:24 +00:00
[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
This commit is contained in:
parent
66e647084d
commit
a48aa21102
52 changed files with 230 additions and 198 deletions
|
@ -16,6 +16,47 @@ END_OBJECT_MAP()
|
||||||
CComModule gModule;
|
CComModule gModule;
|
||||||
LONG g_ModuleRefCnt = 0;
|
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)
|
STDAPI DllCanUnloadNow(void)
|
||||||
{
|
{
|
||||||
if (g_ModuleRefCnt)
|
if (g_ModuleRefCnt)
|
||||||
|
@ -40,6 +81,11 @@ STDAPI DllRegisterServer(void)
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
|
WCHAR szSendTo[MAX_PATH];
|
||||||
|
hr = GetDefaultUserSendTo(szSendTo);
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
CreateSendToMyDocuments(szSendTo);
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
7
dll/shellext/sendmail/lang/de-DE.rc
Normal file
7
dll/shellext/sendmail/lang/de-DE.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "Desktop (Verknüpfung erstellen)"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
|
@ -2,5 +2,6 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
|
|
||||||
STRINGTABLE
|
STRINGTABLE
|
||||||
{
|
{
|
||||||
|
IDS_DESKLINK, "Desktop (Create shortcut)"
|
||||||
IDS_SHORTCUT, "Shortcut to %s"
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
}
|
}
|
||||||
|
|
7
dll/shellext/sendmail/lang/es-ES.rc
Normal file
7
dll/shellext/sendmail/lang/es-ES.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "Crear acceso directo en el Escritorio"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
7
dll/shellext/sendmail/lang/fr-FR.rc
Normal file
7
dll/shellext/sendmail/lang/fr-FR.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "Bureau (Créer un raccourci)"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
7
dll/shellext/sendmail/lang/he-IL.rc
Normal file
7
dll/shellext/sendmail/lang/he-IL.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "שולחן העבודה (צור קיצור דרך)"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
7
dll/shellext/sendmail/lang/id-ID.rc
Normal file
7
dll/shellext/sendmail/lang/id-ID.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "Desktop (Buat pintasan)"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
7
dll/shellext/sendmail/lang/ja-JP.rc
Normal file
7
dll/shellext/sendmail/lang/ja-JP.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "デスクトップ (ショートカットの作成)"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
7
dll/shellext/sendmail/lang/pl-PL.rc
Normal file
7
dll/shellext/sendmail/lang/pl-PL.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "Pulpit (utwórz skrót)"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
7
dll/shellext/sendmail/lang/pt-PT.rc
Normal file
7
dll/shellext/sendmail/lang/pt-PT.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "Área de trabalho (Criar atalho)"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
7
dll/shellext/sendmail/lang/ru-RU.rc
Normal file
7
dll/shellext/sendmail/lang/ru-RU.rc
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
|
||||||
|
|
||||||
|
STRINGTABLE
|
||||||
|
{
|
||||||
|
IDS_DESKLINK, "Рабочий стол (создать ярлык)"
|
||||||
|
IDS_SHORTCUT, "Shortcut to %s"
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
* PROJECT: sendmail
|
* PROJECT: sendmail
|
||||||
* LICENSE: LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
|
* LICENSE: LGPL-2.1+ (https://spdx.org/licenses/LGPL-2.1+)
|
||||||
* PURPOSE: DeskLink implementation
|
* PURPOSE: DeskLink implementation
|
||||||
* COPYRIGHT: Copyright 2019 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
|
* COPYRIGHT: Copyright 2019-2020 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef RESOURCE_H_
|
#ifndef RESOURCE_H_
|
||||||
|
@ -10,5 +10,6 @@
|
||||||
|
|
||||||
#define IDR_DESKLINK 100
|
#define IDR_DESKLINK 100
|
||||||
#define IDS_SHORTCUT 1000
|
#define IDS_SHORTCUT 1000
|
||||||
|
#define IDS_DESKLINK 21
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -15,6 +15,47 @@ END_OBJECT_MAP()
|
||||||
|
|
||||||
CComModule gModule;
|
CComModule gModule;
|
||||||
LONG g_ModuleRefCnt = 0;
|
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)
|
STDAPI DllCanUnloadNow(void)
|
||||||
{
|
{
|
||||||
|
@ -40,6 +81,11 @@ STDAPI DllRegisterServer(void)
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
|
WCHAR szSendTo[MAX_PATH];
|
||||||
|
hr = GetDefaultUserSendTo(szSendTo);
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
CreateSendToDeskLink(szSendTo);
|
||||||
|
|
||||||
return S_OK;
|
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);
|
TRACE("%p 0x%x %p\n", hInstance, dwReason, fImpLoad);
|
||||||
if (dwReason == DLL_PROCESS_ATTACH)
|
if (dwReason == DLL_PROCESS_ATTACH)
|
||||||
{
|
{
|
||||||
|
g_hModule = hInstance;
|
||||||
gModule.Init(ObjectMap, hInstance, NULL);
|
gModule.Init(ObjectMap, hInstance, NULL);
|
||||||
DisableThreadLibraryCalls(hInstance);
|
DisableThreadLibraryCalls(hInstance);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,33 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
|
||||||
|
|
||||||
IDR_DESKLINK REGISTRY "res/desklink.rgs"
|
IDR_DESKLINK REGISTRY "res/desklink.rgs"
|
||||||
|
|
||||||
|
#ifdef LANGUAGE_DE_DE
|
||||||
|
#include "lang/de-DE.rc"
|
||||||
|
#endif
|
||||||
#ifdef LANGUAGE_EN_US
|
#ifdef LANGUAGE_EN_US
|
||||||
#include "lang/en-US.rc"
|
#include "lang/en-US.rc"
|
||||||
#endif
|
#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
|
||||||
|
|
|
@ -47,6 +47,45 @@ static void init_zlib()
|
||||||
fill_win32_filefunc64W(&g_FFunc);
|
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
|
EXTERN_C
|
||||||
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
|
BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
|
||||||
{
|
{
|
||||||
|
@ -87,6 +126,11 @@ STDAPI DllRegisterServer()
|
||||||
if (FAILED(hr))
|
if (FAILED(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
|
WCHAR szSendTo[MAX_PATH];
|
||||||
|
hr = GetDefaultUserSendTo(szSendTo);
|
||||||
|
if (SUCCEEDED(hr))
|
||||||
|
CreateSendToZip(szSendTo);
|
||||||
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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)
|
HRESULT CSendToMenu::LoadAllItems(HWND hwnd)
|
||||||
{
|
{
|
||||||
UnloadAllItems();
|
UnloadAllItems();
|
||||||
|
|
||||||
if (!FolderHasAnyItems())
|
|
||||||
{
|
|
||||||
WCHAR szPath[MAX_PATH];
|
|
||||||
SHGetSpecialFolderPathW(NULL, szPath, CSIDL_SENDTO, FALSE);
|
|
||||||
CreateSendToFiles(szPath);
|
|
||||||
}
|
|
||||||
|
|
||||||
CComHeapPtr<ITEMIDLIST_ABSOLUTE> pidlSendTo;
|
CComHeapPtr<ITEMIDLIST_ABSOLUTE> pidlSendTo;
|
||||||
|
|
||||||
m_pSendTo.Release();
|
m_pSendTo.Release();
|
||||||
|
|
|
@ -69,9 +69,6 @@ private:
|
||||||
HRESULT LoadAllItems(HWND hwnd);
|
HRESULT LoadAllItems(HWND hwnd);
|
||||||
void UnloadAllItems();
|
void UnloadAllItems();
|
||||||
|
|
||||||
BOOL FolderHasAnyItems() const;
|
|
||||||
HRESULT CreateSendToFiles(LPCWSTR pszSendTo);
|
|
||||||
|
|
||||||
UINT InsertSendToItems(HMENU hMenu, UINT idFirst, UINT idMenu);
|
UINT InsertSendToItems(HMENU hMenu, UINT idFirst, UINT idMenu);
|
||||||
|
|
||||||
SENDTO_ITEM *FindItemFromIdOffset(UINT IdOffset);
|
SENDTO_ITEM *FindItemFromIdOffset(UINT IdOffset);
|
||||||
|
|
|
@ -770,7 +770,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -775,7 +775,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -775,7 +775,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -770,7 +770,6 @@ BEGIN
|
||||||
IDS_EJECT "Auswerfen"
|
IDS_EJECT "Auswerfen"
|
||||||
IDS_DISCONNECT "Trennen"
|
IDS_DISCONNECT "Trennen"
|
||||||
IDS_OPENFILELOCATION "Date&ipfad öffnen"
|
IDS_OPENFILELOCATION "Date&ipfad öffnen"
|
||||||
IDS_DESKLINK "Desktop (Verknüpfung erstellen)"
|
|
||||||
IDS_SENDTO_MENU "S&enden an"
|
IDS_SENDTO_MENU "S&enden an"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Fehler beim Verschieben der Datei/des Ordners"
|
IDS_MOVEERRORTITLE "Fehler beim Verschieben der Datei/des Ordners"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -778,7 +778,6 @@ BEGIN
|
||||||
IDS_EJECT "Extraer"
|
IDS_EJECT "Extraer"
|
||||||
IDS_DISCONNECT "Desconectar"
|
IDS_DISCONNECT "Desconectar"
|
||||||
IDS_OPENFILELOCATION "Abrir &ubicación del archivo"
|
IDS_OPENFILELOCATION "Abrir &ubicación del archivo"
|
||||||
IDS_DESKLINK "Crear acceso directo en el Escritorio"
|
|
||||||
IDS_SENDTO_MENU "E&nviar a"
|
IDS_SENDTO_MENU "E&nviar a"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error moviendo Archivo o Carpeta"
|
IDS_MOVEERRORTITLE "Error moviendo Archivo o Carpeta"
|
||||||
|
|
|
@ -776,7 +776,6 @@ BEGIN
|
||||||
IDS_EJECT "Väljuta"
|
IDS_EJECT "Väljuta"
|
||||||
IDS_DISCONNECT "Katkesta ühendus"
|
IDS_DISCONNECT "Katkesta ühendus"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Éjecter"
|
IDS_EJECT "Éjecter"
|
||||||
IDS_DISCONNECT "Déconnecter"
|
IDS_DISCONNECT "Déconnecter"
|
||||||
IDS_OPENFILELOCATION "Ouvrir l'empla&cement du fichier"
|
IDS_OPENFILELOCATION "Ouvrir l'empla&cement du fichier"
|
||||||
IDS_DESKLINK "Bureau (Créer un raccourci)"
|
|
||||||
IDS_SENDTO_MENU "Envo&yer vers"
|
IDS_SENDTO_MENU "Envo&yer vers"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Erreur lors du déplacement du fichier ou du dossier"
|
IDS_MOVEERRORTITLE "Erreur lors du déplacement du fichier ou du dossier"
|
||||||
|
|
|
@ -771,7 +771,6 @@ BEGIN
|
||||||
IDS_EJECT "הוצא"
|
IDS_EJECT "הוצא"
|
||||||
IDS_DISCONNECT "נתק"
|
IDS_DISCONNECT "נתק"
|
||||||
IDS_OPENFILELOCATION "&פתח מיקום קובץ"
|
IDS_OPENFILELOCATION "&פתח מיקום קובץ"
|
||||||
IDS_DESKLINK "שולחן העבודה (צור קיצור דרך)"
|
|
||||||
IDS_SENDTO_MENU "&שלח אל"
|
IDS_SENDTO_MENU "&שלח אל"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "इजेक्ट"
|
IDS_EJECT "इजेक्ट"
|
||||||
IDS_DISCONNECT "डिस्कनेक्ट"
|
IDS_DISCONNECT "डिस्कनेक्ट"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Kiadás"
|
IDS_EJECT "Kiadás"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -766,7 +766,6 @@ BEGIN
|
||||||
IDS_EJECT "Keluarkan"
|
IDS_EJECT "Keluarkan"
|
||||||
IDS_DISCONNECT "Putuskan"
|
IDS_DISCONNECT "Putuskan"
|
||||||
IDS_OPENFILELOCATION "&Buka lokasi berkas"
|
IDS_OPENFILELOCATION "&Buka lokasi berkas"
|
||||||
IDS_DESKLINK "Desktop (Buat pintasan)"
|
|
||||||
IDS_SENDTO_MENU "Kiri&m Ke"
|
IDS_SENDTO_MENU "Kiri&m Ke"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Kesalahan memindahkan Berkas atau Folder"
|
IDS_MOVEERRORTITLE "Kesalahan memindahkan Berkas atau Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -766,7 +766,6 @@ BEGIN
|
||||||
IDS_EJECT "取り出し"
|
IDS_EJECT "取り出し"
|
||||||
IDS_DISCONNECT "接続の切断"
|
IDS_DISCONNECT "接続の切断"
|
||||||
IDS_OPENFILELOCATION "ファイルの場所を開く(&I)"
|
IDS_OPENFILELOCATION "ファイルの場所を開く(&I)"
|
||||||
IDS_DESKLINK "デスクトップ (ショートカットの作成)"
|
|
||||||
IDS_SENDTO_MENU "送る(&N)"
|
IDS_SENDTO_MENU "送る(&N)"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "ファイルまたはフォルダの移動のエラー"
|
IDS_MOVEERRORTITLE "ファイルまたはフォルダの移動のエラー"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -775,7 +775,6 @@ BEGIN
|
||||||
IDS_EJECT "Wysuń"
|
IDS_EJECT "Wysuń"
|
||||||
IDS_DISCONNECT "Odłącz"
|
IDS_DISCONNECT "Odłącz"
|
||||||
IDS_OPENFILELOCATION "O&twórz lokalizację pliku"
|
IDS_OPENFILELOCATION "O&twórz lokalizację pliku"
|
||||||
IDS_DESKLINK "Pulpit (utwórz skrót)"
|
|
||||||
IDS_SENDTO_MENU "Wyślij d&o"
|
IDS_SENDTO_MENU "Wyślij d&o"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Błąd przenoszenia pliku lub folderu"
|
IDS_MOVEERRORTITLE "Błąd przenoszenia pliku lub folderu"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Ejectar"
|
IDS_EJECT "Ejectar"
|
||||||
IDS_DISCONNECT "Desligar"
|
IDS_DISCONNECT "Desligar"
|
||||||
IDS_OPENFILELOCATION "Abrir localização do f&icheiro"
|
IDS_OPENFILELOCATION "Abrir localização do f&icheiro"
|
||||||
IDS_DESKLINK "Área de trabalho (Criar atalho)"
|
|
||||||
IDS_SENDTO_MENU "&Enviar para"
|
IDS_SENDTO_MENU "&Enviar para"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Erro ao mover pasta ou ficheiro"
|
IDS_MOVEERRORTITLE "Erro ao mover pasta ou ficheiro"
|
||||||
|
|
|
@ -771,7 +771,6 @@ BEGIN
|
||||||
IDS_EJECT "S&coate"
|
IDS_EJECT "S&coate"
|
||||||
IDS_DISCONNECT "Deconectea&ză"
|
IDS_DISCONNECT "Deconectea&ză"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -776,7 +776,6 @@ BEGIN
|
||||||
IDS_EJECT "Извлечь"
|
IDS_EJECT "Извлечь"
|
||||||
IDS_DISCONNECT "Отсоединить"
|
IDS_DISCONNECT "Отсоединить"
|
||||||
IDS_OPENFILELOCATION "Открыть &расположение объекта"
|
IDS_OPENFILELOCATION "Открыть &расположение объекта"
|
||||||
IDS_DESKLINK "Рабочий стол (создать ярлык)"
|
|
||||||
IDS_SENDTO_MENU "Отправит&ь"
|
IDS_SENDTO_MENU "Отправит&ь"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -773,7 +773,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -771,7 +771,6 @@ BEGIN
|
||||||
IDS_EJECT "Eject"
|
IDS_EJECT "Eject"
|
||||||
IDS_DISCONNECT "Disconnect"
|
IDS_DISCONNECT "Disconnect"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -769,7 +769,6 @@ BEGIN
|
||||||
IDS_EJECT "Витягнути"
|
IDS_EJECT "Витягнути"
|
||||||
IDS_DISCONNECT "Відключити"
|
IDS_DISCONNECT "Відключити"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -777,7 +777,6 @@ BEGIN
|
||||||
IDS_EJECT "弹出"
|
IDS_EJECT "弹出"
|
||||||
IDS_DISCONNECT "断开"
|
IDS_DISCONNECT "断开"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -778,7 +778,6 @@ BEGIN
|
||||||
IDS_EJECT "退出"
|
IDS_EJECT "退出"
|
||||||
IDS_DISCONNECT "中斷"
|
IDS_DISCONNECT "中斷"
|
||||||
IDS_OPENFILELOCATION "Open f&ile location"
|
IDS_OPENFILELOCATION "Open f&ile location"
|
||||||
IDS_DESKLINK "Desktop (Create shortcut)"
|
|
||||||
IDS_SENDTO_MENU "Se&nd To"
|
IDS_SENDTO_MENU "Se&nd To"
|
||||||
|
|
||||||
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
IDS_MOVEERRORTITLE "Error Moving File or Folder"
|
||||||
|
|
|
@ -229,7 +229,6 @@
|
||||||
#define IDS_DISCONNECT 340
|
#define IDS_DISCONNECT 340
|
||||||
|
|
||||||
#define IDS_OPENFILELOCATION 341
|
#define IDS_OPENFILELOCATION 341
|
||||||
#define IDS_DESKLINK 342
|
|
||||||
#define IDS_SENDTO_MENU 343
|
#define IDS_SENDTO_MENU 343
|
||||||
|
|
||||||
#define IDS_MOVEERRORTITLE 344
|
#define IDS_MOVEERRORTITLE 344
|
||||||
|
|
Loading…
Reference in a new issue