123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- using System;
- using System.Runtime.InteropServices;
- namespace PaintDotNet.SystemLayer
- {
- internal static class NativeStructs
- {
- [StructLayout(LayoutKind.Sequential)]
- internal struct PROCESS_INFORMATION
- {
- public IntPtr hProcess;
- public IntPtr hThread;
- public uint dwProcessId;
- public uint dwThreadId;
- }
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- internal struct STATSTG
- {
- public IntPtr pwcsName;
- public NativeConstants.STGTY type;
- public ulong cbSize;
- public System.Runtime.InteropServices.ComTypes.FILETIME mtime;
- public System.Runtime.InteropServices.ComTypes.FILETIME ctime;
- public System.Runtime.InteropServices.ComTypes.FILETIME atime;
- public uint grfMode;
- public uint grfLocksSupported;
- public Guid clsid;
- public uint grfStateBits;
- public uint reserved;
- }
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 4)]
- internal struct KNOWNFOLDER_DEFINITION
- {
- public NativeConstants.KF_CATEGORY category;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszName;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszCreator;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszDescription;
- public Guid fidParent;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszRelativePath;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszParsingName;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszToolTip;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszLocalizedName;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszIcon;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszSecurity;
- public uint dwAttributes;
- public NativeConstants.KF_DEFINITION_FLAGS kfdFlags;
- public Guid ftidType;
- }
- [StructLayout(LayoutKind.Sequential, Pack = 4)]
- internal struct PROPERTYKEY
- {
- public Guid fmtid;
- public uint pid;
- }
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto, Pack = 4)]
- internal struct COMDLG_FILTERSPEC
- {
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszName;
- [MarshalAs(UnmanagedType.LPWStr)]
- public string pszSpec;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct SYSTEM_INFO
- {
- public ushort wProcessorArchitecture;
- public ushort wReserved;
- public uint dwPageSize;
- public IntPtr lpMinimumApplicationAddress;
- public IntPtr lpMaximumApplicationAddress;
- public UIntPtr dwActiveProcessorMask;
- public uint dwNumberOfProcessors;
- public uint dwProcessorType;
- public uint dwAllocationGranularity;
- public ushort wProcessorLevel;
- public ushort wProcessorRevision;
- }
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- internal struct OSVERSIONINFOEX
- {
- public static int SizeOf
- {
- get
- {
- return Marshal.SizeOf(typeof(OSVERSIONINFOEX));
- }
- }
- public uint dwOSVersionInfoSize;
- public uint dwMajorVersion;
- public uint dwMinorVersion;
- public uint dwBuildNumber;
- public uint dwPlatformId;
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 128)]
- public string szCSDVersion;
- public ushort wServicePackMajor;
- public ushort wServicePackMinor;
- public ushort wSuiteMask;
- public byte wProductType;
- public byte wReserved;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct COPYDATASTRUCT
- {
- internal UIntPtr dwData;
- internal uint cbData;
- internal IntPtr lpData;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct SHELLEXECUTEINFO
- {
- internal uint cbSize;
- internal uint fMask;
- internal IntPtr hwnd;
- [MarshalAs(UnmanagedType.LPTStr)] internal string lpVerb;
- [MarshalAs(UnmanagedType.LPTStr)] internal string lpFile;
- [MarshalAs(UnmanagedType.LPTStr)] internal string lpParameters;
- [MarshalAs(UnmanagedType.LPTStr)] internal string lpDirectory;
- internal int nShow;
- internal IntPtr hInstApp;
- internal IntPtr lpIDList;
- [MarshalAs(UnmanagedType.LPTStr)] internal string lpClass;
- internal IntPtr hkeyClass;
- internal uint dwHotKey;
- internal IntPtr hIcon_or_hMonitor;
- internal IntPtr hProcess;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct MEMORYSTATUSEX
- {
- internal uint dwLength;
- internal uint dwMemoryLoad;
- internal ulong ullTotalPhys;
- internal ulong ullAvailPhys;
- internal ulong ullTotalPageFile;
- internal ulong ullAvailPageFile;
- internal ulong ullTotalVirtual;
- internal ulong ullAvailVirtual;
- internal ulong ullAvailExtendedVirtual;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct OVERLAPPED
- {
- internal UIntPtr Internal;
- internal UIntPtr InternalHigh;
- internal uint Offset;
- internal uint OffsetHigh;
- internal IntPtr hEvent;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct RGBQUAD
- {
- internal byte rgbBlue;
- internal byte rgbGreen;
- internal byte rgbRed;
- internal byte rgbReserved;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct BITMAPINFOHEADER
- {
- internal uint biSize;
- internal int biWidth;
- internal int biHeight;
- internal ushort biPlanes;
- internal ushort biBitCount;
- internal uint biCompression;
- internal uint biSizeImage;
- internal int biXPelsPerMeter;
- internal int biYPelsPerMeter;
- internal uint biClrUsed;
- internal uint biClrImportant;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct BITMAPINFO
- {
- internal BITMAPINFOHEADER bmiHeader;
- internal RGBQUAD bmiColors;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal unsafe struct MEMORY_BASIC_INFORMATION
- {
- internal void* BaseAddress;
- internal void* AllocationBase;
- internal uint AllocationProtect;
- internal UIntPtr RegionSize;
- internal uint State;
- internal uint Protect;
- internal uint Type;
- };
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- internal class LOGFONT
- {
- internal int lfHeight = 0;
- internal int lfWidth = 0;
- internal int lfEscapement = 0;
- internal int lfOrientation = 0;
- internal int lfWeight = 0;
- internal byte lfItalic = 0;
- internal byte lfUnderline = 0;
- internal byte lfStrikeOut = 0;
- internal byte lfCharSet = 0;
- internal byte lfOutPrecision = 0;
- internal byte lfClipPrecision = 0;
- internal byte lfQuality = 0;
- internal byte lfPitchAndFamily = 0;
- [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
- internal string lfFaceName = string.Empty;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct LOGBRUSH
- {
- internal uint lbStyle;
- internal uint lbColor;
- internal int lbHatch;
- };
- [StructLayout(LayoutKind.Sequential)]
- internal struct RGNDATAHEADER
- {
- internal uint dwSize;
- internal uint iType;
- internal uint nCount;
- internal uint nRgnSize;
- internal RECT rcBound;
- };
- [StructLayout(LayoutKind.Sequential)]
- internal struct RGNDATA
- {
- internal RGNDATAHEADER rdh;
- internal unsafe static RECT* GetRectsPointer(RGNDATA* me)
- {
- return (RECT*)((byte*)me + sizeof(RGNDATAHEADER));
- }
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct POINT
- {
- internal int x;
- internal int y;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal struct RECT
- {
- internal int left;
- internal int top;
- internal int right;
- internal int bottom;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal unsafe struct PropertyItem
- {
- internal int id;
- internal uint length;
- internal short type;
- internal void* value;
- }
- [StructLayout(LayoutKind.Sequential)]
- internal unsafe struct WINTRUST_DATA
- {
- internal uint cbStruct;
- internal IntPtr pPolicyCallbackData;
- internal IntPtr pSIPClientData;
- internal uint dwUIChoice;
- internal uint fdwRevocationChecks;
- internal uint dwUnionChoice;
- internal void* pInfo; // pFile, pCatalog, pBlob, pSgnr, or pCert
- internal uint dwStateAction;
- internal IntPtr hWVTStateData;
- internal IntPtr pwszURLReference;
- internal uint dwProvFlags;
- internal uint dwUIContext;
- }
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- internal unsafe struct WINTRUST_FILE_INFO
- {
- internal uint cbStruct;
- internal char* pcwszFilePath;
- internal IntPtr hFile;
- }
- [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
- internal struct WINHTTP_CURRENT_USER_IE_PROXY_CONFIG
- {
- internal bool fAutoDetect;
- internal IntPtr lpszAutoConfigUrl;
- internal IntPtr lpszProxy;
- internal IntPtr lpszProxyBypass;
- };
- [StructLayout(LayoutKind.Sequential)]
- internal struct SP_DEVINFO_DATA
- {
- public uint cbSize;
- public Guid ClassGuid;
- public uint DevInst;
- public UIntPtr Reserved;
- }
- }
- }
|