#define _WIN32_WINNT 0x0501
#define _WIN32_IE 0x0501
#include
#include
#include
int __stdcall SetWallPaper(char* FilePath, BYTE bCenter)
{
IActiveDesktop* paDesktop;
WALLPAPEROPT wpOpt;
WCHAR wFilePath[MAX_PATH+4];
if(!FilePath) return 1;
CoInitialize(0);
ZeroMemory(&wpOpt, sizeof(WALLPAPEROPT));
if((CoCreateInstance(&CLSID_ActiveDesktop, 0, CLSCTX_INPROC_SERVER, &IID_IActiveDesktop, (LPVOID*)&paDesktop)) != S_OK) return 1;
MultiByteToWideChar(CP_ACP, 0, FilePath, -1, wFilePath, MAX_PATH);
paDesktop->lpVtbl->SetWallpaper(paDesktop, wFilePath, 0);
wpOpt.dwSize = sizeof(WALLPAPEROPT);
if(bCenter)
{
wpOpt.dwStyle = WPSTYLE_CENTER;
}else wpOpt.dwStyle=WPSTYLE_STRETCH ;
paDesktop->lpVtbl->SetWallpaperOptions(paDesktop, &wpOpt,0);
paDesktop->lpVtbl->ApplyChanges(paDesktop, AD_APPLY_ALL);
paDesktop->lpVtbl->Release(paDesktop);
CoUninitialize();
return 0;
}
#pragma comment(linker, "/entry:_WinMain")
int WINAPI _WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
{
if(SetWallPaper("C:\\test.jpg", 0)) MessageBox(0, "error", 0, 0);
return 0;
}
En C, compiler avec VS sa marche nikel
Pour DevCpp, Essaye de mettre a jour les headers on sait jamais:
http://www.mingw.org/
Neo_Fr
|