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;
        }
    }


}

