1 | //////////////////////////////////////////////////////////// |
---|
2 | // Copyright (C) Roman Ryltsov, 2008-2009 |
---|
3 | // Created by Roman Ryltsov roman@alax.info |
---|
4 | // |
---|
5 | // $Id: ConstantSpecialItems.cpp 144 2009-06-21 10:58:12Z alax $ |
---|
6 | |
---|
7 | #include "stdafx.h" |
---|
8 | #include <windows.h> |
---|
9 | #include <shlobj.h> |
---|
10 | |
---|
11 | int _tmain(int argc, _TCHAR* argv[]) |
---|
12 | { |
---|
13 | OSVERSIONINFOEX VersionInformation = { sizeof VersionInformation }; |
---|
14 | ATLVERIFY(GetVersionEx((OSVERSIONINFO*) &VersionInformation)); |
---|
15 | _tprintf(_T("Windows version %d.%d, Build %d\n"), VersionInformation.dwMajorVersion, VersionInformation.dwMinorVersion, VersionInformation.dwBuildNumber); |
---|
16 | _tprintf(_T("\n")); |
---|
17 | static const struct |
---|
18 | { |
---|
19 | INT nIdentifier; |
---|
20 | LPCTSTR pszName; |
---|
21 | } g_pMap[] = |
---|
22 | { |
---|
23 | { CSIDL_DESKTOP, _T("CSIDL_DESKTOP"), }, |
---|
24 | { CSIDL_INTERNET, _T("CSIDL_INTERNET"), }, |
---|
25 | { CSIDL_PROGRAMS, _T("CSIDL_PROGRAMS"), }, |
---|
26 | { CSIDL_CONTROLS, _T("CSIDL_CONTROLS"), }, |
---|
27 | { CSIDL_PRINTERS, _T("CSIDL_PRINTERS"), }, |
---|
28 | { CSIDL_PERSONAL, _T("CSIDL_PERSONAL"), }, |
---|
29 | { CSIDL_FAVORITES, _T("CSIDL_FAVORITES"), }, |
---|
30 | { CSIDL_STARTUP, _T("CSIDL_STARTUP"), }, |
---|
31 | { CSIDL_RECENT, _T("CSIDL_RECENT"), }, |
---|
32 | { CSIDL_SENDTO, _T("CSIDL_SENDTO"), }, |
---|
33 | { CSIDL_BITBUCKET, _T("CSIDL_BITBUCKET"), }, |
---|
34 | { CSIDL_STARTMENU, _T("CSIDL_STARTMENU"), }, |
---|
35 | { CSIDL_MYDOCUMENTS, _T("CSIDL_MYDOCUMENTS"), }, |
---|
36 | { CSIDL_MYMUSIC, _T("CSIDL_MYMUSIC"), }, |
---|
37 | { CSIDL_MYVIDEO, _T("CSIDL_MYVIDEO"), }, |
---|
38 | { CSIDL_DESKTOPDIRECTORY, _T("CSIDL_DESKTOPDIRECTORY"), }, |
---|
39 | { CSIDL_DRIVES, _T("CSIDL_DRIVES"), }, |
---|
40 | { CSIDL_NETWORK, _T("CSIDL_NETWORK"), }, |
---|
41 | { CSIDL_NETHOOD, _T("CSIDL_NETHOOD"), }, |
---|
42 | { CSIDL_FONTS, _T("CSIDL_FONTS"), }, |
---|
43 | { CSIDL_TEMPLATES, _T("CSIDL_TEMPLATES"), }, |
---|
44 | { CSIDL_COMMON_STARTMENU, _T("CSIDL_COMMON_STARTMENU"), }, |
---|
45 | { CSIDL_COMMON_PROGRAMS, _T("CSIDL_COMMON_PROGRAMS"), }, |
---|
46 | { CSIDL_COMMON_STARTUP, _T("CSIDL_COMMON_STARTUP"), }, |
---|
47 | { CSIDL_COMMON_DESKTOPDIRECTORY, _T("CSIDL_COMMON_DESKTOPDIRECTORY"), }, |
---|
48 | { CSIDL_APPDATA, _T("CSIDL_APPDATA"), }, |
---|
49 | { CSIDL_PRINTHOOD, _T("CSIDL_PRINTHOOD"), }, |
---|
50 | { CSIDL_LOCAL_APPDATA, _T("CSIDL_LOCAL_APPDATA"), }, |
---|
51 | { CSIDL_ALTSTARTUP, _T("CSIDL_ALTSTARTUP"), }, |
---|
52 | { CSIDL_COMMON_ALTSTARTUP, _T("CSIDL_COMMON_ALTSTARTUP"), }, |
---|
53 | { CSIDL_COMMON_FAVORITES, _T("CSIDL_COMMON_FAVORITES"), }, |
---|
54 | { CSIDL_INTERNET_CACHE, _T("CSIDL_INTERNET_CACHE"), }, |
---|
55 | { CSIDL_COOKIES, _T("CSIDL_COOKIES"), }, |
---|
56 | { CSIDL_HISTORY, _T("CSIDL_HISTORY"), }, |
---|
57 | { CSIDL_COMMON_APPDATA, _T("CSIDL_COMMON_APPDATA"), }, |
---|
58 | { CSIDL_WINDOWS, _T("CSIDL_WINDOWS"), }, |
---|
59 | { CSIDL_SYSTEM, _T("CSIDL_SYSTEM"), }, |
---|
60 | { CSIDL_PROGRAM_FILES, _T("CSIDL_PROGRAM_FILES"), }, |
---|
61 | { CSIDL_MYPICTURES, _T("CSIDL_MYPICTURES"), }, |
---|
62 | { CSIDL_PROFILE, _T("CSIDL_PROFILE"), }, |
---|
63 | { CSIDL_SYSTEMX86, _T("CSIDL_SYSTEMX86"), }, |
---|
64 | { CSIDL_PROGRAM_FILESX86, _T("CSIDL_PROGRAM_FILESX86"), }, |
---|
65 | { CSIDL_PROGRAM_FILES_COMMON, _T("CSIDL_PROGRAM_FILES_COMMON"), }, |
---|
66 | { CSIDL_PROGRAM_FILES_COMMONX86, _T("CSIDL_PROGRAM_FILES_COMMONX86"), }, |
---|
67 | { CSIDL_COMMON_TEMPLATES, _T("CSIDL_COMMON_TEMPLATES"), }, |
---|
68 | { CSIDL_COMMON_DOCUMENTS, _T("CSIDL_COMMON_DOCUMENTS"), }, |
---|
69 | { CSIDL_COMMON_ADMINTOOLS, _T("CSIDL_COMMON_ADMINTOOLS"), }, |
---|
70 | { CSIDL_ADMINTOOLS, _T("CSIDL_ADMINTOOLS"), }, |
---|
71 | { CSIDL_CONNECTIONS, _T("CSIDL_CONNECTIONS"), }, |
---|
72 | { CSIDL_COMMON_MUSIC, _T("CSIDL_COMMON_MUSIC"), }, |
---|
73 | { CSIDL_COMMON_PICTURES, _T("CSIDL_COMMON_PICTURES"), }, |
---|
74 | { CSIDL_COMMON_VIDEO, _T("CSIDL_COMMON_VIDEO"), }, |
---|
75 | { CSIDL_RESOURCES, _T("CSIDL_RESOURCES"), }, |
---|
76 | { CSIDL_RESOURCES_LOCALIZED, _T("CSIDL_RESOURCES_LOCALIZED"), }, |
---|
77 | { CSIDL_COMMON_OEM_LINKS, _T("CSIDL_COMMON_OEM_LINKS"), }, |
---|
78 | { CSIDL_CDBURN_AREA, _T("CSIDL_CDBURN_AREA"), }, |
---|
79 | { CSIDL_COMPUTERSNEARME, _T("CSIDL_COMPUTERSNEARME"), }, |
---|
80 | }; |
---|
81 | _tprintf(_T("CSIDL paths:\n")); |
---|
82 | for(SIZE_T nIndex = 0; nIndex < _countof(g_pMap); nIndex++) |
---|
83 | { |
---|
84 | TCHAR pszPath[MAX_PATH] = { 0 }; |
---|
85 | if(SHGetSpecialFolderPath(NULL, pszPath, g_pMap[nIndex].nIdentifier, FALSE)) |
---|
86 | _tprintf(_T("%s: %s\n"), g_pMap[nIndex].pszName, pszPath); |
---|
87 | else |
---|
88 | _tprintf(_T("%s not found\n"), g_pMap[nIndex].pszName); |
---|
89 | } |
---|
90 | _tprintf(_T("\n")); |
---|
91 | return 0; |
---|
92 | } |
---|
93 | |
---|