ChangeSet ID: 21415 CVSROOT: /opt/cvs-commit Module name: wine Changes by: julliard@winehq.org 2005/11/23 08:25:33
Modified files: dlls/shell32 : shfldr_mycomp.c
Log message: Michael Jung mjung@iss.tu-darmstadt.de Also scan HKEY_CURRENT_USER for shell namespace extensions in MyComputer.
Patch: http://cvs.winehq.org/patch.py?id=21415
Old revision New revision Changes Path 1.43 1.44 +24 -21 wine/dlls/shell32/shfldr_mycomp.c
Index: wine/dlls/shell32/shfldr_mycomp.c diff -u -p wine/dlls/shell32/shfldr_mycomp.c:1.43 wine/dlls/shell32/shfldr_mycomp.c:1.44 --- wine/dlls/shell32/shfldr_mycomp.c:1.43 23 Nov 2005 14:25:33 -0000 +++ wine/dlls/shell32/shfldr_mycomp.c 23 Nov 2005 14:25:33 -0000 @@ -274,6 +274,7 @@ static BOOL CreateMyCompEnumList(IEnumID WCHAR wszDriveName[] = {'A', ':', '\', '\0'}; DWORD dwDrivemap = GetLogicalDrives(); HKEY hkey; + UINT i;
while (ret && wszDriveName[0]<='Z') { @@ -284,32 +285,34 @@ static BOOL CreateMyCompEnumList(IEnumID }
TRACE("-- (%p)-> enumerate (mycomputer shell extensions)\n",list); - if (ret && !RegOpenKeyExW(HKEY_LOCAL_MACHINE, MyComputer_NameSpaceW, - 0, KEY_READ, &hkey)) - { - WCHAR iid[50]; - int i=0; - - while (ret) + for (i=0; i<2; i++) { + if (ret && !RegOpenKeyExW(i == 0 ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER, + MyComputer_NameSpaceW, 0, KEY_READ, &hkey)) { - DWORD size; - LONG r; + WCHAR iid[50]; + int i=0;
- size = sizeof(iid) / sizeof(iid[0]); - r = RegEnumKeyExW(hkey, i, iid, &size, 0, NULL, NULL, NULL); - if (ERROR_SUCCESS == r) + while (ret) { - /* FIXME: shell extensions, shouldn't the type be - * PT_SHELLEXT? */ - ret = AddToEnumList(list, _ILCreateGuidFromStrW(iid)); - i++; + DWORD size; + LONG r; + + size = sizeof(iid) / sizeof(iid[0]); + r = RegEnumKeyExW(hkey, i, iid, &size, 0, NULL, NULL, NULL); + if (ERROR_SUCCESS == r) + { + /* FIXME: shell extensions, shouldn't the type be + * PT_SHELLEXT? */ + ret = AddToEnumList(list, _ILCreateGuidFromStrW(iid)); + i++; + } + else if (ERROR_NO_MORE_ITEMS == r) + break; + else + ret = FALSE; } - else if (ERROR_NO_MORE_ITEMS == r) - break; - else - ret = FALSE; + RegCloseKey(hkey); } - RegCloseKey(hkey); } } return ret;