Andrew Ziem wrote:
Please use this patch instead of previous "user3.patch". Thanks to Andrey Turkin for catching the uninitialized variable.

changelog:
user: handle special cases for SPI_SETDESKWALLPAPER

The special cases remove the wallpaper or set it to default. Previously, these cases were ignored, so Wine would crash.



------------------------------------------------------------------------


- if (filename == (LPSTR)-1)
+    if ((LPCSTR)SETWALLPAPER_DEFAULT == filename || (LPCSTR)NULL == filename 
|| '\0' == filename[0])
     {
-       GetProfileStringA( "desktop", "WallPaper", "(None)", buffer, 256 );
-       filename = buffer;
+       /* set default wallpaper or remove wallpaper*/
+       if (hbitmapWallPaper)
+           DeleteObject( hbitmapWallPaper );
+       return TRUE;
     }
     hdc = GetDC( 0 );

According to MSDN, if
- pvParam==SETWALLPAPER_DEFAUL || pvParam==NULL, then wallpaper will be set to default one
- pvParam[0]=='\0', then wallpaper will be removed.
I cannot see any signs of such distinction in your code :)


Reply via email to