#ifndef AD_GETWP_LAST_APPLIED<br />#define AD_GETWP_LAST_APPLIED 0x00000002<br />#endif //</p><p>BOOL GetWallPaper(CStringW &szFile, BOOL &dwStyle)<br />{<br />BOOL bRet = 0;<br />IActiveDesktop *pActiveDesktop;<br />HRESULT hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,<br />IID_IActiveDesktop, (void**)&pActiveDesktop);<br />if(hr == S_OK)<br />{<br />WALLPAPEROPT WallpaperOpt = { sizeof(WALLPAPEROPT), 0 };<br />VERIFY(pActiveDesktop->GetWallpaperOptions(&WallpaperOpt, 0) == S_OK);<br />dwStyle = WallpaperOpt.dwStyle;</p><p>WCHAR szPathFile[MAX_PATH + 1] = {0};<br />VERIFY(pActiveDesktop->GetWallpaper(szPathFile, MAX_PATH, AD_GETWP_LAST_APPLIED) == S_OK);<br />szFile = szPathFile;</p><p>pActiveDesktop->Release();<br />bRet = TRUE;<br />}</p><p>return bRet;<br />}</p><p>BOOL SetWallPaper(LPCWSTR szFile, DWORD dwStyle)<br />{<br />BOOL bRet = 0;<br />IActiveDesktop *pActiveDesktop;<br />HRESULT hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,<br />IID_IActiveDesktop, (void**)&pActiveDesktop);<br />if(hr == S_OK)<br />{<br />WALLPAPEROPT WallpaperOpt = { sizeof(WALLPAPEROPT), dwStyle };<br />VERIFY(pActiveDesktop->SetWallpaperOptions(&WallpaperOpt, 0) == S_OK);<br />VERIFY(pActiveDesktop->SetWallpaper(szFile, 0) == S_OK);<br />VERIFY(pActiveDesktop->ApplyChanges(AD_APPLY_ALL | AD_APPLY_FORCE) == S_OK);</p><p>pActiveDesktop->Release();<br />bRet = TRUE;<br />}<br />return bRet;<br />}<br />