{-# LINE 1 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} {-# LANGUAGE CPP #-} {- | Module : System.Win32.Automation.Input.Mouse Copyright : 2013 shelarcy License : BSD-style Maintainer : shelarcy@gmail.com Stability : Provisional Portability : Non-portable (Win32 API) Mouse input events -} module System.Win32.Automation.Input.Mouse where import Foreign.Ptr ( Ptr ) import Foreign.Storable ( Storable(..) ) import System.Win32.Types ( LONG, ULONG_PTR ) import System.Win32.Word ( DWORD ) {-# LINE 21 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} {-# LINE 22 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} type PMOUSEINPUT = Ptr MOUSEINPUT data MOUSEINPUT = MOUSEINPUT { dx :: LONG , dy :: LONG , mouseData :: DWORD , dwFlags :: DWORD , time :: DWORD , dwExtraInfo :: ULONG_PTR } deriving Show instance Storable MOUSEINPUT where sizeOf = const (32) {-# LINE 36 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} alignment _ = 8 {-# LINE 37 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} poke buf input = do ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) buf (dx input) {-# LINE 39 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 0)) buf (dx input) {-# LINE 40 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 8)) buf (mouseData input) {-# LINE 41 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 12)) buf (dwFlags input) {-# LINE 42 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 16)) buf (time input) {-# LINE 43 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} ((\hsc_ptr -> pokeByteOff hsc_ptr 24)) buf (dwExtraInfo input) {-# LINE 44 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} peek buf = do dx' <- ((\hsc_ptr -> peekByteOff hsc_ptr 0)) buf {-# LINE 46 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} dy' <- ((\hsc_ptr -> peekByteOff hsc_ptr 4)) buf {-# LINE 47 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} mouseData' <- ((\hsc_ptr -> peekByteOff hsc_ptr 8)) buf {-# LINE 48 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} dwFlags' <- ((\hsc_ptr -> peekByteOff hsc_ptr 12)) buf {-# LINE 49 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} time' <- ((\hsc_ptr -> peekByteOff hsc_ptr 16)) buf {-# LINE 50 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} dwExtraInfo' <- ((\hsc_ptr -> peekByteOff hsc_ptr 24)) buf {-# LINE 51 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} return $ MOUSEINPUT dx' dy' mouseData' dwFlags' time' dwExtraInfo' xBUTTON1 :: DWORD xBUTTON1 = 1 xBUTTON2 :: DWORD xBUTTON2 = 2 {-# LINE 57 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} mOUSEEVENTF_ABSOLUTE :: DWORD mOUSEEVENTF_ABSOLUTE = 32768 mOUSEEVENTF_MOVE :: DWORD mOUSEEVENTF_MOVE = 1 mOUSEEVENTF_LEFTDOWN :: DWORD mOUSEEVENTF_LEFTDOWN = 2 mOUSEEVENTF_LEFTUP :: DWORD mOUSEEVENTF_LEFTUP = 4 mOUSEEVENTF_RIGHTDOWN :: DWORD mOUSEEVENTF_RIGHTDOWN = 8 mOUSEEVENTF_RIGHTUP :: DWORD mOUSEEVENTF_RIGHTUP = 16 mOUSEEVENTF_MIDDLEDOWN :: DWORD mOUSEEVENTF_MIDDLEDOWN = 32 mOUSEEVENTF_MIDDLEUP :: DWORD mOUSEEVENTF_MIDDLEUP = 64 mOUSEEVENTF_WHEEL :: DWORD mOUSEEVENTF_WHEEL = 2048 mOUSEEVENTF_XDOWN :: DWORD mOUSEEVENTF_XDOWN = 128 mOUSEEVENTF_XUP :: DWORD mOUSEEVENTF_XUP = 256 {-# LINE 71 "libraries\\Win32\\System\\Win32\\Automation\\Input\\Mouse.hsc" #-} {- , mOUSEEVENTF_VIRTUALDESK = MOUSEEVENTF_VIRTUALDESK -- I don't know why we can't find this , mOUSEEVENTF_HWHEEL = MOUSEEVENTF_HWHEEL , mOUSEEVENTF_MOVE_NOCOALESCE = MOUSEEVENTF_MOVE_NOCOALESCE -}