mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 14:25:52 +00:00
- implement setting values WantsFORDisplay && HideAsDeletePerUser (not yet used)
- register control panel shell folder - fix a memory leak svn path=/trunk/; revision=30547
This commit is contained in:
parent
92f9c23098
commit
a6b1efe4da
31 changed files with 62 additions and 4 deletions
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Ðàáîòíà ïëîù"
|
||||
IDS_MYCOMPUTER "Ìîÿò êîìïþòúð"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Ãîëåìè çíà÷åòà"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -358,6 +358,7 @@ BEGIN
|
|||
IDS_DESKTOP "Plocha"
|
||||
IDS_MYCOMPUTER "Tento poèítaè"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Vedle sebe"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -359,6 +359,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "Arbeitsplatz"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Papierkorb"
|
||||
IDS_CONTROLPANEL "Systemsteuerung"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Große Symbole"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -358,6 +358,7 @@ BEGIN
|
|||
IDS_DESKTOP "Escritorio"
|
||||
IDS_MYCOMPUTER "Mi PC"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Papelera de reciclaje"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Iconos &grandes"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Työpöytä"
|
||||
IDS_MYCOMPUTER "Oma Tietokone"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Suuret Kuvakkeet"
|
||||
|
|
|
@ -361,6 +361,7 @@ BEGIN
|
|||
IDS_DESKTOP "Bureau"
|
||||
IDS_MYCOMPUTER "Poste de travail"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Corbeille"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Grandes icônes"
|
||||
|
|
|
@ -360,6 +360,7 @@ BEGIN
|
|||
IDS_DESKTOP "Asztal"
|
||||
IDS_MYCOMPUTER "Számítógép"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Nagy képek"
|
||||
|
|
|
@ -358,6 +358,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "Risorse del Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Icone Grandi"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "デスクトップ"
|
||||
IDS_MYCOMPUTER "マイ コンピュータ"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "大きいアイコン(&G)"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Skrivebord"
|
||||
IDS_MYCOMPUTER "Min datamaskin"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Papirkurv"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Store ikoner"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -358,6 +358,7 @@ BEGIN
|
|||
IDS_DESKTOP "Pulpit"
|
||||
IDS_MYCOMPUTER "Mój komputer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Kosz"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Du¿e Ikony"
|
||||
|
|
|
@ -359,6 +359,7 @@ BEGIN
|
|||
IDS_DESKTOP "Área de trabalho"
|
||||
IDS_MYCOMPUTER "Meu computador"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Ícones &grandes"
|
||||
|
|
|
@ -359,6 +359,7 @@ BEGIN
|
|||
IDS_DESKTOP "Ambiente de trabalho"
|
||||
IDS_MYCOMPUTER "O Meu Computador"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Ícones &grandes"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Ðàáî÷èé ñòîë"
|
||||
IDS_MYCOMPUTER "Ìîé êîìïüþòåð"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Êîðçèíà"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "&Áîëüøèå çíà÷êè"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Masaüstü"
|
||||
IDS_MYCOMPUTER "Bilgisayarým"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Çöp"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Bü&yük Simgeler"
|
||||
|
|
|
@ -366,6 +366,7 @@ BEGIN
|
|||
IDS_VIEW_DETAILS "&Подробиці"
|
||||
IDS_SELECT "Ви&брати"
|
||||
IDS_OPEN "Ві&дкрити"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
IDS_CREATEFOLDER_DENIED "Не вдалося створити нову папку: Відмова у доступі."
|
||||
IDS_CREATEFOLDER_CAPTION "Помилка при створенні нової папки"
|
||||
|
|
|
@ -357,6 +357,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -358,6 +358,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -358,6 +358,7 @@ BEGIN
|
|||
IDS_DESKTOP "Desktop"
|
||||
IDS_MYCOMPUTER "My Computer"
|
||||
IDS_RECYCLEBIN_FOLDER_NAME "Trash"
|
||||
IDS_CONTROLPANEL "Control Panel"
|
||||
|
||||
/* context menus */
|
||||
IDS_VIEW_LARGE "Lar&ge Icons"
|
||||
|
|
|
@ -83,6 +83,8 @@ struct regsvr_coclass
|
|||
#define SHELLFOLDER_WANTSFORPARSING 0x00000002
|
||||
#define SHELLFOLDER_ATTRIBUTES 0x00000004
|
||||
#define SHELLFOLDER_CALLFORATTRIBUTES 0x00000008
|
||||
#define SHELLFOLDER_WANTSFORDISPLAY 0x00000010
|
||||
#define SHELLFOLDER_HIDEASDELETEPERUSER 0x00000020
|
||||
|
||||
static HRESULT register_coclasses(struct regsvr_coclass const *list);
|
||||
static HRESULT unregister_coclasses(struct regsvr_coclass const *list);
|
||||
|
@ -135,6 +137,8 @@ static WCHAR const defaulticon_keyname[] = {
|
|||
static WCHAR const contextmenu_keyname[] = { 'C', 'o', 'n', 't', 'e', 'x', 't', 'M', 'e', 'n', 'u', 'H', 'a', 'n', 'd', 'l', 'e', 'r', 's', 0 };
|
||||
static char const tmodel_valuename[] = "ThreadingModel";
|
||||
static char const wfparsing_valuename[] = "WantsFORPARSING";
|
||||
static char const wfdisplay_valuename[] = "WantsFORDISPLAY";
|
||||
static char const hideasdeleteperuser_valuename[] = "HideAsDeletePerUser";
|
||||
static char const attributes_valuename[] = "Attributes";
|
||||
static char const cfattributes_valuename[] = "CallForAttributes";
|
||||
static char const localized_valuename[] = "LocalizedString";
|
||||
|
@ -335,7 +339,7 @@ static HRESULT register_coclasses(struct regsvr_coclass const *list)
|
|||
}
|
||||
|
||||
if (list->flags &
|
||||
(SHELLFOLDER_WANTSFORPARSING|SHELLFOLDER_ATTRIBUTES|SHELLFOLDER_CALLFORATTRIBUTES))
|
||||
(SHELLFOLDER_WANTSFORPARSING|SHELLFOLDER_ATTRIBUTES|SHELLFOLDER_CALLFORATTRIBUTES|SHELLFOLDER_WANTSFORDISPLAY|SHELLFOLDER_HIDEASDELETEPERUSER))
|
||||
{
|
||||
HKEY shellfolder_key;
|
||||
|
||||
|
@ -351,7 +355,11 @@ static HRESULT register_coclasses(struct regsvr_coclass const *list)
|
|||
if (list->flags & SHELLFOLDER_CALLFORATTRIBUTES)
|
||||
res = RegSetValueExA(shellfolder_key, cfattributes_valuename, 0, REG_DWORD,
|
||||
(const BYTE *)&list->dwCallForAttributes, sizeof(DWORD));
|
||||
RegCloseKey(shellfolder_key);
|
||||
if (list->flags & SHELLFOLDER_WANTSFORDISPLAY)
|
||||
res = RegSetValueExA(shellfolder_key, wfdisplay_valuename, 0, REG_SZ, (const BYTE *)"", 1);
|
||||
if (list->flags & SHELLFOLDER_HIDEASDELETEPERUSER)
|
||||
res = RegSetValueExA(shellfolder_key, hideasdeleteperuser_valuename, 0, REG_SZ, (const BYTE *)"", 1);
|
||||
RegCloseKey(shellfolder_key);
|
||||
if (res != ERROR_SUCCESS) goto error_close_clsid_key;
|
||||
}
|
||||
|
||||
|
@ -572,6 +580,19 @@ static struct regsvr_coclass const coclass_list[] = {
|
|||
"shell32.dll",
|
||||
"Apartment"
|
||||
},
|
||||
{ &CLSID_ControlPanel,
|
||||
"Shell Control Panel Folder",
|
||||
IDS_CONTROLPANEL,
|
||||
NULL,
|
||||
"shell32.dll",
|
||||
"Apartment",
|
||||
SHELLFOLDER_WANTSFORDISPLAY|SHELLFOLDER_ATTRIBUTES|SHELLFOLDER_HIDEASDELETEPERUSER,
|
||||
SFGAO_FOLDER|SFGAO_HASSUBFOLDER,
|
||||
0,
|
||||
NULL,
|
||||
NULL,
|
||||
IDI_SHELL_CONTROL_PANEL1
|
||||
},
|
||||
{ &CLSID_DragDropHelper,
|
||||
"Shell Drag and Drop Helper",
|
||||
0,
|
||||
|
@ -706,6 +727,8 @@ static const WCHAR wszDesktop[] = { 'D','e','s','k','t','o','p',0 };
|
|||
static const WCHAR wszSlash[] = { '/', 0 };
|
||||
static const WCHAR wszMyDocuments[] = { 'M','y',' ','D','o','c','u','m','e','n','t','s', 0 };
|
||||
static const WCHAR wszRecycleBin[] = { 'T','r','a','s','h', 0 };
|
||||
static const WCHAR wszMyComputer[] = { 'M','y','C','o','m','p','u','t','e','r',0 };
|
||||
static const WCHAR wszControlPanel[] = { 'C','o','n','t','r','o','l',0 };
|
||||
|
||||
static struct regsvr_namespace const namespace_extensions_list[] = {
|
||||
#if 0
|
||||
|
@ -725,6 +748,11 @@ static struct regsvr_namespace const namespace_extensions_list[] = {
|
|||
wszDesktop,
|
||||
wszRecycleBin
|
||||
},
|
||||
{
|
||||
&CLSID_ControlPanel,
|
||||
wszMyComputer,
|
||||
wszControlPanel
|
||||
},
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -289,7 +289,7 @@ static BOOL CreateDesktopEnumList(IEnumIDList *list, DWORD dwFlags)
|
|||
}
|
||||
else
|
||||
{
|
||||
ret = AddToEnumList(list, _ILCreateGuidFromStrW(iid));
|
||||
ret = AddToEnumList(list, pidl);
|
||||
}
|
||||
i++;
|
||||
}
|
||||
|
|
|
@ -106,6 +106,8 @@
|
|||
#define IDS_SHELL_ABOUT_AUTHORS 144
|
||||
#define IDS_SHELL_ABOUT_BACK 145
|
||||
#define FCIDM_SHVIEW_NEW 146
|
||||
#define FCIDM_SHVIEW_VIEW 147
|
||||
#define IDS_CONTROLPANEL 148
|
||||
|
||||
/* Note: this string is referenced from the registry */
|
||||
#define IDS_RECYCLEBIN_FOLDER_NAME 8964
|
||||
|
@ -172,7 +174,7 @@
|
|||
#define IDI_SHELL_TRASH_FILE 142
|
||||
#define IDI_SHELL_CONFIRM_DELETE 161
|
||||
#define IDI_SHELL_MY_DOCUMENTS 235
|
||||
|
||||
#define IDI_SHELL_CONTROL_PANEL1 330
|
||||
/*
|
||||
AVI resources, windows shell32 has 14 of them: 150-152 and 160-170
|
||||
FIXME: Need to add them, but for now just let them use the same: searching.avi
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue