using System.Runtime.InteropServices; namespace Pilz.Win32.Native; /// /// Contains information about a file object. /// [StructLayout(LayoutKind.Sequential)] public struct SHFILEINFO { public const uint SHGFI_ICON = 0x100U; public const uint SHGFI_LARGEICON = 0x0U; public const uint SHGFI_SMALLICON = 0x1U; /// /// Handle to the icon that represents the file. You are responsible for /// destroying this handle with DestroyIcon when you no longer need it. /// public nint hIcon; /// /// Index of the icon image within the system image list. /// public nint iIcon; /// /// Array of values that indicates the attributes of the file object. /// For information about these values, see the IShellFolder::GetAttributesOf /// method. /// public uint dwAttributes; /// /// String that contains the name of the file as it appears in the Microsoft /// Windows Shell, or the path and file name of the file that contains the /// icon representing the file. /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)] public string szDisplayName; /// /// String that describes the type of file. /// [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)] public string szTypeName; }