public struct Messages
{
    public const int WM_NULL = 0x000;
    public const int WM_CREATE = 0x001;
    public const int WM_DESTROY = 0x002;
    public const int WM_MOVE = 0x003;
    public const int WM_SIZE = 0x005;
    public const int WM_ACTIVATE = 0x006;
    public const int WM_SETFOCUS = 0x007;
    public const int WM_KILLFOCUS = 0x008;
    public const int WM_ENABLE = 0x00A;
    public const int WM_SETREDRAW = 0x00B;
    public const int WM_SETTEXT = 0x00C;
    public const int WM_GETTEXT = 0x00D;
    public const int WM_GETTEXTLENGTH = 0x00E;
    public const int WM_PAINT = 0x00F;
    public const int WM_CLOSE = 0x010;
    public const int WM_QUERYENDSESSION = 0x011;
    public const int WM_QUIT = 0x012;
    public const int WM_QUERYOPEN = 0x013;
    public const int WM_ERASEBKGND = 0x014;
    public const int WM_SYSCOLORCHANGE = 0x015;
    public const int WM_ENDSESSION = 0x016;
    public const int WM_SYSTEMERROR = 0x017;
    public const int WM_SHOWWINDOW = 0x018;
    public const int WM_CTLCOLOR = 0x019;
    public const int WM_WININICHANGE = 0x01A;
    public const int WM_SETTINGCHANGE = WM_WININICHANGE;
    public const int WM_DEVMODECHANGE = 0x01B;
    public const int WM_ACTIVATEAPP = 0x01C;
    public const int WM_FONTCHANGE = 0x01D;
    public const int WM_TIMECHANGE = 0x01E;
    public const int WM_CANCELMODE = 0x01F;
    public const int WM_SETCURSOR = 0x020;
    public const int WM_MOUSEACTIVATE = 0x021;
    public const int WM_CHILDACTIVATE = 0x022;
    public const int WM_QUEUESYNC = 0x023;
    public const int WM_GETMINMAXINFO = 0x024;
    public const int WM_PAINTICON = 0x026;
    public const int WM_ICONERASEBKGND = 0x027;
    public const int WM_NEXTDLGCTL = 0x028;
    public const int WM_SPOOLERSTATUS = 0x02A;
    public const int WM_DRAWITEM = 0x02B;
    public const int WM_MEASUREITEM = 0x02C;
    public const int WM_DELETEITEM = 0x02D;
    public const int WM_VKEYTOITEM = 0x02E;
    public const int WM_CHARTOITEM = 0x02F;
    public const int WM_SETFONT = 0x030;
    public const int WM_GETFONT = 0x031;
    public const int WM_SETHOTKEY = 0x032;
    public const int WM_GETHOTKEY = 0x033;
    public const int WM_QUERYDRAGICON = 0x037;
    public const int WM_COMPAREITEM = 0x039;
    public const int WM_COMPACTING = 0x041;

    public const int WM_COMMNOTIFY = 0x044;  //obsolete in Win32

    public const int WM_WINDOWPOSCHANGING = 0x046;
    public const int WM_WINDOWPOSCHANGED = 0x047;
    public const int WM_POWER = 0x048;

    public const int WM_COPYDATA = 0x04A;
    public const int WM_CANCELJOURNAL = 0x04B;
    public const int WM_NOTIFY = 0x04E;
    public const int WM_INPUTLANGCHANGEREQUEST = 0x050;
    public const int WM_INPUTLANGCHANGE = 0x051;
    public const int WM_TCARD = 0x052;
    public const int WM_HELP = 0x053;
    public const int WM_USERCHANGED = 0x054;
    public const int WM_NOTIFYFORMAT = 0x055;

    public const int WM_CONTEXTMENU = 0x07B;
    public const int WM_STYLECHANGING = 0x07C;
    public const int WM_STYLECHANGED = 0x07D;
    public const int WM_DISPLAYCHANGE = 0x07E;
    public const int WM_GETICON = 0x07F;
    public const int WM_SETICON = 0x080;

