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

commit 8f3079c67f85f61727f6f8a3cfaaa7d42264702e
Author:     Katayama Hirofumi MZ <[email protected]>
AuthorDate: Thu Apr 30 17:09:14 2020 +0900
Commit:     GitHub <[email protected]>
CommitDate: Thu Apr 30 17:09:14 2020 +0900

    [SHELL32][EXPLORER] Improve Recent Documents of Start Menu (#2648)
    
    Improve Recent Documents of Start Menu. Add items of "My Documents" and "My 
Pictures" into Recent menu item.
    CORE-3588, CORE-11483
---
 dll/win32/shell32/lang/bg-BG.rc               |  10 +++
 dll/win32/shell32/lang/ca-ES.rc               |  10 +++
 dll/win32/shell32/lang/cs-CZ.rc               |  10 +++
 dll/win32/shell32/lang/da-DK.rc               |  10 +++
 dll/win32/shell32/lang/de-DE.rc               |  10 +++
 dll/win32/shell32/lang/el-GR.rc               |  10 +++
 dll/win32/shell32/lang/en-GB.rc               |  10 +++
 dll/win32/shell32/lang/en-US.rc               |  10 +++
 dll/win32/shell32/lang/es-ES.rc               |  10 +++
 dll/win32/shell32/lang/et-EE.rc               |  10 +++
 dll/win32/shell32/lang/fi-FI.rc               |  10 +++
 dll/win32/shell32/lang/fr-FR.rc               |  10 +++
 dll/win32/shell32/lang/he-IL.rc               |  10 +++
 dll/win32/shell32/lang/hi-IN.rc               |  10 +++
 dll/win32/shell32/lang/hu-HU.rc               |  10 +++
 dll/win32/shell32/lang/id-ID.rc               |  10 +++
 dll/win32/shell32/lang/it-IT.rc               |  10 +++
 dll/win32/shell32/lang/ja-JP.rc               |  10 +++
 dll/win32/shell32/lang/ko-KR.rc               |  10 +++
 dll/win32/shell32/lang/nl-NL.rc               |  10 +++
 dll/win32/shell32/lang/no-NO.rc               |  10 +++
 dll/win32/shell32/lang/pl-PL.rc               |  10 +++
 dll/win32/shell32/lang/pt-BR.rc               |  10 +++
 dll/win32/shell32/lang/pt-PT.rc               |  10 +++
 dll/win32/shell32/lang/ro-RO.rc               |  10 +++
 dll/win32/shell32/lang/ru-RU.rc               |  10 +++
 dll/win32/shell32/lang/sk-SK.rc               |  10 +++
 dll/win32/shell32/lang/sl-SI.rc               |  10 +++
 dll/win32/shell32/lang/sq-AL.rc               |  10 +++
 dll/win32/shell32/lang/sv-SE.rc               |  10 +++
 dll/win32/shell32/lang/tr-TR.rc               |  10 +++
 dll/win32/shell32/lang/uk-UA.rc               |  10 +++
 dll/win32/shell32/lang/zh-CN.rc               |  10 +++
 dll/win32/shell32/lang/zh-TW.rc               |  10 +++
 dll/win32/shell32/shellmenu/CMenuToolbars.cpp |   2 +-
 dll/win32/shell32/shellmenu/CStartMenu.cpp    | 123 ++++++++++++++++++++++----
 dll/win32/shell32/shresdef.h                  |   4 +-
 37 files changed, 449 insertions(+), 20 deletions(-)

diff --git a/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc
index 60dfdef12b6..be31a2a5fa8 100644
--- a/dll/win32/shell32/lang/bg-BG.rc
+++ b/dll/win32/shell32/lang/bg-BG.rc
@@ -89,6 +89,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Търсене на папка"
diff --git a/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc
index eaa4ef533fa..4ff2d225cb5 100644
--- a/dll/win32/shell32/lang/ca-ES.rc
+++ b/dll/win32/shell32/lang/ca-ES.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Browse for Folder"
diff --git a/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc
index eb22e09d24d..3a376f7cee2 100644
--- a/dll/win32/shell32/lang/cs-CZ.rc
+++ b/dll/win32/shell32/lang/cs-CZ.rc
@@ -94,6 +94,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Procházet..."
diff --git a/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc
index 44024aa74a9..090a4fc746e 100644
--- a/dll/win32/shell32/lang/da-DK.rc
+++ b/dll/win32/shell32/lang/da-DK.rc
@@ -94,6 +94,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Søg efter Mappe"
diff --git a/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc
index 83e925a1c97..1161df3b3cf 100644
--- a/dll/win32/shell32/lang/de-DE.rc
+++ b/dll/win32/shell32/lang/de-DE.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Verzeichnis auswählen"
diff --git a/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc
index c1aa53d59bd..363fac9c214 100644
--- a/dll/win32/shell32/lang/el-GR.rc
+++ b/dll/win32/shell32/lang/el-GR.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Αναζήτηση φακέλου"
diff --git a/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc
index 4d22e4619a0..6ba9876c71f 100644
--- a/dll/win32/shell32/lang/en-GB.rc
+++ b/dll/win32/shell32/lang/en-GB.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Browse for Folder"
diff --git a/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc
index 59e73d761b3..b2916a320cd 100644
--- a/dll/win32/shell32/lang/en-US.rc
+++ b/dll/win32/shell32/lang/en-US.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Browse for Folder"
diff --git a/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc
index 480f3485d0b..b3901213946 100644
--- a/dll/win32/shell32/lang/es-ES.rc
+++ b/dll/win32/shell32/lang/es-ES.rc
@@ -97,6 +97,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Explorar carpeta"
diff --git a/dll/win32/shell32/lang/et-EE.rc b/dll/win32/shell32/lang/et-EE.rc
index 6216de12c16..ac80fae969d 100644
--- a/dll/win32/shell32/lang/et-EE.rc
+++ b/dll/win32/shell32/lang/et-EE.rc
@@ -95,6 +95,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Vali kaust"
diff --git a/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc
index 06a1f29be93..43581eadaa6 100644
--- a/dll/win32/shell32/lang/fi-FI.rc
+++ b/dll/win32/shell32/lang/fi-FI.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Valitse Kansio"
diff --git a/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc
index a6278672fa2..73c689127cc 100644
--- a/dll/win32/shell32/lang/fr-FR.rc
+++ b/dll/win32/shell32/lang/fr-FR.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Parcourir"
diff --git a/dll/win32/shell32/lang/he-IL.rc b/dll/win32/shell32/lang/he-IL.rc
index 0efa91a6fd9..bfcefecc97f 100644
--- a/dll/win32/shell32/lang/he-IL.rc
+++ b/dll/win32/shell32/lang/he-IL.rc
@@ -90,6 +90,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "בחירת תיקיה"
diff --git a/dll/win32/shell32/lang/hi-IN.rc b/dll/win32/shell32/lang/hi-IN.rc
index 091a130073a..83f6132d795 100644
--- a/dll/win32/shell32/lang/hi-IN.rc
+++ b/dll/win32/shell32/lang/hi-IN.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "फोल्डर खोंजे"
diff --git a/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc
index 0af2780e621..0b0d475dac0 100644
--- a/dll/win32/shell32/lang/hu-HU.rc
+++ b/dll/win32/shell32/lang/hu-HU.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Mappák böngészése"
diff --git a/dll/win32/shell32/lang/id-ID.rc b/dll/win32/shell32/lang/id-ID.rc
index 98263fe8e29..8cb23ff593a 100644
--- a/dll/win32/shell32/lang/id-ID.rc
+++ b/dll/win32/shell32/lang/id-ID.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Jelajah Folder"
diff --git a/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc
index 2434c653566..a2eca5662f2 100644
--- a/dll/win32/shell32/lang/it-IT.rc
+++ b/dll/win32/shell32/lang/it-IT.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Sfoglia Cartella"
diff --git a/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc
index fbbaab06efb..443bb981d88 100644
--- a/dll/win32/shell32/lang/ja-JP.rc
+++ b/dll/win32/shell32/lang/ja-JP.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "フォルダの参照"
diff --git a/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc
index 443dc3a49a7..bf28de47ffa 100644
--- a/dll/win32/shell32/lang/ko-KR.rc
+++ b/dll/win32/shell32/lang/ko-KR.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Browse for Folder"
diff --git a/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc
index aec45c77f48..f663fc09504 100644
--- a/dll/win32/shell32/lang/nl-NL.rc
+++ b/dll/win32/shell32/lang/nl-NL.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Browse for Folder"
diff --git a/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc
index 1fa6e372702..75763afc44c 100644
--- a/dll/win32/shell32/lang/no-NO.rc
+++ b/dll/win32/shell32/lang/no-NO.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Bla etter mappe"
diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc
index 86e87f196ad..98b68baa8f4 100644
--- a/dll/win32/shell32/lang/pl-PL.rc
+++ b/dll/win32/shell32/lang/pl-PL.rc
@@ -94,6 +94,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Wybierz folder"
diff --git a/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc
index 8cee41dbe22..92e5083e343 100644
--- a/dll/win32/shell32/lang/pt-BR.rc
+++ b/dll/win32/shell32/lang/pt-BR.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Procurar pasta"
diff --git a/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc
index bc225294c1a..b435f9e3933 100644
--- a/dll/win32/shell32/lang/pt-PT.rc
+++ b/dll/win32/shell32/lang/pt-PT.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Procurar pastas"
diff --git a/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc
index 42c613287fd..e6acbd58c2b 100644
--- a/dll/win32/shell32/lang/ro-RO.rc
+++ b/dll/win32/shell32/lang/ro-RO.rc
@@ -90,6 +90,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Specificare dosar"
diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc
index de203d29dc8..27e5ef0c1ec 100644
--- a/dll/win32/shell32/lang/ru-RU.rc
+++ b/dll/win32/shell32/lang/ru-RU.rc
@@ -95,6 +95,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Обзор"
diff --git a/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc
index a84187e4eb3..bd7365ad04f 100644
--- a/dll/win32/shell32/lang/sk-SK.rc
+++ b/dll/win32/shell32/lang/sk-SK.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Browse for Folder"
diff --git a/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc
index 55ba4f299c6..400bb4a583b 100644
--- a/dll/win32/shell32/lang/sl-SI.rc
+++ b/dll/win32/shell32/lang/sl-SI.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Browse for Folder"
diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc
index 8bccc16665a..c4ad1c21d2e 100644
--- a/dll/win32/shell32/lang/sq-AL.rc
+++ b/dll/win32/shell32/lang/sq-AL.rc
@@ -92,6 +92,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Shfleto për Dosje"
diff --git a/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc
index 51bac8cb790..b76b26c1683 100644
--- a/dll/win32/shell32/lang/sv-SE.rc
+++ b/dll/win32/shell32/lang/sv-SE.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Bläddra efter mapp"
diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc
index 5980461b725..1891bbed366 100644
--- a/dll/win32/shell32/lang/tr-TR.rc
+++ b/dll/win32/shell32/lang/tr-TR.rc
@@ -90,6 +90,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Dizin İçin Göz At"
diff --git a/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc
index 94405fdcd52..8a6679163c8 100644
--- a/dll/win32/shell32/lang/uk-UA.rc
+++ b/dll/win32/shell32/lang/uk-UA.rc
@@ -88,6 +88,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "Огляд папок"
diff --git a/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc
index d280cb26a3f..e465aa01a66 100644
--- a/dll/win32/shell32/lang/zh-CN.rc
+++ b/dll/win32/shell32/lang/zh-CN.rc
@@ -98,6 +98,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "浏览文件夹"
diff --git a/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc
index 292a780ebda..e8446a8fb3a 100644
--- a/dll/win32/shell32/lang/zh-TW.rc
+++ b/dll/win32/shell32/lang/zh-TW.rc
@@ -97,6 +97,16 @@ BEGIN
     END
 END
 
+IDM_RECENTMENUHEAD MENU
+BEGIN
+    POPUP ""
+    BEGIN
+        MENUITEM "My Documents", IDM_MYDOCUMENTS
+        MENUITEM "My Pictures", IDM_MYPICTURES
+        MENUITEM SEPARATOR
+    END
+END
+
 IDD_BROWSE_FOR_FOLDER DIALOGEX 15, 40, 188, 192
 STYLE DS_SHELLFONT | DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
 CAPTION "瀏覽資料夾"
diff --git a/dll/win32/shell32/shellmenu/CMenuToolbars.cpp 
b/dll/win32/shell32/shellmenu/CMenuToolbars.cpp
index b006b881460..86bacd2a6f8 100644
--- a/dll/win32/shell32/shellmenu/CMenuToolbars.cpp
+++ b/dll/win32/shell32/shellmenu/CMenuToolbars.cpp
@@ -1497,7 +1497,7 @@ HRESULT CMenuSFToolbar::InternalPopupItem(INT iItem, INT 
index, DWORD_PTR dwData
     if (FAILED_UNEXPECTEDLY(hr))
         return hr;
 
-    hr = shellMenu->SetShellFolder(childFolder, NULL, NULL, 0);
+    hr = shellMenu->SetShellFolder(childFolder, NULL, NULL, SMSET_TOP);
     if (FAILED_UNEXPECTEDLY(hr))
         return hr;
 
diff --git a/dll/win32/shell32/shellmenu/CStartMenu.cpp 
b/dll/win32/shell32/shellmenu/CStartMenu.cpp
index c853cb4af14..105be22c5dc 100644
--- a/dll/win32/shell32/shellmenu/CStartMenu.cpp
+++ b/dll/win32/shell32/shellmenu/CStartMenu.cpp
@@ -61,7 +61,6 @@ class CShellMenuCallback :
     public IShellMenuCallback
 {
 private:
-
     HWND m_hwndTray;
     CComPtr<IShellMenu> m_pShellMenu;
     CComPtr<IBandSite> m_pBandSite;
@@ -70,6 +69,7 @@ private:
     CComPtr<IShellFolder> m_psfPrograms;
 
     LPITEMIDLIST m_pidlPrograms;
+    HMENU m_hRecentMenu;
 
     HRESULT OnInitMenu()
     {
@@ -95,6 +95,12 @@ private:
         if (FAILED_UNEXPECTEDLY(hr))
             return hr;
 
+        m_hRecentMenu = ::LoadMenuW(shell32_hInstance, 
MAKEINTRESOURCEW(IDM_RECENTMENUHEAD));
+        if (m_hRecentMenu == NULL)
+        {
+            ERR("m_hRecentMenu == NULL\n");
+        }
+
         return hr;
     }
 
@@ -106,20 +112,22 @@ private:
         {
             // Smaller "24x24" icons used for the start menu
             // The bitmaps are still 32x32, but the image is centered
-        case IDM_FAVORITES: iconIndex = -322; break;
-        case IDM_SEARCH: iconIndex = -323; break;
-        case IDM_HELPANDSUPPORT: iconIndex = -324; break;
-        case IDM_LOGOFF: iconIndex = -325; break;
-        case IDM_PROGRAMS:  iconIndex = -326; break;
-        case IDM_DOCUMENTS: iconIndex = -327; break;
-        case IDM_RUN: iconIndex = -328; break;
-        case IDM_SHUTDOWN: iconIndex = -329; break;
-        case IDM_SETTINGS: iconIndex = -330; break;
-
-        case IDM_CONTROLPANEL: iconIndex = -22; break;
-        case IDM_NETWORKCONNECTIONS: iconIndex = -257; break;
-        case IDM_PRINTERSANDFAXES: iconIndex = -138; break;
-        case IDM_TASKBARANDSTARTMENU: iconIndex = -40; break;
+        case IDM_FAVORITES: iconIndex = -IDI_SHELL_FAVOTITES; break;
+        case IDM_SEARCH: iconIndex = -IDI_SHELL_SEARCH1; break;
+        case IDM_HELPANDSUPPORT: iconIndex = -IDI_SHELL_HELP2; break;
+        case IDM_LOGOFF: iconIndex = -IDI_SHELL_LOGOFF1; break;
+        case IDM_PROGRAMS:  iconIndex = -IDI_SHELL_PROGRAMS_FOLDER1; break;
+        case IDM_DOCUMENTS: iconIndex = -IDI_SHELL_RECENT_DOCUMENTS1; break;
+        case IDM_RUN: iconIndex = -IDI_SHELL_RUN1; break;
+        case IDM_SHUTDOWN: iconIndex = -IDI_SHELL_SHUTDOWN1; break;
+        case IDM_SETTINGS: iconIndex = -IDI_SHELL_CONTROL_PANEL1; break;
+        case IDM_MYDOCUMENTS: iconIndex = -IDI_SHELL_MY_DOCUMENTS; break;
+        case IDM_MYPICTURES: iconIndex = -IDI_SHELL_MY_PICTURES; break;
+
+        case IDM_CONTROLPANEL: iconIndex = -IDI_SHELL_CONTROL_PANEL; break;
+        case IDM_NETWORKCONNECTIONS: iconIndex = 
-IDI_SHELL_NETWORK_CONNECTIONS2; break;
+        case IDM_PRINTERSANDFAXES: iconIndex = -IDI_SHELL_PRINTER2; break;
+        case IDM_TASKBARANDSTARTMENU: iconIndex = -IDI_SHELL_TSKBAR_STARTMENU; 
break;
         //case IDM_SECURITY: iconIndex = -21; break;
         //case IDM_SYNCHRONIZE: iconIndex = -21; break;
         //case IDM_DISCONNECT: iconIndex = -21; break;
@@ -149,6 +157,54 @@ private:
         return S_OK;
     }
 
+    HMENU CreateRecentMenu(BOOL bExpandMyDocuments, BOOL bExpandMyPictures) 
const
+    {
+        HMENU hMenu = ::CreateMenu();
+        if (hMenu == NULL)
+        {
+            ERR("HMenu == NULL\n");
+            return NULL;
+        }
+
+        HMENU hSubMenu = ::GetSubMenu(m_hRecentMenu, 0);
+        if (hSubMenu == NULL)
+        {
+            ERR("hSubMenu == NULL\n");
+            return NULL;
+        }
+
+        WCHAR szText[128];
+        UINT i, nCount = GetMenuItemCount(hSubMenu);
+        for (i = 0; i < nCount; ++i)
+        {
+            UINT nID = GetMenuItemID(hSubMenu, i);
+            if (GetMenuString(hSubMenu, i, szText, _countof(szText), 
MF_BYPOSITION))
+            {
+                if ((nID == IDM_MYDOCUMENTS && bExpandMyDocuments) ||
+                    (nID == IDM_MYPICTURES && bExpandMyPictures))
+                {
+                    MENUITEMINFOW mii = { sizeof(mii), MIIM_TYPE | MIIM_ID | 
MIIM_SUBMENU };
+                    mii.fType = MFT_STRING;
+                    mii.wID = nID;
+                    mii.hSubMenu = ::CreatePopupMenu();
+                    mii.dwTypeData = szText;
+                    mii.cch = lstrlenW(szText);
+                    InsertMenuItemW(hMenu, i, TRUE, &mii);
+                }
+                else
+                {
+                    AppendMenuW(hMenu, MF_STRING | MF_ENABLED, nID, szText);
+                }
+            }
+            else
+            {
+                AppendMenuW(hMenu, MF_SEPARATOR, 0, NULL);
+            }
+        }
+
+        return hMenu;
+    }
+
     HRESULT OnGetSubMenu(LPSMDATA psmd, REFIID iid, void ** pv)
     {
         HRESULT hr;
@@ -168,11 +224,14 @@ private:
         case IDM_PROGRAMS:  csidl = CSIDL_PROGRAMS; break;
         case IDM_FAVORITES: csidl = CSIDL_FAVORITES; break;
         case IDM_DOCUMENTS: csidl = CSIDL_RECENT; break;
+        case IDM_MYDOCUMENTS: csidl = CSIDL_MYDOCUMENTS; break;
+        case IDM_MYPICTURES: csidl = CSIDL_MYPICTURES; break;
         }
 
         if (csidl)
         {
             IShellFolder *psfStartMenu;
+            DWORD dwFlags = SMSET_TOP;
 
             if (csidl == CSIDL_PROGRAMS && m_psfPrograms)
             {
@@ -180,6 +239,19 @@ private:
             }
             else
             {
+                if (csidl == CSIDL_RECENT)
+                {
+                    BOOL bExpandMyDocuments = FALSE; /* FIXME: Get value from 
registry */
+                    BOOL bExpandMyPictures = FALSE;  /* FIXME: Get value from 
registry */
+                    HMENU hMenu = CreateRecentMenu(bExpandMyDocuments, 
bExpandMyPictures);
+
+                    hr = pShellMenu->SetMenu(hMenu, NULL, SMSET_BOTTOM);
+                    if (FAILED_UNEXPECTEDLY(hr))
+                        return hr;
+
+                    dwFlags = SMSET_BOTTOM;
+                }
+
                 LPITEMIDLIST pidlStartMenu;
                 IShellFolder *psfDestop;
                 hr = SHGetFolderLocation(NULL, csidl, 0, 0, &pidlStartMenu);
@@ -195,10 +267,9 @@ private:
                     return hr;
             }
 
-            hr = pShellMenu->SetShellFolder(psfStartMenu, NULL, NULL, 0);
+            hr = pShellMenu->SetShellFolder(psfStartMenu, NULL, NULL, dwFlags);
             if (FAILED_UNEXPECTEDLY(hr))
                 return hr;
-
         }
         else
         {
@@ -240,6 +311,8 @@ private:
 
     HRESULT OnExec(LPSMDATA psmd)
     {
+        WCHAR szPath[MAX_PATH];
+
         // HACK: Because our ShellExecute can't handle CLSID components in 
paths, we can't launch the paths using the "open" verb.
         // FIXME: Change this back to using the path as the filename and the 
"open" verb, once ShellExecute can handle CLSID path components.
 
@@ -249,6 +322,20 @@ private:
             ShellExecuteW(NULL, NULL, L"explorer.exe", 
L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}",
 NULL, SW_SHOWNORMAL);
         else if (psmd->uId == IDM_PRINTERSANDFAXES)
             ShellExecuteW(NULL, NULL, L"explorer.exe", 
L"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{21EC2020-3AEA-1069-A2DD-08002B30309D}\\::{2227A280-3AEA-1069-A2DE-08002B30309D}",
 NULL, SW_SHOWNORMAL);
+        else if (psmd->uId == IDM_MYDOCUMENTS)
+        {
+            if (SHGetSpecialFolderPathW(NULL, szPath, CSIDL_PERSONAL, FALSE))
+                ShellExecuteW(NULL, NULL, szPath, NULL, NULL, SW_SHOWNORMAL);
+            else
+                ERR("SHGetSpecialFolderPathW failed\n");
+        }
+        else if (psmd->uId == IDM_MYPICTURES)
+        {
+            if (SHGetSpecialFolderPathW(NULL, szPath, CSIDL_MYPICTURES, FALSE))
+                ShellExecuteW(NULL, NULL, szPath, NULL, NULL, SW_SHOWNORMAL);
+            else
+                ERR("SHGetSpecialFolderPathW failed\n");
+        }
         else
             PostMessageW(m_hwndTray, WM_COMMAND, psmd->uId, 0);
 
@@ -497,7 +584,7 @@ RSHELL_CStartMenu_CreateInstance(REFIID riid, void **ppv)
     if (FAILED_UNEXPECTEDLY(hr))
         return hr;
 
-    hr = pShellMenu->SetShellFolder(psf, NULL, NULL, 0);
+    hr = pShellMenu->SetShellFolder(psf, NULL, NULL, SMSET_TOP);
     if (FAILED_UNEXPECTEDLY(hr))
         return hr;
 
diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h
index 7cd84a0f4c8..f9efb726a3c 100644
--- a/dll/win32/shell32/shresdef.h
+++ b/dll/win32/shell32/shresdef.h
@@ -794,8 +794,10 @@
 #define IDM_COPYHERE 0x7
 #define IDM_MOVEHERE 0x8
 #define IDM_LINKHERE 0xB
+#define IDM_RECENTMENUHEAD 401
 
-
+#define IDM_MYDOCUMENTS 516
+#define IDM_MYPICTURES 518
 
 /* Registrar scripts (RGS) */
 #define IDR_ADMINFOLDERSHORTCUT 128

Reply via email to