- 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;
- }
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;
}