source: trunk/Utilities/Miscellaneous/ConstantSpecialItems/ConstantSpecialItems.cpp @ 502

Last change on this file since 502 was 502, checked in by roman, 7 years ago
File size: 6.3 KB
Line 
1////////////////////////////////////////////////////////////
2// Copyright (C) Roman Ryltsov, 2008-2015
3// Created by Roman Ryltsov roman@alax.info
4
5#include "stdafx.h"
6#include <windows.h>
7#include <shlobj.h>
8
9int _tmain(int argc, _TCHAR* argv[])
10{
11        OSVERSIONINFOEX VersionInformation = { sizeof VersionInformation };
12        ATLVERIFY(GetVersionEx((OSVERSIONINFO*) &VersionInformation));
13        _tprintf(_T("Windows version %d.%d, Build %d\n"), VersionInformation.dwMajorVersion, VersionInformation.dwMinorVersion, VersionInformation.dwBuildNumber);
14        _tprintf(_T("\n"));
15        #pragma region CSIDL_xxx
16        {
17                static const struct
18                {
19                        INT nIdentifier;
20                        LPCSTR pszName;
21                } g_pMap[] = 
22                {
23                        #define A(x) { x, #x },
24                        A(CSIDL_DESKTOP)
25                        A(CSIDL_INTERNET)
26                        A(CSIDL_PROGRAMS)
27                        A(CSIDL_CONTROLS)
28                        A(CSIDL_PRINTERS)
29                        A(CSIDL_PERSONAL) // CSIDL_MYDOCUMENTS
30                        A(CSIDL_FAVORITES)
31                        A(CSIDL_STARTUP)
32                        A(CSIDL_RECENT)
33                        A(CSIDL_SENDTO)
34                        A(CSIDL_BITBUCKET)
35                        A(CSIDL_STARTMENU)
36                        A(CSIDL_MYMUSIC)
37                        A(CSIDL_MYVIDEO)
38                        A(CSIDL_DESKTOPDIRECTORY)
39                        A(CSIDL_DRIVES)
40                        A(CSIDL_NETWORK)
41                        A(CSIDL_NETHOOD)
42                        A(CSIDL_FONTS)
43                        A(CSIDL_TEMPLATES)
44                        A(CSIDL_COMMON_STARTMENU)
45                        A(CSIDL_COMMON_PROGRAMS)
46                        A(CSIDL_COMMON_STARTUP)
47                        A(CSIDL_COMMON_DESKTOPDIRECTORY)
48                        A(CSIDL_APPDATA)
49                        A(CSIDL_PRINTHOOD)
50                        A(CSIDL_LOCAL_APPDATA)
51                        A(CSIDL_ALTSTARTUP)
52                        A(CSIDL_COMMON_ALTSTARTUP)
53                        A(CSIDL_COMMON_FAVORITES)
54                        A(CSIDL_INTERNET_CACHE)
55                        A(CSIDL_COOKIES)
56                        A(CSIDL_HISTORY)
57                        A(CSIDL_COMMON_APPDATA)
58                        A(CSIDL_WINDOWS)
59                        A(CSIDL_SYSTEM)
60                        A(CSIDL_PROGRAM_FILES)
61                        A(CSIDL_MYPICTURES)
62                        A(CSIDL_PROFILE)
63                        A(CSIDL_SYSTEMX86)
64                        A(CSIDL_PROGRAM_FILESX86)
65                        A(CSIDL_PROGRAM_FILES_COMMON)
66                        A(CSIDL_PROGRAM_FILES_COMMONX86)
67                        A(CSIDL_COMMON_TEMPLATES)
68                        A(CSIDL_COMMON_DOCUMENTS)
69                        A(CSIDL_COMMON_ADMINTOOLS)
70                        A(CSIDL_ADMINTOOLS)
71                        A(CSIDL_CONNECTIONS)
72                        A(CSIDL_COMMON_MUSIC)
73                        A(CSIDL_COMMON_PICTURES)
74                        A(CSIDL_COMMON_VIDEO)
75                        A(CSIDL_RESOURCES)
76                        A(CSIDL_RESOURCES_LOCALIZED)
77                        A(CSIDL_COMMON_OEM_LINKS)
78                        A(CSIDL_CDBURN_AREA)
79                        A(CSIDL_COMPUTERSNEARME)
80                        #undef A 
81                };
82                _tprintf(_T("CSIDL paths:\n\n"));
83                for(auto&& Item: g_pMap)
84                {
85                        TCHAR pszPath[MAX_PATH] = { 0 };
86                        if(SHGetSpecialFolderPath(NULL, pszPath, Item.nIdentifier, FALSE))
87                                _tprintf(_T("%hs: %s\n"), Item.pszName, pszPath);
88                        else
89                                _tprintf(_T("%hs not found\n"), Item.pszName);
90                }
91                _tprintf(_T("\n"));
92        }
93        #pragma endregion
94        #pragma region FOLDERID_xxx
95        {
96                static const struct
97                {
98                        KNOWNFOLDERID Identifier;
99                        LPCSTR pszName;
100                } g_pMap[] = 
101                {
102                        #define A(x) { x, #x },
103                        A(FOLDERID_NetworkFolder)
104                        A(FOLDERID_ComputerFolder)
105                        A(FOLDERID_InternetFolder)
106                        A(FOLDERID_ControlPanelFolder)
107                        A(FOLDERID_PrintersFolder)
108                        A(FOLDERID_SyncManagerFolder)
109                        A(FOLDERID_SyncSetupFolder)
110                        A(FOLDERID_ConflictFolder)
111                        A(FOLDERID_SyncResultsFolder)
112                        A(FOLDERID_RecycleBinFolder)
113                        A(FOLDERID_ConnectionsFolder)
114                        A(FOLDERID_Fonts)
115                        A(FOLDERID_Desktop)
116                        A(FOLDERID_Startup)
117                        A(FOLDERID_Programs)
118                        A(FOLDERID_StartMenu)
119                        A(FOLDERID_Recent)
120                        A(FOLDERID_SendTo)
121                        A(FOLDERID_Documents)
122                        A(FOLDERID_Favorites)
123                        A(FOLDERID_NetHood)
124                        A(FOLDERID_PrintHood)
125                        A(FOLDERID_Templates)
126                        A(FOLDERID_CommonStartup)
127                        A(FOLDERID_CommonPrograms)
128                        A(FOLDERID_CommonStartMenu)
129                        A(FOLDERID_PublicDesktop)
130                        A(FOLDERID_ProgramData)
131                        A(FOLDERID_CommonTemplates)
132                        A(FOLDERID_PublicDocuments)
133                        A(FOLDERID_RoamingAppData)
134                        A(FOLDERID_LocalAppData)
135                        A(FOLDERID_LocalAppDataLow)
136                        A(FOLDERID_InternetCache)
137                        A(FOLDERID_Cookies)
138                        A(FOLDERID_History)
139                        A(FOLDERID_System)
140                        A(FOLDERID_SystemX86)
141                        A(FOLDERID_Windows)
142                        A(FOLDERID_Profile)
143                        A(FOLDERID_Pictures)
144                        A(FOLDERID_ProgramFilesX86)
145                        A(FOLDERID_ProgramFilesCommonX86)
146                        A(FOLDERID_ProgramFilesX64)
147                        A(FOLDERID_ProgramFilesCommonX64)
148                        A(FOLDERID_ProgramFiles)
149                        A(FOLDERID_ProgramFilesCommon)
150                        A(FOLDERID_UserProgramFiles)
151                        A(FOLDERID_UserProgramFilesCommon)
152                        A(FOLDERID_AdminTools)
153                        A(FOLDERID_CommonAdminTools)
154                        A(FOLDERID_Music)
155                        A(FOLDERID_Videos)
156                        A(FOLDERID_Ringtones)
157                        A(FOLDERID_PublicPictures)
158                        A(FOLDERID_PublicMusic)
159                        A(FOLDERID_PublicVideos)
160                        A(FOLDERID_PublicRingtones)
161                        A(FOLDERID_ResourceDir)
162                        A(FOLDERID_LocalizedResourcesDir)
163                        A(FOLDERID_CommonOEMLinks)
164                        A(FOLDERID_CDBurning)
165                        A(FOLDERID_UserProfiles)
166                        A(FOLDERID_Playlists)
167                        A(FOLDERID_SamplePlaylists)
168                        A(FOLDERID_SampleMusic)
169                        A(FOLDERID_SamplePictures)
170                        A(FOLDERID_SampleVideos)
171                        A(FOLDERID_PhotoAlbums)
172                        A(FOLDERID_Public)
173                        A(FOLDERID_ChangeRemovePrograms)
174                        A(FOLDERID_AppUpdates)
175                        A(FOLDERID_AddNewPrograms)
176                        A(FOLDERID_Downloads)
177                        A(FOLDERID_PublicDownloads)
178                        A(FOLDERID_SavedSearches)
179                        A(FOLDERID_QuickLaunch)
180                        A(FOLDERID_Contacts)
181                        A(FOLDERID_SidebarParts)
182                        A(FOLDERID_SidebarDefaultParts)
183                        A(FOLDERID_PublicGameTasks)
184                        A(FOLDERID_GameTasks)
185                        A(FOLDERID_SavedGames)
186                        A(FOLDERID_Games)
187                        A(FOLDERID_SEARCH_MAPI)
188                        A(FOLDERID_SEARCH_CSC)
189                        A(FOLDERID_Links)
190                        A(FOLDERID_UsersFiles)
191                        A(FOLDERID_UsersLibraries)
192                        A(FOLDERID_SearchHome)
193                        A(FOLDERID_OriginalImages)
194                        A(FOLDERID_DocumentsLibrary)
195                        A(FOLDERID_MusicLibrary)
196                        A(FOLDERID_PicturesLibrary)
197                        A(FOLDERID_VideosLibrary)
198                        A(FOLDERID_RecordedTVLibrary)
199                        A(FOLDERID_HomeGroup)
200                        A(FOLDERID_HomeGroupCurrentUser)
201                        A(FOLDERID_DeviceMetadataStore)
202                        A(FOLDERID_Libraries)
203                        A(FOLDERID_PublicLibraries)
204                        A(FOLDERID_UserPinned)
205                        A(FOLDERID_ImplicitAppShortcuts)
206                        A(FOLDERID_AccountPictures)
207                        A(FOLDERID_PublicUserTiles)
208                        A(FOLDERID_AppsFolder)
209                        A(FOLDERID_ApplicationShortcuts)
210                        A(FOLDERID_RoamingTiles)
211                        A(FOLDERID_RoamedTileImages)
212                        A(FOLDERID_Screenshots)
213                        A(FOLDERID_CameraRoll)
214                        A(FOLDERID_SkyDrive)
215                        A(FOLDERID_SkyDriveDocuments)
216                        A(FOLDERID_SkyDrivePictures)
217                        A(FOLDERID_SkyDriveMusic)
218                        A(FOLDERID_SkyDriveCameraRoll)
219                        A(FOLDERID_SearchHistory)
220                        A(FOLDERID_SearchTemplates)
221                        #undef A 
222                };
223                _tprintf(_T("FOLDERID paths:\n\n"));
224                for(auto&& Item: g_pMap)
225                {
226                        CComHeapPtr<TCHAR> pszPath;
227                        const HRESULT nResult = SHGetKnownFolderPath(Item.Identifier, KF_FLAG_DEFAULT_PATH, NULL, &pszPath);
228                        if(SUCCEEDED(nResult))
229                                _tprintf(_T("%hs: %s\n"), Item.pszName, pszPath);
230                        else
231                                _tprintf(_T("%hs not found (0x%08X)\n"), Item.pszName, nResult);
232                }
233                _tprintf(_T("\n"));
234        }
235        #pragma endregion
236        return 0;
237}
238
Note: See TracBrowser for help on using the repository browser.