    {-# INCLUDE <windows.h> #-}
    {-# LINE 1 "Graphics\Win32\Message.hsc" #-}
    -----------------------------------------------------------------------------
    {-# LINE 2 "Graphics\Win32\Message.hsc" #-}
    -- |
    -- Module      :  Graphics.Win32.Message
    -- Copyright   :  (c) Alastair Reid, 1997-2003
    -- License     :  BSD-style (see the file libraries/base/LICENSE)
    --
    -- Maintainer  :  Esa Ilari Vuokko <ei@vuokko.info>
    -- Stability   :  provisional
    -- Portability :  portable
    --
    -- A collection of FFI declarations for interfacing with Win32.
    --
    -----------------------------------------------------------------------------

    module Graphics.Win32.Message where

    import System.Win32.Types

    {-# LINE 20 "Graphics\Win32\Message.hsc" #-}

    type WindowMessage   = DWORD

    wM_COMPACTING         :: WindowMessage
    wM_COMPACTING         =  65
    wM_WININICHANGE       :: WindowMessage
    wM_WININICHANGE       =  26
    wM_SYSCOLORCHANGE     :: WindowMessage
    wM_SYSCOLORCHANGE     =  21
    wM_QUERYNEWPALETTE    :: WindowMessage
    wM_QUERYNEWPALETTE    =  783
    wM_PALETTEISCHANGING  :: WindowMessage
    wM_PALETTEISCHANGING  =  784
    wM_PALETTECHANGED     :: WindowMessage
    wM_PALETTECHANGED     =  785
    wM_FONTCHANGE         :: WindowMessage
    wM_FONTCHANGE         =  29
    wM_SPOOLERSTATUS      :: WindowMessage
    wM_SPOOLERSTATUS      =  42
    wM_DEVMODECHANGE      :: WindowMessage
    wM_DEVMODECHANGE      =  27
    wM_TIMECHANGE         :: WindowMessage
    wM_TIMECHANGE         =  30
    wM_POWER              :: WindowMessage
    wM_POWER              =  72
    wM_QUERYENDSESSION    :: WindowMessage
    wM_QUERYENDSESSION    =  17
    wM_ENDSESSION         :: WindowMessage
    wM_ENDSESSION         =  22
    wM_QUIT               :: WindowMessage
    wM_QUIT               =  18
    wM_CREATE             :: WindowMessage
    wM_CREATE             =  1
    wM_NCCREATE           :: WindowMessage
    wM_NCCREATE           =  129
    wM_DESTROY            :: WindowMessage
    wM_DESTROY            =  2
    wM_NCDESTROY          :: WindowMessage
    wM_NCDESTROY          =  130
    wM_SHOWWINDOW         :: WindowMessage
    wM_SHOWWINDOW         =  24
    wM_SETREDRAW          :: WindowMessage
    wM_SETREDRAW          =  11
    wM_ENABLE             :: WindowMessage
    wM_ENABLE             =  10
    wM_SETTEXT            :: WindowMessage
    wM_SETTEXT            =  12
    wM_GETTEXT            :: WindowMessage
    wM_GETTEXT            =  13
    wM_GETTEXTLENGTH      :: WindowMessage
    wM_GETTEXTLENGTH      =  14
    wM_WINDOWPOSCHANGING  :: WindowMessage
    wM_WINDOWPOSCHANGING  =  70
    wM_WINDOWPOSCHANGED   :: WindowMessage
    wM_WINDOWPOSCHANGED   =  71
    wM_MOVE               :: WindowMessage
    wM_MOVE               =  3
    wM_SIZE               :: WindowMessage
    wM_SIZE               =  5
    wM_QUERYOPEN          :: WindowMessage
    wM_QUERYOPEN          =  19
    wM_CLOSE              :: WindowMessage
    wM_CLOSE              =  16
    wM_GETMINMAXINFO      :: WindowMessage
    wM_GETMINMAXINFO      =  36
    wM_PAINT              :: WindowMessage
    wM_PAINT              =  15
    wM_ERASEBKGND         :: WindowMessage
    wM_ERASEBKGND         =  20
    wM_ICONERASEBKGND     :: WindowMessage
    wM_ICONERASEBKGND     =  39
    wM_NCPAINT            :: WindowMessage
    wM_NCPAINT            =  133
    wM_NCCALCSIZE         :: WindowMessage
    wM_NCCALCSIZE         =  131
    wM_QUERYDRAGICON      :: WindowMessage
    wM_QUERYDRAGICON      =  55
    wM_DROPFILES          :: WindowMessage
    wM_DROPFILES          =  563
    wM_ACTIVATE           :: WindowMessage
    wM_ACTIVATE           =  6
    wM_ACTIVATEAPP        :: WindowMessage
    wM_ACTIVATEAPP        =  28
    wM_NCACTIVATE         :: WindowMessage
    wM_NCACTIVATE         =  134
    wM_SETFOCUS           :: WindowMessage
    wM_SETFOCUS           =  7
    wM_KILLFOCUS          :: WindowMessage
    wM_KILLFOCUS          =  8
    wM_KEYDOWN            :: WindowMessage
    wM_KEYDOWN            =  256
    wM_KEYUP              :: WindowMessage
    wM_KEYUP              =  257
    wM_CHAR               :: WindowMessage
    wM_CHAR               =  258
    wM_DEADCHAR           :: WindowMessage
    wM_DEADCHAR           =  259
    wM_SYSKEYDOWN         :: WindowMessage
    wM_SYSKEYDOWN         =  260
    wM_SYSKEYUP           :: WindowMessage
    wM_SYSKEYUP           =  261
    wM_SYSCHAR            :: WindowMessage
    wM_SYSCHAR            =  262
    wM_SYSDEADCHAR        :: WindowMessage
    wM_SYSDEADCHAR        =  263
    wM_KEYFIRST           :: WindowMessage
    wM_KEYFIRST           =  256
    wM_KEYLAST            :: WindowMessage
    wM_KEYLAST            =  264
    wM_MOUSEMOVE          :: WindowMessage
    wM_MOUSEMOVE          =  512
    wM_LBUTTONDOWN        :: WindowMessage
    wM_LBUTTONDOWN        =  513
    wM_LBUTTONUP          :: WindowMessage
    wM_LBUTTONUP          =  514
    wM_LBUTTONDBLCLK      :: WindowMessage
    wM_LBUTTONDBLCLK      =  515
    wM_RBUTTONDOWN        :: WindowMessage
    wM_RBUTTONDOWN        =  516
    wM_RBUTTONUP          :: WindowMessage
    wM_RBUTTONUP          =  517
    wM_RBUTTONDBLCLK      :: WindowMessage
    wM_RBUTTONDBLCLK      =  518
    wM_MBUTTONDOWN        :: WindowMessage
    wM_MBUTTONDOWN        =  519
    wM_MBUTTONUP          :: WindowMessage
    wM_MBUTTONUP          =  520
    wM_MBUTTONDBLCLK      :: WindowMessage
    wM_MBUTTONDBLCLK      =  521
    wM_MOUSEFIRST         :: WindowMessage
    wM_MOUSEFIRST         =  512
    wM_MOUSELAST          :: WindowMessage
    wM_MOUSELAST          =  522
    wM_NCMOUSEMOVE        :: WindowMessage
    wM_NCMOUSEMOVE        =  160
    wM_NCLBUTTONDOWN      :: WindowMessage
    wM_NCLBUTTONDOWN      =  161
    wM_NCLBUTTONUP        :: WindowMessage
    wM_NCLBUTTONUP        =  162
    wM_NCLBUTTONDBLCLK    :: WindowMessage
    wM_NCLBUTTONDBLCLK    =  163
    wM_NCRBUTTONDOWN      :: WindowMessage
    wM_NCRBUTTONDOWN      =  164
    wM_NCRBUTTONUP        :: WindowMessage
    wM_NCRBUTTONUP        =  165
    wM_NCRBUTTONDBLCLK    :: WindowMessage
    wM_NCRBUTTONDBLCLK    =  166
    wM_NCMBUTTONDOWN      :: WindowMessage
    wM_NCMBUTTONDOWN      =  167
    wM_NCMBUTTONUP        :: WindowMessage
    wM_NCMBUTTONUP        =  168
    wM_NCMBUTTONDBLCLK    :: WindowMessage
    wM_NCMBUTTONDBLCLK    =  169
    wM_MOUSEACTIVATE      :: WindowMessage
    wM_MOUSEACTIVATE      =  33
    wM_CANCELMODE         :: WindowMessage
    wM_CANCELMODE         =  31
    wM_TIMER              :: WindowMessage
    wM_TIMER              =  275
    wM_INITMENU           :: WindowMessage
    wM_INITMENU           =  278
    wM_INITMENUPOPUP      :: WindowMessage
    wM_INITMENUPOPUP      =  279
    wM_MENUSELECT         :: WindowMessage
    wM_MENUSELECT         =  287
    wM_MENUCHAR           :: WindowMessage
    wM_MENUCHAR           =  288
    wM_COMMAND            :: WindowMessage
    wM_COMMAND            =  273
    wM_HSCROLL            :: WindowMessage
    wM_HSCROLL            =  276
    wM_VSCROLL            :: WindowMessage
    wM_VSCROLL            =  277
    wM_CUT                :: WindowMessage
    wM_CUT                =  768
    wM_COPY               :: WindowMessage
    wM_COPY               =  769
    wM_PASTE              :: WindowMessage
    wM_PASTE              =  770
    wM_CLEAR              :: WindowMessage
    wM_CLEAR              =  771
    wM_UNDO               :: WindowMessage
    wM_UNDO               =  772
    wM_RENDERFORMAT       :: WindowMessage
    wM_RENDERFORMAT       =  773
    wM_RENDERALLFORMATS   :: WindowMessage
    wM_RENDERALLFORMATS   =  774
    wM_DESTROYCLIPBOARD   :: WindowMessage
    wM_DESTROYCLIPBOARD   =  775
    wM_DRAWCLIPBOARD      :: WindowMessage
    wM_DRAWCLIPBOARD      =  776
    wM_PAINTCLIPBOARD     :: WindowMessage
    wM_PAINTCLIPBOARD     =  777
    wM_SIZECLIPBOARD      :: WindowMessage
    wM_SIZECLIPBOARD      =  779
    wM_VSCROLLCLIPBOARD   :: WindowMessage
    wM_VSCROLLCLIPBOARD   =  778
    wM_HSCROLLCLIPBOARD   :: WindowMessage
    wM_HSCROLLCLIPBOARD   =  782
    wM_ASKCBFORMATNAME    :: WindowMessage
    wM_ASKCBFORMATNAME    =  780
    wM_CHANGECBCHAIN      :: WindowMessage
    wM_CHANGECBCHAIN      =  781
    wM_SETCURSOR          :: WindowMessage
    wM_SETCURSOR          =  32
    wM_SYSCOMMAND         :: WindowMessage
    wM_SYSCOMMAND         =  274
    wM_MDICREATE          :: WindowMessage
    wM_MDICREATE          =  544
    wM_MDIDESTROY         :: WindowMessage
    wM_MDIDESTROY         =  545
    wM_MDIACTIVATE        :: WindowMessage
    wM_MDIACTIVATE        =  546
    wM_MDIRESTORE         :: WindowMessage
    wM_MDIRESTORE         =  547
    wM_MDINEXT            :: WindowMessage
    wM_MDINEXT            =  548
    wM_MDIMAXIMIZE        :: WindowMessage
    wM_MDIMAXIMIZE        =  549
    wM_MDITILE            :: WindowMessage
    wM_MDITILE            =  550
    wM_MDICASCADE         :: WindowMessage
    wM_MDICASCADE         =  551
    wM_MDIICONARRANGE     :: WindowMessage
    wM_MDIICONARRANGE     =  552
    wM_MDIGETACTIVE       :: WindowMessage
    wM_MDIGETACTIVE       =  553
    wM_MDISETMENU         :: WindowMessage
    wM_MDISETMENU         =  560
    wM_CHILDACTIVATE      :: WindowMessage
    wM_CHILDACTIVATE      =  34
    wM_INITDIALOG         :: WindowMessage
    wM_INITDIALOG         =  272
    wM_NEXTDLGCTL         :: WindowMessage
    wM_NEXTDLGCTL         =  40
    wM_PARENTNOTIFY       :: WindowMessage
    wM_PARENTNOTIFY       =  528
    wM_ENTERIDLE          :: WindowMessage
    wM_ENTERIDLE          =  289
    wM_GETDLGCODE         :: WindowMessage
    wM_GETDLGCODE         =  135
    wM_SETFONT            :: WindowMessage
    wM_SETFONT            =  48
    wM_GETFONT            :: WindowMessage
    wM_GETFONT            =  49
    wM_DRAWITEM           :: WindowMessage
    wM_DRAWITEM           =  43
    wM_MEASUREITEM        :: WindowMessage
    wM_MEASUREITEM        =  44
    wM_DELETEITEM         :: WindowMessage
    wM_DELETEITEM         =  45
    wM_COMPAREITEM        :: WindowMessage
    wM_COMPAREITEM        =  57
    wM_VKEYTOITEM         :: WindowMessage
    wM_VKEYTOITEM         =  46
    wM_CHARTOITEM         :: WindowMessage
    wM_CHARTOITEM         =  47
    wM_QUEUESYNC          :: WindowMessage
    wM_QUEUESYNC          =  35
    wM_USER               :: WindowMessage
    wM_USER               =  1024
    wM_APP                :: WindowMessage
    wM_APP                =  32768

    {-# LINE 155 "Graphics\Win32\Message.hsc" #-}

    registerWindowMessage :: String -> IO WindowMessage
    registerWindowMessage msg =
      withTString msg c_RegisterWindowMessage
    foreign import stdcall unsafe "windows.h RegisterWindowMessageW"
      c_RegisterWindowMessage :: LPCTSTR -> IO WindowMessage

    -- These are WM_SIZE specific
    sIZE_RESTORED         :: WPARAM
    sIZE_RESTORED         =  0
    sIZE_MINIMIZED        :: WPARAM
    sIZE_MINIMIZED        =  1
    sIZE_MAXIMIZED        :: WPARAM
    sIZE_MAXIMIZED        =  2
    sIZE_MAXSHOW          :: WPARAM
    sIZE_MAXSHOW          =  3
    sIZE_MAXHIDE          :: WPARAM
    sIZE_MAXHIDE          =  4

    {-# LINE 170 "Graphics\Win32\Message.hsc" #-}

    ----------------------------------------------------------------
    -- Phew!
    ----------------------------------------------------------------