为什么SetWallpaper调用失败

login20 2011-12-22 03:39:05
void SetDesktopWallpaper()
{
HRESULT hr;
IActiveDesktop *pActiveDesktop;
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,IID_IActiveDesktop, (void**)&pActiveDesktop);
if (hr!=S_OK)
return;
WALLPAPEROPT wpOptions;
wpOptions.dwSize = sizeof(WALLPAPEROPT);
wpOptions.dwStyle = WPSTYLE_STRETCH;
hr=pActiveDesktop->SetWallpaperOptions(&wpOptions,0);

COMPONENTSOPT comps;
comps.dwSize = sizeof comps;
comps.fEnableComponents = TRUE;
comps.fActiveDesktop = TRUE;

hr=pActiveDesktop-> SetDesktopItemOptions(&comps,0);
//Insert code to call the IActiveDesktop methods


if(FAILED(pActiveDesktop->SetWallpaper(L"D;\\1.jpg",0)))
return;
hr=pActiveDesktop->ApplyChanges(AD_APPLY_ALL);

pActiveDesktop->Release();
CoUninitialize();

}

hr 返回一直是S_OK
执行完成后,桌面显示蓝色背景,且右键桌面属性->桌面图片就是设置的图片名
为什么就是不显示? 哪位高手解答一下,谢谢
...全文
147 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
login20 2011-12-23
  • 打赏
  • 举报
回复
谢谢fishion兄弟,符号是打错了...我晕............
login20 2011-12-23
  • 打赏
  • 举报
回复
这只是验证执行结果方式不一样吧!
fishion 2011-12-22
  • 打赏
  • 举报
回复
if(FAILED(pActiveDesktop->SetWallpaper(L"D;\\1.jpg",0)))

if(FAILED(pActiveDesktop->SetWallpaper(L"D:\\1.jpg",0)))应该是这样吧

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