mirror of
https://github.com/reactos/reactos.git
synced 2025-07-29 08:31:57 +00:00
[EXPLORER][SHELL32] Strengthen Start Menu Customize Part 1 (#6544)
Strengthen customization of Start menu. JIRA issue: CORE-16956 - Modify IDD_CLASSICSTART_CUSTOMIZE dialog. - Add some resource strings to shell32.dll. - Add some helper functions. - Disable Clear button if necessary. - Add "Display Favorites" and "Display Log Off" items into IDC_CLASSICSTART_SETTINGS treeview control. - Implement two items' action. - Recreate the start menu if WM_SETTINGCHANGE message received.
This commit is contained in:
parent
281f7c4e38
commit
d1ac33a9bd
76 changed files with 338 additions and 97 deletions
|
@ -1,5 +1,6 @@
|
|||
#include <windef.h>
|
||||
#include <winuser.h>
|
||||
#include <commctrl.h>
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "За да премахнете записи на наскоро използвани документи, програми и интернет сайтове, щракнете върху Изчисти.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Изчисти", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Разширени настройки на Старт менюто:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "Добре", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Изход", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "Kliknutím na Vyčistit odstraníte záznamy o naposledy použitých programech a zobrazených dokumentech a webových stránkách.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Vyčistit", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Pokročilé &možnosti nabídky Start:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Storno", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -147,7 +147,7 @@ BEGIN
|
|||
LTEXT "Löschen Sie kürzlich verwendete Dokumente, Programme und Webseiten.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Löschen", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Erweiterte Startmenü&optionen:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Abbrechen", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -147,7 +147,7 @@ BEGIN
|
|||
LTEXT "Para eliminar registros de documentos, programas y sitios web abiertos recientemente, haga click en Borrar.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Borrar", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "&Opciones avanzadas del Menú Inicio:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "A&justes del Menú Inicio", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "A&justes del Menú Inicio", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "Aceptar", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancelar", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "Viimati avatud dokumentide, programmide ja veebisaitide kirjete eemaldamiseks klõpsake nuppu Tühjenda.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Tühjenda", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Menüü Start täpsemad suvandid:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenu&Options", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenu&Options", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Loobu", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "Azkenaldian erabilitako dokumentu, programa eta web orrien erregistroak kentzeko, egin klik 'Garbitu'n.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Garbitu", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "&Hasi' menuko aukera aurreratuak:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "Hasi-menuko &aukerak", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "Hasi-menuko &aukerak", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "Ados", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Utzi", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "Poistaaksesi tiedot viimeksi käytetyistä tiedostoista, ohjelmista, nettisivuista, klikkaa Tyhjennä.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Tyhjennä", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "K&äynnistä valikko lisäasetukset:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Peruuta", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "Pour vider la liste des documents, programmes et sites web récemment accédés, cliquez sur Nettoyer.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Nettoyer", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "&Options avancées du Menu démarrer :", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "&Paramètres du Menu Démarrer", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "&Paramètres du Menu Démarrer", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Annuler", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "हाल ही में एक्सेस किए गए डॉक्यमिन्ट, प्रोग्राम्स और वेबसाइटों के रिकॉर्ड को हटाने के लिए, साफ़ करें पर क्लिक करें।", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&साफ़ करें ", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "उन्नत स्टार्ट मेनू विकल्प:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "ओके", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "रद्द करें", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "A nemrég megnyitott dokumentumok, programok és weboldalak listájának törléséhez kattintson a törlés gombra.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Törlés", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Ha&ladó Start menü opciók:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Mégse", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "Untuk menghapus jejak dokumen, program, dan situs web yang telah diakses, klik Bersihkan.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Bersihkan", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "&Opsi menu mulai tingkat lanjut:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Batal", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -145,7 +145,7 @@ BEGIN
|
|||
LTEXT "最近アクセスした文書、プログラム、Webサイトの記録を消すには、[クリア] をクリックして下さい。", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "クリア(&C)", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "上級者向けスタートメニューのオプション(&T):", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "キャンセル", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "지우기(&C)", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "시작 메뉴 고급 옵션(&T):", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "확인", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "취소", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -146,7 +146,7 @@ BEGIN
|
|||
LTEXT "Kliknij przycisk Wyczyść, aby usunąć informacje o ostatnio otwieranych dokumentach, programach i witrynach sieci Web.", IDC_STATIC, 49, 61, 100, 33
|
||||
PUSHBUTTON "&Wyczyść", IDC_CLASSICSTART_CLEAR, 150, 94, 70, 14
|
||||
LTEXT "Zaawansowane opcje menu Start:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Anuluj", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -145,7 +145,7 @@ BEGIN
|
|||
LTEXT "Para remover os registos dos documentos, programas e Web sites acedidos recentemente, clique em Limpar.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Limpar", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Opções avançadas do menu &Iniciar:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancelar", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "Pentru a elimina înregistrări ale documentelor, programelor, și siturilor Web recent accesate, apăsați Curăță.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Curăță", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Opțiuni avansate ale meniului Pornire:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "Con&firmă", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "A&nulează", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -147,7 +147,7 @@ BEGIN
|
|||
LTEXT "Для удаления записей о недавних документах, программах и сайтах нажмите ""Очистить"".", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "О&чистить", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "До&полнительные параметры меню ""Пуск"":", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Отмена", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -143,7 +143,7 @@ BEGIN
|
|||
LTEXT "To remove records of recently accessed documents, programs, and Web sites, click Clear.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Clear", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Advanced S&tart menu options:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Cancel", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "Son erişilen belgelerin, programların ve Genel Ağ sitelerinin kayıtlarını silmek için Sil'e tıklayınız.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "S&il", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Ge&lişmiş Başlat Menüsü Ayarları:", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "&Başlat Menüsü Ayarları", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "&Başlat Menüsü Ayarları", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "Tamam", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "İptal", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -147,7 +147,7 @@ BEGIN
|
|||
LTEXT "Щоб видалити історію недавніх документів, програм і веб-сайтів, натисніть кнопку Очистити.", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "&Очистити", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "Додаткові налаштування го&ловного меню", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "StartMenuSe&ttings", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "OK", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "Скасувати", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -145,7 +145,7 @@ BEGIN
|
|||
LTEXT "要删除最近访问过的文档、程序和网站记录,单击清除。", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "清除(&C)", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "开始菜单中的高级的选项:(&T)", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "开始菜单设置(&T)", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "开始菜单设置(&T)", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "确定", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "取消", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -144,7 +144,7 @@ BEGIN
|
|||
LTEXT "要刪除最近訪問過的檔案、程式和網站記錄,請按[清除]。", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "清除(&C)", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "開始功能表中的進階選項(&T):", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "開始功能表設定(&T)", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "開始功能表設定(&T)", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "確定", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "取消", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -145,7 +145,7 @@ BEGIN
|
|||
LTEXT "要刪除最近訪問過的檔案、程式和網站記錄,請按[清除]。", IDC_STATIC, 49, 85, 108, 33
|
||||
PUSHBUTTON "清除(&C)", IDC_CLASSICSTART_CLEAR, 162, 94, 53, 14
|
||||
LTEXT "開始功能表中的進階選項(&T):", IDC_STATIC, 8, 129, 150, 8
|
||||
CONTROL "開始功能表設定(&T)", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", WS_BORDER | 0x00000001, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
CONTROL "開始功能表設定(&T)", IDC_CLASSICSTART_SETTINGS, "SysTreeView32", TVS_HASBUTTONS | WS_BORDER, 8, 139, 218, 72, WS_EX_CLIENTEDGE
|
||||
DEFPUSHBUTTON "確定", IDOK, 122, 220, 50, 14
|
||||
PUSHBUTTON "取消", IDCANCEL, 176, 220, 50, 14
|
||||
END
|
||||
|
|
|
@ -106,10 +106,10 @@ FormatMenuString(IN HMENU hMenu,
|
|||
IN UINT uFlags,
|
||||
...);
|
||||
|
||||
BOOL
|
||||
GetExplorerRegValueSet(IN HKEY hKey,
|
||||
IN LPCWSTR lpSubKey,
|
||||
IN LPCWSTR lpValue);
|
||||
BOOL GetRegValue(IN LPCWSTR pszSubKey, IN LPCWSTR pszValueName, IN BOOL bDefaultValue);
|
||||
BOOL SetRegDword(IN LPCWSTR pszSubKey, IN LPCWSTR pszValueName, IN DWORD dwValue);
|
||||
BOOL GetAdvancedBool(IN LPCWSTR pszValueName, IN BOOL bDefaultValue);
|
||||
BOOL SetAdvancedDword(IN LPCWSTR pszValueName, IN DWORD dwValue);
|
||||
|
||||
/*
|
||||
* rshell.c
|
||||
|
|
|
@ -106,6 +106,12 @@
|
|||
#define IDS_TRAYWND_UNDO_CASCADE 812
|
||||
#define IDS_TRAYWND_UNDO_TILE 813
|
||||
|
||||
/* These values must be synchronized with shell32 */
|
||||
#define IDS_ADVANCED_DISPLAY_FAVORITES 30466
|
||||
#define IDS_ADVANCED_DISPLAY_LOG_OFF 30467
|
||||
#define IDS_ADVANCED_DISPLAY_RUN 30474
|
||||
#define IDS_ADVANCED_DISPLAY_ADMINTOOLS 30476
|
||||
|
||||
/*******************************************************************************\
|
||||
|* Control Resources *|
|
||||
\*******************************************************************************/
|
||||
|
|
|
@ -21,6 +21,8 @@
|
|||
|
||||
#include "precomp.h"
|
||||
|
||||
#define I_CHECKED 2
|
||||
|
||||
// TODO: Windows Explorer appears to be calling NewLinkHere / ConfigStartMenu directly for both items.
|
||||
VOID OnAddStartMenuItems(HWND hDlg)
|
||||
{
|
||||
|
@ -49,33 +51,128 @@ VOID OnAdvancedStartMenuItems()
|
|||
}
|
||||
}
|
||||
|
||||
VOID OnClearRecentItems()
|
||||
static BOOL RecentHasShortcut(HWND hwnd)
|
||||
{
|
||||
WCHAR szPath[MAX_PATH], szFile[MAX_PATH];
|
||||
WIN32_FIND_DATAW info;
|
||||
HANDLE hPath;
|
||||
WCHAR szPath[MAX_PATH];
|
||||
if (FAILED(SHGetFolderPathW(hwnd, CSIDL_RECENT | CSIDL_FLAG_CREATE, NULL, 0, szPath)))
|
||||
return FALSE;
|
||||
|
||||
if (SUCCEEDED(SHGetFolderPathW(NULL, CSIDL_RECENT, NULL, 0, szPath)))
|
||||
// Find shortcut files in Recent
|
||||
WIN32_FIND_DATAW find;
|
||||
PathAppendW(szPath, L"*.lnk");
|
||||
HANDLE hFind = FindFirstFileW(szPath, &find);
|
||||
if (hFind == INVALID_HANDLE_VALUE)
|
||||
return FALSE;
|
||||
|
||||
FindClose(hFind);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static VOID OnClearRecentItems(HWND hwnd)
|
||||
{
|
||||
SHAddToRecentDocs(SHARD_PIDL, NULL);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_CLASSICSTART_CLEAR), RecentHasShortcut(hwnd));
|
||||
}
|
||||
|
||||
struct CUSTOMIZE_ENTRY;
|
||||
typedef DWORD (CALLBACK *FN_CUSTOMIZE_READ)(const CUSTOMIZE_ENTRY *entry);
|
||||
typedef BOOL (CALLBACK *FN_CUSTOMIZE_WRITE)(const CUSTOMIZE_ENTRY *entry, DWORD dwValue);
|
||||
|
||||
struct CUSTOMIZE_ENTRY
|
||||
{
|
||||
LPARAM id;
|
||||
LPCWSTR name;
|
||||
FN_CUSTOMIZE_READ fnRead;
|
||||
FN_CUSTOMIZE_WRITE fnWrite;
|
||||
};
|
||||
|
||||
static DWORD CALLBACK CustomizeRead0(const CUSTOMIZE_ENTRY *entry)
|
||||
{
|
||||
return GetAdvancedBool(entry->name, FALSE);
|
||||
}
|
||||
|
||||
static BOOL CALLBACK CustomizeWrite0(const CUSTOMIZE_ENTRY *entry, DWORD dwValue)
|
||||
{
|
||||
return SetAdvancedDword(entry->name, dwValue);
|
||||
}
|
||||
|
||||
static const CUSTOMIZE_ENTRY s_CustomizeEntries[] =
|
||||
{
|
||||
// FIXME: Make "StartMenuAdminTools" effective
|
||||
//{ IDS_ADVANCED_DISPLAY_ADMINTOOLS, L"StartMenuAdminTools", CustomizeRead1, CustomizeWrite1 }, // FIXME
|
||||
|
||||
{ IDS_ADVANCED_DISPLAY_FAVORITES, L"StartMenuFavorites", CustomizeRead0, CustomizeWrite0 },
|
||||
{ IDS_ADVANCED_DISPLAY_LOG_OFF, L"StartMenuLogoff", CustomizeRead0, CustomizeWrite0 },
|
||||
|
||||
// FIXME: SHRestricted is buggy!
|
||||
//{ IDS_ADVANCED_DISPLAY_RUN, L"NoRun", CustomizeRead2, CustomizeWrite2 },
|
||||
};
|
||||
|
||||
static VOID AddCustomizeItem(HWND hTreeView, const CUSTOMIZE_ENTRY *entry)
|
||||
{
|
||||
TV_INSERTSTRUCT Insert = { TVI_ROOT, TVI_LAST };
|
||||
Insert.item.mask = TVIF_TEXT | TVIF_STATE | TVIF_PARAM;
|
||||
|
||||
WCHAR szText[MAX_PATH];
|
||||
LoadStringW(GetModuleHandleW(L"shell32.dll"), entry->id, szText, _countof(szText));
|
||||
Insert.item.pszText = szText;
|
||||
Insert.item.lParam = entry->id;
|
||||
Insert.item.stateMask = TVIS_STATEIMAGEMASK;
|
||||
if (entry->fnRead(entry))
|
||||
Insert.item.state = INDEXTOSTATEIMAGEMASK(I_CHECKED);
|
||||
TreeView_InsertItem(hTreeView, &Insert);
|
||||
}
|
||||
|
||||
static void CustomizeClassic_OnInitDialog(HWND hwnd)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_CLASSICSTART_CLEAR), RecentHasShortcut(hwnd));
|
||||
|
||||
HWND hTreeView = GetDlgItem(hwnd, IDC_CLASSICSTART_SETTINGS);
|
||||
|
||||
DWORD_PTR style = GetWindowLongPtrW(hTreeView, GWL_STYLE);
|
||||
SetWindowLongPtrW(hTreeView, GWL_STYLE, style | TVS_CHECKBOXES);
|
||||
|
||||
for (auto& entry : s_CustomizeEntries)
|
||||
{
|
||||
StringCchPrintfW(szFile, _countof(szFile), L"%s\\*.*", szPath);
|
||||
hPath = FindFirstFileW(szFile, &info);
|
||||
do
|
||||
{
|
||||
StringCchPrintfW(szFile, _countof(szFile), L"%s\\%s", szPath, info.cFileName);
|
||||
DeleteFileW(szFile);
|
||||
}
|
||||
while (FindNextFileW(hPath, &info));
|
||||
FindClose(hPath);
|
||||
/* FIXME: Disable the button*/
|
||||
AddCustomizeItem(hTreeView, &entry);
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL CustomizeClassic_OnOK(HWND hwnd)
|
||||
{
|
||||
HWND hTreeView = GetDlgItem(hwnd, IDC_CLASSICSTART_SETTINGS);
|
||||
|
||||
for (HTREEITEM hItem = TreeView_GetFirstVisible(hTreeView);
|
||||
hItem != NULL;
|
||||
hItem = TreeView_GetNextVisible(hTreeView, hItem))
|
||||
{
|
||||
TV_ITEM item = { TVIF_PARAM | TVIF_STATE };
|
||||
item.hItem = hItem;
|
||||
item.stateMask = TVIS_STATEIMAGEMASK;
|
||||
TreeView_GetItem(hTreeView, &item);
|
||||
|
||||
BOOL bChecked = (item.state & INDEXTOSTATEIMAGEMASK(I_CHECKED));
|
||||
for (auto& entry : s_CustomizeEntries)
|
||||
{
|
||||
if (item.lParam == entry.id)
|
||||
{
|
||||
entry.fnWrite(&entry, bChecked);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SendMessageTimeoutW(HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)L"TraySettings",
|
||||
SMTO_ABORTIFHUNG, 200, NULL);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
INT_PTR CALLBACK CustomizeClassicProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
switch (Message)
|
||||
{
|
||||
case WM_INITDIALOG:
|
||||
/* FIXME: Properly initialize the dialog (check whether 'clear' button must be disabled, for example) */
|
||||
CustomizeClassic_OnInitDialog(hwnd);
|
||||
return TRUE;
|
||||
case WM_COMMAND:
|
||||
switch (LOWORD(wParam))
|
||||
|
@ -90,10 +187,13 @@ INT_PTR CALLBACK CustomizeClassicProc(HWND hwnd, UINT Message, WPARAM wParam, LP
|
|||
OnAdvancedStartMenuItems();
|
||||
break;
|
||||
case IDC_CLASSICSTART_CLEAR:
|
||||
OnClearRecentItems();
|
||||
OnClearRecentItems(hwnd);
|
||||
break;
|
||||
case IDOK:
|
||||
EndDialog(hwnd, IDOK);
|
||||
if (CustomizeClassic_OnOK(hwnd))
|
||||
{
|
||||
EndDialog(hwnd, IDOK);
|
||||
}
|
||||
break;
|
||||
case IDCANCEL:
|
||||
EndDialog(hwnd, IDCANCEL);
|
||||
|
|
|
@ -133,14 +133,10 @@ public:
|
|||
dwLogoff = SHRestricted(REST_STARTMENULOGOFF);
|
||||
bWantLogoff = (dwLogoff == 2 ||
|
||||
SHRestricted(REST_FORCESTARTMENULOGOFF) ||
|
||||
GetExplorerRegValueSet(HKEY_CURRENT_USER,
|
||||
L"Advanced",
|
||||
L"StartMenuLogoff"));
|
||||
GetAdvancedBool(L"StartMenuLogoff", FALSE));
|
||||
|
||||
/* Favorites */
|
||||
if (!GetExplorerRegValueSet(HKEY_CURRENT_USER,
|
||||
L"Advanced",
|
||||
L"StartMenuFavorites"))
|
||||
if (!GetAdvancedBool(L"StartMenuFavorites", FALSE))
|
||||
{
|
||||
DeleteMenu(hMenu,
|
||||
IDM_FAVORITES,
|
||||
|
|
|
@ -2658,6 +2658,15 @@ ChangePos:
|
|||
CheckTrayWndPosition();
|
||||
}
|
||||
|
||||
if (m_StartMenuPopup && lstrcmpiW((LPCWSTR)lParam, L"TraySettings") == 0)
|
||||
{
|
||||
/* Re-create the start menu */
|
||||
HideStartMenu();
|
||||
m_StartMenuBand.Release();
|
||||
HBITMAP hbmBanner = LoadBitmapW(hExplorerInstance, MAKEINTRESOURCEW(IDB_STARTMENU));
|
||||
m_StartMenuPopup = CreateStartMenu(this, &m_StartMenuBand, hbmBanner, FALSE);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -140,48 +140,27 @@ FormatMenuString(IN HMENU hMenu,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL
|
||||
GetExplorerRegValueSet(IN HKEY hKey,
|
||||
IN LPCWSTR lpSubKey,
|
||||
IN LPCWSTR lpValue)
|
||||
BOOL GetRegBool(IN LPCWSTR pszSubKey, IN LPCWSTR pszValueName, IN BOOL bDefaultValue)
|
||||
{
|
||||
WCHAR szBuffer[MAX_PATH];
|
||||
HKEY hkSubKey;
|
||||
DWORD dwType, dwSize;
|
||||
BOOL Ret = FALSE;
|
||||
return SHRegGetBoolUSValueW(pszSubKey, pszValueName, FALSE, bDefaultValue);
|
||||
}
|
||||
|
||||
StringCbCopyW(szBuffer, sizeof(szBuffer),
|
||||
L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer");
|
||||
if (FAILED_UNEXPECTEDLY(StringCbCatW(szBuffer, sizeof(szBuffer), L"\\")))
|
||||
return FALSE;
|
||||
if (FAILED_UNEXPECTEDLY(StringCbCatW(szBuffer, sizeof(szBuffer), lpSubKey)))
|
||||
return FALSE;
|
||||
BOOL SetRegDword(IN LPCWSTR pszSubKey, IN LPCWSTR pszValueName, IN DWORD dwValue)
|
||||
{
|
||||
return (SHRegSetUSValueW(pszSubKey, pszValueName, REG_DWORD, &dwValue,
|
||||
sizeof(dwValue), SHREGSET_FORCE_HKCU) == ERROR_SUCCESS);
|
||||
}
|
||||
|
||||
dwSize = sizeof(szBuffer);
|
||||
if (RegOpenKeyExW(hKey,
|
||||
szBuffer,
|
||||
0,
|
||||
KEY_QUERY_VALUE,
|
||||
&hkSubKey) == ERROR_SUCCESS)
|
||||
{
|
||||
ZeroMemory(szBuffer, sizeof(szBuffer));
|
||||
#define REGKEY_ADVANCED L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced"
|
||||
|
||||
if (RegQueryValueExW(hkSubKey,
|
||||
lpValue,
|
||||
0,
|
||||
&dwType,
|
||||
(LPBYTE)szBuffer,
|
||||
&dwSize) == ERROR_SUCCESS)
|
||||
{
|
||||
if ((dwType == REG_DWORD) && (dwSize == sizeof(DWORD)))
|
||||
Ret = *((PDWORD)szBuffer) != 0;
|
||||
else if (dwSize > 0)
|
||||
Ret = *((PWCHAR)szBuffer) != 0;
|
||||
}
|
||||
BOOL GetAdvancedBool(IN LPCWSTR pszValueName, IN BOOL bDefaultValue)
|
||||
{
|
||||
return GetRegBool(REGKEY_ADVANCED, pszValueName, bDefaultValue);
|
||||
}
|
||||
|
||||
RegCloseKey(hkSubKey);
|
||||
}
|
||||
return Ret;
|
||||
BOOL SetAdvancedDword(IN LPCWSTR pszValueName, IN DWORD dwValue)
|
||||
{
|
||||
return SetRegDword(REGKEY_ADVANCED, pszValueName, dwValue);
|
||||
}
|
||||
|
||||
BOOL
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue