1 // Licensed to the .NET Foundation under one or more agreements. 2 // The .NET Foundation licenses this file to you under the MIT license. 3 // See the LICENSE file in the project root for more information. 4 5 using System; 6 using System.Runtime.InteropServices; 7 8 internal partial class Interop 9 { 10 internal partial class Shell32 11 { 12 internal const int COR_E_PLATFORMNOTSUPPORTED = unchecked((int)0x80131539); 13 14 // https://msdn.microsoft.com/en-us/library/windows/desktop/bb762188.aspx 15 [DllImport(Libraries.Shell32, CharSet = CharSet.Unicode, SetLastError = false, BestFitMapping = false, ExactSpelling = true)] SHGetKnownFolderPath( [MarshalAs(UnmanagedType.LPStruct)] Guid rfid, uint dwFlags, IntPtr hToken, out string ppszPath)16 internal static extern int SHGetKnownFolderPath( 17 [MarshalAs(UnmanagedType.LPStruct)] Guid rfid, 18 uint dwFlags, 19 IntPtr hToken, 20 out string ppszPath); 21 22 // https://msdn.microsoft.com/en-us/library/windows/desktop/dd378457.aspx 23 internal static class KnownFolders 24 { 25 /// <summary> 26 /// (CSIDL_ADMINTOOLS) Per user Administrative Tools 27 /// "%APPDATA%\Microsoft\Windows\Start Menu\Programs\Administrative Tools" 28 /// </summary> 29 internal const string AdminTools = "{724EF170-A42D-4FEF-9F26-B60E846FBA4F}"; 30 31 /// <summary> 32 /// (CSIDL_CDBURN_AREA) Temporary Burn folder 33 /// "%LOCALAPPDATA%\Microsoft\Windows\Burn\Burn" 34 /// </summary> 35 internal const string CDBurning = "{9E52AB10-F80D-49DF-ACB8-4330F5687855}"; 36 37 /// <summary> 38 /// (CSIDL_COMMON_ADMINTOOLS) Common Administrative Tools 39 /// "%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Administrative Tools" 40 /// </summary> 41 internal const string CommonAdminTools = "{D0384E7D-BAC3-4797-8F14-CBA229B392B5}"; 42 43 /// <summary> 44 /// (CSIDL_COMMON_OEM_LINKS) OEM Links folder 45 /// "%ALLUSERSPROFILE%\OEM Links" 46 /// </summary> 47 internal const string CommonOEMLinks = "{C1BAE2D0-10DF-4334-BEDD-7AA20B227A9D}"; 48 49 /// <summary> 50 /// (CSIDL_COMMON_PROGRAMS) Common Programs folder 51 /// "%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs" 52 /// </summary> 53 internal const string CommonPrograms = "{0139D44E-6AFE-49F2-8690-3DAFCAE6FFB8}"; 54 55 /// <summary> 56 /// (CSIDL_COMMON_STARTMENU) Common Start Menu folder 57 /// "%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu" 58 /// </summary> 59 internal const string CommonStartMenu = "{A4115719-D62E-491D-AA7C-E74B8BE3B067}"; 60 61 /// <summary> 62 /// (CSIDL_COMMON_STARTUP, CSIDL_COMMON_ALTSTARTUP) Common Startup folder 63 /// "%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\StartUp" 64 /// </summary> 65 internal const string CommonStartup = "{82A5EA35-D9CD-47C5-9629-E15D2F714E6E}"; 66 67 /// <summary> 68 /// (CSIDL_COMMON_TEMPLATES) Common Templates folder 69 /// "%ALLUSERSPROFILE%\Microsoft\Windows\Templates" 70 /// </summary> 71 internal const string CommonTemplates = "{B94237E7-57AC-4347-9151-B08C6C32D1F7}"; 72 73 /// <summary> 74 /// (CSIDL_DRIVES) Computer virtual folder 75 /// </summary> 76 internal const string ComputerFolder = "{0AC0837C-BBF8-452A-850D-79D08E667CA7}"; 77 78 /// <summary> 79 /// (CSIDL_CONNECTIONS) Network Connections virtual folder 80 /// </summary> 81 internal const string ConnectionsFolder = "{6F0CD92B-2E97-45D1-88FF-B0D186B8DEDD}"; 82 83 /// <summary> 84 /// (CSIDL_CONTROLS) Control Panel virtual folder 85 /// </summary> 86 internal const string ControlPanelFolder = "{82A74AEB-AEB4-465C-A014-D097EE346D63}"; 87 88 /// <summary> 89 /// (CSIDL_COOKIES) Cookies folder 90 /// "%APPDATA%\Microsoft\Windows\Cookies" 91 /// </summary> 92 internal const string Cookies = "{2B0F765D-C0E9-4171-908E-08A611B84FF6}"; 93 94 /// <summary> 95 /// (CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY) Desktop folder 96 /// "%USERPROFILE%\Desktop" 97 /// </summary> 98 internal const string Desktop = "{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}"; 99 100 /// <summary> 101 /// (CSIDL_MYDOCUMENTS, CSIDL_PERSONAL) Documents (My Documents) folder 102 /// "%USERPROFILE%\Documents" 103 /// </summary> 104 internal const string Documents = "{FDD39AD0-238F-46AF-ADB4-6C85480369C7}"; 105 106 /// <summary> 107 /// (CSIDL_FAVORITES, CSIDL_COMMON_FAVORITES) Favorites folder 108 /// "%USERPROFILE%\Favorites" 109 /// </summary> 110 internal const string Favorites = "{1777F761-68AD-4D8A-87BD-30B759FA33DD}"; 111 112 /// <summary> 113 /// (CSIDL_FONTS) Fonts folder 114 /// "%windir%\Fonts" 115 /// </summary> 116 internal const string Fonts = "{FD228CB7-AE11-4AE3-864C-16F3910AB8FE}"; 117 118 /// <summary> 119 /// (CSIDL_HISTORY) History folder 120 /// "%LOCALAPPDATA%\Microsoft\Windows\History" 121 /// </summary> 122 internal const string History = "{D9DC8A3B-B784-432E-A781-5A1130A75963}"; 123 124 /// <summary> 125 /// (CSIDL_INTERNET_CACHE) Temporary Internet Files folder 126 /// "%LOCALAPPDATA%\Microsoft\Windows\Temporary Internet Files" 127 /// </summary> 128 internal const string InternetCache = "{352481E8-33BE-4251-BA85-6007CAEDCF9D}"; 129 130 /// <summary> 131 /// (CSIDL_INTERNET) The Internet virtual folder 132 /// </summary> 133 internal const string InternetFolder = "{4D9F7874-4E0C-4904-967B-40B0D20C3E4B}"; 134 135 /// <summary> 136 /// (CSIDL_LOCAL_APPDATA) Local folder 137 /// "%LOCALAPPDATA%" ("%USERPROFILE%\AppData\Local") 138 /// </summary> 139 internal const string LocalAppData = "{F1B32785-6FBA-4FCF-9D55-7B8E7F157091}"; 140 141 /// <summary> 142 /// (CSIDL_RESOURCES_LOCALIZED) Fixed localized resources folder 143 /// "%windir%\resources\0409" (per active codepage) 144 /// </summary> 145 internal const string LocalizedResourcesDir = "{2A00375E-224C-49DE-B8D1-440DF7EF3DDC}"; 146 147 /// <summary> 148 /// (CSIDL_MYMUSIC) Music folder 149 /// "%USERPROFILE%\Music" 150 /// </summary> 151 internal const string Music = "{4BD8D571-6D19-48D3-BE97-422220080E43}"; 152 153 /// <summary> 154 /// (CSIDL_NETHOOD) Network shortcuts folder "%APPDATA%\Microsoft\Windows\Network Shortcuts" 155 /// </summary> 156 internal const string NetHood = "{C5ABBF53-E17F-4121-8900-86626FC2C973}"; 157 158 /// <summary> 159 /// (CSIDL_NETWORK, CSIDL_COMPUTERSNEARME) Network virtual folder 160 /// </summary> 161 internal const string NetworkFolder = "{D20BEEC4-5CA8-4905-AE3B-BF251EA09B53}"; 162 163 /// <summary> 164 /// (CSIDL_MYPICTURES) Pictures folder "%USERPROFILE%\Pictures" 165 /// </summary> 166 internal const string Pictures = "{33E28130-4E1E-4676-835A-98395C3BC3BB}"; 167 168 /// <summary> 169 /// (CSIDL_PRINTERS) Printers virtual folder 170 /// </summary> 171 internal const string PrintersFolder = "{76FC4E2D-D6AD-4519-A663-37BD56068185}"; 172 173 /// <summary> 174 /// (CSIDL_PRINTHOOD) Printer Shortcuts folder 175 /// "%APPDATA%\Microsoft\Windows\Printer Shortcuts" 176 /// </summary> 177 internal const string PrintHood = "{9274BD8D-CFD1-41C3-B35E-B13F55A758F4}"; 178 179 /// <summary> 180 /// (CSIDL_PROFILE) The root users profile folder "%USERPROFILE%" 181 /// ("%SystemDrive%\Users\%USERNAME%") 182 /// </summary> 183 internal const string Profile = "{5E6C858F-0E22-4760-9AFE-EA3317B67173}"; 184 185 /// <summary> 186 /// (CSIDL_COMMON_APPDATA) ProgramData folder 187 /// "%ALLUSERSPROFILE%" ("%ProgramData%", "%SystemDrive%\ProgramData") 188 /// </summary> 189 internal const string ProgramData = "{62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}"; 190 191 /// <summary> 192 /// (CSIDL_PROGRAM_FILES) Program Files folder for the current process architecture 193 /// "%ProgramFiles%" ("%SystemDrive%\Program Files") 194 /// </summary> 195 internal const string ProgramFiles = "{905e63b6-c1bf-494e-b29c-65b732d3d21a}"; 196 197 /// <summary> 198 /// (CSIDL_PROGRAM_FILESX86) 32 bit Program Files folder (available to both 32/64 bit processes) 199 /// </summary> 200 internal const string ProgramFilesX86 = "{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}"; 201 202 /// <summary> 203 /// (CSIDL_PROGRAM_FILES_COMMON) Common Program Files folder for the current process architecture 204 /// "%ProgramFiles%\Common Files" 205 /// </summary> 206 internal const string ProgramFilesCommon = "{F7F1ED05-9F6D-47A2-AAAE-29D317C6F066}"; 207 208 /// <summary> 209 /// (CSIDL_PROGRAM_FILES_COMMONX86) Common 32 bit Program Files folder (available to both 32/64 bit processes) 210 /// </summary> 211 internal const string ProgramFilesCommonX86 = "{DE974D24-D9C6-4D3E-BF91-F4455120B917}"; 212 213 /// <summary> 214 /// (CSIDL_PROGRAMS) Start menu Programs folder 215 /// "%APPDATA%\Microsoft\Windows\Start Menu\Programs" 216 /// </summary> 217 internal const string Programs = "{A77F5D77-2E2B-44C3-A6A2-ABA601054A51}"; 218 219 /// <summary> 220 /// (CSIDL_COMMON_DESKTOPDIRECTORY) Public Desktop folder 221 /// "%PUBLIC%\Desktop" 222 /// </summary> 223 internal const string PublicDesktop = "{C4AA340D-F20F-4863-AFEF-F87EF2E6BA25}"; 224 225 /// <summary> 226 /// (CSIDL_COMMON_DOCUMENTS) Public Documents folder 227 /// "%PUBLIC%\Documents" 228 /// </summary> 229 internal const string PublicDocuments = "{ED4824AF-DCE4-45A8-81E2-FC7965083634}"; 230 231 /// <summary> 232 /// (CSIDL_COMMON_MUSIC) Public Music folder 233 /// "%PUBLIC%\Music" 234 /// </summary> 235 internal const string PublicMusic = "{3214FAB5-9757-4298-BB61-92A9DEAA44FF}"; 236 237 /// <summary> 238 /// (CSIDL_COMMON_PICTURES) Public Pictures folder 239 /// "%PUBLIC%\Pictures" 240 /// </summary> 241 internal const string PublicPictures = "{B6EBFB86-6907-413C-9AF7-4FC2ABF07CC5}"; 242 243 /// <summary> 244 /// (CSIDL_COMMON_VIDEO) Public Videos folder 245 /// "%PUBLIC%\Videos" 246 /// </summary> 247 internal const string PublicVideos = "{2400183A-6185-49FB-A2D8-4A392A602BA3}"; 248 249 /// <summary> 250 /// (CSIDL_RECENT) Recent Items folder 251 /// "%APPDATA%\Microsoft\Windows\Recent" 252 /// </summary> 253 internal const string Recent = "{AE50C081-EBD2-438A-8655-8A092E34987A}"; 254 255 /// <summary> 256 /// (CSIDL_BITBUCKET) Recycle Bin virtual folder 257 /// </summary> 258 internal const string RecycleBinFolder = "{B7534046-3ECB-4C18-BE4E-64CD4CB7D6AC}"; 259 260 /// <summary> 261 /// (CSIDL_RESOURCES) Resources fixed folder 262 /// "%windir%\Resources" 263 /// </summary> 264 internal const string ResourceDir = "{8AD10C31-2ADB-4296-A8F7-E4701232C972}"; 265 266 /// <summary> 267 /// (CSIDL_APPDATA) Roaming user application data folder 268 /// "%APPDATA%" ("%USERPROFILE%\AppData\Roaming") 269 /// </summary> 270 internal const string RoamingAppData = "{3EB685DB-65F9-4CF6-A03A-E3EF65729F3D}"; 271 272 /// <summary> 273 /// (CSIDL_SENDTO) SendTo folder 274 /// "%APPDATA%\Microsoft\Windows\SendTo" 275 /// </summary> 276 internal const string SendTo = "{8983036C-27C0-404B-8F08-102D10DCFD74}"; 277 278 /// <summary> 279 /// (CSIDL_STARTMENU) Start Menu folder 280 /// "%APPDATA%\Microsoft\Windows\Start Menu" 281 /// </summary> 282 internal const string StartMenu = "{625B53C3-AB48-4EC1-BA1F-A1EF4146FC19}"; 283 284 /// <summary> 285 /// (CSIDL_STARTUP, CSIDL_ALTSTARTUP) Startup folder 286 /// "%APPDATA%\Microsoft\Windows\Start Menu\Programs\StartUp" 287 /// </summary> 288 internal const string Startup = "{B97D20BB-F46A-4C97-BA10-5E3608430854}"; 289 290 /// <summary> 291 /// (CSIDL_SYSTEM) System32 folder 292 /// "%windir%\system32" 293 /// </summary> 294 internal const string System = "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}"; 295 296 /// <summary> 297 /// (CSIDL_SYSTEMX86) X86 System32 folder 298 /// "%windir%\system32" or "%windir%\syswow64" 299 /// </summary> 300 internal const string SystemX86 = "{D65231B0-B2F1-4857-A4CE-A8E7C6EA7D27}"; 301 302 /// <summary> 303 /// (CSIDL_TEMPLATES) Templates folder 304 /// "%APPDATA%\Microsoft\Windows\Templates" 305 /// </summary> 306 internal const string Templates = "{A63293E8-664E-48DB-A079-DF759E0509F7}"; 307 308 /// <summary> 309 /// (CSIDL_MYVIDEO) Videos folder 310 /// "%USERPROFILE%\Videos" 311 /// </summary> 312 internal const string Videos = "{18989B1D-99B5-455B-841C-AB7C74E4DDFC}"; 313 314 /// <summary> 315 /// (CSIDL_WINDOWS) Windows folder "%windir%" 316 /// </summary> 317 internal const string Windows = "{F38BF404-1D43-42F2-9305-67DE0B28FC23}"; 318 } 319 } 320 } 321