    public const int WM_NCCREATE = 0x081;
    public const int WM_NCDESTROY = 0x082;
    public const int WM_NCCALCSIZE = 0x083;
    public const int WM_NCHITTEST = 0x084;
    public const int WM_NCPAINT = 0x085;
    public const int WM_NCACTIVATE = 0x086;
    public const int WM_GETDLGCODE = 0x087;
    public const int WM_NCMOUSEMOVE = 0x0A0;
    public const int WM_NCLBUTTONDOWN = 0x0A1;
    public const int WM_NCLBUTTONUP = 0x0A2;
    public const int WM_NCLBUTTONDBLCLK = 0x0A3;
    public const int WM_NCRBUTTONDOWN = 0x0A4;
    public const int WM_NCRBUTTONUP = 0x0A5;
    public const int WM_NCRBUTTONDBLCLK = 0x0A6;
    public const int WM_NCMBUTTONDOWN = 0x0A7;
    public const int WM_NCMBUTTONUP = 0x0A8;
    public const int WM_NCMBUTTONDBLCLK = 0x0A9;

    public const int WM_KEYFIRST = 0x100;
    public const int WM_KEYDOWN = 0x100;
    public const int WM_KEYUP = 0x101;
    public const int WM_CHAR = 0x102;
    public const int WM_DEADCHAR = 0x103;
    public const int WM_SYSKEYDOWN = 0x104;
    public const int WM_SYSKEYUP = 0x105;
    public const int WM_SYSCHAR = 0x106;
    public const int WM_SYSDEADCHAR = 0x107;
    public const int WM_KEYLAST = 0x108;

    public const int WM_IME_STARTCOMPOSITION = 0x10D;
    public const int WM_IME_ENDCOMPOSITION = 0x10E;
    public const int WM_IME_COMPOSITION = 0x10F;
    public const int WM_IME_KEYLAST = 0x10F;

    public const int WM_INITDIALOG = 0x110;
    public const int WM_COMMAND = 0x111;
    public const int WM_SYSCOMMAND = 0x112;
    public const int WM_TIMER = 0x113;
    public const int WM_HSCROLL = 0x114;
    public const int WM_VSCROLL = 0x115;
    public const int WM_INITMENU = 0x116;
    public const int WM_INITMENUPOPUP = 0x117;
    public const int WM_MENUSELECT = 0x11F;
    public const int WM_MENUCHAR = 0x120;
    public const int WM_ENTERIDLE = 0x121;

    public const int WM_CTLCOLORMSGBOX = 0x132;
    public const int WM_CTLCOLOREDIT = 0x133;
    public const int WM_CTLCOLORLISTBOX = 0x134;
    public const int WM_CTLCOLORBTN = 0x135;
    public const int WM_CTLCOLORDLG = 0x136;
    public const int WM_CTLCOLORSCROLLBAR = 0x137;
    public const int WM_CTLCOLORSTATIC = 0x138;

    public const int WM_MOUSEFIRST = 0x200;
    public const int WM_MOUSEMOVE = 0x200;
    public const int WM_LBUTTONDOWN = 0x201;
    public const int WM_LBUTTONUP = 0x202;
    public const int WM_LBUTTONDBLCLK = 0x203;
    public const int WM_RBUTTONDOWN = 0x204;
    public const int WM_RBUTTONUP = 0x205;
    public const int WM_RBUTTONDBLCLK = 0x206;
    public const int WM_MBUTTONDOWN = 0x207;
    public const int WM_MBUTTONUP = 0x208;
    public const int WM_MBUTTONDBLCLK = 0x209;
    public const int WM_MOUSELAST = 0x209;

    public const int WM_PARENTNOTIFY = 0x210;
    public const int WM_ENTERMENULOOP = 0x211;
    public const int WM_EXITMENULOOP = 0x212;
    public const int WM_NEXTMENU = 0x213;

    public const int WM_SIZING = 532;
    public const int WM_CAPTURECHANGED = 533;
    public const int WM_MOVING = 534;
    public const int WM_POWERBROADCAST = 536;
    public const int WM_DEVICECHANGE = 537;

