+++ /dev/null
-Index: autocomplete.c\r
-===================================================================\r
---- autocomplete.c (revision 29513)\r
-+++ autocomplete.c (working copy)\r
-@@ -38,7 +38,7 @@\r
- #include <stdarg.h>\r
- #include <stdlib.h>\r
- #include <string.h>\r
--\r
-+#include <stdio.h>\r
- #define COBJMACROS\r
- \r
- #include "wine/debug.h"\r
-Index: changenotify.c\r
-===================================================================\r
---- changenotify.c (revision 29513)\r
-+++ changenotify.c (working copy)\r
-@@ -178,7 +178,7 @@\r
- \r
- LeaveCriticalSection(&SHELL32_ChangenotifyCS);\r
- \r
-- DeleteCriticalSection(&SHELL32_ChangenotifyCS);\r
-+ // DeleteCriticalSection(&SHELL32_ChangenotifyCS); // static\r
- }\r
- \r
- /*************************************************************************\r
-Index: control.c\r
-===================================================================\r
---- control.c (revision 29513)\r
-+++ control.c (working copy)\r
-@@ -464,6 +464,7 @@\r
- void WINAPI RunDLL_CallEntry16( DWORD proc, HWND hwnd, HINSTANCE inst,\r
- LPCSTR cmdline, INT cmdshow )\r
- {\r
-+#if !defined(__CYGWIN__) && !defined (__MINGW32__) && !defined(_MSC_VER)\r
- WORD args[5];\r
- SEGPTR cmdline_seg;\r
- \r
-@@ -478,6 +479,10 @@\r
- args[0] = cmdshow;\r
- WOWCallback16Ex( proc, WCB16_PASCAL, sizeof(args), args, NULL );\r
- UnMapLS( cmdline_seg );\r
-+#else\r
-+ FIXME( "proc %lx hwnd %p inst %p cmdline %s cmdshow %d\n",\r
-+ proc, hwnd, inst, debugstr_a(cmdline), cmdshow );\r
-+#endif\r
- }\r
- \r
- /*************************************************************************\r
-Index: iconcache.c\r
-===================================================================\r
---- iconcache.c (revision 29513)\r
-+++ iconcache.c (working copy)\r
-@@ -306,9 +306,23 @@\r
- HICON hiconLargeShortcut;\r
- HICON hiconSmallShortcut;\r
- \r
-- PrivateExtractIconsW( sSourceFile, dwSourceIndex, 32, 32, &hiconLarge, 0, 1, 0 );\r
-- PrivateExtractIconsW( sSourceFile, dwSourceIndex, 16, 16, &hiconSmall, 0, 1, 0 );\r
-+#if defined(__CYGWIN__) || defined (__MINGW32__) || defined(_MSC_VER)\r
-+ static UINT (WINAPI*PrivateExtractIconExW)(LPCWSTR,int,HICON*,HICON*,UINT) = NULL;\r
- \r
-+ if (!PrivateExtractIconExW) {\r
-+ HMODULE hUser32 = GetModuleHandleA("user32");\r
-+ PrivateExtractIconExW = (UINT(WINAPI*)(LPCWSTR,int,HICON*,HICON*,UINT)) GetProcAddress(hUser32, "PrivateExtractIconExW");\r
-+ }\r
-+\r
-+ if (PrivateExtractIconExW)\r
-+ PrivateExtractIconExW(sSourceFile, dwSourceIndex, &hiconLarge, &hiconSmall, 1);\r
-+ else\r
-+#endif\r
-+ {\r
-+ PrivateExtractIconsW(sSourceFile, dwSourceIndex, 32, 32, &hiconLarge, NULL, 1, 0);\r
-+ PrivateExtractIconsW(sSourceFile, dwSourceIndex, 16, 16, &hiconSmall, NULL, 1, 0);\r
-+ }\r
-+\r
- if ( !hiconLarge || !hiconSmall)\r
- {\r
- WARN("failure loading icon %i from %s (%p %p)\n", dwSourceIndex, debugstr_w(sSourceFile), hiconLarge, hiconSmall);\r
-@@ -458,7 +472,7 @@\r
- ShellBigIconList = 0;\r
- \r
- LeaveCriticalSection(&SHELL32_SicCS);\r
-- DeleteCriticalSection(&SHELL32_SicCS);\r
-+ //DeleteCriticalSection(&SHELL32_SicCS); //static\r
- }\r
- \r
- /*****************************************************************************\r
-@@ -672,6 +686,19 @@\r
- */\r
- UINT WINAPI ExtractIconExW(LPCWSTR lpszFile, INT nIconIndex, HICON * phiconLarge, HICON * phiconSmall, UINT nIcons)\r
- {\r
-+ /* get entry point of undocumented function PrivateExtractIconExW() in user32 */\r
-+#if defined(__CYGWIN__) || defined (__MINGW32__) || defined(_MSC_VER)\r
-+ static UINT (WINAPI*PrivateExtractIconExW)(LPCWSTR,int,HICON*,HICON*,UINT) = NULL;\r
-+\r
-+ if (!PrivateExtractIconExW) {\r
-+ HMODULE hUser32 = GetModuleHandleA("user32");\r
-+ PrivateExtractIconExW = (UINT(WINAPI*)(LPCWSTR,int,HICON*,HICON*,UINT)) GetProcAddress(hUser32, "PrivateExtractIconExW");\r
-+\r
-+ if (!PrivateExtractIconExW)\r
-+ return 0;\r
-+ }\r
-+#endif\r
-+\r
- TRACE("%s %i %p %p %i\n", debugstr_w(lpszFile), nIconIndex, phiconLarge, phiconSmall, nIcons);\r
- \r
- return PrivateExtractIconExW(lpszFile, nIconIndex, phiconLarge, phiconSmall, nIcons);\r
-Index: regsvr.c\r
-===================================================================\r
---- regsvr.c (revision 29513)\r
-+++ regsvr.c (working copy)\r
-@@ -669,6 +669,7 @@\r
- static const WCHAR wszRecycleBin[] = { 'T','r','a','s','h', 0 };\r
- \r
- static struct regsvr_namespace const namespace_extensions_list[] = {\r
-+#if 0\r
- { \r
- &CLSID_UnixDosFolder,\r
- wszDesktop,\r
-@@ -684,6 +685,7 @@\r
- wszDesktop,\r
- wszRecycleBin\r
- },\r
-+#endif\r
- { NULL }\r
- };\r
- \r
-Index: shell32.spec\r
-===================================================================\r
---- shell32.spec (revision 29513)\r
-+++ shell32.spec (working copy)\r
-@@ -247,7 +247,7 @@\r
- 654 stdcall @(long long) shell32_654 # ReadCabinetState@8\r
- \r
- 660 stdcall -noname FileIconInit(long)\r
-- 680 stdcall -noname IsUserAdmin()\r
-+ 680 stdcall IsUserAnAdmin()\r
- \r
- 714 stdcall @(ptr) SHELL32_714 # PathIsTemporaryW\r
- 730 stdcall -noname RestartDialogEx(long wstr long long)\r
-@@ -368,7 +368,7 @@\r
- @ stdcall SHQueryRecycleBinA(str ptr)\r
- @ stdcall SHQueryRecycleBinW(wstr ptr)\r
- @ stdcall SHSetLocalizedName(wstr wstr long)\r
--@ stdcall SHUpdateRecycleBinIcon()\r
-+@ stub SHUpdateRecycleBinIcon\r
- @ stdcall SheChangeDirA(str)\r
- @ stub SheChangeDirExA\r
- @ stub SheChangeDirExW\r
-Index: shell32_De.rc\r
-===================================================================\r
---- shell32_De.rc (revision 29513)\r
-+++ shell32_De.rc (working copy)\r
-@@ -128,7 +128,7 @@\r
- ICON "", 1088, 10, 10, 14, 16\r
- LTEXT "", 100, 30, 10, 137, 10\r
- LTEXT "", 101, 30, 22, 137, 10\r
-- LTEXT "WINE wurde für Sie gekeltert von:", 98, 8, 55, 137, 10\r
-+ LTEXT "ReactOS wurde Ihnen zur Verfügung gestellt von:", 98, 8, 55, 170, 10\r
- }\r
- \r
- SHELL_RUN_DLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95\r
-@@ -137,14 +137,178 @@\r
- FONT 8, "MS Shell Dlg"\r
- {\r
- ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE\r
-- LTEXT "Geben sie den Namen eines Programmes, eines Ordners, eines Dokumentes oder einer Internet-Ressource ein, die geöffnet werden soll", 12289, 36, 11, 182, 18\r
-- LTEXT "Ö&ffnen:", 12305, 7, 39, 24, 10\r
-+ LTEXT "Geben Sie den Namen eines Programms, eines Ordners, eines Dokuments oder einer Internetressource an.", 12289, 36, 11, 182, 18\r
-+ LTEXT "&Öffnen:", 12305, 7, 39, 24, 10\r
- CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100\r
- DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP\r
- PUSHBUTTON "Abbrechen", IDCANCEL, 116, 63, 50, 14, WS_TABSTOP\r
- PUSHBUTTON "&Durchsuchen...", 12288, 170, 63, 50, 14, WS_TABSTOP\r
- }\r
- \r
-+SHELL_GENERAL_SHORTCUT_DLG DIALOGEX 0, 0, 240, 130\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Verknüpfung"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ ICON "", 14000, 10, 5, 30, 30, WS_VISIBLE\r
-+ LTEXT "Zeiltyp:", 14004, 10, 30, 50, 10\r
-+ LTEXT "", 14005, 70, 30, 150, 10\r
-+ LTEXT "Zielpfad:", 14006, 10, 40, 70, 10\r
-+ LTEXT "", 14007, 70, 40, 150, 10\r
-+ LTEXT "Ziel:", 14008, 10, 55, 45, 10\r
-+ EDITTEXT 14009, 70, 55, 150, 10, ES_LEFT\r
-+ LTEXT "&Starten in:",14010, 10, 65, 45, 10\r
-+ EDITTEXT 14011, 70, 65, 150, 10, ES_LEFT\r
-+ LTEXT "&Tastenkombination:", 14014, 10, 80, 45, 10\r
-+ EDITTEXT 14015, 70, 80, 150, 10, ES_LEFT\r
-+ LTEXT "Ausführen:", 14016, 10, 90, 45, 10\r
-+ EDITTEXT 14017, 70, 90, 150, 10\r
-+ LTEXT "K&ommentar:", 14018, 10, 100, 45, 10\r
-+ EDITTEXT 14019, 70, 100, 150, 10, ES_LEFT\r
-+ PUSHBUTTON "&Ziel finden...", 14020, 10, 115, 60, 14, ES_LEFT\r
-+ PUSHBUTTON "I&con wechseln...", 14021, 80, 115, 60, 14, ES_LEFT\r
-+ PUSHBUTTON "Er&weitert...", 14022, 150, 115, 60, 14, ES_LEFT\r
-+}\r
-+\r
-+SHELL_EXTENDED_SHORTCUT_DLG DIALOGEX 0, 0, 230, 150\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
-+CAPTION "Erweiterte Einstellungen"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+LTEXT "Wählen Sie die erweiterten Einstellungen für diese Verknüpfung.", -1, 5, 30, 190, 10\r
-+ CHECKBOX "Als anderer Benutzer ausführen", 14000, 30, 50, 150, 10\r
-+ LTEXT "Diese Einstellung ermöglicht es, diese Verknüpfung unter\neinem anderen oder Ihrem eingenen Bentzerkonto auszuführen\nwährend der Computer und Ihre Daten vor unautorisierten\nProgrammaktivitäten geschützt werden können.", -1, 50, 60, 200, 40\r
-+ CHECKBOX "In getrennten Speicherbereich ausführen", 14001, 30, 100, 90, 10, WS_DISABLED\r
-+ PUSHBUTTON "OK", IDOK, 25, 120, 40, 15, WS_VISIBLE\r
-+ PUSHBUTTON "Abbrechen", IDCANCEL, 120, 120, 50, 15, WS_VISIBLE\r
-+}\r
-+\r
-+SHELL_FILE_GENERAL_DLG DIALOGEX 0, 0, 240, 130\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Allgemein"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ ICON "", 14000, 10, 5, 30, 30, WS_VISIBLE\r
-+ EDITTEXT 14001, 70, 5, 100, 10, ES_LEFT | ES_READONLY\r
-+ LTEXT "Dateityp:", 14004, 10, 30, 50, 10\r
-+ LTEXT "Datei", 14005, 70, 30, 150, 10\r
-+ LTEXT "Öffnen mit:", 14006, 10, 40, 50, 10\r
-+ LTEXT "", 14007, 70, 40, 150, 10\r
-+ LTEXT "Pfad:", 14008, 10, 55, 45, 10\r
-+ LTEXT "", 14009, 70, 55, 200, 10\r
-+ LTEXT "Größe:",14010, 10, 65, 45, 10\r
-+ LTEXT "", 14011, 70, 65, 150, 10\r
-+ LTEXT "Erstellt:", 14014, 10, 80, 45, 10\r
-+ LTEXT "", 14015, 70, 80, 150, 10\r
-+ LTEXT "Geändert:", 14016, 10, 90, 45, 10\r
-+ LTEXT "", 14017, 70, 90, 150, 10\r
-+ LTEXT "Zugegriffen:", 14018, 10, 100, 45, 10\r
-+ LTEXT "", 14019, 70, 100, 150, 10\r
-+ LTEXT "Attribute:", 14020, 10, 115, 45, 10\r
-+ CHECKBOX "&Schreibgeschützt", 14021, 70, 115, 45, 10\r
-+ CHECKBOX "&Versteckt", 14022, 130, 115, 50, 10\r
-+ CHECKBOX "&Archiv", 14023, 180, 115, 45, 10\r
-+}\r
-+\r
-+SHELL_FILE_VERSION_DLG DIALOGEX 0, 0, 240, 130\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Version"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ LTEXT "Dateiversion: ", 14000, 10, 10, 45, 10\r
-+ LTEXT "", 14001, 70, 10, 150, 10\r
-+ LTEXT "Beschreibung: ", 14002, 10, 20, 45, 10\r
-+ LTEXT "", 14003, 70, 20, 150, 10\r
-+ LTEXT "Copyright: ", 14004, 10, 30, 45, 10\r
-+ LTEXT "", 14005, 70, 30, 150, 10\r
-+ GROUPBOX "Weitere Versionsinformationen: ", 14006, 10, 45, 220, 90\r
-+ LTEXT "Elementname: ", 14007, 20, 55, 50, 10\r
-+ LTEXT "Wert: ", 14008, 130, 55, 45, 10\r
-+ LISTBOX 14009,20,65,95,60, LBS_STANDARD | WS_TABSTOP | LBS_NOTIFY\r
-+ EDITTEXT 14010, 130, 65, 95, 60, ES_LEFT|WS_BORDER|WS_VSCROLL|WS_GROUP|ES_MULTILINE|ES_READONLY\r
-+\r
-+}\r
-+\r
-+DRIVE_GENERAL_DLG DIALOGEX 0, 0, 240, 230\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Allgemein"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ EDITTEXT 14001, 40, 20, 190, 10, ES_LEFT|WS_BORDER|WS_GROUP\r
-+ LTEXT "Typ:", -1, 15, 55, 40, 10\r
-+ LTEXT "", 14002, 110, 55, 100, 10\r
-+\r
-+\r
-+ LTEXT "Dateisystem:", -1, 15, 70, 100, 10\r
-+ LTEXT "", 14003, 110, 70, 100, 10\r
-+\r
-+ CONTROL "", 14013, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 5, 90, 10, 10\r
-+ LTEXT "Belegter Speicher:", -1, 25, 90, 120, 10\r
-+ LTEXT "", 14004, 110, 90, 120, 10\r
-+ LTEXT "", 14005, 200, 90, 40, 10\r
-+\r
-+ CONTROL "", 14014, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 5, 105, 10, 10\r
-+ LTEXT "Freier Speicher:", -1, 25, 105, 70, 10\r
-+ LTEXT "", 14006, 110, 105, 120, 10\r
-+ LTEXT "", 14007, 200, 105, 40, 10\r
-+\r
-+ LTEXT "Speicherkapazität:", -1, 25, 125, 80, 10\r
-+ LTEXT "", 14008, 110, 125, 120, 10\r
-+ LTEXT "", 14009, 200, 125, 40, 10\r
-+\r
-+ CONTROL "", 14015, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 20, 140, 200, 20\r
-+\r
-+ LTEXT "Laufwerk %s", 14010, 100, 170, 40, 10\r
-+ PUSHBUTTON "Bereinigen", 14011, 180, 175, 50, 15, WS_TABSTOP\r
-+ CHECKBOX "Laufwerk komprimieren, um Speicherplatz zu sparen", 14012, 15, 205, 165, 10, WS_DISABLED\r
-+ CHECKBOX "Laufwerk für schnelle Dateisuche indizieren", 14012, 15, 220, 165, 10, WS_DISABLED\r
-+}\r
-+\r
-+DRIVE_EXTRA_DLG DIALOGEX 0, 0, 240, 230\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Extras"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ GROUPBOX "Fehlerüberprüfung", -1, 5, 5, 230, 60\r
-+ LTEXT "Bei Wahl dieser Option wird das Volume\nauf Fehler überprüft.", -1, 40, 25, 160, 20\r
-+ PUSHBUTTON "Jetzt &prüfen", 14000, 130, 45, 90, 15, WS_TABSTOP\r
-+ GROUPBOX "Defragmentierung", -1, 5, 65, 230, 60\r
-+ LTEXT "Bei Wahl dieser Option werden die Dateien auf\ndem Volume defragmentiert.", -1, 40, 85, 160, 20\r
-+ PUSHBUTTON "Jetzt &defragmentieren", 14001, 130, 105, 90, 15, WS_TABSTOP\r
-+ GROUPBOX "Sicherung", -1, 5, 130, 230, 60\r
-+ LTEXT "Bei Wahl dieser Option werden die auf dem\nVolume gespeicherten Dateien gesichert.", -1, 40, 150, 160, 20\r
-+ PUSHBUTTON "Jetzt &sichern", 14002, 130, 170, 90, 15, WS_TABSTOP\r
-+}\r
-+\r
-+DRIVE_HARDWARE_DLG DIALOGEX 0, 0, 240, 230\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Hardware"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+}\r
-+\r
-+RUN_AS_DIALOG DIALOGEX 0, 0, 240, 190\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Ausführen als"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ LTEXT "Which user account do you want to use to run this program?", -1, 30, 30, 170, 10\r
-+ CHECKBOX "Aktueller Benutzer %s", 14000, 5, 45, 150, 10\r
-+ LTEXT "Computer vor unauthorisierten Programmaktiviäten schützen", -1, 40, 65, 150, 10, WS_DISABLED\r
-+ CHECKBOX "Diese Einstellung kann Computerviren daran hindern, ihrem\nComputer und/oder Ihren persönlichen Daten zu schaden, aber\nes kann auch Programme daran hindern, Ordnungsgemäß zu arbeiten.", 14001, 40, 80, 150, 10, WS_DISABLED\r
-+ CHECKBOX "Folgender Benutzer:", 14002, 5, 100, 90, 10\r
-+ LTEXT "Benutzername:", -1, 15, 115, 60, 10\r
-+ COMBOBOX 14003, 70, 115, 100, 15, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP\r
-+\r
-+ PUSHBUTTON "...", 14004, 180, 115, 30, 10, WS_TABSTOP\r
-+ LTEXT "Passwort:", -1, 15, 140, 60, 10\r
-+ EDITTEXT 14005, 70, 140, 100, 10, ES_LEFT | WS_BORDER | WS_GROUP\r
-+ PUSHBUTTON "...", 14006, 180, 140, 30, 10, WS_TABSTOP\r
-+ PUSHBUTTON "OK", 14007, 70, 170, 60, 15, WS_TABSTOP\r
-+ PUSHBUTTON "Abbrechen", 14008, 140, 170, 60, 15, WS_TABSTOP\r
-+}\r
-+\r
-+\r
- STRINGTABLE DISCARDABLE\r
- {\r
- /* columns in the shellview */\r
-@@ -194,10 +358,10 @@\r
- "the folder?"\r
- \r
- /* message box strings */\r
-- IDS_RESTART_TITLE "Neustarten"\r
-- IDS_RESTART_PROMPT "Möchten Sie, dass ein simulierter Windows Neustart durchgeführt wird ?"\r
-- IDS_SHUTDOWN_TITLE "Anhalten"\r
-- IDS_SHUTDOWN_PROMPT "Möchten Sie die aktuelle Wine Sitzung beenden ?"\r
-+ IDS_RESTART_TITLE "Neu starten"\r
-+ IDS_RESTART_PROMPT "Möchten Sie das System neu starten?"\r
-+ IDS_SHUTDOWN_TITLE "Herunterfahren"\r
-+ IDS_SHUTDOWN_PROMPT "Möchten Sie das System herunterfahren?"\r
- \r
- /* shell folder path default values */\r
- IDS_PROGRAMS "Startmenü\\Programme"\r
-@@ -227,4 +391,7 @@\r
- IDS_COMMON_PICTURES "Dokumente\\Eigene Bilder"\r
- IDS_COMMON_VIDEO "Dokumente\\Eigene Videos"\r
- IDS_CDBURN_AREA "Lokale Einstellungen\\Anwendungsdaten\\Microsoft\\CD Burning"\r
-+ IDS_DRIVE_FIXED "Lokaler Datenträger"\r
-+ IDS_DRIVE_CDROM "CD-Laufwerk"\r
-+ IDS_DRIVE_NETWORK "Netzwerklaufwerk"\r
- }\r
-Index: shell32_En.rc\r
-===================================================================\r
---- shell32_En.rc (revision 29513)\r
-+++ shell32_En.rc (working copy)\r
-@@ -16,7 +16,7 @@\r
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA\r
- */\r
- \r
--LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT\r
-+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
- \r
- MENU_001 MENU DISCARDABLE\r
- BEGIN\r
-@@ -145,7 +145,7 @@\r
- ICON "", 1088, 10, 10, 14, 16\r
- LTEXT "", 100, 30, 10, 137, 10\r
- LTEXT "", 101, 30, 22, 137, 10\r
-- LTEXT "Wine was brought to you by:", 98, 8, 55, 137, 10\r
-+ LTEXT "ReactOS was brought to you by:", 98, 8, 55, 137, 10\r
- }\r
- \r
- SHELL_RUN_DLG DIALOG LOADONCALL MOVEABLE DISCARDABLE 0, 0, 227, 95\r
-@@ -154,7 +154,7 @@\r
- FONT 8, "MS Shell Dlg"\r
- {\r
- ICON "", 12297, 7, 11, 18, 20, WS_VISIBLE\r
-- LTEXT "Type the name of a program, folder, document, or Internet resource, and Wine will open it for you.", 12289, 36, 11, 182, 18\r
-+ LTEXT "Type the name of a program, folder, document, or Internet resource, and ReactOS will open it for you.", 12289, 36, 11, 182, 18\r
- LTEXT "&Open:", 12305, 7, 39, 24, 10\r
- CONTROL "", 12298, "COMBOBOX", WS_TABSTOP | WS_GROUP | WS_VSCROLL | WS_VISIBLE | CBS_DISABLENOSCROLL | CBS_AUTOHSCROLL | CBS_DROPDOWN, 36, 37, 183, 100\r
- DEFPUSHBUTTON "OK", IDOK, 62, 63, 50, 14, WS_TABSTOP\r
-@@ -162,6 +162,172 @@\r
- PUSHBUTTON "&Browse...", 12288, 170, 63, 50, 14, WS_TABSTOP\r
- }\r
- \r
-+SHELL_GENERAL_SHORTCUT_DLG DIALOGEX 0, 0, 240, 130\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Shortcut"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ ICON "", 14000, 10, 5, 30, 30, WS_VISIBLE\r
-+ LTEXT "Target type:", 14004, 10, 30, 50, 10\r
-+ LTEXT "", 14005, 70, 30, 150, 10\r
-+ LTEXT "Target location:", 14006, 10, 40, 70, 10\r
-+ LTEXT "", 14007, 70, 40, 150, 10\r
-+ LTEXT "Target:", 14008, 10, 55, 45, 10\r
-+ EDITTEXT 14009, 70, 55, 150, 10, ES_LEFT\r
-+ LTEXT "&Start in:",14010, 10, 65, 45, 10\r
-+ EDITTEXT 14011, 70, 65, 150, 10, ES_LEFT\r
-+ LTEXT "Shortcut &key:", 14014, 10, 80, 45, 10\r
-+ EDITTEXT 14015, 70, 80, 150, 10, ES_LEFT\r
-+ LTEXT "Run:", 14016, 10, 90, 45, 10\r
-+ EDITTEXT 14017, 70, 90, 150, 10\r
-+ LTEXT "C&omment:", 14018, 10, 100, 45, 10\r
-+ EDITTEXT 14019, 70, 100, 150, 10, ES_LEFT\r
-+ PUSHBUTTON "&Find Target...", 14020, 10, 115, 60, 14, ES_LEFT\r
-+ PUSHBUTTON "&Change Icon...", 14021, 80, 115, 60, 14, ES_LEFT\r
-+ PUSHBUTTON "A&dvanced...", 14022, 150, 115, 60, 14, ES_LEFT\r
-+}\r
-+\r
-+SHELL_EXTENDED_SHORTCUT_DLG DIALOGEX 0, 0, 260, 150\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION\r
-+CAPTION "Extended Properties"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ LTEXT "Choose the advanced properties you want for this shortcut.", -1, 5, 30, 190, 10\r
-+ CHECKBOX "Run with different credentials", 14000, 30, 50, 150, 10\r
-+ LTEXT "This option can allow you to run the this shortcut as another\nuser, or continue as yourself while protecting your computer\nand data from unauthorized program activity.", -1, 50, 60, 200, 40\r
-+ CHECKBOX "Run in seperate memory space", 14001, 30, 100, 90, 10, WS_DISABLED\r
-+ PUSHBUTTON "OK", IDOK, 25, 120, 40, 15, WS_VISIBLE\r
-+ PUSHBUTTON "Abort", IDCANCEL, 120, 120, 50, 15, WS_VISIBLE\r
-+}\r
-+\r
-+SHELL_FILE_GENERAL_DLG DIALOGEX 0, 0, 240, 130\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "General"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ ICON "", 14000, 10, 5, 30, 30, WS_VISIBLE\r
-+ EDITTEXT 14001, 70, 5, 100, 10, ES_LEFT | ES_READONLY\r
-+ LTEXT "Type of file:", 14004, 10, 30, 50, 10\r
-+ LTEXT "File", 14005, 70, 30, 150, 10\r
-+ LTEXT "Opens with:", 14006, 10, 40, 50, 10\r
-+ LTEXT "", 14007, 70, 40, 150, 10\r
-+ LTEXT "Location:", 14008, 10, 55, 45, 10\r
-+ LTEXT "", 14009, 70, 55, 200, 10\r
-+ LTEXT "Size:",14010, 10, 65, 45, 10\r
-+ LTEXT "", 14011, 70, 65, 150, 10\r
-+ LTEXT "Created:", 14014, 10, 80, 45, 10\r
-+ LTEXT "", 14015, 70, 80, 150, 10\r
-+ LTEXT "Modified:", 14016, 10, 90, 45, 10\r
-+ LTEXT "", 14017, 70, 90, 150, 10\r
-+ LTEXT "Accessed:", 14018, 10, 100, 45, 10\r
-+ LTEXT "", 14019, 70, 100, 150, 10\r
-+ LTEXT "Attributes:", 14020, 10, 115, 45, 10\r
-+ CHECKBOX "&Read-only", 14021, 70, 115, 45, 10\r
-+ CHECKBOX "&Hidden", 14022, 130, 115, 50, 10\r
-+ CHECKBOX "&Archive", 14023, 180, 115, 45, 10\r
-+}\r
-+\r
-+SHELL_FILE_VERSION_DLG DIALOGEX 0, 0, 240, 130\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Version"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ LTEXT "File version: ", 14000, 10, 10, 45, 10\r
-+ LTEXT "", 14001, 70, 10, 150, 10\r
-+ LTEXT "Description: ", 14002, 10, 20, 45, 10\r
-+ LTEXT "", 14003, 70, 20, 150, 10\r
-+ LTEXT "Copyright: ", 14004, 10, 30, 45, 10\r
-+ LTEXT "", 14005, 70, 30, 150, 10\r
-+ GROUPBOX "Other version information: ", 14006, 10, 45, 220, 90\r
-+ LTEXT "Item name: ", 14007, 20, 55, 50, 10\r
-+ LTEXT "Value: ", 14008, 130, 55, 45, 10\r
-+ LISTBOX 14009,20,65,95,60, LBS_STANDARD | WS_TABSTOP | LBS_NOTIFY\r
-+ EDITTEXT 14010, 130, 65, 95, 60, ES_LEFT|WS_BORDER|WS_VSCROLL|WS_GROUP|ES_MULTILINE|ES_READONLY\r
-+\r
-+}\r
-+\r
-+DRIVE_GENERAL_DLG DIALOGEX 0, 0, 240, 230\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "General"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ EDITTEXT 14001, 40, 20, 190, 10, ES_LEFT|WS_BORDER|WS_GROUP\r
-+ LTEXT "Type:", -1, 15, 55, 40, 10\r
-+ LTEXT "", 14002, 110, 55, 100, 10\r
-+\r
-+\r
-+ LTEXT "File system:", -1, 15, 70, 100, 10\r
-+ LTEXT "", 14003, 110, 70, 100, 10\r
-+\r
-+ CONTROL "", 14013, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 5, 90, 10, 10\r
-+ LTEXT "Used space:", -1, 25, 90, 120, 10\r
-+ LTEXT "", 14004, 110, 90, 120, 10\r
-+ LTEXT "", 14005, 200, 90, 40, 10\r
-+\r
-+ CONTROL "", 14014, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 5, 105, 10, 10\r
-+ LTEXT "Free space:", -1, 25, 105, 70, 10\r
-+ LTEXT "", 14006, 110, 105, 120, 10\r
-+ LTEXT "", 14007, 200, 105, 40, 10\r
-+\r
-+ LTEXT "Capacity:", -1, 25, 125, 80, 10\r
-+ LTEXT "", 14008, 110, 125, 120, 10\r
-+ LTEXT "", 14009, 200, 125, 40, 10\r
-+\r
-+ CONTROL "", 14015, "Static", SS_NOTIFY | SS_SUNKEN | SS_OWNERDRAW, 20, 140, 200, 20\r
-+\r
-+ LTEXT "Drive %s", 14010, 100, 170, 40, 10\r
-+ PUSHBUTTON "Disk Cleanup", 14011, 180, 175, 50, 15, WS_TABSTOP\r
-+ CHECKBOX "Compress drive to save disk space", 14012, 15, 205, 165, 10, WS_DISABLED\r
-+ CHECKBOX "Allow Indexing Service to index this disk for fast file searching", 14012, 15, 220, 200, 10, WS_DISABLED\r
-+}\r
-+\r
-+DRIVE_EXTRA_DLG DIALOGEX 0, 0, 240, 230\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Tools"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ GROUPBOX "Error-checking", -1, 5, 5, 230, 60\r
-+ LTEXT "This option will check the volume for\nerrors.", -1, 40, 25, 160, 20\r
-+ PUSHBUTTON "Check Now...", 14000, 130, 45, 90, 15, WS_TABSTOP\r
-+ GROUPBOX "Defragmentation", -1, 5, 65, 230, 60\r
-+ LTEXT "This option will defragment files on the volume", -1, 40, 85, 160, 20\r
-+ PUSHBUTTON "Defragment Now...", 14001, 130, 105, 90, 15, WS_TABSTOP\r
-+ GROUPBOX "Backup", -1, 5, 130, 230, 60\r
-+ LTEXT "This option will back up files on the volume.", -1, 40, 150, 160, 20\r
-+ PUSHBUTTON "Backup Now...", 14002, 130, 170, 90, 15, WS_TABSTOP\r
-+}\r
-+\r
-+\r
-+\r
-+DRIVE_HARDWARE_DLG DIALOGEX 0, 0, 240, 130\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Hardware"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+}\r
-+\r
-+RUN_AS_DIALOG DIALOGEX 0, 0, 240, 190\r
-+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION\r
-+CAPTION "Run As"\r
-+FONT 8, "MS Shell Dlg", 0, 0, 0x0\r
-+{\r
-+ LTEXT "Which user account do you want to use to run this program?", -1, 30, 30, 170, 10\r
-+ CHECKBOX "Current User %s", 14000, 5, 45, 150, 10\r
-+ LTEXT "Protect my computer and data from unauthorized program activity", -1, 40, 65, 150, 10, WS_DISABLED\r
-+ CHECKBOX "This option can prevent computer viruses from harming your\ncomputer or personal data, but selecting it might cause the\nprogram to function improperly.", 14001, 40, 80, 150, 10, WS_DISABLED\r
-+ CHECKBOX "The following user:", 14002, 5, 100, 90, 10\r
-+ LTEXT "User name:", -1, 15, 115, 60, 10\r
-+ COMBOBOX 14003, 70, 115, 100, 15, CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_TABSTOP\r
-+\r
-+ PUSHBUTTON "...", 14004, 180, 115, 30, 10, WS_TABSTOP\r
-+ LTEXT "Password:", -1, 15, 140, 60, 10\r
-+ EDITTEXT 14005, 70, 140, 100, 10, ES_LEFT | WS_BORDER | WS_GROUP\r
-+ PUSHBUTTON "...", 14006, 180, 140, 30, 10, WS_TABSTOP\r
-+ PUSHBUTTON "OK", 14007, 70, 170, 60, 15, WS_TABSTOP\r
-+ PUSHBUTTON "Cancel", 14008, 140, 170, 60, 15, WS_TABSTOP\r
-+}\r
-+\r
-+\r
- STRINGTABLE DISCARDABLE\r
- {\r
- /* columns in the shellview */\r
-@@ -211,10 +377,10 @@\r
- "the folder?"\r
- \r
- /* message box strings */\r
-- IDS_RESTART_TITLE "Restart"\r
-- IDS_RESTART_PROMPT "Do you want to simulate a Windows reboot?"\r
-- IDS_SHUTDOWN_TITLE "Shutdown"\r
-- IDS_SHUTDOWN_PROMPT "Do you want to shutdown your Wine session?"\r
-+ IDS_RESTART_TITLE "Restart"\r
-+ IDS_RESTART_PROMPT "Do you want to restart the system?"\r
-+ IDS_SHUTDOWN_TITLE "Shutdown"\r
-+ IDS_SHUTDOWN_PROMPT "Do you want to shutdown?"\r
- \r
- /* shell folder path default values */\r
- IDS_PROGRAMS "Start Menu\\Programs"\r
-@@ -244,4 +410,7 @@\r
- IDS_COMMON_PICTURES "Documents\\My Pictures"\r
- IDS_COMMON_VIDEO "Documents\\My Video"\r
- IDS_CDBURN_AREA "Local Settings\\Application Data\\Microsoft\\CD Burning"\r
-+ IDS_DRIVE_FIXED "Local Disk"\r
-+ IDS_DRIVE_CDROM "CDROM"\r
-+ IDS_DRIVE_NETWORK "Network Disk"\r
- }\r
-Index: shell32_main.h\r
-===================================================================\r
---- shell32_main.h (revision 29513)\r
-+++ shell32_main.h (working copy)\r
-@@ -239,4 +239,8 @@\r
- /* Detect Shell Links */\r
- BOOL SHELL_IsShortcut(LPCITEMIDLIST);\r
- \r
-+INT_PTR CALLBACK SH_FileGeneralDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);\r
-+INT_PTR CALLBACK SH_FileVersionDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);\r
-+HPROPSHEETPAGE SH_CreatePropertySheetPage(LPSTR resname, DLGPROC dlgproc, LPARAM lParam);\r
-+BOOL SH_ShowDriveProperties(WCHAR * drive);\r
- #endif\r
-Index: shelllink.c\r
-===================================================================\r
---- shelllink.c (revision 29513)\r
-+++ shelllink.c (working copy)\r
-@@ -53,8 +53,9 @@\r
- #include "shlwapi.h"\r
- #include "msi.h"\r
- #include "appmgmt.h"\r
--\r
-+#include "prsht.h"\r
- #include "initguid.h"\r
-+#include "shresdef.h"\r
- \r
- WINE_DEFAULT_DEBUG_CHANNEL(shell);\r
- \r
-@@ -86,6 +87,7 @@\r
- \r
- #define SHLINK_LOCAL 0\r
- #define SHLINK_REMOTE 1\r
-+#define MAX_PROPERTY_SHEET_PAGE 32\r
- \r
- typedef struct _LOCATION_INFO\r
- {\r
-@@ -157,9 +159,11 @@\r
- LPWSTR sProduct;\r
- LPWSTR sComponent;\r
- volume_info volume;\r
--\r
-+ LPWSTR sLinkPath;\r
-+ BOOL bRunAs;\r
- BOOL bDirty;\r
- INT iIdOpen; /* id of the "Open" entry in the context menu */\r
-+ INT iIdProperties; /* id of the "Properties" entry in the context menu */\r
- IUnknown *site;\r
- } IShellLinkImpl;\r
- \r
-@@ -304,6 +308,7 @@\r
- HeapFree(GetProcessHeap(), 0, This->sWorkDir);\r
- HeapFree(GetProcessHeap(), 0, This->sDescription);\r
- HeapFree(GetProcessHeap(),0,This->sPath);\r
-+ HeapFree(GetProcessHeap(),0,This->sLinkPath);\r
- \r
- if (This->site)\r
- IUnknown_Release( This->site );\r
-@@ -386,6 +391,8 @@\r
- r = SHCreateStreamOnFileW(pszFileName, dwMode, &stm);\r
- if( SUCCEEDED( r ) )\r
- {\r
-+ HeapFree(GetProcessHeap(), 0, This->sLinkPath);\r
-+ This->sLinkPath = _wcsdup(pszFileName);\r
- r = IPersistStream_Load(StreamThis, stm);\r
- ShellLink_UpdatePath(This->sPathRel, pszFileName, This->sWorkDir, &This->sPath);\r
- IStream_Release( stm );\r
-@@ -919,6 +926,15 @@\r
- r = Stream_LoadAdvertiseInfo( stm, &This->sComponent );\r
- TRACE("Component -> %s\n",debugstr_w(This->sComponent));\r
- }\r
-+ if( hdr.dwFlags & SLDF_RUNAS_USER )\r
-+ {\r
-+ This->bRunAs = TRUE;\r
-+ }\r
-+ else\r
-+ {\r
-+ This->bRunAs = FALSE;\r
-+ }\r
-+\r
- if( FAILED( r ) )\r
- goto end;\r
- \r
-@@ -1089,6 +1105,8 @@\r
- header.dwFlags |= SLDF_HAS_LOGO3ID;\r
- if( This->sComponent )\r
- header.dwFlags |= SLDF_HAS_DARWINID;\r
-+ if( This->bRunAs )\r
-+ header.dwFlags |= SLDF_RUNAS_USER;\r
- \r
- SystemTimeToFileTime ( &This->time1, &header.Time1 );\r
- SystemTimeToFileTime ( &This->time2, &header.Time2 );\r
-@@ -1204,6 +1222,7 @@\r
- sl->bDirty = FALSE;\r
- sl->iIdOpen = -1;\r
- sl->site = NULL;\r
-+ sl->bRunAs = FALSE;\r
- \r
- TRACE("(%p)->()\n",sl);\r
- \r
-@@ -2452,6 +2471,7 @@\r
- {\r
- IShellLinkImpl *This = impl_from_IContextMenu(iface);\r
- static WCHAR szOpen[] = { 'O','p','e','n',0 };\r
-+ static WCHAR szProperties[] = { 'P','r','o','p','e','r','t','i','e','s',0 };\r
- MENUITEMINFOW mii;\r
- int id = 1;\r
- \r
-@@ -2461,10 +2481,10 @@\r
- if ( !hmenu )\r
- return E_INVALIDARG;\r
- \r
-- memset( &mii, 0, sizeof mii );\r
-- mii.cbSize = sizeof mii;\r
-+ memset( &mii, 0, sizeof(mii) );\r
-+ mii.cbSize = sizeof (mii);\r
- mii.fMask = MIIM_TYPE | MIIM_ID | MIIM_STATE;\r
-- mii.dwTypeData = szOpen;\r
-+ mii.dwTypeData = (LPWSTR)szOpen;\r
- mii.cch = strlenW( mii.dwTypeData );\r
- mii.wID = idCmdFirst + id++;\r
- mii.fState = MFS_DEFAULT | MFS_ENABLED;\r
-@@ -2473,6 +2493,18 @@\r
- return E_FAIL;\r
- This->iIdOpen = 0;\r
- \r
-+ mii.fState = MFS_ENABLED;\r
-+ mii.dwTypeData = (LPWSTR)szProperties;\r
-+ mii.cch = strlenW( mii.dwTypeData );\r
-+ mii.wID = idCmdFirst + id++;\r
-+ if (!InsertMenuItemW( hmenu, idCmdLast, TRUE, &mii ))\r
-+ {\r
-+ TRACE("ShellLink_QueryContextMenu failed to insert item properties");\r
-+ return E_FAIL;\r
-+ }\r
-+ This->iIdProperties = 1;\r
-+ id++;\r
-+\r
- return MAKE_HRESULT( SEVERITY_SUCCESS, 0, id );\r
- }\r
- \r
-@@ -2500,7 +2532,223 @@\r
- return path;\r
- }\r
- \r
-+INT_PTR CALLBACK ExtendedShortcutProc( \r
-+ HWND hwndDlg,\r
-+ UINT uMsg,\r
-+ WPARAM wParam,\r
-+ LPARAM lParam\r
-+)\r
-+{\r
-+ HWND hDlgCtrl;\r
-+\r
-+ switch(uMsg)\r
-+ {\r
-+ case WM_INITDIALOG:\r
-+ if (lParam)\r
-+ {\r
-+ hDlgCtrl = GetDlgItem(hwndDlg, 14000);\r
-+ SendMessage(hDlgCtrl, BM_SETCHECK, BST_CHECKED, 0);\r
-+ }\r
-+ return TRUE;\r
-+ case WM_COMMAND:\r
-+ hDlgCtrl = GetDlgItem(hwndDlg, 14000);\r
-+ if (LOWORD(wParam) == IDOK)\r
-+ {\r
-+ if ( SendMessage(hDlgCtrl, BM_GETCHECK, 0, 0) == BST_CHECKED )\r
-+ EndDialog(hwndDlg, 1);\r
-+ else\r
-+ EndDialog(hwndDlg, 0);\r
-+ }\r
-+ else if (LOWORD(wParam) == IDCANCEL)\r
-+ {\r
-+ EndDialog(hwndDlg, -1);\r
-+ }\r
-+ else if (LOWORD(wParam) == 14000)\r
-+ {\r
-+ if ( SendMessage(hDlgCtrl, BM_GETCHECK, 0, 0) == BST_CHECKED)\r
-+ SendMessage(hDlgCtrl, BM_SETCHECK, BST_UNCHECKED, 0);\r
-+ else\r
-+ SendMessage(hDlgCtrl, BM_SETCHECK, BST_CHECKED, 0);\r
-+\r
-+ }\r
-+ }\r
-+ return FALSE;\r
-+}\r
-+\r
-+/**************************************************************************\r
-+ * SH_ShellLinkDlgProc\r
-+ *\r
-+ * dialog proc of the shortcut property dialog\r
-+ */\r
-+\r
-+INT_PTR \r
-+CALLBACK \r
-+SH_ShellLinkDlgProc( \r
-+ HWND hwndDlg,\r
-+ UINT uMsg,\r
-+ WPARAM wParam,\r
-+ LPARAM lParam\r
-+)\r
-+{\r
-+ LPPROPSHEETPAGEW ppsp;\r
-+ LPPSHNOTIFY lppsn;\r
-+ IShellLinkImpl *This;\r
-+ HWND hDlgCtrl;\r
-+ WCHAR szBuffer[MAX_PATH];\r
-+ int IconIndex;\r
-+ INT_PTR result;\r
-+\r
-+ This = (IShellLinkImpl *)GetWindowLongPtr(hwndDlg, DWLP_USER);\r
-+\r
-+ switch(uMsg)\r
-+ {\r
-+ case WM_INITDIALOG:\r
-+ ppsp = (LPPROPSHEETPAGEW)lParam;\r
-+ if (ppsp == NULL)\r
-+ break;\r
-+ \r
-+ TRACE("ShellLink_DlgProc (WM_INITDIALOG hwnd %p lParam %p ppsplParam %x)\n",hwndDlg, lParam, ppsp->lParam);\r
-+\r
-+ This = (IShellLinkImpl *)ppsp->lParam;\r
-+ SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)This);\r
-+\r
-+ TRACE("sArgs: %S sComponent: %S sDescription: %S sIcoPath: %S sPath: %S sPathRel: %S sProduct: %S sWorkDir: %S\n", This->sArgs, This->sComponent ,This->sDescription,\r
-+ This->sIcoPath, This->sPath, This->sPathRel, This->sProduct, This->sWorkDir);\r
-+\r
-+ /* target path */\r
-+ hDlgCtrl = GetDlgItem( hwndDlg, 14009 );\r
-+ if ( hDlgCtrl != NULL )\r
-+ SendMessageW( hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)This->sPath );\r
-+\r
-+ /* working dir */\r
-+ hDlgCtrl = GetDlgItem( hwndDlg, 14011 );\r
-+ if ( hDlgCtrl != NULL )\r
-+ SendMessageW( hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)This->sWorkDir );\r
-+\r
-+ /* description */\r
-+ hDlgCtrl = GetDlgItem( hwndDlg, 14019 );\r
-+ if ( hDlgCtrl != NULL )\r
-+ SendMessageW( hDlgCtrl, WM_SETTEXT, (WPARAM)NULL, (LPARAM)This->sDescription );\r
-+ return TRUE;\r
-+ case WM_NOTIFY:\r
-+ lppsn = (LPPSHNOTIFY) lParam; \r
-+ if ( lppsn->hdr.code == PSN_APPLY )\r
-+ {\r
-+ /* set working directory */\r
-+ hDlgCtrl = GetDlgItem( hwndDlg, 14011 );\r
-+ SendMessageW( hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)szBuffer );\r
-+ IShellLinkW_fnSetWorkingDirectory((IShellLinkW*)&This->lpvtblw, szBuffer);\r
-+ /* set link destination */\r
-+ hDlgCtrl = GetDlgItem( hwndDlg, 14009 );\r
-+ SendMessageW( hDlgCtrl, WM_GETTEXT, (WPARAM)MAX_PATH, (LPARAM)szBuffer);\r
-+ if ( !SHELL_ExistsFileW(szBuffer) )\r
-+ {\r
-+ MessageBoxW( hwndDlg, L"file not existing", szBuffer, MB_OK );\r
-+ SetWindowLong( hwndDlg, DWL_MSGRESULT, PSNRET_INVALID_NOCHANGEPAGE );\r
-+ return TRUE;\r
-+ }\r
-+ IShellLinkW_fnSetPath((IShellLinkW*)&This->lpvtblw, szBuffer);\r
-+\r
-+ TRACE("This %p sLinkPath %S\n", This, This->sLinkPath);\r
-+ IPersistFile_fnSave( (IPersistFile*)&This->lpvtblPersistFile, This->sLinkPath, TRUE );\r
-+ SetWindowLong( hwndDlg, DWL_MSGRESULT, PSNRET_NOERROR );\r
-+ return TRUE;\r
-+ }\r
-+ break;\r
-+ case WM_COMMAND:\r
-+ switch(LOWORD(wParam))\r
-+ {\r
-+ case 14020:\r
-+ /// \r
-+ /// FIXME\r
-+ /// open target directory\r
-+ ///\r
-+ return TRUE;\r
-+ case 14021:\r
-+ if (PickIconDlg(hwndDlg, szBuffer, MAX_PATH, &IconIndex))\r
-+ {\r
-+ IShellLinkW_fnSetIconLocation((IShellLinkW*)&This->lpvtblw, szBuffer, IconIndex);\r
-+ ///\r
-+ /// FIXME redraw icon\r
-+ }\r
-+ return TRUE;\r
-+ case 14022:\r
-+ result = DialogBoxParamW(shell32_hInstance, MAKEINTRESOURCEW(SHELL_EXTENDED_SHORTCUT_DLG), hwndDlg, ExtendedShortcutProc, (LPARAM)This->bRunAs);\r
-+ if (result == 1 || result == 0)\r
-+ {\r
-+ if ( This->bRunAs != result )\r
-+ {\r
-+ PropSheet_Changed(GetParent(hwndDlg), hwndDlg);\r
-+ }\r
-+\r
-+ This->bRunAs = result;\r
-+ }\r
-+ return TRUE;\r
-+ }\r
-+ switch(HIWORD(wParam))\r
-+ {\r
-+ case EN_CHANGE:\r
-+ PropSheet_Changed(GetParent(hwndDlg), hwndDlg);\r
-+ break;\r
-+ }\r
-+ break;\r
-+ default:\r
-+ break;\r
-+ }\r
-+ return FALSE;\r
-+}\r
-+\r
-+/**************************************************************************\r
-+ * ShellLink_ShortcutDialog [Internal]\r
-+ *\r
-+ * creates a shortcut property dialog\r
-+ */\r
-+\r
- static HRESULT WINAPI\r
-+ShellLink_ShowProperties( IShellLinkImpl *This )\r
-+{\r
-+ PROPSHEETHEADERW pinfo;\r
-+ HPROPSHEETPAGE hppages[MAX_PROPERTY_SHEET_PAGE];\r
-+ HPROPSHEETPAGE hpage;\r
-+ UINT numpages = 0;\r
-+\r
-+ TRACE("ShellLink_ShortcutDialog entered\n");\r
-+\r
-+ memset(hppages, 0x0, sizeof(HPROPSHEETPAGE) * MAX_PROPERTY_SHEET_PAGE);\r
-+\r
-+ hpage = SH_CreatePropertySheetPage("SHELL_FILE_GENERAL_DLG", SH_FileGeneralDlgProc, (LPARAM)This->sLinkPath);\r
-+ if ( hpage == NULL )\r
-+ return E_FAIL;\r
-+ else\r
-+ hppages[numpages++] = hpage;\r
-+\r
-+ hpage = SH_CreatePropertySheetPage("SHELL_GENERAL_SHORTCUT_DLG", SH_ShellLinkDlgProc, (LPARAM)This);\r
-+ if ( hpage == NULL )\r
-+ {\r
-+ ERR("SH_CreatePropertySheetPage failed\n");\r
-+ DestroyPropertySheetPage(hppages[0]);\r
-+ return E_FAIL;\r
-+ }\r
-+ hppages[numpages++] = hpage;\r
-+\r
-+ ///FIXME\r
-+ /// load extensions\r
-+\r
-+ memset(&pinfo, 0x0, sizeof(PROPSHEETHEADERW));\r
-+ pinfo.dwSize = sizeof(PROPSHEETHEADERW);\r
-+ pinfo.dwFlags = PSH_NOCONTEXTHELP | PSH_PROPTITLE;\r
-+ pinfo.nPages = numpages;\r
-+ pinfo.u3.phpage = hppages;\r
-+ pinfo.pszCaption = This->sDescription;\r
-+ pinfo.u2.nStartPage = 1;\r
-+\r
-+ if ( PropertySheetW(&pinfo) < 0 )\r
-+ return E_FAIL;\r
-+ else\r
-+ return S_OK;\r
-+}\r
-+\r
-+static HRESULT WINAPI\r
- ShellLink_InvokeCommand( IContextMenu* iface, LPCMINVOKECOMMANDINFO lpici )\r
- {\r
- IShellLinkImpl *This = impl_from_IContextMenu(iface);\r
-@@ -2516,6 +2764,12 @@\r
- if ( lpici->cbSize < sizeof (CMINVOKECOMMANDINFO) )\r
- return E_INVALIDARG;\r
- \r
-+ if ( lpici->lpVerb == MAKEINTRESOURCEA(This->iIdProperties))\r
-+ {\r
-+ ShellLink_ShowProperties(This);\r
-+ return S_OK;\r
-+ }\r
-+\r
- if ( lpici->lpVerb != MAKEINTRESOURCEA(This->iIdOpen) )\r
- {\r
- ERR("Unknown id %d != %d\n", (INT)lpici->lpVerb, This->iIdOpen );\r
-Index: shellole.c\r
-===================================================================\r
---- shellole.c (revision 29513)\r
-+++ shellole.c (working copy)\r
-@@ -69,11 +69,13 @@\r
- {&CLSID_DragDropHelper, &IDropTargetHelper_Constructor},\r
- {&CLSID_ControlPanel, &IControlPanel_Constructor},\r
- {&CLSID_AutoComplete, &IAutoComplete_Constructor},\r
-+#if 0\r
- {&CLSID_UnixFolder, &UnixFolder_Constructor},\r
- {&CLSID_UnixDosFolder, &UnixDosFolder_Constructor},\r
- {&CLSID_FolderShortcut, &FolderShortcut_Constructor},\r
- {&CLSID_MyDocuments, &MyDocuments_Constructor},\r
- {&CLSID_RecycleBin, &RecycleBin_Constructor},\r
-+#endif\r
- {NULL,NULL}\r
- };\r
- \r
-Index: shellord.c\r
-===================================================================\r
---- shellord.c (revision 29513)\r
-+++ shellord.c (working copy)\r
-@@ -1265,9 +1265,70 @@\r
- * IsUserAdmin [SHELL32.680] NT 4.0\r
- *\r
- */\r
--HRESULT WINAPI IsUserAdmin(void)\r
--{ FIXME("stub\n");\r
-- return TRUE;\r
-+\r
-+BOOL WINAPI IsUserAnAdmin(VOID)\r
-+{\r
-+ SID_IDENTIFIER_AUTHORITY Authority = {SECURITY_NT_AUTHORITY};\r
-+ HANDLE hToken;\r
-+ DWORD dwSize;\r
-+ PTOKEN_GROUPS lpGroups;\r
-+ PSID lpSid;\r
-+ DWORD i;\r
-+ BOOL bResult = FALSE;\r
-+\r
-+ TRACE("\n");\r
-+\r
-+ if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))\r
-+ {\r
-+ return FALSE;\r
-+ }\r
-+\r
-+ if (!GetTokenInformation(hToken, TokenGroups, NULL, 0, &dwSize))\r
-+ {\r
-+ if (GetLastError() != ERROR_INSUFFICIENT_BUFFER)\r
-+ {\r
-+ CloseHandle(hToken);\r
-+ return FALSE;\r
-+ }\r
-+ }\r
-+\r
-+ lpGroups = HeapAlloc(GetProcessHeap(), 0, dwSize);\r
-+ if (lpGroups == NULL)\r
-+ {\r
-+ CloseHandle(hToken);\r
-+ return FALSE;\r
-+ }\r
-+\r
-+ if (!GetTokenInformation(hToken, TokenGroups, lpGroups, dwSize, &dwSize))\r
-+ {\r
-+ HeapFree(GetProcessHeap(), 0, lpGroups);\r
-+ CloseHandle(hToken);\r
-+ return FALSE;\r
-+ }\r
-+\r
-+ CloseHandle(hToken);\r
-+\r
-+ if (!AllocateAndInitializeSid(&Authority, 2, SECURITY_BUILTIN_DOMAIN_RID,\r
-+ DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0,\r
-+ &lpSid))\r
-+ {\r
-+ HeapFree(GetProcessHeap(), 0, lpGroups);\r
-+ return FALSE;\r
-+ }\r
-+\r
-+ for (i = 0; i < lpGroups->GroupCount; i++)\r
-+ {\r
-+ if (EqualSid(lpSid, lpGroups->Groups[i].Sid))\r
-+ {\r
-+ bResult = TRUE;\r
-+ break;\r
-+ }\r
-+ }\r
-+\r
-+ FreeSid(lpSid);\r
-+ HeapFree(GetProcessHeap(), 0, lpGroups);\r
-+\r
-+ return bResult;\r
- }\r
- \r
- /*************************************************************************\r
-@@ -1584,14 +1645,6 @@\r
- }\r
- \r
- /*************************************************************************\r
-- * SHCreatePropSheetExtArray [SHELL32.168]\r
-- */\r
--HPSXA WINAPI SHCreatePropSheetExtArray(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface)\r
--{\r
-- return SHCreatePropSheetExtArrayEx(hKey, pszSubKey, max_iface, NULL);\r
--}\r
--\r
--/*************************************************************************\r
- * SHCreatePropSheetExtArrayEx [SHELL32.194]\r
- */\r
- HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj)\r
-@@ -1695,6 +1748,15 @@\r
- }\r
- \r
- /*************************************************************************\r
-+ * SHCreatePropSheetExtArray [SHELL32.168]\r
-+ */\r
-+HPSXA WINAPI SHCreatePropSheetExtArray(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface)\r
-+{\r
-+ return SHCreatePropSheetExtArrayEx(hKey, pszSubKey, max_iface, NULL);\r
-+}\r
-+\r
-+\r
-+/*************************************************************************\r
- * SHReplaceFromPropSheetExtArray [SHELL32.170]\r
- */\r
- UINT WINAPI SHReplaceFromPropSheetExtArray(HPSXA hpsxa, UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam)\r
-Index: shellpath.c\r
-===================================================================\r
---- shellpath.c (revision 29513)\r
-+++ shellpath.c (working copy)\r
-@@ -24,6 +24,7 @@\r
- *\r
- */\r
- \r
-+#define symlink(A, B)\r
- #include "config.h"\r
- #include "wine/port.h"\r
- \r
-@@ -1977,7 +1978,7 @@\r
- \r
- if (szBasePath[cLen-1] != '/') szBasePath[cLen++] = '/';\r
- \r
-- if (!WideCharToMultiByte(CP_UNIXCP, 0, wszSubPath, -1, szBasePath + cLen,\r
-+ if (!WideCharToMultiByte(CP_ACP, 0, wszSubPath, -1, szBasePath + cLen,\r
- FILENAME_MAX - cLen, NULL, NULL))\r
- {\r
- return FALSE;\r
-@@ -1988,7 +1989,7 @@\r
- \r
- return TRUE;\r
- }\r
--\r
-+#if 0\r
- /******************************************************************************\r
- * _SHCreateSymbolicLinks [Internal]\r
- * \r
-@@ -2040,7 +2041,7 @@\r
- for (i = 0; i < sizeof(aidsMyStuff)/sizeof(aidsMyStuff[0]); i++) {\r
- strcpy(szMyStuffTarget, szPersonalTarget);\r
- if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i])))\r
-- mkdir(szMyStuffTarget, 0777);\r
-+ mkdir(szMyStuffTarget);\r
- }\r
- } \r
- else\r
-@@ -2061,7 +2062,7 @@\r
- for (i = 0; i < sizeof(aidsMyStuff)/sizeof(aidsMyStuff[0]); i++) {\r
- strcpy(szMyStuffTarget, szPersonalTarget);\r
- if (_SHAppendToUnixPath(szMyStuffTarget, MAKEINTRESOURCEW(aidsMyStuff[i])))\r
-- mkdir(szMyStuffTarget, 0777);\r
-+ mkdir(szMyStuffTarget);\r
- }\r
- }\r
- \r
-@@ -2108,6 +2109,7 @@\r
- }\r
- }\r
- }\r
-+#endif\r
- \r
- /* Register the default values in the registry, as some apps seem to depend\r
- * on their presence. The set registered was taken from Windows XP.\r
-@@ -2120,7 +2122,9 @@\r
- * 'My Video', 'My Music' and 'Desktop' in advance, so that the\r
- * _SHRegister*ShellFolders() functions will find everything nice and clean\r
- * and thus will not attempt to create them in the profile directory. */\r
-+#if 0\r
- _SHCreateSymbolicLinks();\r
-+#endif\r
- \r
- hr = _SHRegisterUserShellFolders(TRUE);\r
- if (SUCCEEDED(hr))\r
-Index: shfldr_desktop.c\r
-===================================================================\r
---- shfldr_desktop.c (revision 29513)\r
-+++ shfldr_desktop.c (working copy)\r
-@@ -165,9 +165,11 @@\r
- else if (PathGetDriveNumberW (lpszDisplayName) >= 0)\r
- {\r
- /* it's a filesystem path with a drive. Let MyComputer/UnixDosFolder parse it */\r
-+#if 0\r
- if (UNIXFS_is_rooted_at_desktop()) \r
- pidlTemp = _ILCreateGuid(PT_GUID, &CLSID_UnixDosFolder);\r
- else\r
-+#endif\r
- pidlTemp = _ILCreateMyComputer ();\r
- szNext = lpszDisplayName;\r
- }\r
-Index: shfldr_mycomp.c\r
-===================================================================\r
---- shfldr_mycomp.c (revision 29513)\r
-+++ shfldr_mycomp.c (working copy)\r
-@@ -695,20 +695,8 @@\r
- \r
- if (SUCCEEDED (hr))\r
- {\r
-- /* Win9x always returns ANSI strings, NT always returns Unicode strings */\r
-- if (GetVersion() & 0x80000000)\r
-- {\r
-- strRet->uType = STRRET_CSTR;\r
-- if (!WideCharToMultiByte(CP_ACP, 0, pszPath, -1, strRet->u.cStr, MAX_PATH,\r
-- NULL, NULL))\r
-- strRet->u.cStr[0] = '\0';\r
-- CoTaskMemFree(pszPath);\r
-- }\r
-- else\r
-- {\r
-- strRet->uType = STRRET_WSTR;\r
-- strRet->u.pOleStr = pszPath;\r
-- }\r
-+ strRet->uType = STRRET_WSTR;\r
-+ strRet->u.pOleStr = pszPath;\r
- }\r
- else\r
- CoTaskMemFree(pszPath);\r
-Index: shlexec.c\r
-===================================================================\r
---- shlexec.c (revision 29513)\r
-+++ shlexec.c (working copy)\r
-@@ -1300,6 +1300,7 @@\r
- static const WCHAR wFile[] = {'f','i','l','e',0};\r
- static const WCHAR wHttp[] = {'h','t','t','p',':','/','/',0};\r
- static const WCHAR wExplorer[] = {'e','x','p','l','o','r','e','r','.','e','x','e',0};\r
-+ static const WCHAR wProperties[] = { 'p','r','o','p','e','r','t','i','e','s',0 };\r
- static const DWORD unsupportedFlags =\r
- SEE_MASK_INVOKEIDLIST | SEE_MASK_ICON | SEE_MASK_HOTKEY |\r
- SEE_MASK_CONNECTNETDRV | SEE_MASK_FLAG_DDEWAIT | SEE_MASK_FLAG_NO_UI |\r
-@@ -1405,6 +1406,13 @@\r
- return TRUE;\r
- }\r
- \r
-+ if (sei_tmp.lpVerb && !wcscmp(sei_tmp.lpVerb, wProperties))\r
-+ {\r
-+ SH_ShowPropertiesDialog(sei_tmp.lpFile);\r
-+ sei->hInstApp = (HINSTANCE) 33;\r
-+ return TRUE;\r
-+ }\r
-+\r
- if (sei_tmp.fMask & SEE_MASK_CLASSALL)\r
- {\r
- /* launch a document by fileclass like 'WordPad.Document.1' */\r
-Index: shlfileop.c\r
-===================================================================\r
---- shlfileop.c (revision 29513)\r
-+++ shlfileop.c (working copy)\r
-@@ -1696,16 +1696,6 @@\r
- }\r
- \r
- /***********************************************************************\r
-- * SHPathPrepareForWriteA (SHELL32.@)\r
-- */\r
--HRESULT WINAPI SHPathPrepareForWriteA(HWND hwnd, IUnknown *modless, LPCSTR path, DWORD flags)\r
--{\r
-- WCHAR wpath[MAX_PATH];\r
-- MultiByteToWideChar( CP_ACP, 0, path, -1, wpath, MAX_PATH);\r
-- return SHPathPrepareForWriteW(hwnd, modless, wpath, flags);\r
--}\r
--\r
--/***********************************************************************\r
- * SHPathPrepareForWriteW (SHELL32.@)\r
- */\r
- HRESULT WINAPI SHPathPrepareForWriteW(HWND hwnd, IUnknown *modless, LPCWSTR path, DWORD flags)\r
-@@ -1767,3 +1757,13 @@\r
- else\r
- return HRESULT_FROM_WIN32(ERROR_DIRECTORY);\r
- }\r
-+\r
-+/***********************************************************************\r
-+ * SHPathPrepareForWriteA (SHELL32.@)\r
-+ */\r
-+HRESULT WINAPI SHPathPrepareForWriteA(HWND hwnd, IUnknown *modless, LPCSTR path, DWORD flags)\r
-+{\r
-+ WCHAR wpath[MAX_PATH];\r
-+ MultiByteToWideChar( CP_ACP, 0, path, -1, wpath, MAX_PATH);\r
-+ return SHPathPrepareForWriteW(hwnd, modless, wpath, flags);\r
-+}\r
-Index: shlview.c\r
-===================================================================\r
---- shlview.c (revision 29513)\r
-+++ shlview.c (working copy)\r
-@@ -68,6 +68,8 @@\r
- \r
- WINE_DEFAULT_DEBUG_CHANNEL(shell);\r
- \r
-+#undef SV_CLASS_NAME\r
-+\r
- static const WCHAR SV_CLASS_NAME[] = {'S','H','E','L','L','D','L','L','_','D','e','f','V','i','e','w',0};\r
- \r
- typedef struct\r
-Index: shres.rc\r
-===================================================================\r
---- shres.rc (revision 29513)\r
-+++ shres.rc (working copy)\r
-@@ -35,88 +35,8 @@\r
- VK_F5, FCIDM_SHVIEW_REFRESH, VIRTKEY\r
- END\r
- \r
--/* @makedep: document.ico */\r
--IDI_SHELL_DOCUMENT ICON document.ico\r
- \r
--/* @makedep: folder.ico */\r
--IDI_SHELL_FOLDER ICON folder.ico\r
- \r
--/* @makedep: folder_open.ico */\r
--IDI_SHELL_FOLDER_OPEN ICON folder_open.ico\r
--\r
--/* FIXME: Following three resources are not yet added */\r
--/* @makedep: folder_open.ico */\r
--IDI_SHELL_FOLDER_OPEN_SMALL ICON folder_open.ico\r
--/* @makedep: folder_open.ico */\r
--IDI_SHELL_FOLDER_OPEN_LARGE ICON folder_open.ico\r
--/* @makedep: folder_open.ico */\r
--IDI_SHELL_FOLDER_SMALL_XP ICON folder_open.ico\r
--\r
--/* @makedep: floppy.ico */\r
--IDI_SHELL_FLOPPY ICON floppy.ico\r
--\r
--/* @makedep: drive.ico */\r
--IDI_SHELL_DRIVE ICON drive.ico\r
--\r
--/* @makedep: netdrive.ico */\r
--IDI_SHELL_NETDRIVE ICON netdrive.ico\r
--\r
--/* @makedep: netdrive2.ico */\r
--IDI_SHELL_NETDRIVE2 ICON netdrive2.ico\r
--\r
--/* @makedep: cdrom.ico */\r
--IDI_SHELL_CDROM ICON cdrom.ico\r
--\r
--/* @makedep: ramdisk.ico */\r
--IDI_SHELL_RAMDISK ICON ramdisk.ico\r
--\r
--/* @makedep: mycomputer.ico */\r
--IDI_SHELL_MY_COMPUTER ICON mycomputer.ico\r
--\r
--/* @makedep: printer.ico */\r
--IDI_SHELL_PRINTER ICON printer.ico\r
--\r
--/* @makedep: shortcut.ico */\r
--IDI_SHELL_SHORTCUT ICON shortcut.ico\r
--\r
--/* @makedep: desktop.ico */\r
--IDI_SHELL_DESKTOP ICON desktop.ico\r
--\r
--/* @makedep: trash_file.ico */\r
--IDI_SHELL_FULL_RECYCLE_BIN ICON trash_file.ico\r
--\r
--/* @makedep: trash_file.ico */\r
--IDI_SHELL_TRASH_FILE ICON trash_file.ico\r
--\r
--/* @makedep: delete.ico */\r
--IDI_SHELL_CONFIRM_DELETE ICON delete.ico\r
--\r
--/* @makedep: mydocs.ico */\r
--IDI_SHELL_MY_DOCUMENTS ICON mydocs.ico\r
--\r
--/* @makedep: searching.avi */\r
--IDR_AVI_SEARCHING AVI searching.avi\r
--\r
--/* @makedep: searching.avi */\r
--IDR_AVI_SEARCH AVI searching.avi\r
--\r
--/* @makedep: searching.avi */\r
--IDR_AVI_FILEMOVE AVI searching.avi\r
--\r
--/* @makedep: searching.avi */\r
--IDR_AVI_FILECOPY AVI searching.avi\r
--\r
--/* @makedep: searching.avi */\r
--IDR_AVI_FINDCOMPUTER AVI searching.avi\r
--\r
--/* @makedep: searching.avi */\r
--IDR_AVI_FILENUKE AVI searching.avi\r
--\r
--/* @makedep: searching.avi */\r
--IDR_AVI_FILEDELETE AVI searching.avi\r
--\r
--/*--------------------- END FIXME ------------------------*/\r
--\r
- /*\r
- * Everything that does not depend on language,\r
- * like textless bitmaps etc, go into the\r
-@@ -125,7 +45,20 @@\r
- */\r
- #include "shell32_xx.rc"\r
- \r
-+\r
-+\r
-+\r
- /*\r
-+ * This include a set of Shell32 icons, \r
-+ * bitmaps and avi files. Licence's can be\r
-+ * found in the corresponding directorys\r
-+ */\r
-+#include "icon_res.rc"\r
-+//#include "bitmap_res.rc"\r
-+#include "avi_res.rc"\r
-+\r
-+\r
-+/*\r
- * Everything specific to any language goes\r
- * in one of the specific files.\r
- * Note that you can and may override resources\r
-Index: shresdef.h\r
-===================================================================\r
---- shresdef.h (revision 29513)\r
-+++ shresdef.h (working copy)\r
-@@ -78,6 +78,9 @@\r
- #define IDS_COMMON_PICTURES 69\r
- #define IDS_COMMON_VIDEO 70\r
- #define IDS_CDBURN_AREA 71\r
-+#define IDS_DRIVE_FIXED 72\r
-+#define IDS_DRIVE_CDROM 73\r
-+#define IDS_DRIVE_NETWORK 74\r
- \r
- #define IDS_CREATEFOLDER_DENIED 128\r
- #define IDS_CREATEFOLDER_CAPTION 129\r
-@@ -109,6 +112,7 @@\r
- #define IDD_STATUS 0x3743\r
- #define IDD_TITLE 0x3742\r
- #define IDD_TREEVIEW 0x3741\r
-+#define SHELL_EXTENDED_SHORTCUT_DLG 0x4000\r
- \r
- #define IDI_SHELL_DOCUMENT 1\r
- #define IDI_SHELL_FOLDER 4\r
-Index: shv_item_cmenu.c\r
-===================================================================\r
---- shv_item_cmenu.c (revision 29513)\r
-+++ shv_item_cmenu.c (working copy)\r
-@@ -38,6 +38,9 @@\r
- \r
- WINE_DEFAULT_DEBUG_CHANNEL(shell);\r
- \r
-+/* ugly hack for cut&paste files */\r
-+BOOL fileMoving = FALSE;\r
-+\r
- /**************************************************************************\r
- * IContextMenu Implementation\r
- */\r
-@@ -254,6 +257,9 @@\r
- if(uFlags & CMF_CANRENAME)\r
- _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_RENAME, MFT_STRING, "&Rename", ISvItemCm_CanRenameItems(This) ? MFS_ENABLED : MFS_DISABLED);\r
- \r
-+ _InsertMenuItem(hmenu, indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0);\r
-+ _InsertMenuItem(hmenu, indexMenu++, TRUE, FCIDM_SHVIEW_PROPERTIES, MFT_STRING, "&Properties", MFS_ENABLED);\r
-+\r
- return MAKE_HRESULT(SEVERITY_SUCCESS, 0, (FCIDM_SHVIEWLAST));\r
- }\r
- return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0);\r
-@@ -294,7 +300,7 @@\r
- \r
- ZeroMemory(&sei, sizeof(sei));\r
- sei.cbSize = sizeof(sei);\r
-- sei.fMask = SEE_MASK_IDLIST | SEE_MASK_CLASSNAME;\r
-+ sei.fMask = SEE_MASK_INVOKEIDLIST | SEE_MASK_CLASSNAME;\r
- sei.lpIDList = pidlFQ;\r
- sei.lpClass = "Folder";\r
- sei.hwnd = hwnd;\r
-@@ -382,6 +388,54 @@\r
- }\r
- return TRUE;\r
- }\r
-+static void DoProperties(\r
-+ IContextMenu2 *iface,\r
-+ HWND hwnd)\r
-+{\r
-+ ItemCmImpl *This = (ItemCmImpl *)iface;\r
-+ LPITEMIDLIST pidlFQ = NULL;\r
-+ SHELLEXECUTEINFOA sei;\r
-+\r
-+ if (_ILIsMyComputer(This->apidl[0]))\r
-+ {\r
-+ ShellExecuteA(hwnd, "open", "rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl", NULL, NULL, SW_SHOWNORMAL);\r
-+ return;\r
-+ }\r
-+ else if (_ILIsDesktop(This->apidl[0]))\r
-+ {\r
-+ ShellExecuteA(hwnd, "open", "rundll32.exe shell32.dll,Control_RunDLL desk.cpl", NULL, NULL, SW_SHOWNORMAL);\r
-+ return;\r
-+ }\r
-+ else if (_ILIsDrive(This->apidl[0]))\r
-+ {\r
-+ WCHAR buffer[111];\r
-+ ILGetDisplayName(This->apidl[0], buffer);\r
-+ SH_ShowDriveProperties(buffer);\r
-+ return;\r
-+ }\r
-+ else\r
-+ {\r
-+ pidlFQ = ILCombine(This->pidl, This->apidl[0]);\r
-+ }\r
-+\r
-+ ZeroMemory(&sei, sizeof(sei));\r
-+ sei.cbSize = sizeof(sei);\r
-+ sei.fMask = SEE_MASK_INVOKEIDLIST;\r
-+ sei.lpIDList = pidlFQ;\r
-+ sei.hwnd = hwnd;\r
-+ sei.nShow = SW_SHOWNORMAL;\r
-+ sei.lpVerb = "properties";\r
-+\r
-+ TRACE("DoProperties before ShellExecuteEx\n");\r
-+ ShellExecuteExA(&sei);\r
-+ TRACE("DoProperties after ShellExecuteEx\n");\r
-+\r
-+ if (pidlFQ)\r
-+ {\r
-+ SHFree(pidlFQ);\r
-+ }\r
-+}\r
-+\r
- /**************************************************************************\r
- * ISvItemCm_fnInvokeCommand()\r
- */\r
-@@ -430,6 +484,10 @@\r
- TRACE("Verb FCIDM_SHVIEW_CUT\n");\r
- DoCopyOrCut(iface, lpcmi->hwnd, TRUE);\r
- break;\r
-+ case FCIDM_SHVIEW_PROPERTIES:\r
-+ TRACE("Verb FCIDM_SHVIEW_PROPERTIES\n");\r
-+ DoProperties(iface, lpcmi->hwnd);\r
-+ break;\r
- default:\r
- FIXME("Unhandled Verb %xl\n",LOWORD(lpcmi->lpVerb));\r
- }\r