⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apisstructs.cs

📁 树形列表控件
💻 CS
📖 第 1 页 / 共 2 页
字号:
using System;
using System.Runtime.InteropServices;

namespace System.Runtime.InteropServices.APIs
{
	public class APIsStructs
	{
		#region DLLVERSIONINFO
		[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
		public struct DLLVERSIONINFO
		{
			public int cbSize;
			public int dwMajorVersion;
			public int dwMinorVersion;
			public int dwBuildNumber;
			public int dwPlatformID;
		}
		#endregion
		#region DLLVERSIONINFO2
		[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
		public struct DLLVERSIONINFO2
		{
			public DLLVERSIONINFO info1;
			public int dwFlags;
			ulong ullVersion;
		}
		#endregion
		#region WIN32_FIND_DATA
		[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
			public struct WIN32_FIND_DATA
		{
			public uint fileAttributes;
			public FILETIME creationTime;
			public FILETIME lastAccessTime;
			public FILETIME lastWriteTime;
			public uint fileSizeHigh;
			public uint fileSizeLow;
			public uint reserved0;
			public uint reserved1;
			[MarshalAs(UnmanagedType.ByValTStr, SizeConst=260)]
			public string fileName;
			[MarshalAs(UnmanagedType.ByValTStr, SizeConst=14)]
			public string alternateFileName;
		}
		#endregion

		#region SHITEMIDLIST
		[StructLayout(LayoutKind.Sequential)]
			public struct SHITEMIDLIST
		{
			public SHITEMID[] mkid;
		}
		#endregion
		#region SHITEMID
		[StructLayout(LayoutKind.Sequential)]
			public struct SHITEMID
		{
			public ushort cb;
			public byte abID;
		}
		#endregion
		#region SHFILEOPSTRUCT
		/// <summary>
		/// Contains information that the SHFileOperation function uses to perform file operations.
		/// </summary>
		[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Unicode)]
		public struct SHFILEOPSTRUCT
		{
			/// <summary>
			/// Window handle to the dialog box to display information about the status of the file operation.
			/// </summary>
			public IntPtr hwnd;
			/// <summary>
			/// Value that indicates which operation to perform.
			/// </summary>
			public UInt32 wFunc;
			/// <summary>
			/// Address of a buffer to specify one or more source file names.
			/// </summary>
			public IntPtr pFrom;
			/// <summary>
			/// Address of a buffer to contain the name of the destination file or directory.
			/// </summary>
			public IntPtr pTo;
			/// <summary>
			/// Flags that control the file operation (should use APISEnums.FOF).
			/// </summary>
			public UInt16 fFlags;
			/// <summary>
			/// Value that receives TRUE if the user aborted any file operations before they were completed, or FALSE otherwise.
			/// </summary>
			public Int32 fAnyOperationsAborted;
			/// <summary>
			/// A handle to a name mapping object containing the old and new names of the renamed files.
			/// </summary>
			public IntPtr hNameMappings;
			/// <summary>
			/// Address of a string to use as the title of a progress dialog box.
			/// </summary>
			[MarshalAs(UnmanagedType.LPWStr)] public string lpszProgressTitle;
		}
		#endregion
		#region SHELLEXECUTEINFO
		[StructLayoutAttribute(LayoutKind.Sequential)]
			public struct SHELLEXECUTEINFO
		{
			public int cbSize;
			public APIsEnums.ShellExecuteFlags fMask;
			public IntPtr hWnd;
			public string lpVerb;
			public string lpFile;
			public string lpParameters;
			public string lpDirectory;
			public APIsEnums.ShowWindowStyles nShow;
			public IntPtr hInstApp;
			public IntPtr lpIDList;
			public int lpClass;
			public int hkeyClass;
			public int dwHotKey;
			public IntPtr hIcon;
			public IntPtr hProcess;
		}
		#endregion
		#region SHFILEINFO
		[StructLayout(LayoutKind.Sequential)]
		public struct SHFILEINFO
		{
			public SHFILEINFO(bool b)
			{
				hIcon=IntPtr.Zero;iIcon=0;dwAttributes=0;szDisplayName="";szTypeName="";
			}
			public IntPtr hIcon;
			public int iIcon;
			public uint dwAttributes;
			[MarshalAs(UnmanagedType.LPStr, SizeConst=260)]
			public string szDisplayName;
			[MarshalAs(UnmanagedType.LPStr, SizeConst=80)]
			public string szTypeName;
		};
		#endregion

		#region STRRET
		[StructLayout(LayoutKind.Sequential)]
			public struct STRRET
		{
			public int uType;
			//		IntPtr pOleStr;
			//		uint uOffset;
			[MarshalAs(UnmanagedType.ByValArray, SizeConst=260)] public byte[] cStr;
		}
		#endregion
		#region MENUITMEINFO
		[StructLayoutAttribute(LayoutKind.Sequential)]
			public struct MENUITMEINFO
		{
			public int cbSize; 
			public APIsEnums.MenuItemMasks fMask; 
			public APIsEnums.MenuItemTypes fType; 
			public APIsEnums.MenuItemStates fState; 
			public int wID; 
			public IntPtr hSubMenu; 
			public IntPtr hbmpChecked; 
			public IntPtr hbmpUnchecked; 
			public int dwItemData; 
			public IntPtr dwTypeData; 
			public int cch; 
			public IntPtr hbmpItem;
		}
		#endregion
		#region StartupInfo
		[StructLayout(LayoutKind.Sequential)]
			public class StartupInfo
		{
			public int cb;
			public String lpReserved;
			public String lpDesktop;
			public String lpTitle;
			public int dwX;
			public int dwY;
			public int dwXSize;
			public int dwYSize;
			public int dwXCountChars;
			public int dwYCountChars;
			public int dwFillAttribute;
			public int dwFlags;
			public UInt16 wShowWindow;
			public UInt16 cbReserved2;
			public Byte  lpReserved2;
			public int hStdInput;
			public int hStdOutput;
			public int hStdError;
		}
		#endregion
		#region ProcessInformation
		[StructLayout(LayoutKind.Sequential)]
			public class ProcessInformation
		{
			public int hProcess;
			public int hThread;
			public int dwProcessId;
			public int dwThreadId;
		}
		#endregion
		#region MENUITEMINFO
		[StructLayout(LayoutKind.Sequential)]
			public struct MENUITEMINFO
		{
			public uint cbSize;
			public uint fMask;
			public uint fType;
			public uint fState;
			public int	wID;
			public int	/*HMENU*/	  hSubMenu;
			public int	/*HBITMAP*/   hbmpChecked;
			public int	/*HBITMAP*/	  hbmpUnchecked;
			public int	/*ULONG_PTR*/ dwItemData;
			public String dwTypeData;
			public uint cch;
			public int /*HBITMAP*/ hbmpItem;
		}
		#endregion
		#region FORMATETC
		[StructLayout(LayoutKind.Sequential)]
		public struct FORMATETC
		{
			public APIsEnums.ClipboardFormats	cfFormat;
			public uint ptd;
			public APIsEnums.TargetDevices		dwAspect;
			public int			lindex;
			public APIsEnums.StorageMediumTypes		tymed;
		}
		#endregion
		#region STGMEDIUM
		[StructLayout(LayoutKind.Sequential)]
			public struct STGMEDIUM
		{
			public uint tymed;
			public uint hGlobal;
			public uint pUnkForRelease;
		}
		#endregion
		#region CMINVOKECOMMANDINFO
		[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
			public struct CMINVOKECOMMANDINFO
		{
			public int cbSize;				// sizeof(CMINVOKECOMMANDINFO)
			public int fMask;				// any combination of CMIC_MASK_*
			public IntPtr hwnd;				// might be NULL (indicating no owner window)
			public IntPtr lpVerb;			// either a string or MAKEINTRESOURCE(idOffset)
			public IntPtr lpParameters;		// might be NULL (indicating no parameter)
			public IntPtr lpDirectory;		// might be NULL (indicating no specific directory)
			public int nShow;				// one of SW_ values for ShowWindow() API
			public int dwHotKey;
			public IntPtr hIcon;
		}
		#endregion

		#region LV_ITEM
		[StructLayoutAttribute(LayoutKind.Sequential)]
		public struct LV_ITEM
		{
			public APIsEnums.ListViewItemFlags mask;
			public Int32 iItem;
			public Int32 iSubItem;
			public APIsEnums.ListViewItemStates state;
			public APIsEnums.ListViewItemStates stateMask;
			public String pszText;
			public Int32 cchTextMax;
			public Int32 iImage;
			public IntPtr lParam;
			public Int32 iIndent;
		}
		#endregion
		#region LVCOLUMN
		[StructLayoutAttribute(LayoutKind.Sequential)]
			public struct LVCOLUMN
		{
			public Int32 mask;
			public Int32 fmt;
			public Int32 cx;
			public string pszText;
			public Int32 cchTextMax;
			public Int32 iSubItem;
			public Int32 iImage;
			public Int32 iOrder;
		}
		#endregion
		#region LVHITTESTINFO
		[StructLayoutAttribute(LayoutKind.Sequential)]
		public struct LVHITTESTINFO
		{
			public POINTAPI pt;
			public int flags;
			public Int32 iItem;
			public Int32 iSubItem;
		}
		#endregion
		#region NMLVDISPINFO
		[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
		public struct NMLVDISPINFO
		{
			public NMHDR hdr;
			public LV_ITEM lvitem;
		}	
		#endregion
		#region NMLISTVIEW
		[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
		public struct NMLISTVIEW
		{
			public NMHDR nmhdr;
			public int iItem;
			public int iSubItem;
			public uint uNewState;
			public uint uOldState;
			public uint uChanged;
			public POINTAPI ptAction;
			public IntPtr lParam;
			public bool NewSelected
			{
				get
				{
					return ((APIsEnums.ListViewItemStates)uNewState & APIsEnums.ListViewItemStates.SELECTED) == APIsEnums.ListViewItemStates.SELECTED;
				}
			}
			public bool OldSelected
			{
				get
				{
					return ((APIsEnums.ListViewItemStates)uOldState & APIsEnums.ListViewItemStates.SELECTED) == APIsEnums.ListViewItemStates.SELECTED;
				}
			}
			public bool NewCheck
			{
				get
				{
					try
					{
						return uNewState >= 0x1000 ? ((uNewState & (uint)APIsEnums.ListViewItemStates.STATEIMAGEMASK) >> 12) - 1 > 0 : false;
					}
					catch
					{
						return false;
					}
				}
			}
			public bool OldCheck
			{
				get

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -