wine/dlls/shell32 shfldr_mycomp.c
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Nov 23 08:25:33 CST 2005
ChangeSet ID: 21415
CVSROOT: /opt/cvs-commit
Module name: wine
Changes by: julliard at winehq.org 2005/11/23 08:25:33
Modified files:
dlls/shell32 : shfldr_mycomp.c
Log message:
Michael Jung <mjung at 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;
More information about the wine-cvs
mailing list