module System.Win32.Console (
	
	getConsoleCP,
	setConsoleCP,
	getConsoleOutputCP,
	setConsoleOutputCP,
	
	CtrlEvent, cTRL_C_EVENT, cTRL_BREAK_EVENT,
	generateConsoleCtrlEvent
  ) where
import System.Win32.Types
foreign import stdcall unsafe "windows.h GetConsoleCP"
	getConsoleCP :: IO UINT
foreign import stdcall unsafe "windows.h SetConsoleCP"
	setConsoleCP :: UINT -> IO ()
foreign import stdcall unsafe "windows.h GetConsoleOutputCP"
	getConsoleOutputCP :: IO UINT
foreign import stdcall unsafe "windows.h SetConsoleOutputCP"
	setConsoleOutputCP :: UINT -> IO ()
type CtrlEvent = DWORD
cTRL_C_EVENT       :: CtrlEvent
cTRL_C_EVENT       =  0
cTRL_BREAK_EVENT   :: CtrlEvent
cTRL_BREAK_EVENT   =  1
generateConsoleCtrlEvent :: CtrlEvent -> DWORD -> IO ()
generateConsoleCtrlEvent e p
    = failIfFalse_
        "generateConsoleCtrlEvent"
        $ c_GenerateConsoleCtrlEvent e p
foreign import stdcall safe "windows.h GenerateConsoleCtrlEvent"
    c_GenerateConsoleCtrlEvent :: CtrlEvent -> DWORD -> IO BOOL