Module: wine Branch: refs/heads/master Commit: bbca134a3c0ff3cd62a2065bea0c2bb785eac0c3 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=bbca134a3c0ff3cd62a2065b...
Author: Michael Jung mjung@iss.tu-darmstadt.de Date: Tue Feb 14 10:41:33 2006 +0100
shell32: Register 'LocalizedString' values for shellfolder classes.
---
dlls/shell32/regsvr.c | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/dlls/shell32/regsvr.c b/dlls/shell32/regsvr.c index f150bb8..ac8144c 100644 --- a/dlls/shell32/regsvr.c +++ b/dlls/shell32/regsvr.c @@ -32,6 +32,7 @@ #include "shlguid.h" #include "shell32_main.h" #include "shfldr.h" +#include "shresdef.h"
#include "wine/debug.h"
@@ -62,6 +63,7 @@ struct regsvr_coclass { CLSID const *clsid; /* NULL for end of list */ LPCSTR name; /* can be NULL to omit */ + UINT idName; /* can be 0 to omit */ LPCSTR ips; /* can be NULL to omit */ LPCSTR ips32; /* can be NULL to omit */ LPCSTR ips32_tmodel; /* can be NULL to omit */ @@ -128,6 +130,7 @@ static char const tmodel_valuename[] = " static char const wfparsing_valuename[] = "WantsFORPARSING"; static char const attributes_valuename[] = "Attributes"; static char const cfattributes_valuename[] = "CallForAttributes"; +static char const localized_valuename[] = "LocalizedString";
/*********************************************************************** * static helper functions @@ -264,6 +267,14 @@ static HRESULT register_coclasses(struct if (res != ERROR_SUCCESS) goto error_close_clsid_key; }
+ if (list->idName) { + char buffer[64] = "@%SYSTEMROOT%\system32\shell32.dll,-"; + sprintf(buffer+strlen(buffer), "%u", list->idName); + res = RegSetValueExA(clsid_key, localized_valuename, 0, REG_EXPAND_SZ, + (CONST BYTE*)(buffer), strlen(buffer)+1); + if (res != ERROR_SUCCESS) goto error_close_clsid_key; + } + if (list->ips) { res = register_key_defvalueA(clsid_key, ips_keyname, list->ips); if (res != ERROR_SUCCESS) goto error_close_clsid_key; @@ -576,24 +587,28 @@ static GUID const CLSID_Shortcut = { static struct regsvr_coclass const coclass_list[] = { { &CLSID_Desktop, "Desktop", + IDS_DESKTOP, NULL, "shell32.dll", "Apartment" }, { &CLSID_DragDropHelper, "Shell Drag and Drop Helper", + 0, NULL, "shell32.dll", "Apartment" }, { &CLSID_MyComputer, "My Computer", + IDS_MYCOMPUTER, NULL, "shell32.dll", "Apartment" }, { &CLSID_Shortcut, "Shortcut", + 0, NULL, "shell32.dll", "Apartment", @@ -601,12 +616,14 @@ static struct regsvr_coclass const cocla }, { &CLSID_AutoComplete, "AutoComplete", + 0, NULL, "shell32.dll", "Apartment", }, { &CLSID_UnixFolder, "/", + 0, NULL, "shell32.dll", "Apartment", @@ -614,6 +631,7 @@ static struct regsvr_coclass const cocla }, { &CLSID_UnixDosFolder, "/", + 0, NULL, "shell32.dll", "Apartment", @@ -623,6 +641,7 @@ static struct regsvr_coclass const cocla }, { &CLSID_FolderShortcut, "Foldershortcut", + 0, NULL, "shell32.dll", "Apartment", @@ -632,6 +651,7 @@ static struct regsvr_coclass const cocla }, { &CLSID_MyDocuments, "My Documents", + IDS_PERSONAL, NULL, "shell32.dll", "Apartment",