using System;
using static Vanara.PInvoke.Shell32;
// ReSharper disable InconsistentNaming
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) => AssociateAttribute.TryEnumLookup(guid, out TEnum val) ? val : (TEnum)Convert.ChangeType(-1, typeof(TEnum));
}
}