COM 编程获取墙纸路径

COM 编程获取墙纸路径

 1 /**/ /*
 2COM 编程获取墙纸路径。
 3*/

 4
 5 #include  < windows.h >
 6 #include  < wininet.h >
 7 #include  < shlobj.h >
 8
 9
10 int  main()  {
11        ::HRESULT hr;
12
13        hr = ::CoInitializeEx( NULL, ::COINIT_APARTMENTTHREADED );
14        if ( FAILED(hr) ) {
15                ::MessageBoxW( NULL, L"CoInitializeEx Failed!", L"Failed!", MB_OK );
16                return 0;
17        }

18
19        IActiveDesktop*  pIAD;
20
21        hr = ::CoCreateInstance( ::CLSID_ActiveDesktop, NULL, 
22                ::CLSCTX_INPROC_SERVER, ::IID_IActiveDesktop, (void**)&pIAD );
23        if ( FAILED(hr) ) {
24                ::MessageBoxW( NULL, L"CoCreateInstance Failed!", L"Failed!", MB_OK );
25                ::CoUninitialize();
26                return 0;
27        }

28
29        WCHAR  wallpaper[ MAX_PATH ];
30
31        hr = pIAD->GetWallpaper( wallpaper, MAX_PATH, 0 );
32        if ( FAILED(hr) ) {
33                ::MessageBoxW( NULL, L"GetWallpaper Failed!", L"Failed!", MB_OK );
34        }

35        else {
36                ::MessageBoxW( NULL, wallpaper, L"get wallpaper", MB_OK );
37        }

38
39        pIAD->Release();
40
41        ::CoUninitialize();
42        return 0;
43}

44

你可能感兴趣的:(COM 编程获取墙纸路径)