Hi, This patch partially implements RegOpenUserClassesRoot. In order for it to be implemented fully, we will have to switch over to the NT user model. This should make most users of the function happy in the mean time (mainly Win2k OLE32). Rob Changelog: Partially implement RegOpenUserClassesRoot
Index: wine/dlls/advapi32/advapi32.spec =================================================================== RCS file: /home/wine/wine/dlls/advapi32/advapi32.spec,v retrieving revision 1.44 diff -u -r1.44 advapi32.spec --- wine/dlls/advapi32/advapi32.spec 2 Dec 2003 03:48:53 -0000 1.44 +++ wine/dlls/advapi32/advapi32.spec 14 Jan 2004 13:47:26 -0000 @@ -218,7 +218,7 @@ @ stdcall RegOpenKeyExA(long str long long ptr) @ stdcall RegOpenKeyExW(long wstr long long ptr) @ stdcall RegOpenKeyW(long wstr ptr) -@ stub RegOpenUserClassesRoot +@ stdcall RegOpenUserClassesRoot(ptr long long ptr) @ stdcall RegQueryInfoKeyA(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) @ stdcall RegQueryInfoKeyW(long ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) @ stdcall RegQueryMultipleValuesA(long ptr long ptr ptr) Index: wine/dlls/advapi32/registry.c =================================================================== RCS file: /home/wine/wine/dlls/advapi32/registry.c,v retrieving revision 1.59 diff -u -r1.59 registry.c --- wine/dlls/advapi32/registry.c 3 Jan 2004 00:38:31 -0000 1.59 +++ wine/dlls/advapi32/registry.c 14 Jan 2004 13:47:38 -0000 @@ -1917,3 +1917,31 @@ return ret; } + +/****************************************************************************** + * RegOpenUserClassesRoot [ADVAPI32.@] + * Opens the HKEY_CLASSES_ROOT key for the user represented by the token + * + * PARAMS + * hToken [I] Handle of token representing user + * dwOptions [I] Reserved + * samDesired [I] Desired access rights + * phkResult [O] Address of buffer for opened handle + * + * NOTES: + * On Windows 2000 and upwards the HKEY_CLASSES_ROOT key is a view of the + * HKEY_LOCAL_MACHINE\Software\Classes and the + * HKEY_CURRENT_USER\Software\Classes keys merged together. + */ +LONG WINAPI RegOpenUserClassesRoot( + HANDLE hToken, + DWORD dwOptions, + REGSAM samDesired, + PHKEY phkResult +) +{ + FIXME("(%p, 0x%lx, 0x%lx, %p) semi-stub\n", hToken, dwOptions, samDesired, phkResult); + + *phkResult = HKEY_CLASSES_ROOT; + return ERROR_SUCCESS; +}