Your goal is to develop win32 application in C programming language, which will be able to change desktop background (wallpaper). It must work in all reasonable versions of windows, eg. windows 2000/XP, windows 7/vista. You MUST develop it from scratch and I MUST be able to compile it myself using lcc-win32, the source code must be clean and easy to understand, the application must use manifest file in order to render any dialogs with nice winXP style. You will deliver source codes as well as executable. The executable must depend on as less system libraries as possible.
The application will consist of a single EXE file. After running it, the application will sit in system tray, and after the system tray icon is clicked, simple window will be shown, with just two buttons. Buttons text label is "Change background 1" and "Change background 2". When the button 1 is clicked, windows desktop background for the current user will be changed to c:\bg1.jpg. When the button 2 is clicked, windows desktop background for the current user will be changed to c:\bg2.jpg.
If the image format JPG is not cross-platform or not ideal for wallpaper, you may choose BMP, or any format you decide is the EASIEST to implement for all the windows versions, without any unneeded dependencies on libraries or include source files.
The change itself from one background to another will run with lowest process priority, just to make sure it won't interfere with any other running applications. The change will be smooth. That means, the older wallpaper will blend away while the new wallpaper will appear at the same time. The whole switch will take 1 second. it's like in windows 7 when wallpaper is switched.
Background will be "filled" (see windows 7 for what Fill means in backgrounds)