using System; using static Vanara.PInvoke.Shell32; namespace Vanara.PInvoke { /// Extension methods for enums with associated Guids. public static class ShlGuidExt { /// Retrieves the Guid associated with a . /// The known folder. /// The GUID. public static Guid Guid(this BHID id) => AssociateAttribute.GetGuidFromEnum(id); /// Retrieves the Guid associated with a . /// The known folder. /// The GUID. public static Guid Guid(this FOLDERTYPEID id) => AssociateAttribute.GetGuidFromEnum(id); /// Lookups the specified unique identifier. /// The unique identifier. /// Corresponding BHID. public static TEnum Lookup(Guid guid) where TEnum : System.Enum => AssociateAttribute.TryEnumLookup(guid, out TEnum val) ? val : (TEnum)Convert.ChangeType(-1, typeof(TEnum)); } }