On Thursday 26 January 2006 13:15, Alexandre Julliard wrote:
> Yes, I think shell32 should take care of making sure the directories
> exist, and creating sane defaults if they don't. Moving things to
> winecfg wouldn't prevent file dialogs from getting broken if users
> move directories around.

Please find attached what I've been working on. The patch to shellpath.c is 
trivial. It just removes the $HOME mapping magic. This means it will create 
all necessary directories in the user's profile, as it probably was before 
Juan's patches. So this should work without problems, but with the 
disadvantage that it won't map to $HOME anymore.

With the patch to winecfg, the user can select where to link 'Desktop' and 'My 
Documents' to. I don't see why things should break, as long as the user 
doesn't fiddle with registry settings.

Of course, we should probably set up symlinks to $HOME in wineprefixcreate, 
which is not implemented yet. Should not be too much work, though.

Sorry for the huge winecfg patch, but most of it is due to resource updates. 

Could this go into cvs?

Bye,
-- 
Michael Jung
[EMAIL PROTECTED]
Subject: [PATCH] Support setting symlinks for 'Desktop' and 'My Documents' in winecfg.

---

 programs/winecfg/Bg.rc      |   26 +++++--
 programs/winecfg/De.rc      |   28 +++++---
 programs/winecfg/En.rc      |   52 +++++++++-----
 programs/winecfg/Es.rc      |   28 +++++---
 programs/winecfg/Fi.rc      |   28 +++++---
 programs/winecfg/Fr.rc      |   28 +++++---
 programs/winecfg/Ja.rc      |   28 +++++---
 programs/winecfg/Ko.rc      |   28 +++++---
 programs/winecfg/Nl.rc      |   28 +++++---
 programs/winecfg/No.rc      |   28 +++++---
 programs/winecfg/Ru.rc      |   28 +++++---
 programs/winecfg/driveui.c  |   22 ++++--
 programs/winecfg/main.c     |    4 +
 programs/winecfg/resource.h |   12 ++-
 programs/winecfg/theme.c    |  159 +++++++++++++++++++++++++++++++++++++++----
 programs/winecfg/winecfg.h  |    1 
 16 files changed, 385 insertions(+), 143 deletions(-)

19beecf5a1f34be2ef6804ecf119a65b7e0e912e
diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc
index 2e2f153..27f9b5f 100644
--- a/programs/winecfg/Bg.rc
+++ b/programs/winecfg/Bg.rc
@@ -172,17 +172,25 @@ BEGIN
     CONTROL         "Ñîôòóåðíà åìóëàöèÿ",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Òåìà:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Èíñòàëèðàé òåìà...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Öâÿò:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Ðàçìåð:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Òåìà:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Èíñòàëèðàé òåìà...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Öâÿò:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Ðàçìåð:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -196,7 +204,7 @@ BEGIN
     IDS_SHOW_ADVANCED       "Ïîêàæè äîïúëíèòåëíèòå"
     IDS_NOTHEME             "(áåç òåìà)"
     IDS_TAB_GRAPHICS        "Ãðàôèêà"
-    IDS_TAB_APPEARANCE      "Âúíøåí âèä"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Çâóê"
     IDS_TAB_ABOUT           "Îòíîñíî"
     IDS_WINECFG_TITLE       "Íàñòðîéêà íà Wine"
diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc
index ba643cf..51746b8 100644
--- a/programs/winecfg/De.rc
+++ b/programs/winecfg/De.rc
@@ -172,17 +172,25 @@ BEGIN
     CONTROL         "Treiber Emulation",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Motiv:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Motiv installieren...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Farbe:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Größe:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+   GROUPBOX        " Darstellung ",IDC_STATIC,8,4,244,106
+   LTEXT           "Motiv:",IDC_STATIC,15,16,230,8
+   COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+   PUSHBUTTON      "Motiv installieren...",IDC_THEME_INSTALL,152,38,93,14
+   LTEXT           "Farbe:",IDC_THEME_COLORTEXT,15,54,230,8
+   COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+   LTEXT           "Größe:",IDC_THEME_SIZETEXT,15,80,230,8
+   COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+   GROUPBOX        " Shell Ordner ",IDC_STATIC,8,114,244,82
+   CONTROL         "Verknüpfe 'Eigene Dateien' mit:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+   EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,180,13,ES_AUTOHSCROLL | WS_TABSTOP
+   PUSHBUTTON      "Durch&suchen",IDC_BROWSE_MYDOCS_PATH,200,138,46,13
+   CONTROL         "Verknüpfe 'Desktop' mit:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+   EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,180,13,ES_AUTOHSCROLL | WS_TABSTOP
+   PUSHBUTTON      "Durch&suchen",IDC_BROWSE_DESKTOP_PATH,200,175,46,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -191,12 +199,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Anwendungen"
     IDS_TAB_DLLS            "Bibliotheken"
     IDS_TAB_DRIVES          "Laufwerke"