    public const int WM_IME_SETCONTEXT = 641;
    public const int WM_IME_NOTIFY = 642;
    public const int WM_IME_CONTROL = 643;
    public const int WM_IME_COMPOSITIONFULL = 644;
    public const int WM_IME_SELECT = 645;
    public const int WM_IME_CHAR = 646;
    public const int WM_IME_KEYDOWN = 656;
    public const int WM_IME_KEYUP = 657;

    public const int WM_MDICREATE = 0x220;
    public const int WM_MDIDESTROY = 0x221;
    public const int WM_MDIACTIVATE = 0x222;
    public const int WM_MDIRESTORE = 0x223;
    public const int WM_MDINEXT = 0x224;
    public const int WM_MDIMAXIMIZE = 0x225;
    public const int WM_MDITILE = 0x226;
    public const int WM_MDICASCADE = 0x227;
    public const int WM_MDIICONARRANGE = 0x228;
    public const int WM_MDIGETACTIVE = 0x229;
    public const int WM_MDISETMENU = 0x230;

    public const int WM_ENTERSIZEMOVE = 0x231;
    public const int WM_EXITSIZEMOVE = 0x232;
    public const int WM_DROPFILES = 0x233;
    public const int WM_MDIREFRESHMENU = 0x234;

    public const int WM_CUT = 0x300;
    public const int WM_COPY = 0x301;
    public const int WM_PASTE = 0x302;
    public const int WM_CLEAR = 0x303;
    public const int WM_UNDO = 0x304;
    public const int WM_RENDERFORMAT = 0x305;
    public const int WM_RENDERALLFORMATS = 0x306;
    public const int WM_DESTROYCLIPBOARD = 0x307;
    public const int WM_DRAWCLIPBOARD = 0x308;
    public const int WM_PAINTCLIPBOARD = 0x309;
    public const int WM_VSCROLLCLIPBOARD = 0x30A;
    public const int WM_SIZECLIPBOARD = 0x30B;
    public const int WM_ASKCBFORMATNAME = 0x30C;
    public const int WM_CHANGECBCHAIN = 0x30D;
    public const int WM_HSCROLLCLIPBOARD = 0x30E;
    public const int WM_QUERYNEWPALETTE = 0x30F;
    public const int WM_PALETTEISCHANGING = 0x310;
    public const int WM_PALETTECHANGED = 0x311;
    public const int WM_HOTKEY = 0x312;

    public const int WM_PRINT = 791;
    public const int WM_PRINTCLIENT = 792;

    public const int WM_HANDHELDFIRST = 856;
    public const int WM_HANDHELDLAST = 863;

    public const int WM_PENWINFIRST = 0x380;
    public const int WM_PENWINLAST = 0x38F;

    public const int WM_COALESCE_FIRST = 0x390;
    public const int WM_COALESCE_LAST = 0x39F;

    public const int WM_DDE_FIRST = 0x3E0;
    public const int WM_DDE_INITIATE = WM_DDE_FIRST + 0;
    public const int WM_DDE_TERMINATE = WM_DDE_FIRST + 1;
    public const int WM_DDE_ADVISE = WM_DDE_FIRST + 2;
    public const int WM_DDE_UNADVISE = WM_DDE_FIRST + 3;
    public const int WM_DDE_ACK = WM_DDE_FIRST + 4;
    public const int WM_DDE_DATA = WM_DDE_FIRST + 5;
    public const int WM_DDE_REQUEST = WM_DDE_FIRST + 6;
    public const int WM_DDE_POKE = WM_DDE_FIRST + 7;
    public const int WM_DDE_EXECUTE = WM_DDE_FIRST + 8;
    public const int WM_DDE_LAST = WM_DDE_FIRST + 8;

    public const int WM_APP = 0x8000;

    //NOTE: All Message Numbers below 0x0400 are RESERVED

    //Private Window Messages Start Here
    public const int WM_USER = 0x400;
}