Request for small bit of mentoring
speeddymon at gmail.com
Wed Apr 18 18:23:00 CDT 2007
Looking a bit more into the lstrcpyW and lstrcatW situation, the
reason it appears to be done is because if you add the slash directly
to PathUninstallW, then for some reason, the uninstaller shows no
entries, even when there are some.
Part of the reason I duplicated code in the original patch is because
if the uninstaller runs that function (or the one you mentioned)
twice, then the entries are listed not in alphabetical order. You
will have a-z for current user and then below that a-z for local
machine. This way keeps it to one a-z for both cu and lm.
P.S. Windows displays duplicate names as 2 separate entries.
On 4/18/07, Tom Spear <speeddymon at gmail.com> wrote:
> On 4/18/07, Detlef Riekenberg <wine.dev at web.de> wrote:
> > On Mo, 2007-04-16 at 16:44 -0500, Tom Spear wrote:
> > > I took lines 196-197 and duplicated that,
> > > changing HKEY_LOCAL_MACHINE to HKEY_CURRENT_USER, and
> > >
> > You can move most of the code from FetchUninstallInformation()
> > to a seperate function and use the rootkey as Parameter.
> > get_uninstallinfo_from_reg(HKEY_LOCAL_MACHINE);
> > get_uninstallinfo_from_reg(HKEY_CURRENT_USER);
> I ended up creating a new patch that does something similar, while
> keeping the FetchUninstallInformation function
> > Did you already checked, what windows does with
> > duplicate Programm names?
> No, but I will do that in just a minute.
> > More hints:
> > lstrcpyW(key_app, PathUninstallW);
> > lstrcatW(key_app, BackSlashW);
> > p = key_app+lstrlenW(PathUninstallW)+1;
> > Why not add the slash direct to PathUninstallW?
> This was already part of the code that I copied. Why the original
> author of this code did this, I have no clue and was wondering about
> that as well.
> > sizeOfSubKeyName = 255;
> > Fixed numbers are not a good Idea (error-prone).
> > This value is related to "WCHAR subKeyName;",
> > but RegEnumKeyEx expect the max. size in TCHAR, including the
> > terminating zero, so the correct value for sizeOfSubKeyName
> > is 256.
> > A nice, automatic way is:
> > sizeOfSubKeyName = sizeof(subKeyName)/sizeof(subKeyName);
> > Such a construct works independant from the type (WCHAR / CHAR)
> > and the length of the String.
> See above
> > All together looks like more than one Patch.
> > --
> > By by ... Detlef
> Like I said, I ended up rewriting the patch, and in so doing, created
> a fairly large patch, because most of the functions had to be
> rewritten to support an array being passed as a parameter. The 2nd
> patch actually will have to be changed a little more as well because I
> didn't document anything, however I submitted it here for suggestions
> so I could have a rough base to work with.
> Check out this new 3D Instant Messenger called IMVU. It's the best I
> have seen yet!
Check out this new 3D Instant Messenger called IMVU. It's the best I
have seen yet!
More information about the wine-devel