-    IDS_CHOOSE_PATH         "Bitte wählen Sie ein Unix-Verzeichnis für das Laufwerk."
+    IDS_CHOOSE_PATH         "Bitte wählen Sie das Ziel-Unix-Verzeichnis."
     IDS_HIDE_ADVANCED       "Verstecke Erweitert"
     IDS_SHOW_ADVANCED       "Zeige Erweitert"
     IDS_NOTHEME             "(Kein Motiv)"
     IDS_TAB_GRAPHICS        "Grafik"
-    IDS_TAB_APPEARANCE      "Darstellung"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "Über"
     IDS_WINECFG_TITLE       "Wine-Konfiguration"
diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc
index 887aa81..9352f34 100644
--- a/programs/winecfg/En.rc
+++ b/programs/winecfg/En.rc
@@ -174,17 +174,25 @@ BEGIN
     CONTROL         "Driver Emulation",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Theme:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Install theme...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Color:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Size:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Theme:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Install theme...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Color:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Size:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -193,12 +201,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Applications"
     IDS_TAB_DLLS            "Libraries"
     IDS_TAB_DRIVES          "Drives"
-    IDS_CHOOSE_PATH         "Select the unix directory to be mapped, please."
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Hide Advanced"
     IDS_SHOW_ADVANCED       "Show Advanced"
     IDS_NOTHEME             "(No Theme)"
     IDS_TAB_GRAPHICS        "Graphics"
-    IDS_TAB_APPEARANCE      "Appearance"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "About"
     IDS_WINECFG_TITLE       "Wine configuration"
@@ -245,15 +253,23 @@ BEGIN
     CONTROL         "Allow Pixel Shader (if supported by hardware)",IDC_D3D_PSHADER_MODE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,165,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-LTEXT           "Theme:",IDC_STATIC,8,10,244,8
-COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-PUSHBUTTON      "Install theme...",IDC_THEME_INSTALL,152,32,100,14
-LTEXT           "Colour:",IDC_THEME_COLORTEXT,8,48,244,8
-COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-LTEXT           "Size:",IDC_THEME_SIZETEXT,8,74,244,8
-COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Theme:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Install theme...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Colour:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Size:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc
index 748c90f..236a141 100644
--- a/programs/winecfg/Es.rc
+++ b/programs/winecfg/Es.rc
@@ -169,17 +169,25 @@ BEGIN
     CONTROL         "Emulación del manejador",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Tema:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Instalar tema...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Color:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Tamaño:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Tema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Instalar tema...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Color:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Tamaño:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -188,12 +196,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Aplicaciones"
     IDS_TAB_DLLS            "Librerías"
     IDS_TAB_DRIVES          "Unidades"
-    IDS_CHOOSE_PATH         "Seleccione el directorio de unix para mapear."
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Ocultar avanzado"
     IDS_SHOW_ADVANCED       "Mostrar avanzado"
     IDS_NOTHEME             "(Ningún tema)"
     IDS_TAB_GRAPHICS        "Gráficos"
-    IDS_TAB_APPEARANCE      "Apariencia"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "Acerca de"
     IDS_WINECFG_TITLE       "Configuración de Wine"
diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc
index 8526b2e..29db7d6 100644
--- a/programs/winecfg/Fi.rc
+++ b/programs/winecfg/Fi.rc
@@ -168,17 +168,25 @@ BEGIN
     CONTROL         "Ajurin &emulointi",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Teema:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Asenna &teema...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Väri:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Koko:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Teema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Asenna &teema...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Väri:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Koko:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -187,12 +195,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Sovellukset"
     IDS_TAB_DLLS            "Kirjastot"
     IDS_TAB_DRIVES          "Asemat"
-    IDS_CHOOSE_PATH         "Valitse mapattava unix -kansio."
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Piilota lisäasetukset"
     IDS_SHOW_ADVANCED       "Näytä lisäasetukset"
     IDS_NOTHEME             "(Ei Teemaa)"
     IDS_TAB_GRAPHICS        "Grafiikka"
-    IDS_TAB_APPEARANCE      "Ulkoasu"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Ääni"
     IDS_TAB_ABOUT           "Tietoja"
     IDS_WINECFG_TITLE       "Winen asetukset"
diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc
index 33e3142..438bcf6 100644
--- a/programs/winecfg/Fr.rc
+++ b/programs/winecfg/Fr.rc
@@ -170,17 +170,25 @@ BEGIN
     CONTROL         "Emulation pilote",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Thème:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Installer un thème...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Couleur:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Taille:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Thème:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Installer un thème...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Couleur:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Taille:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -189,12 +197,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Applications"
     IDS_TAB_DLLS            "Bibliothèques"
     IDS_TAB_DRIVES          "Lecteurs"
-    IDS_CHOOSE_PATH         "Veuillez sélectionner le répertoire unix à assigner."
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Cacher avancés"
     IDS_SHOW_ADVANCED       "Montrer avancés"
     IDS_NOTHEME             "(Pas de thème)"
     IDS_TAB_GRAPHICS        "Affichage"
-    IDS_TAB_APPEARANCE      "Apparence"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "A propos"
     IDS_WINECFG_TITLE       "Configuration de Wine"
diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc
index 4c8060b..66540ef 100644
--- a/programs/winecfg/Ja.rc
+++ b/programs/winecfg/Ja.rc
@@ -171,17 +171,25 @@ BEGIN
     CONTROL         "ƒhƒ‰ƒCƒoEƒGƒ~ƒ…ƒŒ[ƒVƒ‡ƒ“",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 9, "MS UI Gothic"
 BEGIN
-    LTEXT           "ƒe[ƒ}:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "ƒe[ƒ}‚̃Cƒ“ƒXƒg[ƒ‹...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "”zF:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "ƒTƒCƒY:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "ƒe[ƒ}:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "ƒe[ƒ}‚̃Cƒ“ƒXƒg[ƒ‹...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "”zF:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "ƒTƒCƒY:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -190,12 +198,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "ƒAƒvƒŠƒP[ƒVƒ‡ƒ“"
     IDS_TAB_DLLS            "ƒ‰ƒCƒuƒ‰ƒŠ"
     IDS_TAB_DRIVES          "ƒhƒ‰ƒCƒu"
-    IDS_CHOOSE_PATH         "ƒ}ƒbƒsƒ“ƒO‚·‚éUnixƒfƒBƒŒƒNƒgƒŠ[‚ð‘I‚ñ‚Å‚­‚Ÿ‚³‚¢"
+    IDS_CHOOSE_PATH         "Select the unix target directory, please."
     IDS_HIDE_ADVANCED       "Ú×‚ð‰B‚·"
     IDS_SHOW_ADVANCED       "Ú×‚ð•\ŽŠ"
     IDS_NOTHEME             "(ƒe[ƒ}–³‚µ)"
     IDS_TAB_GRAPHICS        "‰æ–Ê"
-    IDS_TAB_APPEARANCE      "ŠOŠÏ"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "ƒI[ƒfƒBƒI"
     IDS_TAB_ABOUT           "Wine‚ɂ‚¢‚Ä"
     IDS_WINECFG_TITLE       "WineÝ’è"
diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc
index 01bc003..da6bbef 100644
--- a/programs/winecfg/Ko.rc
+++ b/programs/winecfg/Ko.rc
@@ -176,17 +176,25 @@ BEGIN
     CONTROL         "µå¶óÀ̹ö ŸÖ¹Ä",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Åמ¶:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Åמ¶ Œ³Ä¡...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "»ö»ó:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Å©±â:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Åמ¶:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Åמ¶ Œ³Ä¡...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "»ö»ó:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Å©±â:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -195,12 +203,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Ç®±×ž²"
     IDS_TAB_DLLS            "¶óÀ̺귯ž®"
     IDS_TAB_DRIVES          "µå¶óÀ̺ê"
-    IDS_CHOOSE_PATH         "žÊÇÎÇÒ À¯ŽÐœº µð·ºÅäž®žŠ Œ±ÅÃÇϜÿÀ."
+    IDS_CHOOSE_PATH         "Select the unix target folder, please."
     IDS_HIDE_ADVANCED       "Ãß°¡ ¿ÉŒÇ Œû±â±â"
     IDS_SHOW_ADVANCED       "Ãß°¡ ¿ÉŒÇ ºž¿©ÁÖ±â"
     IDS_NOTHEME             "(Åמ¶ ŸøÀœ)"
     IDS_TAB_GRAPHICS        "±×·¡ÇÈ"
-    IDS_TAB_APPEARANCE      "¿ÜŸç"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "¿Àµð¿À"
     IDS_TAB_ABOUT           "Á€ºž"
     IDS_WINECFG_TITLE       "Wine Œ³Á€"
diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc
index fd29e29..0c37449 100644
--- a/programs/winecfg/Nl.rc
+++ b/programs/winecfg/Nl.rc
@@ -169,17 +169,25 @@ BEGIN
     CONTROL         "Stuurprogramma emulatie",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Thema:",IDC_STATIC,8,10,244,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Thema installeren...",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Kleuren:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Tekstgrootte:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Thema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Thema installeren...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Kleuren:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Tekstgrootte:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -188,12 +196,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Toepassingen"
     IDS_TAB_DLLS            "Bibliotheken"
     IDS_TAB_DRIVES          "Stations"
-    IDS_CHOOSE_PATH         "Selecteer een unix folder voor dit station."
+    IDS_CHOOSE_PATH         "Select the unix target folder, please."
     IDS_HIDE_ADVANCED       "Verberg uitgebreid"
     IDS_SHOW_ADVANCED       "Toon uitgebreid"
     IDS_NOTHEME             "(Geen Thema)"
     IDS_TAB_GRAPHICS        "Graphics" /* FIXME */
-    IDS_TAB_APPEARANCE      "Vormgeving"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Audio"
     IDS_TAB_ABOUT           "Info"
     IDS_WINECFG_TITLE       "Wine configuratie"
diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc
index 91b0f75..ae90dbe 100644
--- a/programs/winecfg/No.rc
+++ b/programs/winecfg/No.rc
@@ -171,17 +171,25 @@ BEGIN
     CONTROL         "Driveremulering",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-LTEXT           "Tema:",IDC_STATIC,8,10,244,8
-COMBOBOX        IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Installer tema . . .",IDC_THEME_INSTALL,152,32,100,14
-    LTEXT           "Farge:",IDC_THEME_COLORTEXT,8,48,244,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,8,56,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Størrelse:",IDC_THEME_SIZETEXT,8,74,244,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,8,82,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Tema:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Installer tema . . .",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Farge:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Størrelse:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -190,12 +198,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Programmer"
     IDS_TAB_DLLS            "Biblioteker"
     IDS_TAB_DRIVES          "Stasjoner"
-    IDS_CHOOSE_PATH         "Velg Unix-katalogens som skal kartlegges."
+    IDS_CHOOSE_PATH         "Select the unix target folder, please."
     IDS_HIDE_ADVANCED       "Enkel visning"
     IDS_SHOW_ADVANCED       "Avansert visning"
     IDS_NOTHEME             "(Intet tema)"
     IDS_TAB_GRAPHICS        "Grafikk"
-    IDS_TAB_APPEARANCE      "Utseende"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Lyd"
     IDS_TAB_ABOUT           "Om"
     IDS_WINECFG_TITLE       "Oppsett av Wine"
diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc
index 9bfe923..8f78009 100644
--- a/programs/winecfg/Ru.rc
+++ b/programs/winecfg/Ru.rc
@@ -172,17 +172,25 @@ BEGIN
     CONTROL         "Ïðîãðàììíàÿ ýìóëÿöèÿ",IDC_DSOUND_DRV_EMUL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,230,230,10
 END
 
-IDD_APPEARANCE DIALOG DISCARDABLE  0, 0, 260, 250
+IDD_DESKTOP_INTEGRATION DIALOG DISCARDABLE  0, 0, 260, 250
 STYLE WS_CHILD | WS_DISABLED
 FONT 8, "MS Shell Dlg"
 BEGIN
-    LTEXT           "Òåìà:",IDC_STATIC,15,5,228,8
-    COMBOBOX        IDC_THEME_THEMECOMBO,15,13,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    PUSHBUTTON      "Óñòàíîâèòü òåìó...",IDC_THEME_INSTALL,152,32,90,14
-    LTEXT           "Öâåò:",IDC_THEME_COLORTEXT,15,48,228,8
-    COMBOBOX        IDC_THEME_COLORCOMBO,15,56,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
-    LTEXT           "Ðàçìåð:",IDC_THEME_SIZETEXT,15,74,228,8
-    COMBOBOX        IDC_THEME_SIZECOMBO,15,82,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Appearance ",IDC_STATIC,8,4,244,106
+    LTEXT           "Òåìà:",IDC_STATIC,15,16,230,8
+    COMBOBOX        IDC_THEME_THEMECOMBO,15,24,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    PUSHBUTTON      "Óñòàíîâèòü òåìó...",IDC_THEME_INSTALL,152,38,93,14
+    LTEXT           "Öâåò:",IDC_THEME_COLORTEXT,15,54,230,8
+    COMBOBOX        IDC_THEME_COLORCOMBO,15,62,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    LTEXT           "Ðàçìåð:",IDC_THEME_SIZETEXT,15,80,230,8
+    COMBOBOX        IDC_THEME_SIZECOMBO,15,88,230,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
+    GROUPBOX        " Shell Folders ",IDC_STATIC,8,114,244,82
+    CONTROL         "Link 'My Documents' shell folder to:",IDC_LINK_MYDOCS_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,126,230,8
+    EDITTEXT        IDC_EDIT_MYDOCS_PATH,15,138,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_MYDOCS_PATH,206,138,40,13
+    CONTROL         "Link 'Desktop' shell folder to:",IDC_LINK_DESKTOP_PATH,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,163,230,8
+    EDITTEXT        IDC_EDIT_DESKTOP_PATH,15,175,186,13,ES_AUTOHSCROLL | WS_TABSTOP
+    PUSHBUTTON      "&Browse...",IDC_BROWSE_DESKTOP_PATH,206,175,40,13
 END
 
 STRINGTABLE DISCARDABLE
@@ -191,12 +199,12 @@ BEGIN
     IDS_TAB_APPLICATIONS    "Ïðèëîæåíèÿ"
     IDS_TAB_DLLS            "Áèáëèîòåêè"
     IDS_TAB_DRIVES          "Äèñêè"
-    IDS_CHOOSE_PATH         "Âûáåðèòå unix êàòàëîã äëÿ äèñêà."
+    IDS_CHOOSE_PATH         "Select the target unix folder, please."
     IDS_HIDE_ADVANCED       "Ñêðûòü äîïîëíèòåëüíûå"
     IDS_SHOW_ADVANCED       "Ïîêàçàòü äîïîëíèòåëüíûå"
     IDS_NOTHEME             "(áåç òåìû)"
     IDS_TAB_GRAPHICS        "Ãðàôèêà"
-    IDS_TAB_APPEARANCE      "Âíåøíèé âèä"
+    IDS_TAB_DESKTOP_INTEGRATION "Desktop Integration"
     IDS_TAB_AUDIO           "Àóäèî"
     IDS_TAB_ABOUT           "Î ïðîãðàììå"
     IDS_WINECFG_TITLE       "Íàñòðîéêà Wine"
diff --git a/programs/winecfg/driveui.c b/programs/winecfg/driveui.c
index 5f407b5..ea80889 100644
--- a/programs/winecfg/driveui.c
+++ b/programs/winecfg/driveui.c
@@ -21,6 +21,8 @@
  *
  */
 
+#include <stdio.h>
+
 #define WIN32_LEAN_AND_MEAN
 #define COBJMACROS
 
@@ -590,7 +592,7 @@ static void paint(HWND dialog)
     EndPaint(dialog, &ps);
 }
 
-static void browse_for_folder(HWND dialog)
+BOOL browse_for_unix_folder(HWND dialog, char *pszPath)
 {
     static WCHAR wszUnixRootDisplayName[] = 
         { ':',':','{','C','C','7','0','2','E','B','2','-','7','D','C','5','-','1','1','D','9','-',
@@ -613,13 +615,13 @@ static void browse_for_folder(HWND dialo
     LoadString(GetModuleHandle(NULL), IDS_CHOOSE_PATH, pszChoosePath, 256);
     
     hr = SHGetDesktopFolder(&pDesktop);
-    if (!SUCCEEDED(hr)) return;
+    if (!SUCCEEDED(hr)) return FALSE;
 
     hr = IShellFolder_ParseDisplayName(pDesktop, NULL, NULL, wszUnixRootDisplayName, NULL, 
                                        &pidlUnixRoot, NULL);
     if (!SUCCEEDED(hr)) {
         IShellFolder_Release(pDesktop);
-        return;
+        return FALSE;
     }
 
     bi.pidlRoot = pidlUnixRoot;
@@ -636,17 +638,19 @@ static void browse_for_folder(HWND dialo
         IShellFolder_Release(pDesktop);
         if (!SUCCEEDED(hr)) {
             SHFree(pidlSelectedPath);
-            return;
+            return FALSE;
         }
 
         hr = StrRetToStr(&strSelectedPath, pidlSelectedPath, &pszSelectedPath);
         SHFree(pidlSelectedPath);
-        if (!SUCCEEDED(hr)) return;
+        if (!SUCCEEDED(hr)) return FALSE;
 
-        set_text(dialog, IDC_EDIT_PATH, pszSelectedPath);
+        lstrcpy(pszPath, pszSelectedPath);
         
         CoTaskMemFree(pszSelectedPath);
+        return TRUE;
     }
+    return FALSE;
 }
 
 static void init_listview_columns(HWND dialog)
@@ -760,8 +764,12 @@ DriveDlgProc (HWND dialog, UINT msg, WPA
                     break;
 
                 case IDC_BUTTON_BROWSE_PATH:
-                    browse_for_folder(dialog);
+                {
+                    char szTargetPath[FILENAME_MAX];
+                    if (browse_for_unix_folder(dialog, szTargetPath)) 
+                        set_text(dialog, IDC_EDIT_PATH, szTargetPath);
                     break;
+                }
 
                 case IDC_RADIO_ASSIGN:
                 {
diff --git a/programs/winecfg/main.c b/programs/winecfg/main.c
index b77d02b..14168e6 100644
--- a/programs/winecfg/main.c
+++ b/programs/winecfg/main.c
@@ -146,10 +146,10 @@ doPropertySheet (HINSTANCE hInstance, HW
     psp[pg].dwSize = sizeof (PROPSHEETPAGEW);
     psp[pg].dwFlags = PSP_USETITLE;
     psp[pg].hInstance = hInstance;
-    psp[pg].u.pszTemplate = MAKEINTRESOURCEW (IDD_APPEARANCE);
+    psp[pg].u.pszTemplate = MAKEINTRESOURCEW (IDD_DESKTOP_INTEGRATION);
     psp[pg].u2.pszIcon = NULL;
     psp[pg].pfnDlgProc = ThemeDlgProc;
-    psp[pg].pszTitle =  load_string (IDS_TAB_APPEARANCE);
+    psp[pg].pszTitle =  load_string (IDS_TAB_DESKTOP_INTEGRATION);
     psp[pg].lParam = 0;
     pg++;
 
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
index df7f0b9..7330fc3 100644
--- a/programs/winecfg/resource.h
+++ b/programs/winecfg/resource.h
@@ -33,7 +33,7 @@
 #define IDS_HIDE_ADVANCED               7
 #define IDS_NOTHEME                     8
 #define IDS_TAB_GRAPHICS                9
-#define IDS_TAB_APPEARANCE              10
+#define IDS_TAB_DESKTOP_INTEGRATION     10
 #define IDS_TAB_AUDIO                   11
 #define IDS_TAB_ABOUT                   12
 #define IDS_WINECFG_TITLE               13
@@ -48,7 +48,7 @@
 #define IDD_DLLCFG                      111
 #define IDD_DRIVECFG                    112
 #define IDD_DRIVE_EDIT                  114
-#define IDD_APPEARANCE                  115
+#define IDD_DESKTOP_INTEGRATION         115
 #define IDB_WINE_LOGO                   200
 #define IDC_TABABOUT                    1001
 #define IDC_APPLYBTN                    1002
@@ -143,10 +143,16 @@
 #define IDB_DEVICE                      1307
 #define IDS_AUDIO_MISSING               1308
 
-/* appearance tab */
+/* desktop integration tab */
 #define IDC_THEME_COLORCOMBO            1401
 #define IDC_THEME_COLORTEXT             1402
 #define IDC_THEME_SIZECOMBO             1403
 #define IDC_THEME_SIZETEXT              1404
 #define IDC_THEME_THEMECOMBO            1405
 #define IDC_THEME_INSTALL               1406
+#define IDC_EDIT_MYDOCS_PATH            1407
+#define IDC_LINK_MYDOCS_PATH            1408
+#define IDC_BROWSE_MYDOCS_PATH          1409
+#define IDC_EDIT_DESKTOP_PATH           1410
+#define IDC_LINK_DESKTOP_PATH           1411
+#define IDC_BROWSE_DESKTOP_PATH         1412
diff --git a/programs/winecfg/theme.c b/programs/winecfg/theme.c
index 3cb0e39..94edec3 100644
--- a/programs/winecfg/theme.c
+++ b/programs/winecfg/theme.c
@@ -1,7 +1,10 @@
 /*
- * Theme configuration code
+ * Desktop Integration
+ * - Theme configuration code
+ * - User Shell Folder mapping
  *
  * Copyright (c) 2005 by Frank Richter
+ * Copyright (c) 2006 by Michael Jung
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -22,6 +25,8 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <sys/stat.h>
+#include <unistd.h>
 
 #include <windows.h>
 #include <uxtheme.h>
@@ -572,11 +577,119 @@ static void on_theme_install(HWND dialog
   else WINE_TRACE("user cancelled\n");
 }
 
+/* Information about UI controls and symbolic link targets of certain User Shell Folders. */
+static struct ShellFolderUIInfo {
+    int nFolder;
+    char szLinkTarget[FILENAME_MAX];
+    int idcCheckbox;
+    int idcEdit;
+    int idcButton; 
+} aSFUIInfo[2] = {
+    { CSIDL_DESKTOP,  "", IDC_LINK_DESKTOP_PATH, IDC_EDIT_DESKTOP_PATH, IDC_BROWSE_DESKTOP_PATH },
+    { CSIDL_PERSONAL, "", IDC_LINK_MYDOCS_PATH,  IDC_EDIT_MYDOCS_PATH,  IDC_BROWSE_MYDOCS_PATH }
+};
+
+#define NUM_ELEMS(x) (sizeof(x)/sizeof(*(x)))
+
+static void get_shell_folder_link_targets() {
+    WCHAR wszPath[MAX_PATH];
+    HRESULT hr;
+    int i;
+    
+    for (i=0; i<NUM_ELEMS(aSFUIInfo); i++) {    
+        aSFUIInfo[i].szLinkTarget[0] = '\0';
+        hr = SHGetFolderPathW(NULL, aSFUIInfo[i].nFolder|CSIDL_FLAG_CREATE, NULL, 
+                              SHGFP_TYPE_DEFAULT, wszPath);
+        if (SUCCEEDED(hr)) {
+            char *pszUnixPath = wine_get_unix_file_name(wszPath);
+            if (pszUnixPath) {
+                struct stat statPath;
+                if (!lstat(pszUnixPath, &statPath) && S_ISLNK(statPath.st_mode)) 
+                    readlink(pszUnixPath, aSFUIInfo[i].szLinkTarget, FILENAME_MAX);
+                HeapFree(GetProcessHeap(), 0, pszUnixPath);
+            }
+        } 
+    }    
+}
+
+static void update_shell_folder_ui(HWND dialog) {
+    int i;
+
+    for (i=0; i<NUM_ELEMS(aSFUIInfo); i++) {
+        set_text(dialog, aSFUIInfo[i].idcEdit, aSFUIInfo[i].szLinkTarget);
+        if (lstrlenA(aSFUIInfo[i].szLinkTarget)) {
+            CheckDlgButton(dialog, aSFUIInfo[i].idcCheckbox, BST_CHECKED);
+            enable(aSFUIInfo[i].idcEdit);
+            enable(aSFUIInfo[i].idcButton);
+        } else {
+            CheckDlgButton(dialog, aSFUIInfo[i].idcCheckbox, BST_UNCHECKED);
+            disable(aSFUIInfo[i].idcEdit);
+            disable(aSFUIInfo[i].idcButton);
+        }
+    }
+}
+
+static void apply_shell_folder_changes() {
+    WCHAR wszPath[MAX_PATH];
+    char szBackupPath[FILENAME_MAX], szUnixPath[FILENAME_MAX], *pszUnixPath = NULL;
+    int i, cUnixPathLen;
+    struct stat statPath;
+    HRESULT hr;
+
+    for (i=0; i<NUM_ELEMS(aSFUIInfo); i++) {
+        hr = SHGetFolderPathW(NULL, aSFUIInfo[i].nFolder|CSIDL_FLAG_CREATE, NULL, 
+                              SHGFP_TYPE_DEFAULT, wszPath);
+        if (FAILED(hr)) continue;
+
+        /* Retrieve the corresponding unix path. */
+        pszUnixPath = wine_get_unix_file_name(wszPath);
+        if (!pszUnixPath) continue;
+        lstrcpyA(szUnixPath, pszUnixPath);
+        HeapFree(GetProcessHeap(), 0, pszUnixPath);
+            
+        /* Derive name for folder backup. */
+        cUnixPathLen = lstrlenA(szUnixPath);    
+        lstrcpyA(szBackupPath, szUnixPath);
+        lstrcatA(szBackupPath, ".winecfg");
+
+        if (lstat(szUnixPath, &statPath)) continue;
+    
+        /* Move old folder/link out of the way. */
+        if (S_ISLNK(statPath.st_mode)) {
+            if (unlink(szUnixPath)) continue; /* Unable to remove link. */
+        } else { 
+            if (!*aSFUIInfo[i].szLinkTarget) {
+                continue; /* We are done. Old was real folder, as new shall be. */
+            } else { 
+                if (rename(szUnixPath, szBackupPath)) { /* Move folder out of the way. */
+                    continue; /* Unable to move old folder. */
+                }
+            }
+        }
+    
+        /* Create new link/folder. */
+        if (*aSFUIInfo[i].szLinkTarget) {
+            symlink(aSFUIInfo[i].szLinkTarget, szUnixPath);
+        } else {
+            /* If there's a backup folder, restore it. Else create new folder. */
+            if (!lstat(szBackupPath, &statPath) && S_ISDIR(statPath.st_mode)) {
+                rename(szBackupPath, szUnixPath);
+            } else {
+                mkdir(szUnixPath, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
+            }
+        }
+    }
+}
+
 INT_PTR CALLBACK
 ThemeDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 {
+    int i;
+
     switch (uMsg) {
         case WM_INITDIALOG:
+            get_shell_folder_link_targets();
+            update_shell_folder_ui(hDlg);
             break;
         
         case WM_DESTROY:
@@ -600,23 +713,38 @@ ThemeDlgProc (HWND hDlg, UINT uMsg, WPAR
                     }
                     break;
                 }
-                    
-                default:
-                    break;
-            }
-            switch (LOWORD(wParam))
-            {
-                case IDC_THEME_INSTALL:
-                    if (HIWORD(wParam) != BN_CLICKED) break;
-                    on_theme_install (hDlg);
-                    break;
-                    
-                default:
+
+                case BN_CLICKED:
+                    switch (LOWORD(wParam))
+                    {
+                        case IDC_THEME_INSTALL:
+                            on_theme_install (hDlg);
+                            break;
+
+                        default:
+                            for (i=0; i<NUM_ELEMS(aSFUIInfo); i++) {
+                                if (LOWORD(wParam) == aSFUIInfo[i].idcButton) {
+                                    if (browse_for_unix_folder(hDlg, aSFUIInfo[i].szLinkTarget)) {
+                                        SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
+                                    }
+                                }
+                                if (LOWORD(wParam) == aSFUIInfo[i].idcCheckbox) {
+                                    if (IsDlgButtonChecked(hDlg, aSFUIInfo[i].idcCheckbox)) {
+                                        if (browse_for_unix_folder(hDlg, aSFUIInfo[i].szLinkTarget)) 
+                                            SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
+                                    } else {
+                                        aSFUIInfo[i].szLinkTarget[0] = '\0';
+                                        SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);
+                                    }
+                                }
+                            }
+                            update_shell_folder_ui(hDlg);
+                            break;
+                    }
                     break;
             }
             break;
         
-        
         case WM_NOTIFY:
             switch (((LPNMHDR)lParam)->code) {
                 case PSN_KILLACTIVE: {
@@ -626,6 +754,9 @@ ThemeDlgProc (HWND hDlg, UINT uMsg, WPAR
                 case PSN_APPLY: {
                     apply();
                     apply_theme(hDlg);
+                    apply_shell_folder_changes();
+                    get_shell_folder_link_targets();
+                    update_shell_folder_ui(hDlg);
                     SetWindowLongPtr(hDlg, DWLP_MSGRESULT, PSNRET_NOERROR);
                     break;
                 }
diff --git a/programs/winecfg/winecfg.h b/programs/winecfg/winecfg.h
index 0e78d2f..4966dcb 100644
--- a/programs/winecfg/winecfg.h
+++ b/programs/winecfg/winecfg.h
@@ -101,6 +101,7 @@ long drive_available_mask(char letter);
 BOOL add_drive(const char letter, const char *targetpath, const char *label, const char *serial, unsigned int type);
 void delete_drive(struct drive *pDrive);
 void apply_drive_changes(void);
+BOOL browse_for_unix_folder(HWND dialog, char *pszPath);
 extern struct drive drives[26]; /* one for each drive letter */
 
 BOOL gui_mode;
-- 
1.0.6
Subject: [PATCH] Get rid of the magic MyDocuments->$HOME mapping code.

---

 dlls/shell32/shellpath.c |  110 ----------------------------------------------
 1 files changed, 0 insertions(+), 110 deletions(-)

fbbaea94f737fc28eeaf26e0fa4bc56294289c65
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index 29c004f..f60397e 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -1229,66 +1229,6 @@ static HRESULT _SHGetUserShellFolderPath
     return hr;
 }
 
-/* Helper function for _SHGetDefaultValue 
- *
- *   handing the directories under $HOME:
- *   1) try path under $HOME (such as $HOME/My Documents/My Pictures), if it
- *   exists return it.
- *   2) if not, but $HOME/My Documents exists return path 1 and have it created
- *   3) try $HOME if it exists return it
- *   4) normal fallback to C:/windows/Profiles/...
- */
-static HRESULT expand_home_path(LPWSTR pszPath, LPCWSTR def_path, UINT resource,
-                                BOOL create_lastdir)
-{
-    HRESULT hr = E_FAIL;
-    const char *home = getenv("HOME");
-
-    if (home)
-    {
-        LPWSTR homeW = wine_get_dos_file_name(home);
-
-        if (homeW)
-        {
-            WCHAR resourcePath[MAX_PATH];
-            lstrcpynW(pszPath, homeW, MAX_PATH);
-
-            if (LoadStringW(shell32_hInstance, resource, resourcePath, MAX_PATH))
-                PathAppendW(pszPath, resourcePath);
-            else
-                PathAppendW(pszPath, def_path);
-
-            if (PathIsDirectoryW(pszPath)) hr = S_OK;
-            else if (create_lastdir)
-            {
-                /* attempt 2, try for My Documents */
-
-                WCHAR* ptr = strrchrW(pszPath, '\\');
-                if (ptr)
-                {
-                    *ptr = 0;
-                    if (PathIsDirectoryW(pszPath))
-                    {
-                        *ptr = '\\';
-                        hr = S_OK;
-                    }
-                }
-            }
-
-            if (hr != S_OK)
-            {
-                /* attempt 3 return HOME */
-                lstrcpyW(pszPath,homeW);
-                hr = S_OK;
-            }
-            HeapFree(GetProcessHeap(), 0, homeW);
-        }
-        else
-            hr = HRESULT_FROM_WIN32(GetLastError());
-    }
-    return hr;
-}
-
 /* Gets a 'semi-expanded' default value of the CSIDL with index folder into
  * pszPath, based on the entries in CSIDL_Data.  By semi-expanded, I mean:
  * - The entry's szDefaultPath may be either a string value or an integer
@@ -1316,56 +1256,6 @@ static HRESULT _SHGetDefaultValue(BYTE f
     if (!pszPath)
         return E_INVALIDARG;
 
-    /* Try special cases first */
-    hr = E_FAIL;
-    switch (folder)
-    {
-        case CSIDL_MYPICTURES:
-            hr = expand_home_path(pszPath,My_PicturesW,IDS_MYPICTURES,TRUE);
-            break;
-        case CSIDL_PERSONAL:
-            hr = expand_home_path(pszPath,PersonalW,IDS_PERSONAL,FALSE);
-            break;
-        case CSIDL_MYMUSIC:
-            hr = expand_home_path(pszPath,My_MusicW,IDS_MYMUSIC,TRUE);
-            break;
-        case CSIDL_MYVIDEO:
-            hr = expand_home_path(pszPath,My_VideoW,IDS_MYVIDEO,TRUE);
-            break;
-        case CSIDL_DESKTOP:
-        case CSIDL_DESKTOPDIRECTORY:
-        {
-            const char *home = getenv("HOME");
-
-            /* special case for Desktop, map to $HOME/Desktop if it exists */
-            if (home)
-            {
-                LPWSTR homeW = wine_get_dos_file_name(home);
-
-                if (homeW)
-                {
-                    lstrcpynW(pszPath, homeW, MAX_PATH);
-                    if (PathAppendW(pszPath, DesktopW))
-                    {
-                        if (PathIsDirectoryW(pszPath))
-                            hr = S_OK;
-                    }
-                    else
-                        hr = HRESULT_FROM_WIN32(GetLastError());
-                    HeapFree(GetProcessHeap(), 0, homeW);
-                }
-                else
-                    hr = HRESULT_FROM_WIN32(GetLastError());
-            }
-            break;
-        }
-    }
-    if (SUCCEEDED(hr))
-        return hr;
-
-    /* Either the folder was unhandled, or a suitable default wasn't found,
-     * so use one of the resource-based defaults
-     */
     if (CSIDL_Data[folder].szDefaultPath &&
      IS_INTRESOURCE(CSIDL_Data[folder].szDefaultPath))
     {
-- 
1.0.6


Reply via email to