migrate Pilz.Win32 & optimize Pilz & Pilz.IO

This commit is contained in:
2024-09-01 08:54:57 +02:00
parent f370642354
commit 7a94fcf360
55 changed files with 700 additions and 1427 deletions

View File

@@ -0,0 +1,46 @@
using System.Runtime.InteropServices;
namespace Pilz.Win32.Native;
/// <summary>
/// Contains information about a file object.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public struct SHFILEINFO
{
public const uint SHGFI_ICON = 0x100U;
public const uint SHGFI_LARGEICON = 0x0U;
public const uint SHGFI_SMALLICON = 0x1U;
/// <summary>
/// Handle to the icon that represents the file. You are responsible for
/// destroying this handle with DestroyIcon when you no longer need it.
/// </summary>
public nint hIcon;
/// <summary>
/// Index of the icon image within the system image list.
/// </summary>
public nint iIcon;
/// <summary>
/// Array of values that indicates the attributes of the file object.
/// For information about these values, see the IShellFolder::GetAttributesOf
/// method.
/// </summary>
public uint dwAttributes;
/// <summary>
/// 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.
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
public string szDisplayName;
/// <summary>
/// String that describes the type of file.
/// </summary>
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
public string szTypeName;
}