通过IActiveDesktop接口来实现,比如设置壁纸,就可以这样
1 2 3 4 5 6 7 8 9 10 11 12 |
IActiveDesktop *a; CoInitialize(NULL); if(SUCCEEDED(CoCreateInstance( Shlobj::CLSID_ActiveDesktop,NULL,CLSCTX_INPROC_SERVER, IID_IActiveDesktop,(void **)&a))) { WideString c = "C://My Documents//yw2.jpg"; OleCheck(a->SetWallpaper(c.c_bstr(),0)); OleCheck(a->ApplyChanges(AD_APPLY_ALL)); a->Release(); } CoUninitialize(); |
其它接口可查看msdn
注意在cpp的第一行加入#define NO_WIN32_LEAN_AND_MEAN
并要#include <shlobj.h>