/// <summary>Retrieves the Guid associated with a <see cref="Shell32.KNOWNFOLDERID_Enum"/>.</summary> /// <param name="id">The known folder.</param> /// <returns>The GUID.</returns> public static Guid Guid(this Shell32.KNOWNFOLDERID_Enum id) { var attr = typeof(Shell32.KNOWNFOLDERID_Enum).GetField(id.ToString()).GetCustomAttributes(typeof(Shell32.KnownFolderDetailAttribute), false); return(attr.Length > 0 ? ((Shell32.KnownFolderDetailAttribute)attr[0]).guid : System.Guid.Empty); }
/// <summary>Gets a registry property associated with this known folder.</summary> /// <typeparam name="T">Return type.</typeparam> /// <param name="id">The known folder.</param> /// <param name="valueName">Name of the property (value under registry key).</param> /// <returns>Retrieved value or default(T) if no value exists.</returns> public static T GetRegistryProperty <T>(this Shell32.KNOWNFOLDERID_Enum id, string valueName) => (T)Microsoft.Win32.Registry.GetValue(RegPath + id.Guid().ToString("B"), valueName, default(T));