COM 編程獲取墻紙路徑
1
/*
2
COM 編程獲取墻紙路徑。
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
/*2
COM 編程獲取墻紙路徑。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

posted on 2013-11-18 20:53 coreBugZJ 閱讀(404) 評論(0) 編輯 收藏 引用 所屬分類: Windows



