946 lines
27 KiB
C#
946 lines
27 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
using System.Text;
|
|
using System.Runtime.InteropServices;
|
|
using System.Drawing;
|
|
using System.Globalization;
|
|
|
|
namespace ryControls
|
|
{
|
|
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public static class Win32
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int MF_REMOVE = 0x1000;
|
|
/// <summary>
|
|
/// 还原
|
|
/// </summary>
|
|
|
|
public const int SC_RESTORE = 0xF120; //还原
|
|
/// <summary>
|
|
/// 移动
|
|
/// </summary>
|
|
public const int SC_MOVE = 0xF010; //移动
|
|
/// <summary>
|
|
/// 大小
|
|
/// </summary>
|
|
public const int SC_SIZE = 0xF000; //大小
|
|
/// <summary>
|
|
/// 最小化
|
|
/// </summary>
|
|
public const int SC_MINIMIZE = 0xF020; //最小化
|
|
/// <summary>
|
|
/// 最大化
|
|
/// </summary>
|
|
public const int SC_MAXIMIZE = 0xF030; //最大化
|
|
/// <summary>
|
|
/// 关闭
|
|
/// </summary>
|
|
public const int SC_CLOSE = 0xF060; //关闭
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
public const int WM_SYSCOMMAND = 0x0112;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_COMMAND = 0x0111;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
public const int GW_HWNDFIRST = 0;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GW_HWNDLAST = 1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GW_HWNDNEXT = 2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GW_HWNDPREV = 3;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GW_OWNER = 4;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GW_CHILD = 5;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
public const int WM_NCCALCSIZE = 0x83;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_WINDOWPOSCHANGING = 0x46;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_PAINT = 0xF;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_CREATE = 0x1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_NCCREATE = 0x81;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_NCPAINT = 0x85;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_PRINT = 0x317;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_DESTROY = 0x2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_SHOWWINDOW = 0x18;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_SHARED_MENU = 0x1E2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int HC_ACTION = 0;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WH_CALLWNDPROC = 4;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GWL_WNDPROC = -4;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
public const int WS_SYSMENU = 0x80000;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WS_SIZEBOX = 0x40000;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
public const int WS_MAXIMIZEBOX = 0x10000;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
public const int WS_MINIMIZEBOX = 0x20000;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hWndChild"></param>
|
|
/// <param name="hWndParent"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll")]
|
|
public static extern int SetParent(IntPtr hWndChild, IntPtr hWndParent);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hWnd"></param>
|
|
/// <param name="Index"></param>
|
|
/// <param name="Value"></param>
|
|
/// <returns></returns>
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
public static extern int SetWindowLong(IntPtr hWnd, int Index, int Value);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hWnd"></param>
|
|
/// <param name="Index"></param>
|
|
/// <returns></returns>
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
public static extern int GetWindowLong(IntPtr hWnd, int Index);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="flag"></param>
|
|
/// <returns></returns>
|
|
|
|
[DllImport("user32")]
|
|
public static extern IntPtr GetSystemMenu(IntPtr hwnd, int flag);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hMenu"></param>
|
|
/// <param name="wFlags"></param>
|
|
/// <param name="x"></param>
|
|
/// <param name="y"></param>
|
|
/// <param name="nReserved"></param>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="lprc"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32")]
|
|
public static extern int TrackPopupMenu(int hMenu, int wFlags, int x, int y, int nReserved, IntPtr hwnd, int lprc);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="msg"></param>
|
|
/// <param name="wp"></param>
|
|
/// <param name="lp"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32")]
|
|
public static extern int SendMessage(IntPtr hwnd, int msg, int wp, int lp);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[DllImport("user32")]
|
|
public static extern int ReleaseCapture();
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="x1"></param>
|
|
/// <param name="y1"></param>
|
|
/// <param name="x2"></param>
|
|
/// <param name="y2"></param>
|
|
/// <param name="x3"></param>
|
|
/// <param name="y3"></param>
|
|
/// <returns></returns>
|
|
[DllImport("gdi32.dll")]
|
|
public static extern int CreateRoundRectRgn(int x1, int y1, int x2, int y2, int x3, int y3);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="hRgn"></param>
|
|
/// <param name="bRedraw"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll")]
|
|
public static extern int SetWindowRgn(IntPtr hwnd, int hRgn, Boolean bRedraw);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int CS_DROPSHADOW = 0x20000;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="nIndex"></param>
|
|
/// <param name="dwNewLong"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
public static extern int SetClassLong(IntPtr hwnd, int nIndex, int dwNewLong);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="nIndex"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
public static extern int GetClassLong(IntPtr hwnd, int nIndex);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public struct MENUINFO
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int cbSize;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public uint fMask;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int dwStyle;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int cyMax;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int hbrBack;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int dwContextHelpID;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int dwMenuData;
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hBitmap"></param>
|
|
/// <returns></returns>
|
|
[DllImport("gdi32")]
|
|
public static extern int CreatePatternBrush(int hBitmap);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hMenu"></param>
|
|
/// <param name="mi"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32")]
|
|
public static extern int SetMenuInfo(IntPtr hMenu, ref MENUINFO mi);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="nCmdShow"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll", EntryPoint = "ShowWindow", CharSet = CharSet.Auto)]
|
|
public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="process"></param>
|
|
/// <param name="minSize"></param>
|
|
/// <param name="maxSize"></param>
|
|
/// <returns></returns>
|
|
[DllImport("kernel32.dll")]
|
|
public static extern bool SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCW_ATOM = -32;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_CBCLSEXTRA = -20;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_CBWNDEXTRA = -18;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_HBRBACKGROUND = -10;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_HCURSOR = -12;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_HICON = -14;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_HMODULE = -16;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_MENUNAME = -8;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_STYLE = -26;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int GCL_WNDPROC = -24;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="nIndex"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32", EntryPoint = "GetClassLong")]
|
|
public static extern int GetClassLong(int hwnd, int nIndex);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="nIndex"></param>
|
|
/// <param name="dwNewLong"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32", EntryPoint = "SetClassLong")]
|
|
public static extern int SetClassLong(int hwnd, int nIndex, int dwNewLong);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_SETREDRAW = 0x000B;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_USER = 0x400;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int EM_GETEVENTMASK = (WM_USER + 59);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int EM_SETEVENTMASK = (WM_USER + 69);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hWndLock"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll")]
|
|
public extern static bool LockWindowUpdate(IntPtr hWndLock);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="handle"></param>
|
|
/// <returns></returns>
|
|
[DllImport("User32.dll", CharSet = CharSet.Auto)]
|
|
public static extern IntPtr GetWindowDC(IntPtr handle);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="handle"></param>
|
|
/// <param name="hDC"></param>
|
|
/// <returns></returns>
|
|
[DllImport("User32.dll", CharSet = CharSet.Auto)]
|
|
public static extern IntPtr ReleaseDC(IntPtr handle, IntPtr hDC);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hdc"></param>
|
|
/// <returns></returns>
|
|
[DllImport("Gdi32.dll", CharSet = CharSet.Auto)]
|
|
public static extern IntPtr CreateCompatibleDC(IntPtr hdc);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="className"></param>
|
|
/// <param name="maxCount"></param>
|
|
/// <returns></returns>
|
|
[DllImport("User32.dll", CharSet = CharSet.Auto)]
|
|
public static extern int GetClassName(IntPtr hwnd, char[] className, int maxCount);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="uCmd"></param>
|
|
/// <returns></returns>
|
|
[DllImport("User32.dll", CharSet = CharSet.Auto)]
|
|
public static extern IntPtr GetWindow(IntPtr hwnd, int uCmd);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <returns></returns>
|
|
[DllImport("User32.dll", CharSet = CharSet.Auto)]
|
|
public static extern bool IsWindowVisible(IntPtr hwnd);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="lpRect"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32", CharSet = CharSet.Auto)]
|
|
public static extern int GetClientRect(IntPtr hwnd, ref RECT lpRect);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="rect"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32", CharSet = CharSet.Auto)]
|
|
public static extern int GetClientRect(IntPtr hwnd, [In, Out] ref Rectangle rect);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="X"></param>
|
|
/// <param name="Y"></param>
|
|
/// <param name="nWidth"></param>
|
|
/// <param name="nHeight"></param>
|
|
/// <param name="bRepaint"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32", CharSet = CharSet.Auto)]
|
|
public static extern bool MoveWindow(IntPtr hwnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32", CharSet = CharSet.Auto)]
|
|
public static extern bool UpdateWindow(IntPtr hwnd);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="rect"></param>
|
|
/// <param name="bErase"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32", CharSet = CharSet.Auto)]
|
|
public static extern bool InvalidateRect(IntPtr hwnd, ref Rectangle rect, bool bErase);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="rect"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32", CharSet = CharSet.Auto)]
|
|
public static extern bool ValidateRect(IntPtr hwnd, ref Rectangle rect);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hWnd"></param>
|
|
/// <param name="rect"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
|
public static extern bool GetWindowRect(IntPtr hWnd, [In, Out] ref Rectangle rect);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct RECT
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int Left;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int Top;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int Right;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int Bottom;
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct WINDOWPOS
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public IntPtr hwnd;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public IntPtr hwndAfter;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int x;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int y;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int cx;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int cy;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public uint flags;
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct NCCALCSIZE_PARAMS
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public RECT rgc;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public WINDOWPOS wndpos;
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public struct TagSCROLLINFO
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public uint cbSize;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public uint fMask;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int nMin;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int nMax;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public uint nPage;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int nPos;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int nTrackPos;
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public enum FnBar
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SB_HORZ = 0,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SB_VERT = 1,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SB_CTL = 2
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public enum FMask
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_ALL,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_DISABLENOSCROLL = 0X0010,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_PAGE = 0X0002,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_POS = 0X0004,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_RANGE = 0X0001,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_TRACKPOS = 0X0008
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="lowPart"></param>
|
|
/// <param name="highPart"></param>
|
|
/// <returns></returns>
|
|
public static int MakeLong(short lowPart, short highPart)
|
|
{
|
|
return (int)(((ushort)lowPart) | (uint)(highPart << 16));
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int SB_THUMBTRACK = 5;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_HSCROLL = 0x114;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public const int WM_VSCROLL = 0x115;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="fnBar"></param>
|
|
/// <param name="lpsi"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll", EntryPoint = "GetScrollInfo")]
|
|
public static extern bool GetScrollInfo(IntPtr hwnd, int fnBar, ref SCROLLINFO lpsi);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hwnd"></param>
|
|
/// <param name="fnBar"></param>
|
|
/// <param name="lpsi"></param>
|
|
/// <param name="fRedraw"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll", EntryPoint = "SetScrollInfo")]
|
|
public static extern int SetScrollInfo(IntPtr hwnd, int fnBar, [In] ref SCROLLINFO lpsi, bool fRedraw);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hWnd"></param>
|
|
/// <param name="Msg"></param>
|
|
/// <param name="wParam"></param>
|
|
/// <param name="lParam"></param>
|
|
/// <returns></returns>
|
|
[DllImport("User32.dll", CharSet = CharSet.Auto, EntryPoint = "SendMessage")]
|
|
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hWnd"></param>
|
|
/// <param name="Msg"></param>
|
|
/// <param name="wParam"></param>
|
|
/// <param name="lParam"></param>
|
|
/// <returns></returns>
|
|
[DllImport("user32.dll", SetLastError = true)]
|
|
public static extern bool PostMessage(IntPtr hWnd, uint Msg, long wParam, int lParam);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public struct SCROLLINFO
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public uint cbSize;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public uint fMask;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int nMin;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int nMax;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public uint nPage;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int nPos;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public int nTrackPos;
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public enum ScrollInfoMask
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_RANGE = 0x1,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_PAGE = 0x2,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_POS = 0x4,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_DISABLENOSCROLL = 0x8,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_TRACKPOS = 0x10,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SIF_ALL = SIF_RANGE + SIF_PAGE + SIF_POS + SIF_TRACKPOS
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public enum ScrollBarDirection
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SB_HORZ = 0,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SB_VERT = 1,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SB_CTL = 2,
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
SB_BOTH = 3
|
|
}/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="hWnd"></param>
|
|
/// <param name="rect"></param>
|
|
/// <returns></returns>
|
|
|
|
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
|
|
public static extern bool GetClientRect(HandleRef hWnd, [In, Out] ref RECT rect);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
|
|
[StructLayout(LayoutKind.Sequential)]
|
|
public class SYSTEMTIME
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wYear;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMonth;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wDayOfWeek;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wDay;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wHour;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMinute;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wSecond;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMilliseconds;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public override string ToString()
|
|
{
|
|
return ("[SYSTEMTIME: " + this.wDay.ToString(CultureInfo.InvariantCulture) + "/" + this.wMonth.ToString(CultureInfo.InvariantCulture) + "/" + this.wYear.ToString(CultureInfo.InvariantCulture) + " " + this.wHour.ToString(CultureInfo.InvariantCulture) + ":" + this.wMinute.ToString(CultureInfo.InvariantCulture) + ":" + this.wSecond.ToString(CultureInfo.InvariantCulture) + "]");
|
|
}
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
|
|
public class SYSTEMTIMEARRAY
|
|
{
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wYear1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMonth1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wDayOfWeek1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wDay1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wHour1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMinute1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wSecond1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMilliseconds1;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wYear2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMonth2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wDayOfWeek2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wDay2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wHour2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMinute2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wSecond2;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public short wMilliseconds2;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|