RegSetValueExW was including the comparison in the size param and therefore not writing the wallpaper path to the registry. The wallpaper now stays after a reboot. Modified: trunk/reactos/lib/user32/misc/desktop.c _____
Modified: trunk/reactos/lib/user32/misc/desktop.c --- trunk/reactos/lib/user32/misc/desktop.c 2005-11-23 00:09:17 UTC (rev 19472) +++ trunk/reactos/lib/user32/misc/desktop.c 2005-11-23 00:15:45 UTC (rev 19473) @@ -293,8 +293,8 @@
L"Control Panel\Desktop", 0, KEY_SET_VALUE, &hKey) == ERROR_SUCCESS) { - Ret = RegSetValueExW(hKey, L"Wallpaper", 0, REG_SZ, (lpWallpaper != NULL ? (LPBYTE)lpWallpaper : (LPBYTE)L""), - (lpWallpaper != NULL ? (lstrlenW(lpWallpaper) + 1) * sizeof(WCHAR) : sizeof(WCHAR)) == ERROR_SUCCESS); + Ret = (RegSetValueExW(hKey, L"Wallpaper", 0, REG_SZ, (lpWallpaper != NULL ? (LPBYTE)lpWallpaper : (LPBYTE)L""), + (lpWallpaper != NULL ? (lstrlenW(lpWallpaper) + 1) * sizeof(WCHAR) : sizeof(WCHAR))) == ERROR_SUCCESS); RegCloseKey(hKey); } }