From 6fda4d5f57e2c9b9dd159f9040c69496e70a17cd Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Fri, 12 Oct 2007 16:07:41 +0000 Subject: [PATCH] - dont allow creating a link to a shortcut See issue #2735 for more details. svn path=/trunk/; revision=29542 --- reactos/dll/win32/shell32/shell32_De.rc | 10 +++++----- reactos/dll/win32/shell32/shell32_En.rc | 10 +++++----- reactos/dll/win32/shell32/shelllink.c | 11 +++++++++++ 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/reactos/dll/win32/shell32/shell32_De.rc b/reactos/dll/win32/shell32/shell32_De.rc index f536bc175dc..a74fef9a378 100644 --- a/reactos/dll/win32/shell32/shell32_De.rc +++ b/reactos/dll/win32/shell32/shell32_De.rc @@ -175,15 +175,15 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 LTEXT "Zielpfad:", 14006, 10, 40, 70, 10 LTEXT "", 14007, 70, 40, 150, 10 LTEXT "Ziel:", 14008, 10, 55, 45, 10 - EDITTEXT 14009, 70, 55, 150, 10, ES_LEFT + EDITTEXT 14009, 70, 55, 150, 10, ES_LEFT | ES_AUTOHSCROLL LTEXT "&Starten in:",14010, 10, 65, 57, 10 - EDITTEXT 14011, 70, 65, 150, 10, ES_LEFT + EDITTEXT 14011, 70, 65, 150, 10, ES_LEFT | ES_AUTOHSCROLL LTEXT "&Kurztasten:", 14014, 10, 80, 57, 10 EDITTEXT 14015, 70, 80, 150, 10, ES_LEFT LTEXT "Ausführen:", 14016, 10, 90, 57, 10 - EDITTEXT 14017, 70, 90, 150, 10 + EDITTEXT 14017, 70, 90, 150, 10, ES_AUTOHSCROLL LTEXT "K&ommentar:", 14018, 10, 100, 57, 10 - EDITTEXT 14019, 70, 100, 150, 10, ES_LEFT + EDITTEXT 14019, 70, 100, 150, 10, ES_LEFT | ES_AUTOHSCROLL PUSHBUTTON "&Ziel finden...", 14020, 10, 115, 63, 14, ES_LEFT PUSHBUTTON "I&con wechseln...", 14021, 83, 115, 63, 14, ES_LEFT PUSHBUTTON "Er&weitert...", 14022, 156, 115, 63, 14, ES_LEFT @@ -335,7 +335,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 CONTROL "", 14000, "SysListView32", LVS_REPORT | LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 10, 10, 220, 50 GROUPBOX "Settings for selected location", -1, 10, 80, 220, 70 RADIOBUTTON "&Custom size:", 14001, 20, 90, 80, 10 - EDITTEXT 14002, 90, 90, 50, 10, WS_TABSTOP + EDITTEXT 14002, 90, 90, 50, 10, WS_TABSTOP | ES_NUMBER LTEXT "M&aximum size(MB):", -1, 20, 100, 70, 10 RADIOBUTTON "Do not move files to the &Recycle Bin. Remove files immediately when deleted.", 14003, 20, 115, 170, 20, BS_MULTILINE | WS_TABSTOP RADIOBUTTON"&Display delete confirmation dialog", 14004, 20, 155, 140, 10, WS_TABSTOP diff --git a/reactos/dll/win32/shell32/shell32_En.rc b/reactos/dll/win32/shell32/shell32_En.rc index 265c29a0337..e072428bdb4 100644 --- a/reactos/dll/win32/shell32/shell32_En.rc +++ b/reactos/dll/win32/shell32/shell32_En.rc @@ -173,15 +173,15 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 LTEXT "Target location:", 14006, 10, 40, 70, 10 LTEXT "", 14007, 70, 40, 150, 10 LTEXT "Target:", 14008, 10, 55, 45, 10 - EDITTEXT 14009, 70, 55, 150, 10, ES_LEFT + EDITTEXT 14009, 70, 55, 150, 10, ES_LEFT | ES_AUTOHSCROLL LTEXT "&Start in:",14010, 10, 65, 57, 10 - EDITTEXT 14011, 70, 65, 150, 10, ES_LEFT + EDITTEXT 14011, 70, 65, 150, 10, ES_LEFT | ES_AUTOHSCROLL LTEXT "Shortcut &key:", 14014, 10, 80, 57, 10 EDITTEXT 14015, 70, 80, 150, 10, ES_LEFT LTEXT "Run:", 14016, 10, 90, 57, 10 - EDITTEXT 14017, 70, 90, 150, 10 + EDITTEXT 14017, 70, 90, 150, 10, ES_AUTOHSCROLL LTEXT "C&omment:", 14018, 10, 100, 57, 10 - EDITTEXT 14019, 70, 100, 150, 10, ES_LEFT + EDITTEXT 14019, 70, 100, 150, 10, ES_LEFT | ES_AUTOHSCROLL PUSHBUTTON "&Find Target...", 14020, 10, 115, 63, 14, ES_LEFT PUSHBUTTON "&Change Icon...", 14021, 83, 115, 63, 14, ES_LEFT PUSHBUTTON "A&dvanced...", 14022, 156, 115, 63, 14, ES_LEFT @@ -335,7 +335,7 @@ FONT 8, "MS Shell Dlg", 0, 0, 0x0 CONTROL "", 14000, "SysListView32", LVS_REPORT | LVS_SHAREIMAGELISTS | WS_BORDER | WS_TABSTOP, 10, 10, 220, 50 GROUPBOX "Settings for selected location", -1, 10, 80, 220, 70 RADIOBUTTON "&Custom size:", 14001, 20, 90, 80, 10 - EDITTEXT 14002, 90, 90, 50, 10, WS_TABSTOP + EDITTEXT 14002, 90, 90, 50, 10, WS_TABSTOP | ES_NUMBER LTEXT "M&aximum size(MB):", -1, 20, 100, 70, 10 RADIOBUTTON "Do not move files to the &Recycle Bin. Remove files immediately when deleted.", 14003, 20, 115, 170, 20, BS_MULTILINE | WS_TABSTOP RADIOBUTTON"&Display delete confirmation dialog", 14004, 20, 155, 140, 10, WS_TABSTOP diff --git a/reactos/dll/win32/shell32/shelllink.c b/reactos/dll/win32/shell32/shelllink.c index fe09a443c51..1c1c37c194f 100644 --- a/reactos/dll/win32/shell32/shelllink.c +++ b/reactos/dll/win32/shell32/shelllink.c @@ -2595,6 +2595,7 @@ SH_ShellLinkDlgProc( IShellLinkImpl *This; HWND hDlgCtrl; WCHAR szBuffer[MAX_PATH]; + WCHAR * ptr; int IconIndex; INT_PTR result; @@ -2643,10 +2644,20 @@ SH_ShellLinkDlgProc( SendMessageW( hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)szBuffer); if ( !SHELL_ExistsFileW(szBuffer) ) { + //FIXME load localized error msg MessageBoxW( hwndDlg, L"file not existing", szBuffer, MB_OK ); SetWindowLong( hwndDlg, DWL_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE ); return TRUE; } + ptr = wcsrchr(szBuffer, L'.'); + if (ptr && !wcsnicmp(ptr, L".lnk", 4)) + { + // FIXME load localized error msg + MessageBoxW( hwndDlg, L"You cannot create a link to a shortcut", L"Error", MB_ICONERROR ); + SetWindowLong( hwndDlg, DWL_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE ); + return TRUE; + } + IShellLinkW_fnSetPath((IShellLinkW*)&This->lpvtblw, szBuffer); TRACE("This %p sLinkPath %S\n", This, This->sLinkPath);