-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A binding to part of the Win32 library -- -- A binding to part of the Win32 library. @package Win32 @version 2.5.3.0 -- | Exception handling if using unsupported Win32 API. module System.Win32.Exception.Unsupported data Unsupported MissingLibrary :: FilePath -> String -> Unsupported MissingFunction :: String -> String -> Unsupported MissingValue :: String -> String -> Unsupported missingLibrary :: FilePath -> Unsupported missingFunction :: String -> Unsupported missingValue :: String -> Unsupported missingWin32Function :: String -> String -> Unsupported missingWin32Value :: String -> String -> Unsupported doesn'tSupport :: String upgradeVista :: String removed :: String upgradeWindowsOS :: String -> String unsupportedIfNull :: Unsupported -> IO (Ptr a) -> IO (Ptr a) unsupportedVal :: String -> IO Bool -> String -> a -> a instance GHC.Show.Show System.Win32.Exception.Unsupported.Unsupported instance GHC.Exception.Exception System.Win32.Exception.Unsupported.Unsupported -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.Types type HALF_PTR = Ptr INT32 type DDWORD = Word64 type MbString = Maybe String type MbINT = Maybe INT type ATOM = WORD type WPARAM = UINT_PTR type LPARAM = LONG_PTR type LRESULT = LONG_PTR type SIZE_T = ULONG_PTR type MbATOM = Maybe ATOM type HRESULT = LONG type Addr = Ptr () type LPVOID = Ptr () type LPBOOL = Ptr BOOL type LPBYTE = Ptr BYTE type PUCHAR = Ptr UCHAR type LPDWORD = Ptr DWORD type LPSTR = Ptr CChar type LPCSTR = LPSTR type LPWSTR = Ptr CWchar type LPCWSTR = LPWSTR type LPTSTR = Ptr TCHAR type LPCTSTR = LPTSTR type LPCTSTR_ = LPCTSTR maybePtr :: Maybe (Ptr a) -> Ptr a ptrToMaybe :: Ptr a -> Maybe (Ptr a) maybeNum :: Num a => Maybe a -> a numToMaybe :: (Eq a, Num a) => a -> Maybe a type MbLPVOID = Maybe LPVOID type MbLPCSTR = Maybe LPCSTR type MbLPCTSTR = Maybe LPCTSTR withTString :: String -> (LPTSTR -> IO a) -> IO a withTStringLen :: String -> ((LPTSTR, Int) -> IO a) -> IO a peekTString :: LPCTSTR -> IO String peekTStringLen :: (LPCTSTR, Int) -> IO String newTString :: String -> IO LPCTSTR type TCHAR = CWchar type HANDLE = Ptr () type ForeignHANDLE = ForeignPtr () newForeignHANDLE :: HANDLE -> IO ForeignHANDLE handleToWord :: HANDLE -> UINT_PTR type HKEY = ForeignHANDLE type PKEY = HANDLE nullHANDLE :: HANDLE type MbHANDLE = Maybe HANDLE type HINSTANCE = Ptr () type MbHINSTANCE = Maybe HINSTANCE type HMODULE = Ptr () type MbHMODULE = Maybe HMODULE nullFinalHANDLE :: ForeignPtr a iNVALID_HANDLE_VALUE :: HANDLE _open_osfhandle :: CIntPtr -> CInt -> IO CInt -- | Create a Haskell Handle from a Windows HANDLE. -- -- Beware that this function allocates a new file descriptor. A -- consequence of this is that calling hANDLEToHandle on the -- standard Windows handles will not give you stdin, -- stdout, or stderr. For example, if you run this code: -- --
--   import Graphics.Win32.Misc
--   stdoutHANDLE <- getStdHandle sTD_OUTPUT_HANDLE
--   stdout2 <- hANDLEToHandle stdoutHANDLE
--   
-- -- Then although you can use stdout2 to write to standard -- output, it is not the case that stdout == stdout2. hANDLEToHandle :: HANDLE -> IO Handle c_get_osfhandle :: CInt -> IO HANDLE -- | Extract a Windows HANDLE from a Haskell Handle and -- perform an action on it. withHandleToHANDLE :: Handle -> (HANDLE -> IO a) -> IO a withStablePtr :: a -> (StablePtr a -> IO b) -> IO b type ErrCode = DWORD failIf :: (a -> Bool) -> String -> IO a -> IO a failIf_ :: (a -> Bool) -> String -> IO a -> IO () failIfNeg :: (Num a, Ord a) => String -> IO a -> IO a failIfNull :: String -> IO (Ptr a) -> IO (Ptr a) failIfZero :: (Eq a, Num a) => String -> IO a -> IO a failIfFalse_ :: String -> IO Bool -> IO () failUnlessSuccess :: String -> IO ErrCode -> IO () failUnlessSuccessOr :: ErrCode -> String -> IO ErrCode -> IO Bool eRROR_INSUFFICIENT_BUFFER :: ErrCode eRROR_MOD_NOT_FOUND :: ErrCode eRROR_PROC_NOT_FOUND :: ErrCode errorWin :: String -> IO a failWith :: String -> ErrCode -> IO a c_maperrno_func :: ErrCode -> IO Errno ddwordToDwords :: DDWORD -> (DWORD, DWORD) dwordsToDdword :: (DWORD, DWORD) -> DDWORD try :: String -> (LPTSTR -> UINT -> IO UINT) -> UINT -> IO String deleteObjectFinaliser :: FunPtr (Ptr a -> IO ()) localFree :: Ptr a -> IO (Ptr a) getLastError :: IO ErrCode setLastError :: ErrCode -> IO () getErrorMessage :: DWORD -> IO LPWSTR lOWORD :: DWORD -> WORD hIWORD :: DWORD -> WORD castUINTPtrToPtr :: UINT_PTR -> Ptr a castPtrToUINTPtr :: Ptr s -> UINT_PTR type LCID = DWORD type LANGID = WORD type SortID = WORD mAKELCID :: LANGID -> SortID -> LCID lANGIDFROMLCID :: LCID -> LANGID sORTIDFROMLCID :: LCID -> SortID type SubLANGID = WORD type PrimaryLANGID = WORD mAKELANGID :: PrimaryLANGID -> SubLANGID -> LANGID pRIMARYLANGID :: LANGID -> PrimaryLANGID sUBLANGID :: LANGID -> SubLANGID type BOOL = Bool type BYTE = Word8 type UCHAR = CUChar type USHORT = Word16 type UINT = Word32 type INT = Int32 type WORD = Word16 type DWORD = Word32 type LONG = Int32 type FLOAT = Float type LARGE_INTEGER = Int64 type DWORD32 = Word32 type DWORD64 = Word64 type INT32 = Int32 type INT64 = Int64 type LONG32 = Int32 type LONG64 = Int64 type UINT32 = Word32 type UINT64 = Word64 type ULONG32 = Word32 type ULONG64 = Word64 type SHORT = Int16 type DWORD_PTR = Ptr DWORD32 type INT_PTR = Ptr CInt type ULONG = Word32 type UINT_PTR = Word type LONG_PTR = CIntPtr type ULONG_PTR = CUIntPtr -- | The constant nullPtr contains a distinguished value of -- Ptr that is not associated with a valid memory location. nullPtr :: Ptr a -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.Message type WindowMessage = DWORD wM_COMPACTING :: WindowMessage wM_WININICHANGE :: WindowMessage wM_SYSCOLORCHANGE :: WindowMessage wM_QUERYNEWPALETTE :: WindowMessage wM_PALETTEISCHANGING :: WindowMessage wM_PALETTECHANGED :: WindowMessage wM_FONTCHANGE :: WindowMessage wM_SPOOLERSTATUS :: WindowMessage wM_DEVMODECHANGE :: WindowMessage wM_TIMECHANGE :: WindowMessage wM_POWER :: WindowMessage wM_QUERYENDSESSION :: WindowMessage wM_ENDSESSION :: WindowMessage wM_QUIT :: WindowMessage wM_CREATE :: WindowMessage wM_NCCREATE :: WindowMessage wM_DESTROY :: WindowMessage wM_NCDESTROY :: WindowMessage wM_SHOWWINDOW :: WindowMessage wM_SETREDRAW :: WindowMessage wM_ENABLE :: WindowMessage wM_SETTEXT :: WindowMessage wM_GETTEXT :: WindowMessage wM_GETTEXTLENGTH :: WindowMessage wM_WINDOWPOSCHANGING :: WindowMessage wM_WINDOWPOSCHANGED :: WindowMessage wM_MOVE :: WindowMessage wM_SIZE :: WindowMessage wM_QUERYOPEN :: WindowMessage wM_CLOSE :: WindowMessage wM_GETMINMAXINFO :: WindowMessage wM_PAINT :: WindowMessage wM_ERASEBKGND :: WindowMessage wM_ICONERASEBKGND :: WindowMessage wM_NCPAINT :: WindowMessage wM_NCCALCSIZE :: WindowMessage wM_QUERYDRAGICON :: WindowMessage wM_DROPFILES :: WindowMessage wM_ACTIVATE :: WindowMessage wM_ACTIVATEAPP :: WindowMessage wM_NCACTIVATE :: WindowMessage wM_SETFOCUS :: WindowMessage wM_KILLFOCUS :: WindowMessage wM_KEYDOWN :: WindowMessage wM_KEYUP :: WindowMessage wM_CHAR :: WindowMessage wM_DEADCHAR :: WindowMessage wM_SYSKEYDOWN :: WindowMessage wM_SYSKEYUP :: WindowMessage wM_SYSCHAR :: WindowMessage wM_SYSDEADCHAR :: WindowMessage wM_KEYFIRST :: WindowMessage wM_KEYLAST :: WindowMessage wM_MOUSEMOVE :: WindowMessage wM_LBUTTONDOWN :: WindowMessage wM_LBUTTONUP :: WindowMessage wM_LBUTTONDBLCLK :: WindowMessage wM_RBUTTONDOWN :: WindowMessage wM_RBUTTONUP :: WindowMessage wM_RBUTTONDBLCLK :: WindowMessage wM_MBUTTONDOWN :: WindowMessage wM_MBUTTONUP :: WindowMessage wM_MBUTTONDBLCLK :: WindowMessage wM_MOUSEFIRST :: WindowMessage wM_MOUSELAST :: WindowMessage wM_NCMOUSEMOVE :: WindowMessage wM_NCLBUTTONDOWN :: WindowMessage registerWindowMessage :: String -> IO WindowMessage wM_NCLBUTTONUP :: WindowMessage wM_NCLBUTTONDBLCLK :: WindowMessage c_RegisterWindowMessage :: LPCTSTR -> IO WindowMessage wM_NCRBUTTONDOWN :: WindowMessage sIZE_RESTORED :: WPARAM wM_NCRBUTTONUP :: WindowMessage sIZE_MINIMIZED :: WPARAM wM_NCRBUTTONDBLCLK :: WindowMessage sIZE_MAXIMIZED :: WPARAM wM_NCMBUTTONDOWN :: WindowMessage sIZE_MAXSHOW :: WPARAM wM_NCMBUTTONUP :: WindowMessage sIZE_MAXHIDE :: WPARAM wM_NCMBUTTONDBLCLK :: WindowMessage wM_MOUSEACTIVATE :: WindowMessage wM_CANCELMODE :: WindowMessage wM_TIMER :: WindowMessage wM_INITMENU :: WindowMessage wM_INITMENUPOPUP :: WindowMessage wM_MENUSELECT :: WindowMessage wM_MENUCHAR :: WindowMessage wM_COMMAND :: WindowMessage wM_HSCROLL :: WindowMessage wM_VSCROLL :: WindowMessage wM_CUT :: WindowMessage wM_COPY :: WindowMessage wM_PASTE :: WindowMessage wM_CLEAR :: WindowMessage wM_UNDO :: WindowMessage wM_RENDERFORMAT :: WindowMessage wM_RENDERALLFORMATS :: WindowMessage wM_DESTROYCLIPBOARD :: WindowMessage wM_DRAWCLIPBOARD :: WindowMessage wM_PAINTCLIPBOARD :: WindowMessage wM_SIZECLIPBOARD :: WindowMessage wM_VSCROLLCLIPBOARD :: WindowMessage wM_HSCROLLCLIPBOARD :: WindowMessage wM_ASKCBFORMATNAME :: WindowMessage wM_CHANGECBCHAIN :: WindowMessage wM_SETCURSOR :: WindowMessage wM_SYSCOMMAND :: WindowMessage wM_MDICREATE :: WindowMessage wM_MDIDESTROY :: WindowMessage wM_MDIACTIVATE :: WindowMessage wM_MDIRESTORE :: WindowMessage wM_MDINEXT :: WindowMessage wM_MDIMAXIMIZE :: WindowMessage wM_MDITILE :: WindowMessage wM_MDICASCADE :: WindowMessage wM_MDIICONARRANGE :: WindowMessage wM_MDIGETACTIVE :: WindowMessage wM_MDISETMENU :: WindowMessage wM_CHILDACTIVATE :: WindowMessage wM_INITDIALOG :: WindowMessage wM_NEXTDLGCTL :: WindowMessage wM_PARENTNOTIFY :: WindowMessage wM_ENTERIDLE :: WindowMessage wM_GETDLGCODE :: WindowMessage wM_SETFONT :: WindowMessage wM_GETFONT :: WindowMessage wM_DRAWITEM :: WindowMessage wM_MEASUREITEM :: WindowMessage wM_DELETEITEM :: WindowMessage wM_COMPAREITEM :: WindowMessage wM_VKEYTOITEM :: WindowMessage wM_CHARTOITEM :: WindowMessage wM_QUEUESYNC :: WindowMessage wM_USER :: WindowMessage wM_APP :: WindowMessage -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.Resource beginUpdateResource :: String -> Bool -> IO HANDLE c_BeginUpdateResource :: LPCTSTR -> Bool -> IO HANDLE type ResourceImageType = UINT type HRSRC = Ptr () type HGLOBAL = Ptr () iMAGE_BITMAP :: ResourceImageType iMAGE_ICON :: ResourceImageType iMAGE_CURSOR :: ResourceImageType copyImage :: HANDLE -> ResourceImageType -> Int -> Int -> UINT -> IO HANDLE c_CopyImage :: HANDLE -> ResourceImageType -> Int -> Int -> UINT -> IO HANDLE endUpdateResource :: HANDLE -> BOOL -> IO () c_EndUpdateResource :: HANDLE -> BOOL -> IO Bool type ResourceType = LPCTSTR rT_ACCELERATOR :: ResourceType rT_ANICURSOR :: ResourceType rT_ANIICON :: ResourceType rT_BITMAP :: ResourceType rT_CURSOR :: ResourceType rT_DIALOG :: ResourceType rT_FONT :: ResourceType rT_FONTDIR :: ResourceType rT_GROUP_CURSOR :: ResourceType rT_GROUP_ICON :: ResourceType rT_HTML :: ResourceType findResource :: HMODULE -> String -> ResourceType -> IO HRSRC rT_ICON :: ResourceType rT_MENU :: ResourceType c_FindResource :: HMODULE -> LPCTSTR -> LPCTSTR -> IO HRSRC rT_MESSAGETABLE :: ResourceType rT_RCDATA :: ResourceType findResourceEx :: HMODULE -> String -> ResourceType -> WORD -> IO HRSRC rT_STRING :: ResourceType rT_VERSION :: ResourceType c_FindResourceEx :: HMODULE -> LPCTSTR -> LPCTSTR -> WORD -> IO HRSRC type ResourceSize = Int lR_DEFAULTSIZE :: ResourceSize type LoadImageFlags = UINT lR_DEFAULTCOLOR :: LoadImageFlags lR_CREATEDIBSECTION :: LoadImageFlags lR_LOADFROMFILE :: LoadImageFlags lR_LOADMAP3DCOLORS :: LoadImageFlags lR_LOADTRANSPARENT :: LoadImageFlags lR_MONOCHROME :: LoadImageFlags lR_SHARED :: LoadImageFlags loadImage :: HINSTANCE -> String -> ResourceImageType -> ResourceSize -> ResourceSize -> LoadImageFlags -> IO HANDLE c_LoadImage :: HINSTANCE -> LPCTSTR -> ResourceImageType -> ResourceSize -> ResourceSize -> LoadImageFlags -> IO HANDLE loadResource :: HMODULE -> HRSRC -> IO HGLOBAL c_LoadResource :: HMODULE -> HRSRC -> IO HGLOBAL lockResource :: HGLOBAL -> IO Addr c_LockResource :: HGLOBAL -> IO Addr sizeofResource :: HMODULE -> HRSRC -> IO DWORD c_SizeofResource :: HMODULE -> HRSRC -> IO DWORD updateResource :: HANDLE -> ResourceType -> String -> WORD -> Addr -> DWORD -> IO () c_UpdateResource :: HANDLE -> LPCTSTR -> LPCTSTR -> WORD -> Addr -> DWORD -> IO Bool -- | Utilities for primitive marshalling of Windows' C strings. module System.Win32.String type LPSTR = Ptr CChar type LPCSTR = LPSTR type LPWSTR = Ptr CWchar type LPCWSTR = LPWSTR type TCHAR = CWchar type LPTSTR = Ptr TCHAR type LPCTSTR = LPTSTR type LPCTSTR_ = LPCTSTR withTString :: String -> (LPTSTR -> IO a) -> IO a withTStringLen :: String -> ((LPTSTR, Int) -> IO a) -> IO a peekTString :: LPCTSTR -> IO String peekTStringLen :: (LPCTSTR, Int) -> IO String newTString :: String -> IO LPCTSTR -- | Marshal a dummy Haskell string into a NUL terminated C wide string -- using temporary storage. -- -- withTStringBuffer :: Int -> (LPTSTR -> IO a) -> IO a -- | Marshal a dummy Haskell string into a C wide string (i.e. wide -- character array) in temporary storage, with explicit length -- information. -- -- withTStringBufferLen :: Int -> ((LPTSTR, Int) -> IO a) -> IO a -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.Info type SystemColor = UINT cOLOR_SCROLLBAR :: SystemColor cOLOR_BACKGROUND :: SystemColor cOLOR_ACTIVECAPTION :: SystemColor cOLOR_INACTIVECAPTION :: SystemColor cOLOR_MENU :: SystemColor cOLOR_WINDOW :: SystemColor cOLOR_WINDOWFRAME :: SystemColor cOLOR_MENUTEXT :: SystemColor cOLOR_WINDOWTEXT :: SystemColor cOLOR_CAPTIONTEXT :: SystemColor cOLOR_ACTIVEBORDER :: SystemColor cOLOR_INACTIVEBORDER :: SystemColor cOLOR_APPWORKSPACE :: SystemColor cOLOR_HIGHLIGHT :: SystemColor cOLOR_HIGHLIGHTTEXT :: SystemColor cOLOR_BTNFACE :: SystemColor getSystemDirectory :: IO String cOLOR_BTNSHADOW :: SystemColor getWindowsDirectory :: IO String cOLOR_GRAYTEXT :: SystemColor cOLOR_BTNTEXT :: SystemColor getCurrentDirectory :: IO String cOLOR_INACTIVECAPTIONTEXT :: SystemColor getTemporaryDirectory :: IO String cOLOR_BTNHIGHLIGHT :: SystemColor getFullPathName :: FilePath -> IO FilePath getLongPathName :: FilePath -> IO FilePath getShortPathName :: FilePath -> IO FilePath searchPath :: Maybe String -> FilePath -> String -> IO (Maybe FilePath) c_getWindowsDirectory :: LPTSTR -> UINT -> IO UINT c_getSystemDirectory :: LPTSTR -> UINT -> IO UINT c_getCurrentDirectory :: DWORD -> LPTSTR -> IO UINT c_getTempPath :: DWORD -> LPTSTR -> IO UINT c_GetFullPathName :: LPCTSTR -> DWORD -> LPTSTR -> Ptr LPTSTR -> IO DWORD c_GetLongPathName :: LPCTSTR -> LPTSTR -> DWORD -> IO DWORD c_GetShortPathName :: LPCTSTR -> LPTSTR -> DWORD -> IO DWORD c_SearchPath :: LPCTSTR -> LPCTSTR -> LPCTSTR -> DWORD -> LPTSTR -> Ptr LPTSTR -> IO DWORD data ProcessorArchitecture PaUnknown :: WORD -> ProcessorArchitecture PaIntel :: ProcessorArchitecture PaMips :: ProcessorArchitecture PaAlpha :: ProcessorArchitecture PaPpc :: ProcessorArchitecture PaIa64 :: ProcessorArchitecture PaIa32OnIa64 :: ProcessorArchitecture PaAmd64 :: ProcessorArchitecture data SYSTEM_INFO SYSTEM_INFO :: ProcessorArchitecture -> DWORD -> LPVOID -> DWORD -> DWORD -> DWORD -> DWORD -> WORD -> WORD -> SYSTEM_INFO [siProcessorArchitecture] :: SYSTEM_INFO -> ProcessorArchitecture [siPageSize] :: SYSTEM_INFO -> DWORD [siMinimumApplicationAddress, siMaximumApplicationAddress] :: SYSTEM_INFO -> LPVOID [siActiveProcessorMask] :: SYSTEM_INFO -> DWORD [siNumberOfProcessors] :: SYSTEM_INFO -> DWORD [siProcessorType] :: SYSTEM_INFO -> DWORD [siAllocationGranularity] :: SYSTEM_INFO -> DWORD [siProcessorLevel] :: SYSTEM_INFO -> WORD [siProcessorRevision] :: SYSTEM_INFO -> WORD c_GetSystemInfo :: Ptr SYSTEM_INFO -> IO () getSystemInfo :: IO SYSTEM_INFO type SMSetting = UINT sM_ARRANGE :: SMSetting sM_CLEANBOOT :: SMSetting sM_CMETRICS :: SMSetting sM_CMOUSEBUTTONS :: SMSetting sM_CXBORDER :: SMSetting sM_CYBORDER :: SMSetting sM_CXCURSOR :: SMSetting sM_CYCURSOR :: SMSetting sM_CXDLGFRAME :: SMSetting sM_CYDLGFRAME :: SMSetting sM_CXDOUBLECLK :: SMSetting sM_CYDOUBLECLK :: SMSetting sM_CXDRAG :: SMSetting sM_CYDRAG :: SMSetting sM_CXEDGE :: SMSetting sM_CYEDGE :: SMSetting sM_CXFRAME :: SMSetting sM_CYFRAME :: SMSetting sM_CXFULLSCREEN :: SMSetting sM_CYFULLSCREEN :: SMSetting sM_CXHSCROLL :: SMSetting sM_CYVSCROLL :: SMSetting sM_CXICON :: SMSetting sM_CYICON :: SMSetting sM_CXICONSPACING :: SMSetting sM_CYICONSPACING :: SMSetting sM_CXMAXIMIZED :: SMSetting sM_CYMAXIMIZED :: SMSetting sM_CXMENUCHECK :: SMSetting sM_CYMENUCHECK :: SMSetting sM_CXMENUSIZE :: SMSetting sM_CYMENUSIZE :: SMSetting sM_CXMIN :: SMSetting sM_CYMIN :: SMSetting sM_CXMINIMIZED :: SMSetting sM_CYMINIMIZED :: SMSetting sM_CXMINTRACK :: SMSetting sM_CYMINTRACK :: SMSetting sM_CXSCREEN :: SMSetting sM_CYSCREEN :: SMSetting sM_CXSIZE :: SMSetting sM_CYSIZE :: SMSetting sM_CXSIZEFRAME :: SMSetting c_GetUserName :: LPTSTR -> LPDWORD -> IO Bool sM_CYSIZEFRAME :: SMSetting getUserName :: IO String sM_CXSMICON :: SMSetting sM_CYSMICON :: SMSetting sM_CXSMSIZE :: SMSetting sM_CYSMSIZE :: SMSetting sM_CXVSCROLL :: SMSetting sM_CYHSCROLL :: SMSetting sM_CYVTHUMB :: SMSetting sM_CYCAPTION :: SMSetting sM_CYKANJIWINDOW :: SMSetting sM_CYMENU :: SMSetting sM_CYSMCAPTION :: SMSetting sM_DBCSENABLED :: SMSetting sM_DEBUG :: SMSetting sM_MENUDROPALIGNMENT :: SMSetting sM_MIDEASTENABLED :: SMSetting sM_MOUSEPRESENT :: SMSetting sM_NETWORK :: SMSetting sM_PENWINDOWS :: SMSetting sM_SECURE :: SMSetting sM_SHOWSOUNDS :: SMSetting sM_SLOWMACHINE :: SMSetting sM_SWAPBUTTON :: SMSetting instance GHC.Show.Show System.Win32.Info.SYSTEM_INFO instance GHC.Classes.Eq System.Win32.Info.ProcessorArchitecture instance GHC.Show.Show System.Win32.Info.ProcessorArchitecture instance Foreign.Storable.Storable System.Win32.Info.ProcessorArchitecture instance Foreign.Storable.Storable System.Win32.Info.SYSTEM_INFO -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.DLL disableThreadLibraryCalls :: HMODULE -> IO () c_DisableThreadLibraryCalls :: HMODULE -> IO Bool freeLibrary :: HMODULE -> IO () c_FreeLibrary :: HMODULE -> IO Bool c_FreeLibraryFinaliser :: FunPtr (HMODULE -> IO ()) getModuleFileName :: HMODULE -> IO String c_GetModuleFileName :: HMODULE -> LPTSTR -> Int -> IO Bool getModuleHandle :: Maybe String -> IO HMODULE c_GetModuleHandle :: LPCTSTR -> IO HMODULE getProcAddress :: HMODULE -> String -> IO Addr c_GetProcAddress :: HMODULE -> LPCSTR -> IO Addr loadLibrary :: String -> IO HINSTANCE c_LoadLibrary :: LPCTSTR -> IO HINSTANCE type LoadLibraryFlags = DWORD lOAD_LIBRARY_AS_DATAFILE :: LoadLibraryFlags lOAD_WITH_ALTERED_SEARCH_PATH :: LoadLibraryFlags loadLibraryEx :: String -> HANDLE -> LoadLibraryFlags -> IO HINSTANCE c_LoadLibraryEx :: LPCTSTR -> HANDLE -> LoadLibraryFlags -> IO HINSTANCE setDllDirectory :: String -> IO () c_SetDllDirectory :: LPTSTR -> IO BOOL -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.Mem data MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION :: Addr -> Addr -> DWORD -> SIZE_T -> DWORD -> DWORD -> DWORD -> MEMORY_BASIC_INFORMATION [mbiBaseAddress] :: MEMORY_BASIC_INFORMATION -> Addr [mbiAllocationBase] :: MEMORY_BASIC_INFORMATION -> Addr [mbiAllocationProtect] :: MEMORY_BASIC_INFORMATION -> DWORD [mbiRegionSize] :: MEMORY_BASIC_INFORMATION -> SIZE_T [mbiState] :: MEMORY_BASIC_INFORMATION -> DWORD [mbiProtect] :: MEMORY_BASIC_INFORMATION -> DWORD [mbiType] :: MEMORY_BASIC_INFORMATION -> DWORD copyMemory :: Ptr a -> Ptr a -> DWORD -> IO () moveMemory :: Ptr a -> Ptr a -> DWORD -> IO () fillMemory :: Ptr a -> DWORD -> BYTE -> IO () zeroMemory :: Ptr a -> DWORD -> IO () memset :: Ptr a -> CInt -> CSize -> IO () getProcessHeap :: IO HANDLE getProcessHeaps :: DWORD -> Addr -> IO DWORD type HGLOBAL = Addr type GlobalAllocFlags = UINT gMEM_INVALID_HANDLE :: GlobalAllocFlags gMEM_FIXED :: GlobalAllocFlags gMEM_MOVEABLE :: GlobalAllocFlags gPTR :: GlobalAllocFlags gHND :: GlobalAllocFlags gMEM_DDESHARE :: GlobalAllocFlags gMEM_SHARE :: GlobalAllocFlags gMEM_LOWER :: GlobalAllocFlags gMEM_NOCOMPACT :: GlobalAllocFlags globalAlloc :: GlobalAllocFlags -> DWORD -> IO HGLOBAL gMEM_NODISCARD :: GlobalAllocFlags gMEM_NOT_BANKED :: GlobalAllocFlags c_GlobalAlloc :: GlobalAllocFlags -> DWORD -> IO HGLOBAL gMEM_NOTIFY :: GlobalAllocFlags gMEM_ZEROINIT :: GlobalAllocFlags globalFlags :: HGLOBAL -> IO GlobalAllocFlags c_GlobalFlags :: HGLOBAL -> IO GlobalAllocFlags globalFree :: HGLOBAL -> IO HGLOBAL c_GlobalFree :: HGLOBAL -> IO HGLOBAL globalHandle :: Addr -> IO HGLOBAL c_GlobalHandle :: Addr -> IO HGLOBAL globalLock :: HGLOBAL -> IO Addr c_GlobalLock :: HGLOBAL -> IO Addr globalReAlloc :: HGLOBAL -> DWORD -> GlobalAllocFlags -> IO HGLOBAL c_GlobalReAlloc :: HGLOBAL -> DWORD -> GlobalAllocFlags -> IO HGLOBAL globalSize :: HGLOBAL -> IO DWORD c_GlobalSize :: HGLOBAL -> IO DWORD globalUnlock :: HGLOBAL -> IO () c_GlobalUnlock :: HGLOBAL -> IO Bool type HeapAllocFlags = DWORD hEAP_GENERATE_EXCEPTIONS :: HeapAllocFlags hEAP_NO_SERIALIZE :: HeapAllocFlags hEAP_ZERO_MEMORY :: HeapAllocFlags heapAlloc :: HANDLE -> HeapAllocFlags -> DWORD -> IO Addr c_HeapAlloc :: HANDLE -> HeapAllocFlags -> DWORD -> IO Addr heapCompact :: HANDLE -> HeapAllocFlags -> IO UINT c_HeapCompact :: HANDLE -> HeapAllocFlags -> IO UINT heapCreate :: HeapAllocFlags -> DWORD -> DWORD -> IO HANDLE c_HeapCreate :: HeapAllocFlags -> DWORD -> DWORD -> IO HANDLE heapDestroy :: HANDLE -> IO () c_HeapDestroy :: HANDLE -> IO Bool heapFree :: HANDLE -> HeapAllocFlags -> Addr -> IO () c_HeapFree :: HANDLE -> HeapAllocFlags -> Addr -> IO Bool heapLock :: HANDLE -> IO () c_HeapLock :: HANDLE -> IO Bool heapReAlloc :: HANDLE -> HeapAllocFlags -> Addr -> DWORD -> IO Addr c_HeapReAlloc :: HANDLE -> HeapAllocFlags -> Addr -> DWORD -> IO Addr heapSize :: HANDLE -> HeapAllocFlags -> Addr -> IO DWORD c_HeapSize :: HANDLE -> HeapAllocFlags -> Addr -> IO DWORD heapUnlock :: HANDLE -> IO () c_HeapUnlock :: HANDLE -> IO Bool heapValidate :: HANDLE -> HeapAllocFlags -> Addr -> IO Bool type VirtualAllocFlags = DWORD mEM_COMMIT :: VirtualAllocFlags mEM_RESERVE :: VirtualAllocFlags type ProtectFlags = DWORD pAGE_READONLY :: ProtectFlags pAGE_READWRITE :: ProtectFlags pAGE_EXECUTE :: ProtectFlags pAGE_EXECUTE_READ :: ProtectFlags pAGE_EXECUTE_READWRITE :: ProtectFlags pAGE_GUARD :: ProtectFlags type FreeFlags = DWORD pAGE_NOACCESS :: ProtectFlags mEM_DECOMMIT :: FreeFlags pAGE_NOCACHE :: ProtectFlags mEM_RELEASE :: FreeFlags virtualAlloc :: Addr -> DWORD -> VirtualAllocFlags -> ProtectFlags -> IO Addr c_VirtualAlloc :: Addr -> DWORD -> DWORD -> DWORD -> IO Addr virtualFree :: Addr -> DWORD -> FreeFlags -> IO () c_VirtualFree :: Addr -> DWORD -> FreeFlags -> IO Bool virtualLock :: Addr -> DWORD -> IO () c_VirtualLock :: Addr -> DWORD -> IO Bool virtualProtect :: Addr -> DWORD -> ProtectFlags -> IO ProtectFlags c_VirtualProtect :: Addr -> DWORD -> DWORD -> Ptr DWORD -> IO Bool virtualProtectEx :: HANDLE -> Addr -> DWORD -> ProtectFlags -> IO ProtectFlags c_VirtualProtectEx :: HANDLE -> Addr -> DWORD -> DWORD -> Ptr DWORD -> IO Bool virtualQueryEx :: HANDLE -> LPVOID -> Ptr MEMORY_BASIC_INFORMATION -> SIZE_T -> IO DWORD c_VirtualQueryEx :: HANDLE -> LPVOID -> Ptr MEMORY_BASIC_INFORMATION -> SIZE_T -> IO DWORD virtualUnlock :: Addr -> DWORD -> IO () c_VirtualUnlock :: Addr -> DWORD -> IO Bool instance GHC.Show.Show System.Win32.Mem.MEMORY_BASIC_INFORMATION instance Foreign.Storable.Storable System.Win32.Mem.MEMORY_BASIC_INFORMATION -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.NLS lOCALE_SYSTEM_DEFAULT :: LCID lOCALE_USER_DEFAULT :: LCID lOCALE_NEUTRAL :: LCID convertDefaultLocale :: LCID -> IO LCID type CodePage = UINT cP_ACP :: CodePage cP_MACCP :: CodePage cP_OEMCP :: CodePage getACP :: IO CodePage setThreadLocale :: LCID -> IO () type LCTYPE = UINT lOCALE_ICALENDARTYPE :: LCTYPE lOCALE_SDATE :: LCTYPE lOCALE_ICURRDIGITS :: LCTYPE lOCALE_SDECIMAL :: LCTYPE lOCALE_ICURRENCY :: LCTYPE lOCALE_SGROUPING :: LCTYPE lOCALE_IDIGITS :: LCTYPE lOCALE_SLIST :: LCTYPE lOCALE_IFIRSTDAYOFWEEK :: LCTYPE lOCALE_SLONGDATE :: LCTYPE lOCALE_IFIRSTWEEKOFYEAR :: LCTYPE lOCALE_SMONDECIMALSEP :: LCTYPE lOCALE_ILZERO :: LCTYPE lOCALE_SMONGROUPING :: LCTYPE lOCALE_IMEASURE :: LCTYPE lOCALE_SMONTHOUSANDSEP :: LCTYPE setLocaleInfo :: LCID -> LCTYPE -> String -> IO () lOCALE_INEGCURR :: LCTYPE lOCALE_SNEGATIVESIGN :: LCTYPE c_SetLocaleInfo :: LCID -> LCTYPE -> LPCTSTR -> IO Bool lOCALE_INEGNUMBER :: LCTYPE type LCMapFlags = DWORD lOCALE_SPOSITIVESIGN :: LCTYPE lOCALE_SSHORTDATE :: LCTYPE lCMAP_BYTEREV :: LCMapFlags lOCALE_ITIME :: LCTYPE lCMAP_FULLWIDTH :: LCMapFlags lOCALE_STHOUSAND :: LCTYPE lCMAP_HALFWIDTH :: LCMapFlags lOCALE_S1159 :: LCTYPE lCMAP_HIRAGANA :: LCMapFlags lOCALE_STIME :: LCTYPE lCMAP_KATAKANA :: LCMapFlags lOCALE_S2359 :: LCTYPE lCMAP_LOWERCASE :: LCMapFlags lOCALE_STIMEFORMAT :: LCTYPE lCMAP_SORTKEY :: LCMapFlags lOCALE_SCURRENCY :: LCTYPE lCMAP_UPPERCASE :: LCMapFlags nORM_IGNORECASE :: LCMapFlags nORM_IGNORENONSPACE :: LCMapFlags nORM_IGNOREKANATYPE :: LCMapFlags lCMapString :: LCID -> LCMapFlags -> String -> Int -> IO String nORM_IGNORESYMBOLS :: LCMapFlags nORM_IGNOREWIDTH :: LCMapFlags sORT_STRINGSORT :: LCMapFlags c_LCMapString :: LCID -> LCMapFlags -> LPCTSTR -> Int -> LPCTSTR -> Int -> IO Int lCMAP_LINGUISTIC_CASING :: LCMapFlags type LocaleTestFlags = DWORD lCMAP_SIMPLIFIED_CHINESE :: LCMapFlags lCID_INSTALLED :: LocaleTestFlags lCMAP_TRADITIONAL_CHINESE :: LCMapFlags lCID_SUPPORTED :: LocaleTestFlags isValidLocale :: LCID -> LocaleTestFlags -> IO Bool isValidCodePage :: CodePage -> IO Bool getUserDefaultLCID :: LCID getUserDefaultLangID :: LANGID getThreadLocale :: IO LCID getSystemDefaultLCID :: LCID getSystemDefaultLangID :: LANGID getOEMCP :: CodePage lANG_NEUTRAL :: PrimaryLANGID lANG_BULGARIAN :: PrimaryLANGID lANG_CHINESE :: PrimaryLANGID lANG_CZECH :: PrimaryLANGID lANG_DANISH :: PrimaryLANGID lANG_GERMAN :: PrimaryLANGID lANG_GREEK :: PrimaryLANGID lANG_ENGLISH :: PrimaryLANGID lANG_SPANISH :: PrimaryLANGID lANG_FINNISH :: PrimaryLANGID lANG_FRENCH :: PrimaryLANGID lANG_HUNGARIAN :: PrimaryLANGID lANG_ICELANDIC :: PrimaryLANGID lANG_ITALIAN :: PrimaryLANGID lANG_JAPANESE :: PrimaryLANGID lANG_KOREAN :: PrimaryLANGID lANG_DUTCH :: PrimaryLANGID lANG_NORWEGIAN :: PrimaryLANGID lANG_POLISH :: PrimaryLANGID lANG_PORTUGUESE :: PrimaryLANGID lANG_ROMANIAN :: PrimaryLANGID lANG_RUSSIAN :: PrimaryLANGID lANG_CROATIAN :: PrimaryLANGID lANG_SLOVAK :: PrimaryLANGID lANG_SWEDISH :: PrimaryLANGID lANG_TURKISH :: PrimaryLANGID lANG_SLOVENIAN :: PrimaryLANGID lANG_ARABIC :: PrimaryLANGID lANG_CATALAN :: PrimaryLANGID lANG_HEBREW :: PrimaryLANGID lANG_SERBIAN :: PrimaryLANGID lANG_ALBANIAN :: PrimaryLANGID lANG_THAI :: PrimaryLANGID lANG_URDU :: PrimaryLANGID lANG_INDONESIAN :: PrimaryLANGID lANG_BELARUSIAN :: PrimaryLANGID lANG_ESTONIAN :: PrimaryLANGID sORT_DEFAULT :: SortID lANG_LATVIAN :: PrimaryLANGID sORT_JAPANESE_XJIS :: SortID lANG_LITHUANIAN :: PrimaryLANGID sORT_JAPANESE_UNICODE :: SortID lANG_FARSI :: PrimaryLANGID sORT_CHINESE_BIG5 :: SortID lANG_VIETNAMESE :: PrimaryLANGID sORT_CHINESE_UNICODE :: SortID lANG_ARMENIAN :: PrimaryLANGID sORT_KOREAN_KSC :: SortID sUBLANG_NEUTRAL :: SubLANGID lANG_AZERI :: PrimaryLANGID sORT_KOREAN_UNICODE :: SortID sUBLANG_DEFAULT :: SubLANGID lANG_BASQUE :: PrimaryLANGID sUBLANG_SYS_DEFAULT :: SubLANGID lANG_MACEDONIAN :: PrimaryLANGID sUBLANG_CHINESE_TRADITIONAL :: SubLANGID lANG_AFRIKAANS :: PrimaryLANGID sUBLANG_CHINESE_SIMPLIFIED :: SubLANGID lANG_GEORGIAN :: PrimaryLANGID sUBLANG_CHINESE_HONGKONG :: SubLANGID lANG_FAEROESE :: PrimaryLANGID sUBLANG_CHINESE_SINGAPORE :: SubLANGID lANG_HINDI :: PrimaryLANGID sUBLANG_DUTCH :: SubLANGID lANG_MALAY :: PrimaryLANGID sUBLANG_DUTCH_BELGIAN :: SubLANGID lANG_KAZAK :: PrimaryLANGID sUBLANG_ENGLISH_US :: SubLANGID lANG_SWAHILI :: PrimaryLANGID sUBLANG_ENGLISH_UK :: SubLANGID lANG_UZBEK :: PrimaryLANGID sUBLANG_ENGLISH_AUS :: SubLANGID lANG_TATAR :: PrimaryLANGID sUBLANG_ENGLISH_CAN :: SubLANGID lANG_BENGALI :: PrimaryLANGID sUBLANG_ENGLISH_NZ :: SubLANGID lANG_PUNJABI :: PrimaryLANGID sUBLANG_ENGLISH_EIRE :: SubLANGID lANG_GUJARATI :: PrimaryLANGID sUBLANG_FRENCH :: SubLANGID lANG_ORIYA :: PrimaryLANGID sUBLANG_FRENCH_BELGIAN :: SubLANGID lANG_TAMIL :: PrimaryLANGID sUBLANG_FRENCH_CANADIAN :: SubLANGID lANG_TELUGU :: PrimaryLANGID sUBLANG_FRENCH_SWISS :: SubLANGID lANG_KANNADA :: PrimaryLANGID sUBLANG_GERMAN :: SubLANGID lANG_MALAYALAM :: PrimaryLANGID sUBLANG_GERMAN_SWISS :: SubLANGID lANG_ASSAMESE :: PrimaryLANGID sUBLANG_GERMAN_AUSTRIAN :: SubLANGID lANG_MARATHI :: PrimaryLANGID sUBLANG_ITALIAN :: SubLANGID lANG_SANSKRIT :: PrimaryLANGID sUBLANG_ITALIAN_SWISS :: SubLANGID lANG_KONKANI :: PrimaryLANGID sUBLANG_NORWEGIAN_BOKMAL :: SubLANGID lANG_MANIPURI :: PrimaryLANGID sUBLANG_NORWEGIAN_NYNORSK :: SubLANGID lANG_SINDHI :: PrimaryLANGID sUBLANG_PORTUGUESE :: SubLANGID lANG_KASHMIRI :: PrimaryLANGID sUBLANG_PORTUGUESE_BRAZILIAN :: SubLANGID lANG_NEPALI :: PrimaryLANGID sUBLANG_SPANISH :: SubLANGID sUBLANG_SPANISH_MEXICAN :: SubLANGID sUBLANG_SPANISH_MODERN :: SubLANGID sUBLANG_ARABIC_SAUDI_ARABIA :: SubLANGID sUBLANG_ARABIC_IRAQ :: SubLANGID sUBLANG_ARABIC_EGYPT :: SubLANGID sUBLANG_ARABIC_LIBYA :: SubLANGID sUBLANG_ARABIC_ALGERIA :: SubLANGID sUBLANG_ARABIC_MOROCCO :: SubLANGID sUBLANG_ARABIC_TUNISIA :: SubLANGID sUBLANG_ARABIC_OMAN :: SubLANGID sUBLANG_ARABIC_YEMEN :: SubLANGID sUBLANG_ARABIC_SYRIA :: SubLANGID sUBLANG_ARABIC_JORDAN :: SubLANGID sUBLANG_ARABIC_LEBANON :: SubLANGID sUBLANG_ARABIC_KUWAIT :: SubLANGID sUBLANG_ARABIC_UAE :: SubLANGID sUBLANG_ARABIC_BAHRAIN :: SubLANGID sUBLANG_ARABIC_QATAR :: SubLANGID sUBLANG_AZERI_CYRILLIC :: SubLANGID sUBLANG_AZERI_LATIN :: SubLANGID sUBLANG_CHINESE_MACAU :: SubLANGID -- | The IO input functions (e.g. getLine) don't -- automatically convert to Unicode, so this function is provided to make -- the conversion from a multibyte string in the given code page to a -- proper Unicode string. To get the code page for the console, use -- getConsoleCP. sUBLANG_ENGLISH_SOUTH_AFRICA :: SubLANGID sUBLANG_ENGLISH_JAMAICA :: SubLANGID sUBLANG_ENGLISH_CARIBBEAN :: SubLANGID stringToUnicode :: CodePage -> String -> IO String sUBLANG_ENGLISH_BELIZE :: SubLANGID sUBLANG_ENGLISH_TRINIDAD :: SubLANGID sUBLANG_ENGLISH_PHILIPPINES :: SubLANGID sUBLANG_ENGLISH_ZIMBABWE :: SubLANGID sUBLANG_FRENCH_LUXEMBOURG :: SubLANGID sUBLANG_FRENCH_MONACO :: SubLANGID sUBLANG_GERMAN_LUXEMBOURG :: SubLANGID sUBLANG_GERMAN_LIECHTENSTEIN :: SubLANGID sUBLANG_KASHMIRI_INDIA :: SubLANGID sUBLANG_KOREAN :: SubLANGID sUBLANG_LITHUANIAN :: SubLANGID multiByteToWideChar :: CodePage -> DWORD -> LPCSTR -> CInt -> LPWSTR -> CInt -> IO CInt sUBLANG_MALAY_MALAYSIA :: SubLANGID sUBLANG_MALAY_BRUNEI_DARUSSALAM :: SubLANGID sUBLANG_NEPALI_INDIA :: SubLANGID sUBLANG_SERBIAN_LATIN :: SubLANGID sUBLANG_SERBIAN_CYRILLIC :: SubLANGID sUBLANG_SPANISH_GUATEMALA :: SubLANGID sUBLANG_SPANISH_COSTA_RICA :: SubLANGID sUBLANG_SPANISH_PANAMA :: SubLANGID sUBLANG_SPANISH_DOMINICAN_REPUBLIC :: SubLANGID sUBLANG_SPANISH_VENEZUELA :: SubLANGID sUBLANG_SPANISH_COLOMBIA :: SubLANGID sUBLANG_SPANISH_PERU :: SubLANGID sUBLANG_SPANISH_ARGENTINA :: SubLANGID sUBLANG_SPANISH_ECUADOR :: SubLANGID sUBLANG_SPANISH_CHILE :: SubLANGID sUBLANG_SPANISH_URUGUAY :: SubLANGID sUBLANG_SPANISH_PARAGUAY :: SubLANGID sUBLANG_SPANISH_BOLIVIA :: SubLANGID sUBLANG_SPANISH_EL_SALVADOR :: SubLANGID sUBLANG_SPANISH_HONDURAS :: SubLANGID sUBLANG_SPANISH_NICARAGUA :: SubLANGID sUBLANG_SPANISH_PUERTO_RICO :: SubLANGID sUBLANG_SWEDISH :: SubLANGID sUBLANG_SWEDISH_FINLAND :: SubLANGID sUBLANG_URDU_PAKISTAN :: SubLANGID sUBLANG_URDU_INDIA :: SubLANGID sUBLANG_UZBEK_LATIN :: SubLANGID sUBLANG_UZBEK_CYRILLIC :: SubLANGID type LCID = DWORD type LANGID = WORD type SortID = WORD type SubLANGID = WORD type PrimaryLANGID = WORD mAKELCID :: LANGID -> SortID -> LCID lANGIDFROMLCID :: LCID -> LANGID sORTIDFROMLCID :: LCID -> SortID mAKELANGID :: PrimaryLANGID -> SubLANGID -> LANGID pRIMARYLANGID :: LANGID -> PrimaryLANGID sUBLANGID :: LANGID -> SubLANGID -- | A collection of FFI declarations for interfacing with Win32 Time API. module System.Win32.Time newtype FILETIME FILETIME :: DDWORD -> FILETIME data SYSTEMTIME SYSTEMTIME :: WORD -> SYSTEMTIME [wYear, wMonth, wDayOfWeek, wDay, wHour, wMinute, wSecond, wMilliseconds] :: SYSTEMTIME -> WORD data TIME_ZONE_INFORMATION TIME_ZONE_INFORMATION :: LONG -> String -> SYSTEMTIME -> LONG -> String -> SYSTEMTIME -> LONG -> TIME_ZONE_INFORMATION [tziBias] :: TIME_ZONE_INFORMATION -> LONG [tziStandardName] :: TIME_ZONE_INFORMATION -> String [tziStandardDate] :: TIME_ZONE_INFORMATION -> SYSTEMTIME [tziStandardBias] :: TIME_ZONE_INFORMATION -> LONG [tziDaylightName] :: TIME_ZONE_INFORMATION -> String [tziDaylightDate] :: TIME_ZONE_INFORMATION -> SYSTEMTIME [tziDaylightBias] :: TIME_ZONE_INFORMATION -> LONG data TimeZoneId TzIdUnknown :: TimeZoneId TzIdStandard :: TimeZoneId TzIdDaylight :: TimeZoneId c_GetSystemTime :: Ptr SYSTEMTIME -> IO () getSystemTime :: IO SYSTEMTIME c_SetSystemTime :: Ptr SYSTEMTIME -> IO BOOL setSystemTime :: SYSTEMTIME -> IO () c_GetSystemTimeAsFileTime :: Ptr FILETIME -> IO () getSystemTimeAsFileTime :: IO FILETIME c_GetLocalTime :: Ptr SYSTEMTIME -> IO () getLocalTime :: IO SYSTEMTIME c_SetLocalTime :: Ptr SYSTEMTIME -> IO BOOL setLocalTime :: SYSTEMTIME -> IO () c_GetSystemTimeAdjustment :: Ptr DWORD -> Ptr DWORD -> Ptr BOOL -> IO BOOL getSystemTimeAdjustment :: IO (Maybe (Int, Int)) getTickCount :: IO DWORD c_SetSystemTimeAdjustment :: DWORD -> BOOL -> IO BOOL setSystemTimeAdjustment :: Maybe Int -> IO () c_GetTimeZoneInformation :: Ptr TIME_ZONE_INFORMATION -> IO DWORD getTimeZoneInformation :: IO (TimeZoneId, TIME_ZONE_INFORMATION) c_SystemTimeToFileTime :: Ptr SYSTEMTIME -> Ptr FILETIME -> IO BOOL systemTimeToFileTime :: SYSTEMTIME -> IO FILETIME c_FileTimeToSystemTime :: Ptr FILETIME -> Ptr SYSTEMTIME -> IO BOOL fileTimeToSystemTime :: FILETIME -> IO SYSTEMTIME c_GetFileTime :: HANDLE -> Ptr FILETIME -> Ptr FILETIME -> Ptr FILETIME -> IO BOOL getFileTime :: HANDLE -> IO (FILETIME, FILETIME, FILETIME) c_SetFileTime :: HANDLE -> Ptr FILETIME -> Ptr FILETIME -> Ptr FILETIME -> IO BOOL setFileTime :: HANDLE -> FILETIME -> FILETIME -> FILETIME -> IO () c_FileTimeToLocalFileTime :: Ptr FILETIME -> Ptr FILETIME -> IO BOOL fileTimeToLocalFileTime :: FILETIME -> IO FILETIME c_LocalFileTimeToFileTime :: Ptr FILETIME -> Ptr FILETIME -> IO BOOL localFileTimeToFileTime :: FILETIME -> IO FILETIME c_QueryPerformanceFrequency :: Ptr LARGE_INTEGER -> IO BOOL queryPerformanceFrequency :: IO Integer c_QueryPerformanceCounter :: Ptr LARGE_INTEGER -> IO BOOL queryPerformanceCounter :: IO Integer type GetTimeFormatFlags = DWORD lOCALE_NOUSEROVERRIDE :: GetTimeFormatFlags lOCALE_USE_CP_ACP :: GetTimeFormatFlags tIME_NOMINUTESORSECONDS :: GetTimeFormatFlags tIME_NOSECONDS :: GetTimeFormatFlags tIME_NOTIMEMARKER :: GetTimeFormatFlags c_GetTimeFormat :: LCID -> GetTimeFormatFlags -> Ptr SYSTEMTIME -> LPCTSTR -> LPTSTR -> CInt -> IO CInt tIME_FORCE24HOURFORMAT :: GetTimeFormatFlags getTimeFormat :: LCID -> GetTimeFormatFlags -> SYSTEMTIME -> String -> IO String instance GHC.Classes.Ord System.Win32.Time.TimeZoneId instance GHC.Classes.Eq System.Win32.Time.TimeZoneId instance GHC.Show.Show System.Win32.Time.TimeZoneId instance GHC.Classes.Ord System.Win32.Time.TIME_ZONE_INFORMATION instance GHC.Classes.Eq System.Win32.Time.TIME_ZONE_INFORMATION instance GHC.Show.Show System.Win32.Time.TIME_ZONE_INFORMATION instance GHC.Classes.Ord System.Win32.Time.SYSTEMTIME instance GHC.Classes.Eq System.Win32.Time.SYSTEMTIME instance GHC.Show.Show System.Win32.Time.SYSTEMTIME instance GHC.Classes.Ord System.Win32.Time.FILETIME instance GHC.Classes.Eq System.Win32.Time.FILETIME instance GHC.Show.Show System.Win32.Time.FILETIME instance Foreign.Storable.Storable System.Win32.Time.FILETIME instance Foreign.Storable.Storable System.Win32.Time.SYSTEMTIME instance Foreign.Storable.Storable System.Win32.Time.TIME_ZONE_INFORMATION -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.File type AccessMode = UINT gENERIC_NONE :: AccessMode gENERIC_READ :: AccessMode gENERIC_WRITE :: AccessMode gENERIC_EXECUTE :: AccessMode gENERIC_ALL :: AccessMode dELETE :: AccessMode rEAD_CONTROL :: AccessMode wRITE_DAC :: AccessMode wRITE_OWNER :: AccessMode sYNCHRONIZE :: AccessMode sTANDARD_RIGHTS_REQUIRED :: AccessMode sTANDARD_RIGHTS_READ :: AccessMode sTANDARD_RIGHTS_WRITE :: AccessMode sTANDARD_RIGHTS_EXECUTE :: AccessMode sTANDARD_RIGHTS_ALL :: AccessMode sPECIFIC_RIGHTS_ALL :: AccessMode aCCESS_SYSTEM_SECURITY :: AccessMode mAXIMUM_ALLOWED :: AccessMode fILE_ADD_FILE :: AccessMode fILE_ADD_SUBDIRECTORY :: AccessMode type ShareMode = UINT fILE_ALL_ACCESS :: AccessMode fILE_SHARE_NONE :: ShareMode fILE_APPEND_DATA :: AccessMode fILE_SHARE_READ :: ShareMode fILE_CREATE_PIPE_INSTANCE :: AccessMode fILE_SHARE_WRITE :: ShareMode fILE_DELETE_CHILD :: AccessMode fILE_SHARE_DELETE :: ShareMode fILE_EXECUTE :: AccessMode fILE_LIST_DIRECTORY :: AccessMode type CreateMode = UINT fILE_READ_ATTRIBUTES :: AccessMode cREATE_NEW :: CreateMode fILE_READ_DATA :: AccessMode cREATE_ALWAYS :: CreateMode fILE_READ_EA :: AccessMode oPEN_EXISTING :: CreateMode fILE_TRAVERSE :: AccessMode oPEN_ALWAYS :: CreateMode fILE_WRITE_ATTRIBUTES :: AccessMode tRUNCATE_EXISTING :: CreateMode fILE_WRITE_DATA :: AccessMode type FileAttributeOrFlag = UINT fILE_WRITE_EA :: AccessMode fILE_ATTRIBUTE_READONLY :: FileAttributeOrFlag fILE_ATTRIBUTE_HIDDEN :: FileAttributeOrFlag fILE_ATTRIBUTE_SYSTEM :: FileAttributeOrFlag fILE_ATTRIBUTE_DIRECTORY :: FileAttributeOrFlag fILE_ATTRIBUTE_ARCHIVE :: FileAttributeOrFlag fILE_ATTRIBUTE_NORMAL :: FileAttributeOrFlag fILE_ATTRIBUTE_TEMPORARY :: FileAttributeOrFlag fILE_ATTRIBUTE_COMPRESSED :: FileAttributeOrFlag fILE_ATTRIBUTE_REPARSE_POINT :: FileAttributeOrFlag fILE_FLAG_WRITE_THROUGH :: FileAttributeOrFlag sECURITY_ANONYMOUS :: FileAttributeOrFlag fILE_FLAG_OVERLAPPED :: FileAttributeOrFlag sECURITY_IDENTIFICATION :: FileAttributeOrFlag fILE_FLAG_NO_BUFFERING :: FileAttributeOrFlag sECURITY_IMPERSONATION :: FileAttributeOrFlag fILE_FLAG_RANDOM_ACCESS :: FileAttributeOrFlag sECURITY_DELEGATION :: FileAttributeOrFlag fILE_FLAG_SEQUENTIAL_SCAN :: FileAttributeOrFlag sECURITY_CONTEXT_TRACKING :: FileAttributeOrFlag fILE_FLAG_DELETE_ON_CLOSE :: FileAttributeOrFlag sECURITY_EFFECTIVE_ONLY :: FileAttributeOrFlag fILE_FLAG_BACKUP_SEMANTICS :: FileAttributeOrFlag sECURITY_SQOS_PRESENT :: FileAttributeOrFlag fILE_FLAG_POSIX_SEMANTICS :: FileAttributeOrFlag type MoveFileFlag = DWORD sECURITY_VALID_SQOS_FLAGS :: FileAttributeOrFlag mOVEFILE_REPLACE_EXISTING :: MoveFileFlag mOVEFILE_COPY_ALLOWED :: MoveFileFlag mOVEFILE_DELAY_UNTIL_REBOOT :: MoveFileFlag type FilePtrDirection = DWORD fILE_BEGIN :: FilePtrDirection fILE_CURRENT :: FilePtrDirection fILE_END :: FilePtrDirection type DriveType = UINT dRIVE_UNKNOWN :: DriveType dRIVE_NO_ROOT_DIR :: DriveType dRIVE_REMOVABLE :: DriveType dRIVE_FIXED :: DriveType dRIVE_REMOTE :: DriveType dRIVE_CDROM :: DriveType type DefineDosDeviceFlags = DWORD dRIVE_RAMDISK :: DriveType dDD_RAW_TARGET_PATH :: DefineDosDeviceFlags dDD_REMOVE_DEFINITION :: DefineDosDeviceFlags dDD_EXACT_MATCH_ON_REMOVE :: DefineDosDeviceFlags type BinaryType = DWORD sCS_32BIT_BINARY :: BinaryType sCS_DOS_BINARY :: BinaryType sCS_WOW_BINARY :: BinaryType sCS_PIF_BINARY :: BinaryType sCS_POSIX_BINARY :: BinaryType sCS_OS216_BINARY :: BinaryType type FileNotificationFlag = DWORD fILE_NOTIFY_CHANGE_FILE_NAME :: FileNotificationFlag fILE_NOTIFY_CHANGE_DIR_NAME :: FileNotificationFlag fILE_NOTIFY_CHANGE_ATTRIBUTES :: FileNotificationFlag fILE_NOTIFY_CHANGE_SIZE :: FileNotificationFlag fILE_NOTIFY_CHANGE_LAST_WRITE :: FileNotificationFlag fILE_NOTIFY_CHANGE_SECURITY :: FileNotificationFlag type FileType = DWORD fILE_TYPE_UNKNOWN :: FileType fILE_TYPE_DISK :: FileType fILE_TYPE_CHAR :: FileType fILE_TYPE_PIPE :: FileType fILE_TYPE_REMOTE :: FileType newtype GET_FILEEX_INFO_LEVELS GET_FILEEX_INFO_LEVELS :: (Word32) -> GET_FILEEX_INFO_LEVELS getFileExInfoStandard :: GET_FILEEX_INFO_LEVELS getFileExMaxInfoLevel :: GET_FILEEX_INFO_LEVELS type LPSECURITY_ATTRIBUTES = Ptr () type MbLPSECURITY_ATTRIBUTES = Maybe LPSECURITY_ATTRIBUTES data BY_HANDLE_FILE_INFORMATION BY_HANDLE_FILE_INFORMATION :: FileAttributeOrFlag -> FILETIME -> DWORD -> DDWORD -> DWORD -> DDWORD -> BY_HANDLE_FILE_INFORMATION [bhfiFileAttributes] :: BY_HANDLE_FILE_INFORMATION -> FileAttributeOrFlag [bhfiCreationTime, bhfiLastAccessTime, bhfiLastWriteTime] :: BY_HANDLE_FILE_INFORMATION -> FILETIME [bhfiVolumeSerialNumber] :: BY_HANDLE_FILE_INFORMATION -> DWORD [bhfiSize] :: BY_HANDLE_FILE_INFORMATION -> DDWORD [bhfiNumberOfLinks] :: BY_HANDLE_FILE_INFORMATION -> DWORD [bhfiFileIndex] :: BY_HANDLE_FILE_INFORMATION -> DDWORD data WIN32_FILE_ATTRIBUTE_DATA WIN32_FILE_ATTRIBUTE_DATA :: DWORD -> FILETIME -> DDWORD -> WIN32_FILE_ATTRIBUTE_DATA [fadFileAttributes] :: WIN32_FILE_ATTRIBUTE_DATA -> DWORD [fadCreationTime, fadLastAccessTime, fadLastWriteTime] :: WIN32_FILE_ATTRIBUTE_DATA -> FILETIME [fadFileSize] :: WIN32_FILE_ATTRIBUTE_DATA -> DDWORD -- | like failIfFalse_, but retried on sharing violations. This is -- necessary for many file operations; see -- http://support.microsoft.com/kb/316609 failIfWithRetry :: (a -> Bool) -> String -> IO a -> IO a failIfWithRetry_ :: (a -> Bool) -> String -> IO a -> IO () failIfFalseWithRetry_ :: String -> IO Bool -> IO () deleteFile :: String -> IO () c_DeleteFile :: LPCTSTR -> IO Bool copyFile :: String -> String -> Bool -> IO () c_CopyFile :: LPCTSTR -> LPCTSTR -> Bool -> IO Bool moveFile :: String -> String -> IO () c_MoveFile :: LPCTSTR -> LPCTSTR -> IO Bool moveFileEx :: String -> String -> MoveFileFlag -> IO () c_MoveFileEx :: LPCTSTR -> LPCTSTR -> MoveFileFlag -> IO Bool setCurrentDirectory :: String -> IO () c_SetCurrentDirectory :: LPCTSTR -> IO Bool createDirectory :: String -> Maybe LPSECURITY_ATTRIBUTES -> IO () c_CreateDirectory :: LPCTSTR -> LPSECURITY_ATTRIBUTES -> IO Bool createDirectoryEx :: String -> String -> Maybe LPSECURITY_ATTRIBUTES -> IO () c_CreateDirectoryEx :: LPCTSTR -> LPCTSTR -> LPSECURITY_ATTRIBUTES -> IO Bool removeDirectory :: String -> IO () c_RemoveDirectory :: LPCTSTR -> IO Bool getBinaryType :: String -> IO BinaryType c_GetBinaryType :: LPCTSTR -> Ptr DWORD -> IO Bool createFile :: String -> AccessMode -> ShareMode -> Maybe LPSECURITY_ATTRIBUTES -> CreateMode -> FileAttributeOrFlag -> Maybe HANDLE -> IO HANDLE c_CreateFile :: LPCTSTR -> AccessMode -> ShareMode -> LPSECURITY_ATTRIBUTES -> CreateMode -> FileAttributeOrFlag -> HANDLE -> IO HANDLE closeHandle :: HANDLE -> IO () c_CloseHandle :: HANDLE -> IO Bool c_CloseHandleFinaliser :: FunPtr (Ptr a -> IO ()) getFileType :: HANDLE -> IO FileType flushFileBuffers :: HANDLE -> IO () c_FlushFileBuffers :: HANDLE -> IO Bool setEndOfFile :: HANDLE -> IO () c_SetEndOfFile :: HANDLE -> IO Bool setFileAttributes :: String -> FileAttributeOrFlag -> IO () c_SetFileAttributes :: LPCTSTR -> FileAttributeOrFlag -> IO Bool getFileAttributes :: String -> IO FileAttributeOrFlag c_GetFileAttributes :: LPCTSTR -> IO FileAttributeOrFlag getFileAttributesExStandard :: String -> IO WIN32_FILE_ATTRIBUTE_DATA c_GetFileAttributesEx :: LPCTSTR -> GET_FILEEX_INFO_LEVELS -> Ptr a -> IO BOOL getFileInformationByHandle :: HANDLE -> IO BY_HANDLE_FILE_INFORMATION c_GetFileInformationByHandle :: HANDLE -> Ptr BY_HANDLE_FILE_INFORMATION -> IO BOOL type LPOVERLAPPED = Ptr () type MbLPOVERLAPPED = Maybe LPOVERLAPPED win32_ReadFile :: HANDLE -> Ptr a -> DWORD -> Maybe LPOVERLAPPED -> IO DWORD c_ReadFile :: HANDLE -> Ptr a -> DWORD -> Ptr DWORD -> LPOVERLAPPED -> IO Bool win32_WriteFile :: HANDLE -> Ptr a -> DWORD -> Maybe LPOVERLAPPED -> IO DWORD c_WriteFile :: HANDLE -> Ptr a -> DWORD -> Ptr DWORD -> LPOVERLAPPED -> IO Bool findFirstChangeNotification :: String -> Bool -> FileNotificationFlag -> IO HANDLE c_FindFirstChangeNotification :: LPCTSTR -> Bool -> FileNotificationFlag -> IO HANDLE findNextChangeNotification :: HANDLE -> IO () c_FindNextChangeNotification :: HANDLE -> IO Bool findCloseChangeNotification :: HANDLE -> IO () c_FindCloseChangeNotification :: HANDLE -> IO Bool type WIN32_FIND_DATA = () newtype FindData FindData :: (ForeignPtr WIN32_FIND_DATA) -> FindData getFindDataFileName :: FindData -> IO FilePath findFirstFile :: String -> IO (HANDLE, FindData) c_FindFirstFile :: LPCTSTR -> Ptr WIN32_FIND_DATA -> IO HANDLE findNextFile :: HANDLE -> FindData -> IO Bool c_FindNextFile :: HANDLE -> Ptr WIN32_FIND_DATA -> IO BOOL findClose :: HANDLE -> IO () c_FindClose :: HANDLE -> IO BOOL defineDosDevice :: DefineDosDeviceFlags -> String -> String -> IO () c_DefineDosDevice :: DefineDosDeviceFlags -> LPCTSTR -> LPCTSTR -> IO Bool areFileApisANSI :: IO Bool setFileApisToOEM :: IO () setFileApisToANSI :: IO () setHandleCount :: UINT -> IO UINT getLogicalDrives :: IO DWORD c_GetLogicalDrives :: IO DWORD getDiskFreeSpace :: Maybe String -> IO (DWORD, DWORD, DWORD, DWORD) c_GetDiskFreeSpace :: LPCTSTR -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> IO Bool setVolumeLabel :: String -> String -> IO () c_SetVolumeLabel :: LPCTSTR -> LPCTSTR -> IO Bool instance GHC.Show.Show System.Win32.File.WIN32_FILE_ATTRIBUTE_DATA instance GHC.Show.Show System.Win32.File.BY_HANDLE_FILE_INFORMATION instance GHC.Classes.Ord System.Win32.File.GET_FILEEX_INFO_LEVELS instance GHC.Classes.Eq System.Win32.File.GET_FILEEX_INFO_LEVELS instance Foreign.Storable.Storable System.Win32.File.BY_HANDLE_FILE_INFORMATION instance Foreign.Storable.Storable System.Win32.File.WIN32_FILE_ATTRIBUTE_DATA -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.Process iNFINITE :: DWORD sleep :: DWORD -> IO () type ProcessId = DWORD type ProcessHandle = HANDLE type ProcessAccessRights = DWORD pROCESS_ALL_ACCESS :: ProcessAccessRights pROCESS_CREATE_PROCESS :: ProcessAccessRights pROCESS_CREATE_THREAD :: ProcessAccessRights pROCESS_DUP_HANDLE :: ProcessAccessRights pROCESS_QUERY_INFORMATION :: ProcessAccessRights pROCESS_SET_QUOTA :: ProcessAccessRights pROCESS_SET_INFORMATION :: ProcessAccessRights pROCESS_TERMINATE :: ProcessAccessRights c_OpenProcess :: ProcessAccessRights -> BOOL -> ProcessId -> IO ProcessHandle pROCESS_VM_OPERATION :: ProcessAccessRights pROCESS_VM_READ :: ProcessAccessRights openProcess :: ProcessAccessRights -> BOOL -> ProcessId -> IO ProcessHandle pROCESS_VM_WRITE :: ProcessAccessRights sYNCHORNIZE :: ProcessAccessRights c_GetProcessId :: ProcessHandle -> IO ProcessId getProcessId :: ProcessHandle -> IO ProcessId c_GetCurrentProcess :: IO ProcessHandle c_GetCurrentProcessId :: IO ProcessId getCurrentProcessId :: IO ProcessId getCurrentProcess :: IO ProcessHandle type Th32SnapHandle = HANDLE type Th32SnapFlags = DWORD -- | ProcessId, number of threads, parent ProcessId, process base priority, -- path of executable file type ProcessEntry32 = (ProcessId, Int, ProcessId, LONG, String) tH32CS_SNAPALL :: Th32SnapFlags tH32CS_SNAPHEAPLIST :: Th32SnapFlags tH32CS_SNAPMODULE :: Th32SnapFlags tH32CS_SNAPPROCESS :: Th32SnapFlags tH32CS_SNAPTHREAD :: Th32SnapFlags c_CreateToolhelp32Snapshot :: Th32SnapFlags -> ProcessId -> IO Th32SnapHandle c_Process32First :: Th32SnapHandle -> Ptr ProcessEntry32 -> IO BOOL c_Process32Next :: Th32SnapHandle -> Ptr ProcessEntry32 -> IO BOOL -- | Create a snapshot of specified resources. Call closeHandle to close -- snapshot. createToolhelp32Snapshot :: Th32SnapFlags -> Maybe ProcessId -> IO Th32SnapHandle withTh32Snap :: Th32SnapFlags -> Maybe ProcessId -> (Th32SnapHandle -> IO a) -> IO a peekProcessEntry32 :: Ptr ProcessEntry32 -> IO ProcessEntry32 -- | Enumerate processes using Process32First and Process32Next th32SnapEnumProcesses :: Th32SnapHandle -> IO [ProcessEntry32] -- | A collection of FFI declarations for interfacing with Win32 mapped -- files. module System.Win32.FileMapping -- | Maps file fully and returns ForeignPtr and length of the mapped area. -- The mapped file is opened read-only and shared reading. mapFile :: FilePath -> IO (ForeignPtr a, Int) -- | As mapFile, but returns ByteString mapFileBs :: FilePath -> IO ByteString data MappedObject MappedObject :: HANDLE -> HANDLE -> FileMapAccess -> MappedObject -- | Opens an existing file and creates mapping object to it. withMappedFile :: FilePath -> Bool -> Maybe Bool -> (Integer -> MappedObject -> IO a) -> IO a -- | Maps area into memory. withMappedArea :: MappedObject -> Integer -> Int -> (Ptr a -> IO b) -> IO b type ProtectSectionFlags = DWORD sEC_COMMIT :: ProtectSectionFlags sEC_IMAGE :: ProtectSectionFlags sEC_NOCACHE :: ProtectSectionFlags type FileMapAccess = DWORD sEC_RESERVE :: ProtectSectionFlags fILE_MAP_ALL_ACCESS :: FileMapAccess fILE_MAP_COPY :: FileMapAccess fILE_MAP_READ :: FileMapAccess fILE_MAP_WRITE :: FileMapAccess createFileMapping :: Maybe HANDLE -> ProtectFlags -> DDWORD -> Maybe String -> IO HANDLE openFileMapping :: FileMapAccess -> BOOL -> Maybe String -> IO HANDLE mapViewOfFileEx :: HANDLE -> FileMapAccess -> DDWORD -> SIZE_T -> Ptr a -> IO (Ptr b) mapViewOfFile :: HANDLE -> FileMapAccess -> DDWORD -> SIZE_T -> IO (Ptr a) unmapViewOfFile :: Ptr a -> IO () c_OpenFileMapping :: DWORD -> BOOL -> LPCTSTR -> IO HANDLE c_CreateFileMapping :: HANDLE -> Ptr () -> DWORD -> DWORD -> DWORD -> LPCTSTR -> IO HANDLE c_MapViewOfFileEx :: HANDLE -> DWORD -> DWORD -> DWORD -> SIZE_T -> Ptr a -> IO (Ptr b) c_UnmapViewOfFile :: Ptr a -> IO BOOL c_UnmapViewOfFileFinaliser :: FunPtr (Ptr a -> IO ()) -- | A collection of FFI declarations for accessing the Win32 registry. module System.Win32.Registry hKEY_CLASSES_ROOT :: HKEY hKEY_CURRENT_CONFIG :: HKEY hKEY_CURRENT_USER :: HKEY hKEY_LOCAL_MACHINE :: HKEY hKEY_USERS :: HKEY regCloseKey :: HKEY -> IO () c_RegCloseKey :: PKEY -> IO ErrCode regConnectRegistry :: Maybe String -> HKEY -> IO HKEY c_RegConnectRegistry :: LPCTSTR -> PKEY -> Ptr PKEY -> IO ErrCode regCreateKey :: HKEY -> String -> IO HKEY c_RegCreateKey :: PKEY -> LPCTSTR -> Ptr PKEY -> IO ErrCode type RegCreateOptions = DWORD rEG_OPTION_NON_VOLATILE :: RegCreateOptions rEG_OPTION_VOLATILE :: RegCreateOptions type REGSAM = Word32 kEY_ALL_ACCESS :: REGSAM kEY_CREATE_LINK :: REGSAM kEY_CREATE_SUB_KEY :: REGSAM kEY_ENUMERATE_SUB_KEYS :: REGSAM kEY_EXECUTE :: REGSAM kEY_NOTIFY :: REGSAM kEY_QUERY_VALUE :: REGSAM regCreateKeyEx :: HKEY -> String -> String -> RegCreateOptions -> REGSAM -> Maybe LPSECURITY_ATTRIBUTES -> IO (HKEY, Bool) kEY_READ :: REGSAM kEY_SET_VALUE :: REGSAM kEY_WRITE :: REGSAM c_RegCreateKeyEx :: PKEY -> LPCTSTR -> DWORD -> LPCTSTR -> RegCreateOptions -> REGSAM -> LPSECURITY_ATTRIBUTES -> Ptr PKEY -> Ptr DWORD -> IO ErrCode regDeleteKey :: HKEY -> String -> IO () c_RegDeleteKey :: PKEY -> LPCTSTR -> IO ErrCode regDeleteValue :: HKEY -> String -> IO () c_RegDeleteValue :: PKEY -> LPCTSTR -> IO ErrCode mallocWideChars :: Int -> IO (Ptr a) regEnumKeys :: HKEY -> IO [String] regEnumKeyVals :: HKEY -> IO [(String, String, RegValueType)] regEnumKey :: HKEY -> DWORD -> LPTSTR -> DWORD -> IO (String, Int) c_RegEnumKey :: PKEY -> DWORD -> LPTSTR -> DWORD -> IO ErrCode regEnumValue :: HKEY -> DWORD -> LPTSTR -> DWORD -> LPBYTE -> DWORD -> IO (RegValueType, String, Int) c_RegEnumValue :: PKEY -> DWORD -> LPTSTR -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> LPBYTE -> Ptr DWORD -> IO ErrCode eRROR_NO_MORE_ITEMS :: ErrCode regFlushKey :: HKEY -> IO () c_RegFlushKey :: PKEY -> IO ErrCode regLoadKey :: HKEY -> String -> String -> IO () c_RegLoadKey :: PKEY -> LPCTSTR -> LPCTSTR -> IO ErrCode type RegNotifyOptions = DWORD rEG_NOTIFY_CHANGE_NAME :: RegNotifyOptions rEG_NOTIFY_CHANGE_ATTRIBUTES :: RegNotifyOptions rEG_NOTIFY_CHANGE_LAST_SET :: RegNotifyOptions rEG_NOTIFY_CHANGE_SECURITY :: RegNotifyOptions regNotifyChangeKeyValue :: HKEY -> Bool -> RegNotifyOptions -> HANDLE -> Bool -> IO () c_RegNotifyChangeKeyValue :: PKEY -> Bool -> RegNotifyOptions -> HANDLE -> Bool -> IO ErrCode regOpenKey :: HKEY -> String -> IO HKEY c_RegOpenKey :: PKEY -> LPCTSTR -> Ptr PKEY -> IO ErrCode regOpenKeyEx :: HKEY -> String -> REGSAM -> IO HKEY c_RegOpenKeyEx :: PKEY -> LPCTSTR -> DWORD -> REGSAM -> Ptr PKEY -> IO ErrCode data RegInfoKey RegInfoKey :: String -> Int -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> Int -> Word32 -> Word32 -> RegInfoKey [class_string] :: RegInfoKey -> String [class_id] :: RegInfoKey -> Int [subkeys] :: RegInfoKey -> Word32 [max_subkey_len] :: RegInfoKey -> Word32 [max_class_len] :: RegInfoKey -> Word32 [values] :: RegInfoKey -> Word32 [max_value_name_len] :: RegInfoKey -> Word32 [max_value_len] :: RegInfoKey -> Word32 [sec_len] :: RegInfoKey -> Int [lastWrite_lo] :: RegInfoKey -> Word32 [lastWrite_hi] :: RegInfoKey -> Word32 regQueryInfoKey :: HKEY -> IO RegInfoKey c_RegQueryInfoKey :: PKEY -> LPTSTR -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> Ptr DWORD -> Ptr FILETIME -> IO ErrCode regQueryValueKey :: HKEY -> Maybe String -> IO String c_RegQueryValue :: PKEY -> LPCTSTR -> LPTSTR -> Ptr LONG -> IO ErrCode regQueryValue :: HKEY -> Maybe String -> IO String regQueryValueEx :: HKEY -> String -> LPBYTE -> Int -> IO RegValueType c_RegQueryValueEx :: PKEY -> LPCTSTR -> Ptr DWORD -> Ptr DWORD -> LPBYTE -> Ptr DWORD -> IO ErrCode regReplaceKey :: HKEY -> String -> String -> String -> IO () c_RegReplaceKey :: PKEY -> LPCTSTR -> LPCTSTR -> LPCTSTR -> IO ErrCode type RegRestoreFlags = DWORD rEG_WHOLE_HIVE_VOLATILE :: RegRestoreFlags rEG_REFRESH_HIVE :: RegRestoreFlags rEG_NO_LAZY_FLUSH :: RegRestoreFlags regRestoreKey :: HKEY -> String -> RegRestoreFlags -> IO () c_RegRestoreKey :: PKEY -> LPCTSTR -> RegRestoreFlags -> IO ErrCode regSaveKey :: HKEY -> String -> Maybe LPSECURITY_ATTRIBUTES -> IO () c_RegSaveKey :: PKEY -> LPCTSTR -> LPSECURITY_ATTRIBUTES -> IO ErrCode regSetValue :: HKEY -> String -> String -> IO () c_RegSetValue :: PKEY -> LPCTSTR -> DWORD -> LPCTSTR -> Int -> IO ErrCode type RegValueType = DWORD rEG_BINARY :: RegValueType rEG_DWORD :: RegValueType rEG_DWORD_LITTLE_ENDIAN :: RegValueType rEG_DWORD_BIG_ENDIAN :: RegValueType rEG_EXPAND_SZ :: RegValueType rEG_LINK :: RegValueType rEG_MULTI_SZ :: RegValueType rEG_NONE :: RegValueType rEG_RESOURCE_LIST :: RegValueType regSetStringValue :: HKEY -> String -> String -> IO () rEG_SZ :: RegValueType regSetValueEx :: HKEY -> String -> RegValueType -> LPTSTR -> Int -> IO () c_RegSetValueEx :: PKEY -> LPCTSTR -> DWORD -> RegValueType -> LPTSTR -> Int -> IO ErrCode regUnLoadKey :: HKEY -> String -> IO () c_RegUnLoadKey :: PKEY -> LPCTSTR -> IO ErrCode -- | A collection of FFI declarations for interfacing with Win32 Console -- API module System.Win32.Console getConsoleCP :: IO UINT setConsoleCP :: UINT -> IO () getConsoleOutputCP :: IO UINT setConsoleOutputCP :: UINT -> IO () type CtrlEvent = DWORD cTRL_C_EVENT :: CtrlEvent cTRL_BREAK_EVENT :: CtrlEvent generateConsoleCtrlEvent :: CtrlEvent -> DWORD -> IO () -- | This function can be used to parse commandline arguments and return -- the split up arguments as elements in a list. commandLineToArgv :: String -> IO [String] -- | Enocode/Decode mutibyte charactor using Win32 API. module System.Win32.Encoding getCurrentCodePage :: IO DWORD -- | The System.IO output functions (e.g. putStr) don't -- automatically convert to multibyte string on Windows, so this function -- is provided to make the conversion from a Unicode string in the given -- code page to a proper multibyte string. To get the code page for the -- console, use getCurrentCodePage. encodeMultiByte :: CodePage -> String -> String encodeMultiByteIO :: CodePage -> String -> IO String -- | The System.IO input functions (e.g. getLine) don't -- automatically convert to Unicode, so this function is provided to make -- the conversion from a multibyte string in the given code page to a -- proper Unicode string. To get the code page for the console, use -- getCurrentCodePage. decodeMultiByte :: CodePage -> String -> String -- | Because of stringToUnicode is unclear name, we use -- decodeMultiByteIO for alias of stringToUnicode. decodeMultiByteIO :: CodePage -> String -> IO String wideCharToMultiByte :: CodePage -> DWORD -> LPCWSTR -> CInt -> LPSTR -> CInt -> LPCSTR -> LPBOOL -> IO CInt multiByteToWideChar :: CodePage -> DWORD -> LPCSTR -> CInt -> LPWSTR -> CInt -> IO CInt -- | Multimedia API. TODO: provide more functions ... module Media.Win32 type MCIERROR = DWORD mciSendString :: String -> IO () c_mciSendString :: LPCTSTR -> LPTSTR -> UINT -> HANDLE -> IO MCIERROR mciGetErrorString :: MCIERROR -> IO () c_mciGetErrorString :: MCIERROR -> LPTSTR -> UINT -> IO BOOL -- | FFI-bindings to interact with Win32 Security module System.Win32.Security data SID type PSID = Ptr SID data ACL type PACL = Ptr ACL data SECURITY_DESCRIPTOR type SECURITY_DESCRIPTOR_CONTROL = WORD se_OWNER_DEFAULTED :: SECURITY_DESCRIPTOR_CONTROL se_GROUP_DEFAULTED :: SECURITY_DESCRIPTOR_CONTROL se_DACL_PRESENT :: SECURITY_DESCRIPTOR_CONTROL se_DACL_DEFAULTED :: SECURITY_DESCRIPTOR_CONTROL se_SACL_PRESENT :: SECURITY_DESCRIPTOR_CONTROL se_SACL_DEFAULTED :: SECURITY_DESCRIPTOR_CONTROL se_DACL_AUTO_INHERIT_REQ :: SECURITY_DESCRIPTOR_CONTROL se_SACL_AUTO_INHERIT_REQ :: SECURITY_DESCRIPTOR_CONTROL se_DACL_AUTO_INHERITED :: SECURITY_DESCRIPTOR_CONTROL se_SACL_AUTO_INHERITED :: SECURITY_DESCRIPTOR_CONTROL se_DACL_PROTECTED :: SECURITY_DESCRIPTOR_CONTROL se_SACL_PROTECTED :: SECURITY_DESCRIPTOR_CONTROL se_SELF_RELATIVE :: SECURITY_DESCRIPTOR_CONTROL type SECURITY_INFORMATION = DWORD oWNER_SECURITY_INFORMATION :: SECURITY_INFORMATION gROUP_SECURITY_INFORMATION :: SECURITY_INFORMATION dACL_SECURITY_INFORMATION :: SECURITY_INFORMATION sACL_SECURITY_INFORMATION :: SECURITY_INFORMATION getFileSecurity :: String -> SECURITY_INFORMATION -> IO SecurityDescriptor -- | Handling hard link using Win32 API. [NTFS only] -- -- Note: You should worry about file system type when use this module's -- function in your application: -- -- module System.Win32.HardLink -- | NOTE: createHardLink is flipped arguments to provide -- compatiblity for Unix. -- -- If you want to create hard link by Windows way, use -- createHardLink' instead. createHardLink :: FilePath -> FilePath -> IO () createHardLink' :: FilePath -> FilePath -> IO () c_CreateHardLink :: LPCTSTR -> LPCTSTR -> LPSECURITY_ATTRIBUTES -> IO BOOL -- | Handling symbolic link using Win32 API. [Vista of later and desktop -- app only] -- -- Note: You should worry about UAC (User Account Control) when use this -- module's function in your application: -- -- module System.Win32.SymbolicLink -- | createSymbolicLink* functions don't check that file is exist or not. -- -- NOTE: createSymbolicLink* functions are flipped arguments to -- provide compatiblity for Unix, except createSymbolicLink'. -- -- If you want to create symbolic link by Windows way, use -- createSymbolicLink' instead. createSymbolicLink :: FilePath -> FilePath -> SymbolicLinkFlags -> IO () createSymbolicLinkFile :: FilePath -> FilePath -> IO () createSymbolicLinkDirectory :: FilePath -> FilePath -> IO () createSymbolicLink' :: FilePath -> FilePath -> SymbolicLinkFlags -> IO () c_CreateSymbolicLink :: LPTSTR -> LPTSTR -> SymbolicLinkFlags -> IO BOOL type SymbolicLinkFlags = DWORD sYMBOLIC_LINK_FLAG_FILE :: SymbolicLinkFlags sYMBOLIC_LINK_FLAG_DIRECTORY :: SymbolicLinkFlags -- | A collection of FFI declarations for using Windows DebugApi. module System.Win32.DebugApi type PID = DWORD type TID = DWORD type DebugEventId = (PID, TID) type ForeignAddress = Word32 type PHANDLE = Ptr () type THANDLE = Ptr () type ThreadInfo = (THANDLE, ForeignAddress, ForeignAddress) type ImageInfo = (HANDLE, ForeignAddress, DWORD, DWORD, ForeignAddress) type ExceptionInfo = (Bool, Bool, ForeignAddress) data Exception UnknownException :: Exception AccessViolation :: Bool -> ForeignAddress -> Exception ArrayBoundsExceeded :: Exception Breakpoint :: Exception DataTypeMisalignment :: Exception FltDenormalOperand :: Exception FltDivideByZero :: Exception FltInexactResult :: Exception FltInvalidOperation :: Exception FltOverflow :: Exception FltStackCheck :: Exception FltUnderflow :: Exception IllegalInstruction :: Exception InPageError :: Exception IntDivideByZero :: Exception IntOverflow :: Exception InvalidDisposition :: Exception NonContinuable :: Exception PrivilegedInstruction :: Exception SingleStep :: Exception StackOverflow :: Exception data DebugEventInfo UnknownDebugEvent :: DebugEventInfo Exception :: ExceptionInfo -> Exception -> DebugEventInfo CreateThread :: ThreadInfo -> DebugEventInfo CreateProcess :: PHANDLE -> ImageInfo -> ThreadInfo -> DebugEventInfo ExitThread :: TID -> DebugEventInfo ExitProcess :: PID -> DebugEventInfo LoadDll :: ImageInfo -> DebugEventInfo UnloadDll :: TID -> DebugEventInfo DebugString :: ForeignAddress -> Bool -> WORD -> DebugEventInfo type DebugEvent = (DebugEventId, DebugEventInfo) peekDebugEvent :: Ptr a -> IO DebugEvent waitForDebugEvent :: Maybe Int -> IO (Maybe DebugEvent) getDebugEvents :: Int -> IO [DebugEvent] continueDebugEvent :: DebugEventId -> Bool -> IO () debugActiveProcess :: PID -> IO () peekProcessMemory :: PHANDLE -> ForeignAddress -> Int -> Ptr a -> IO () readProcessMemory :: PHANDLE -> ForeignAddress -> Int -> IO (ForeignPtr a) pokeProcessMemory :: PHANDLE -> ForeignAddress -> Int -> Ptr a -> IO () withProcessMemory :: PHANDLE -> ForeignAddress -> Int -> (Ptr a -> IO b) -> IO b peekP :: (Storable a) => PHANDLE -> ForeignAddress -> IO a pokeP :: (Storable a) => PHANDLE -> ForeignAddress -> a -> IO () suspendThread :: THANDLE -> IO DWORD resumeThread :: THANDLE -> IO DWORD withSuspendedThread :: THANDLE -> IO a -> IO a getThreadContext :: THANDLE -> Ptr a -> IO () setThreadContext :: THANDLE -> Ptr a -> IO () useAllRegs :: Ptr a -> IO () withThreadContext :: THANDLE -> (Ptr a -> IO b) -> IO b rax :: Int rbx :: Int rcx :: Int rdx :: Int rsi :: Int rdi :: Int rbp :: Int rip :: Int rsp :: Int segCs :: Int segDs :: Int segEs :: Int segFs :: Int segGs :: Int eFlags :: Int dr :: Int -> Int setReg :: Ptr a -> Int -> DWORD -> IO () getReg :: Ptr a -> Int -> IO DWORD modReg :: Ptr a -> Int -> (DWORD -> DWORD) -> IO DWORD makeModThreadContext :: [(Int, DWORD -> DWORD)] -> Ptr a -> IO [DWORD] modifyThreadContext :: THANDLE -> [(Int, DWORD -> DWORD)] -> IO [DWORD] outputDebugString :: String -> IO () c_SuspendThread :: THANDLE -> IO DWORD c_ResumeThread :: THANDLE -> IO DWORD c_WaitForDebugEvent :: Ptr () -> DWORD -> IO BOOL c_ContinueDebugEvent :: DWORD -> DWORD -> DWORD -> IO BOOL c_DebugActiveProcess :: DWORD -> IO Bool c_ReadProcessMemory :: PHANDLE -> Ptr () -> Ptr Word8 -> DWORD -> Ptr DWORD -> IO BOOL c_WriteProcessMemory :: PHANDLE -> Ptr () -> Ptr Word8 -> DWORD -> Ptr DWORD -> IO BOOL c_GetThreadContext :: THANDLE -> Ptr () -> IO BOOL c_SetThreadContext :: THANDLE -> Ptr () -> IO BOOL c_OutputDebugString :: LPTSTR -> IO () isDebuggerPresent :: IO BOOL debugBreak :: IO () instance GHC.Show.Show System.Win32.DebugApi.DebugEventInfo instance GHC.Show.Show System.Win32.DebugApi.Exception -- | This modules provides just thread control APIs. This modules doesn't -- provide thread register control APIs. Because these APIs are used for -- Debugging. module System.Win32.Thread type THANDLE = Ptr () type TID = DWORD getCurrentThread :: IO THANDLE suspendThread :: THANDLE -> IO DWORD c_SuspendThread :: THANDLE -> IO DWORD resumeThread :: THANDLE -> IO DWORD c_ResumeThread :: THANDLE -> IO DWORD withSuspendedThread :: THANDLE -> IO a -> IO a getThreadId :: THANDLE -> IO TID c_GetThreadId :: THANDLE -> IO TID getCurrentThreadId :: IO TID c_GetCurrentThreadId :: IO TID -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.Path filepathRelativePathTo :: FilePath -> FilePath -> IO FilePath pathRelativePathTo :: FilePath -> FileAttributeOrFlag -> FilePath -> FileAttributeOrFlag -> IO FilePath -- | Windows' unsigned integer types and pointer type. module System.Win32.Word type WORD = Word16 type DWORD = Word32 type PDWORD = Ptr DWORD type LPDWORD = Ptr DWORD type DWORDLONG = Word64 type DDWORD = Word64 type DWORD32 = Word32 type DWORD64 = Word64 type DWORD_PTR = Ptr DWORD32 -- | Version information about your computer. module System.Win32.Info.Version data OSVERSIONINFOEX OSVERSIONINFOEX :: DWORD -> DWORD -> DWORD -> DWORD -> String -> WORD -> WORD -> WORD -> ProductType -> OSVERSIONINFOEX [dwMajorVersion] :: OSVERSIONINFOEX -> DWORD [dwMinorVersion] :: OSVERSIONINFOEX -> DWORD [dwBuildNumber] :: OSVERSIONINFOEX -> DWORD [dwPlatformId] :: OSVERSIONINFOEX -> DWORD [szCSDVersion] :: OSVERSIONINFOEX -> String [wServicePackMajor] :: OSVERSIONINFOEX -> WORD [wServicePackMinor] :: OSVERSIONINFOEX -> WORD [wSuiteMask] :: OSVERSIONINFOEX -> WORD [wProductType] :: OSVERSIONINFOEX -> ProductType type POSVERSIONINFOEX = Ptr OSVERSIONINFOEX type LPOSVERSIONINFOEX = Ptr OSVERSIONINFOEX data ProductType VerUnknow :: BYTE -> ProductType VerNTWorkStation :: ProductType VerNTDomainControler :: ProductType VerNTServer :: ProductType getVersionEx :: IO OSVERSIONINFOEX c_GetVersionEx :: LPOSVERSIONINFOEX -> IO BOOL isVistaOrLater :: IO Bool is7OrLater :: IO Bool instance GHC.Show.Show System.Win32.Info.Version.OSVERSIONINFOEX instance GHC.Classes.Eq System.Win32.Info.Version.ProductType instance GHC.Show.Show System.Win32.Info.Version.ProductType instance Foreign.Storable.Storable System.Win32.Info.Version.ProductType instance Foreign.Storable.Storable System.Win32.Info.Version.OSVERSIONINFOEX -- | Utilities for calling Win32 API module System.Win32.Utils -- | Support for API calls that are passed a fixed-size buffer and tell you -- via the return value if the buffer was too small. In that case, we -- extend the buffer size and try again. try :: String -> (LPTSTR -> UINT -> IO UINT) -> UINT -> IO String tryWithoutNull :: String -> (LPTSTR -> UINT -> IO UINT) -> UINT -> IO String try' :: Storable a => String -> (Ptr a -> PDWORD -> IO BOOL) -> DWORD -> IO [a] maybePtr :: Maybe (Ptr a) -> Ptr a ptrToMaybe :: Ptr a -> Maybe (Ptr a) maybeNum :: Num a => Maybe a -> a numToMaybe :: (Eq a, Num a) => a -> Maybe a -- | See also: maybePeek function. peekMaybe :: Storable a => Ptr a -> IO (Maybe a) -- | See also: maybeWith function. withMaybe :: Storable a => Maybe a -> (Ptr a -> IO b) -> IO b -- | Keyboard input events module System.Win32.Automation.Input.Key type PKEYBDINPUT = Ptr KEYBDINPUT data KEYBDINPUT KEYBDINPUT :: WORD -> WORD -> DWORD -> DWORD -> ULONG_PTR -> KEYBDINPUT [wVk] :: KEYBDINPUT -> WORD [wScan] :: KEYBDINPUT -> WORD [dwFlags] :: KEYBDINPUT -> DWORD [time] :: KEYBDINPUT -> DWORD [dwExtraInfo] :: KEYBDINPUT -> ULONG_PTR kEYEVENTF_EXTENDEDKEY :: DWORD kEYEVENTF_KEYUP :: DWORD kEYEVENTF_SCANCODE :: DWORD kEYEVENTF_UNICODE :: DWORD instance GHC.Show.Show System.Win32.Automation.Input.Key.KEYBDINPUT instance Foreign.Storable.Storable System.Win32.Automation.Input.Key.KEYBDINPUT -- | Mouse input events module System.Win32.Automation.Input.Mouse type PMOUSEINPUT = Ptr MOUSEINPUT data MOUSEINPUT MOUSEINPUT :: LONG -> LONG -> DWORD -> DWORD -> DWORD -> ULONG_PTR -> MOUSEINPUT [dx] :: MOUSEINPUT -> LONG [dy] :: MOUSEINPUT -> LONG [mouseData] :: MOUSEINPUT -> DWORD [dwFlags] :: MOUSEINPUT -> DWORD [time] :: MOUSEINPUT -> DWORD [dwExtraInfo] :: MOUSEINPUT -> ULONG_PTR xBUTTON1 :: DWORD xBUTTON2 :: DWORD mOUSEEVENTF_ABSOLUTE :: DWORD mOUSEEVENTF_MOVE :: DWORD mOUSEEVENTF_LEFTDOWN :: DWORD mOUSEEVENTF_LEFTUP :: DWORD mOUSEEVENTF_RIGHTDOWN :: DWORD mOUSEEVENTF_RIGHTUP :: DWORD mOUSEEVENTF_MIDDLEDOWN :: DWORD mOUSEEVENTF_MIDDLEUP :: DWORD mOUSEEVENTF_WHEEL :: DWORD mOUSEEVENTF_XDOWN :: DWORD mOUSEEVENTF_XUP :: DWORD instance GHC.Show.Show System.Win32.Automation.Input.Mouse.MOUSEINPUT instance Foreign.Storable.Storable System.Win32.Automation.Input.Mouse.MOUSEINPUT -- | Set handlers of console Ctrl events. module System.Win32.Console.CtrlHandler type CtrlEvent = DWORD type Handler = CtrlEvent -> IO BOOL type PHANDLER_ROUTINE = FunPtr Handler withConsoleCtrlHandler :: Handler -> IO a -> IO a -- | This function isn't suitable when we want to set the cTRL_C_EVENT -- handler. If you want to set the cTRL_C_EVENT handler, use -- c_SetConsoleCtrlHandler instead. setConsoleCtrlHandler :: PHANDLER_ROUTINE -> BOOL -> IO () c_SetConsoleCtrlHandler :: PHANDLER_ROUTINE -> BOOL -> IO BOOL mkHandler :: Handler -> IO PHANDLER_ROUTINE cTRL_C_EVENT :: CtrlEvent cTRL_BREAK_EVENT :: CtrlEvent -- | Get/Set the title for the current console window. module System.Win32.Console.Title setConsoleTitle :: String -> IO () c_GetConsoleTitle :: LPTSTR -> DWORD -> IO DWORD c_SetConsoleTitle :: LPCTSTR -> IO BOOL getConsoleTitle :: IO String -- | Information about your computer. module System.Win32.Info.Computer expandEnvironmentStrings :: String -> IO String c_ExpandEnvironmentStrings :: LPCTSTR -> LPTSTR -> DWORD -> IO DWORD getComputerName :: IO String setComputerName :: String -> IO () c_GetComputerName :: LPTSTR -> LPDWORD -> IO Bool c_SetComputerName :: LPTSTR -> IO Bool getSystemMetrics :: SMSetting -> IO Int sM_CMONITORS :: SMSetting sM_IMMENABLED :: SMSetting sM_MOUSEWHEELPRESENT :: SMSetting sM_REMOTESESSION :: SMSetting sM_SAMEDISPLAYFORMAT :: SMSetting sM_XVIRTUALSCREEN :: SMSetting sM_YVIRTUALSCREEN :: SMSetting sM_SERVERR2 :: SMSetting sM_MEDIACENTER :: SMSetting sM_STARTER :: SMSetting sM_TABLETPC :: SMSetting -- | Get user name. See: https://github.com/haskell/win32/issues/8, -- http://lpaste.net/41521 getUserName :: IO String c_GetUserName :: LPTSTR -> LPDWORD -> IO Bool data OSVERSIONINFOEX OSVERSIONINFOEX :: DWORD -> DWORD -> DWORD -> DWORD -> String -> WORD -> WORD -> WORD -> ProductType -> OSVERSIONINFOEX [dwMajorVersion] :: OSVERSIONINFOEX -> DWORD [dwMinorVersion] :: OSVERSIONINFOEX -> DWORD [dwBuildNumber] :: OSVERSIONINFOEX -> DWORD [dwPlatformId] :: OSVERSIONINFOEX -> DWORD [szCSDVersion] :: OSVERSIONINFOEX -> String [wServicePackMajor] :: OSVERSIONINFOEX -> WORD [wServicePackMinor] :: OSVERSIONINFOEX -> WORD [wSuiteMask] :: OSVERSIONINFOEX -> WORD [wProductType] :: OSVERSIONINFOEX -> ProductType type POSVERSIONINFOEX = Ptr OSVERSIONINFOEX type LPOSVERSIONINFOEX = Ptr OSVERSIONINFOEX data ProductType VerUnknow :: BYTE -> ProductType VerNTWorkStation :: ProductType VerNTDomainControler :: ProductType VerNTServer :: ProductType getVersionEx :: IO OSVERSIONINFOEX c_GetVersionEx :: LPOSVERSIONINFOEX -> IO BOOL type ProcessorFeature = DWORD isProcessorFeaturePresent :: ProcessorFeature -> IO BOOL pF_3DNOW_INSTRUCTIONS_AVAILABLE :: ProcessorFeature pF_COMPARE_EXCHANGE_DOUBLE :: ProcessorFeature pF_FLOATING_POINT_EMULATED :: ProcessorFeature pF_FLOATING_POINT_PRECISION_ERRATA :: ProcessorFeature pF_MMX_INSTRUCTIONS_AVAILABLE :: ProcessorFeature pF_PAE_ENABLED :: ProcessorFeature pF_RDTSC_INSTRUCTION_AVAILABLE :: ProcessorFeature pF_XMMI_INSTRUCTIONS_AVAILABLE :: ProcessorFeature pF_XMMI64_INSTRUCTIONS_AVAILABLE :: ProcessorFeature -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Types type POINT = (LONG, LONG) sizeofPOINT :: Int allocaPOINT :: (Ptr POINT -> IO a) -> IO a peekPOINT :: Ptr POINT -> IO POINT pokePOINT :: Ptr POINT -> POINT -> IO () withPOINT :: POINT -> (Ptr POINT -> IO a) -> IO a type RECT = (LONG, LONG, LONG, LONG) allocaRECT :: (Ptr RECT -> IO a) -> IO a peekRECT :: Ptr RECT -> IO RECT pokeRECT :: Ptr RECT -> RECT -> IO () type SIZE = (LONG, LONG) allocaSIZE :: (Ptr SIZE -> IO a) -> IO a peekSIZE :: Ptr SIZE -> IO SIZE pokeSIZE :: Ptr SIZE -> SIZE -> IO () withPOINTArray :: [POINT] -> (Ptr POINT -> Int -> IO a) -> IO a pokePOINTArray :: Ptr POINT -> [POINT] -> IO () setPOINT :: Ptr POINT -> Int -> POINT -> IO () type LPRECT = Ptr RECT type MbLPRECT = Maybe LPRECT withRECT :: RECT -> (Ptr RECT -> IO a) -> IO a getRECT :: LPRECT -> IO RECT type HBITMAP = HANDLE type MbHBITMAP = Maybe HBITMAP type HFONT = HANDLE type MbHFONT = Maybe HFONT type HCURSOR = HICON type MbHCURSOR = Maybe HCURSOR type HICON = HANDLE type MbHICON = Maybe HICON type HRGN = ForeignHANDLE type PRGN = HANDLE type MbHRGN = Maybe HRGN type HPALETTE = HANDLE type MbHPALETTE = Maybe HPALETTE type HBRUSH = HANDLE type MbHBRUSH = Maybe HBRUSH type HPEN = HANDLE type MbHPEN = Maybe HPEN type HACCEL = HANDLE type HDC = HANDLE type MbHDC = Maybe HDC type HDWP = HANDLE type MbHDWP = Maybe HDWP type HWND = HANDLE type MbHWND = Maybe HWND hWND_BOTTOM :: HWND hWND_NOTOPMOST :: HWND hWND_TOP :: HWND hWND_TOPMOST :: HWND type HMENU = HANDLE type MbHMENU = Maybe HMENU type COLORREF = Word32 rgb :: BYTE -> BYTE -> BYTE -> COLORREF getRValue :: COLORREF -> BYTE getGValue :: COLORREF -> BYTE getBValue :: COLORREF -> BYTE pALETTERGB :: BYTE -> BYTE -> BYTE -> COLORREF pALETTEINDEX :: WORD -> COLORREF type RasterOp3 = Word32 type RasterOp4 = Word32 mAKEROP4 :: RasterOp3 -> RasterOp3 -> RasterOp4 type PolyFillMode = INT aLTERNATE :: PolyFillMode wINDING :: PolyFillMode type ArcDirection = INT type MbArcDirection = Maybe ArcDirection aD_COUNTERCLOCKWISE :: ArcDirection aD_CLOCKWISE :: ArcDirection type GraphicsMode = DWORD type MbGraphicsMode = Maybe GraphicsMode gM_COMPATIBLE :: GraphicsMode gM_ADVANCED :: GraphicsMode type BackgroundMode = INT tRANSPARENT :: BackgroundMode oPAQUE :: BackgroundMode type HatchStyle = INT hS_HORIZONTAL :: HatchStyle hS_VERTICAL :: HatchStyle hS_FDIAGONAL :: HatchStyle hS_BDIAGONAL :: HatchStyle hS_CROSS :: HatchStyle hS_DIAGCROSS :: HatchStyle type StretchBltMode = INT bLACKONWHITE :: StretchBltMode wHITEONBLACK :: StretchBltMode cOLORONCOLOR :: StretchBltMode hALFTONE :: StretchBltMode sTRETCH_ANDSCANS :: StretchBltMode sTRETCH_ORSCANS :: StretchBltMode type TextAlignment = UINT sTRETCH_DELETESCANS :: StretchBltMode tA_NOUPDATECP :: TextAlignment tA_UPDATECP :: TextAlignment tA_LEFT :: TextAlignment tA_RIGHT :: TextAlignment tA_CENTER :: TextAlignment tA_TOP :: TextAlignment tA_BOTTOM :: TextAlignment type ClippingMode = INT rGN_AND :: ClippingMode tA_BASELINE :: TextAlignment rGN_OR :: ClippingMode rGN_XOR :: ClippingMode rGN_DIFF :: ClippingMode rGN_COPY :: ClippingMode type RegionType = INT eRROR :: RegionType nULLREGION :: RegionType sIMPLEREGION :: RegionType cOMPLEXREGION :: RegionType gDI_ERROR :: Num a => a cLR_INVALID :: COLORREF oBJ_PEN :: UINT oBJ_BRUSH :: UINT oBJ_DC :: UINT oBJ_METADC :: UINT oBJ_PAL :: UINT oBJ_FONT :: UINT oBJ_BITMAP :: UINT oBJ_REGION :: UINT oBJ_METAFILE :: UINT oBJ_MEMDC :: UINT oBJ_EXTPEN :: UINT oBJ_ENHMETADC :: UINT prim_ChildWindowFromPoint :: HWND -> Ptr POINT -> IO HWND oBJ_ENHMETAFILE :: UINT prim_ChildWindowFromPointEx :: HWND -> Ptr POINT -> DWORD -> IO HWND prim_MenuItemFromPoint :: HWND -> HMENU -> Ptr POINT -> IO UINT -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.Icon copyIcon :: HICON -> IO HICON c_CopyIcon :: HICON -> IO HICON drawIcon :: HDC -> Int -> Int -> HICON -> IO () c_DrawIcon :: HDC -> Int -> Int -> HICON -> IO Bool destroyIcon :: HICON -> IO () c_DestroyIcon :: HICON -> IO Bool -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.Key type VKey = DWORD vK_LBUTTON :: VKey vK_RBUTTON :: VKey vK_CANCEL :: VKey vK_MBUTTON :: VKey vK_BACK :: VKey vK_TAB :: VKey vK_CLEAR :: VKey vK_RETURN :: VKey vK_SHIFT :: VKey vK_CONTROL :: VKey vK_MENU :: VKey vK_PAUSE :: VKey vK_CAPITAL :: VKey vK_ESCAPE :: VKey vK_SPACE :: VKey vK_PRIOR :: VKey vK_NEXT :: VKey vK_END :: VKey vK_HOME :: VKey vK_LEFT :: VKey vK_UP :: VKey vK_RIGHT :: VKey vK_DOWN :: VKey vK_SELECT :: VKey vK_EXECUTE :: VKey vK_SNAPSHOT :: VKey vK_INSERT :: VKey vK_DELETE :: VKey vK_HELP :: VKey vK_NUMPAD0 :: VKey vK_NUMPAD1 :: VKey vK_NUMPAD2 :: VKey vK_NUMPAD3 :: VKey vK_NUMPAD4 :: VKey vK_NUMPAD5 :: VKey vK_NUMPAD6 :: VKey vK_NUMPAD7 :: VKey vK_NUMPAD8 :: VKey vK_NUMPAD9 :: VKey vK_MULTIPLY :: VKey vK_ADD :: VKey vK_SEPARATOR :: VKey vK_SUBTRACT :: VKey vK_DECIMAL :: VKey vK_DIVIDE :: VKey vK_F1 :: VKey vK_F2 :: VKey vK_F3 :: VKey vK_F4 :: VKey vK_F5 :: VKey vK_F6 :: VKey vK_F7 :: VKey vK_F8 :: VKey vK_F9 :: VKey vK_F10 :: VKey vK_F11 :: VKey vK_F12 :: VKey vK_F13 :: VKey vK_F14 :: VKey vK_F15 :: VKey vK_F16 :: VKey vK_F17 :: VKey vK_F18 :: VKey vK_F19 :: VKey vK_F20 :: VKey vK_F21 :: VKey vK_F22 :: VKey vK_F23 :: VKey vK_F24 :: VKey vK_NUMLOCK :: VKey c_VkKeyScanEx :: CWchar -> HKL -> IO SHORT vK_SCROLL :: VKey c_MapVirtualKey :: VKey -> UINT -> IO UINT vK_XBUTTON1 :: VKey vK_XBUTTON2 :: VKey c_MapVirtualKeyEx :: VKey -> UINT -> HKL -> IO UINT vK_KANA :: VKey enableWindow :: HWND -> Bool -> IO Bool vK_HANGUL :: VKey vK_JUNJA :: VKey getActiveWindow :: IO (Maybe HWND) vK_FINAL :: VKey c_GetActiveWindow :: IO HWND vK_HANJA :: VKey getAsyncKeyState :: Int -> IO WORD vK_KANJI :: VKey getFocus :: IO (Maybe HWND) vK_CONVERT :: VKey vK_NONCONVERT :: VKey c_GetFocus :: IO HWND vK_ACCEPT :: VKey getKBCodePage :: IO UINT vK_MODECHANGE :: VKey vK_PRINT :: VKey isWindowEnabled :: HWND -> IO Bool vK_APPS :: VKey getCurrentKeyboardLayout :: IO HKL vK_SLEEP :: VKey vK_LWIN :: VKey vK_RWIN :: VKey getKeyboardLayoutList :: IO [HKL] vK_LSHIFT :: VKey vK_RSHIFT :: VKey vK_LCONTROL :: VKey vK_RCONTROL :: VKey getKeyboardLayoutName :: IO String vK_LMENU :: VKey vK_RMENU :: VKey vK_BROWSER_BACK :: VKey withLoadKeyboardLayout :: KeyLayoutFlags -> (HKL -> IO a) -> IO a vK_BROWSER_FORWARD :: VKey vK_BROWSER_REFRESH :: VKey vK_BROWSER_STOP :: VKey vK_BROWSER_SEARCH :: VKey withLoadKeyboardLayoutWithName :: String -> KeyLayoutFlags -> (HKL -> IO a) -> IO a vK_BROWSER_FAVORITES :: VKey vK_BROWSER_HOME :: VKey vK_VOLUME_MUTE :: VKey unloadKeyboardLayout :: HKL -> IO () vK_VOLUME_DOWN :: VKey vK_VOLUME_UP :: VKey c_GetKeyboardLayout :: TID -> IO HKL vK_MEDIA_NEXT_TRACK :: VKey vK_MEDIA_PREV_TRACK :: VKey c_GetKeyboardLayoutList :: Int -> (Ptr HKL) -> IO UINT vK_MEDIA_STOP :: VKey c_GetKeyboardLayoutName :: LPTSTR -> IO BOOL vK_MEDIA_PLAY_PAUSE :: VKey vK_LAUNCH_MAIL :: VKey c_LoadKeyboardLayout :: LPCTSTR -> KeyLayoutFlags -> IO HKL vK_LAUNCH_MEDIA_SELECT :: VKey c_UnloadKeyboardLayout :: HKL -> IO BOOL vK_LAUNCH_APP1 :: VKey type HKL = Ptr () vK_LAUNCH_APP2 :: VKey type KeyLayoutFlags = UINT vK_OEM_1 :: VKey vK_OEM_PLUS :: VKey kLF_ACTIVATE :: KeyLayoutFlags vK_OEM_COMMA :: VKey kLF_NOTELLSHELL :: KeyLayoutFlags vK_OEM_MINUS :: VKey kLF_REORDER :: KeyLayoutFlags vK_OEM_PERIOD :: VKey kLF_REPLACELANG :: KeyLayoutFlags vK_OEM_2 :: VKey kLF_SUBSTITUTE_OK :: KeyLayoutFlags vK_OEM_3 :: VKey kLF_SETFORPROCESS :: KeyLayoutFlags vK_OEM_4 :: VKey vK_OEM_5 :: VKey vK_OEM_6 :: VKey vK_OEM_7 :: VKey vK_OEM_8 :: VKey vK_OEM_102 :: VKey vK_PROCESSKEY :: VKey vK_PACKET :: VKey vK_ATTN :: VKey vK_CRSEL :: VKey vK_EXSEL :: VKey vK_EREOF :: VKey vK_PLAY :: VKey vK_ZOOM :: VKey vK_NONAME :: VKey vK_PA1 :: VKey vK_OEM_CLEAR :: VKey -- | Provide sendInput function and INPUT types. module System.Win32.Automation.Input sendInput :: [INPUT] -> IO UINT -- | Raw pointer of array version of sendInput. Use this function to -- support non-list sequence. sendInputPtr :: Int -> Ptr INPUT -> IO UINT c_SendInput :: UINT -> LPINPUT -> Int -> IO UINT makeKeyboardInput :: VKey -> Maybe DWORD -> IO INPUT type PINPUT = Ptr INPUT type LPINPUT = Ptr INPUT data INPUT Mouse :: MOUSEINPUT -> INPUT Keyboard :: KEYBDINPUT -> INPUT OtherHardware :: HARDWAREINPUT -> INPUT type PHARDWAREINPUT = Ptr HARDWAREINPUT data HARDWAREINPUT HARDWAREINPUT :: DWORD -> WORD -> WORD -> HARDWAREINPUT [uMsg] :: HARDWAREINPUT -> DWORD [wParamL] :: HARDWAREINPUT -> WORD [wParamH] :: HARDWAREINPUT -> WORD getMessageExtraInfo :: IO LPARAM setMessageExtraInfo :: LPARAM -> IO LPARAM instance GHC.Show.Show System.Win32.Automation.Input.INPUT instance GHC.Show.Show System.Win32.Automation.Input.HARDWAREINPUT instance Foreign.Storable.Storable System.Win32.Automation.Input.INPUT instance Foreign.Storable.Storable System.Win32.Automation.Input.HARDWAREINPUT -- | Provide sendInput function and INPUT types. module System.Win32.Automation -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.Menu type MenuName = LPCTSTR checkMenuItem :: HMENU -> MenuItem -> MenuFlag -> IO Bool c_CheckMenuItem :: HMENU -> UINT -> UINT -> IO DWORD checkMenuRadioItem :: HMENU -> MenuItem -> MenuItem -> MenuItem -> MenuFlag -> IO () c_CheckMenuRadioItem :: HMENU -> UINT -> UINT -> UINT -> UINT -> IO Bool createMenu :: IO HMENU c_CreateMenu :: IO HMENU createPopupMenu :: IO HMENU c_CreatePopupMenu :: IO HMENU drawMenuBar :: HWND -> IO () c_DrawMenuBar :: HWND -> IO Bool type MenuState = MenuFlag enableMenuItem :: HMENU -> MenuItem -> MenuFlag -> IO MenuState c_EnableMenuItem :: HMENU -> UINT -> UINT -> IO MenuState type GMDIFlag = UINT type MenuFlag = UINT gMDI_USEDISABLED :: GMDIFlag gMDI_GOINTOPOPUPS :: GMDIFlag mF_BYCOMMAND :: MenuFlag mF_BYPOSITION :: MenuFlag mF_CHECKED :: MenuFlag type MenuItem = UINT mF_INSERT :: MenuItem mF_CHANGE :: MenuItem mF_APPEND :: MenuItem mF_DELETE :: MenuItem mF_REMOVE :: MenuItem mF_USECHECKBITMAPS :: MenuItem mF_POPUP :: MenuItem mFT_STRING :: MenuFlag mF_SYSMENU :: MenuItem mFT_BITMAP :: MenuFlag mF_HELP :: MenuItem mFT_MENUBARBREAK :: MenuFlag mF_MOUSESELECT :: MenuItem mFT_MENUBREAK :: MenuFlag mF_END :: MenuItem mFT_OWNERDRAW :: MenuFlag mFT_RADIOCHECK :: MenuFlag mFT_SEPARATOR :: MenuFlag mFS_GRAYED :: MenuState mFT_RIGHTORDER :: MenuFlag mFS_DISABLED :: MenuState mFT_RIGHTJUSTIFY :: MenuFlag mFS_CHECKED :: MenuState mFS_HILITE :: MenuState mFS_ENABLED :: MenuState mFS_UNCHECKED :: MenuState type TrackMenuFlag = UINT mFS_UNHILITE :: MenuState tPM_LEFTBUTTON :: TrackMenuFlag mFS_DEFAULT :: MenuState tPM_RIGHTBUTTON :: TrackMenuFlag tPM_LEFTALIGN :: TrackMenuFlag tPM_CENTERALIGN :: TrackMenuFlag tPM_RIGHTALIGN :: TrackMenuFlag tPM_TOPALIGN :: TrackMenuFlag tPM_VCENTERALIGN :: TrackMenuFlag tPM_BOTTOMALIGN :: TrackMenuFlag type SystemMenuCommand = UINT tPM_HORIZONTAL :: TrackMenuFlag sC_SIZE :: SystemMenuCommand tPM_VERTICAL :: TrackMenuFlag sC_MOVE :: SystemMenuCommand tPM_NONOTIFY :: TrackMenuFlag sC_MINIMIZE :: SystemMenuCommand tPM_RETURNCMD :: TrackMenuFlag sC_MAXIMIZE :: SystemMenuCommand sC_NEXTWINDOW :: SystemMenuCommand sC_PREVWINDOW :: SystemMenuCommand sC_CLOSE :: SystemMenuCommand sC_VSCROLL :: SystemMenuCommand sC_HSCROLL :: SystemMenuCommand sC_MOUSEMENU :: SystemMenuCommand sC_KEYMENU :: SystemMenuCommand sC_ARRANGE :: SystemMenuCommand isMenu :: HMENU -> IO Bool sC_RESTORE :: SystemMenuCommand getSystemMenu :: HWND -> Bool -> IO (Maybe HMENU) sC_TASKLIST :: SystemMenuCommand sC_SCREENSAVE :: SystemMenuCommand c_GetSystemMenu :: HWND -> Bool -> IO HMENU sC_HOTKEY :: SystemMenuCommand getMenu :: HWND -> IO (Maybe HMENU) sC_DEFAULT :: SystemMenuCommand sC_MONITORPOWER :: SystemMenuCommand c_GetMenu :: HWND -> IO HMENU sC_CONTEXTHELP :: SystemMenuCommand getMenuDefaultItem :: HMENU -> Bool -> GMDIFlag -> IO MenuItem sC_SEPARATOR :: SystemMenuCommand c_GetMenuDefaultItem :: HMENU -> Bool -> UINT -> IO UINT getMenuState :: HMENU -> MenuItem -> MenuFlag -> IO MenuState c_GetMenuState :: HMENU -> UINT -> UINT -> IO MenuState getSubMenu :: HMENU -> MenuItem -> IO (Maybe HMENU) c_GetSubMenu :: HMENU -> UINT -> IO HMENU setMenu :: HWND -> HMENU -> IO () c_SetMenu :: HWND -> HMENU -> IO Bool getMenuItemCount :: HMENU -> IO Int c_GetMenuItemCount :: HMENU -> IO Int type MenuID = UINT getMenuItemID :: HMENU -> MenuItem -> IO MenuID c_GetMenuItemID :: HMENU -> UINT -> IO MenuID data MenuItemInfo MenuItemInfo :: MenuFlag -> MenuState -> UINT -> HMENU -> HBITMAP -> HBITMAP -> DWORD -> String -> MenuItemInfo [menuItemType] :: MenuItemInfo -> MenuFlag [menuItemState] :: MenuItemInfo -> MenuState [menuItemID] :: MenuItemInfo -> UINT [menuItemSubMenu] :: MenuItemInfo -> HMENU [menuItemBitmapChecked] :: MenuItemInfo -> HBITMAP [menuItemBitmapUnchecked] :: MenuItemInfo -> HBITMAP [menuItemData] :: MenuItemInfo -> DWORD [menuItemTypeData] :: MenuItemInfo -> String peekMenuItemInfo :: Ptr MenuItemInfo -> IO MenuItemInfo allocaMenuItemInfo :: (Ptr MenuItemInfo -> IO a) -> IO a withMenuItemInfo :: MenuItemInfo -> (Ptr MenuItemInfo -> IO a) -> IO a type MenuItemMask = UINT mIIM_CHECKMARKS :: MenuItemMask mIIM_DATA :: MenuItemMask mIIM_ID :: MenuItemMask mIIM_STATE :: MenuItemMask mIIM_SUBMENU :: MenuItemMask pokeFMask :: Ptr MenuItemInfo -> MenuItemMask -> IO () mIIM_TYPE :: MenuItemMask getMenuItemInfo :: HMENU -> MenuItem -> Bool -> MenuItemMask -> IO MenuItemInfo c_GetMenuItemInfo :: HMENU -> UINT -> Bool -> Ptr MenuItemInfo -> IO Bool getMenuItemRect :: HWND -> HMENU -> MenuItem -> IO RECT c_GetMenuItemRect :: HWND -> HMENU -> UINT -> LPRECT -> IO Bool hiliteMenuItem :: HWND -> HMENU -> MenuItem -> MenuFlag -> IO Bool insertMenuItem :: HMENU -> MenuItem -> Bool -> MenuItemInfo -> IO () c_InsertMenuItem :: HMENU -> UINT -> Bool -> Ptr MenuItemInfo -> IO Bool type Menu = LPCTSTR loadMenu :: Maybe HINSTANCE -> Menu -> IO HMENU c_LoadMenu :: HINSTANCE -> Menu -> IO HMENU menuItemFromPoint :: HWND -> HMENU -> POINT -> IO UINT setMenuDefaultItem :: HMENU -> MenuItem -> Bool -> IO () c_SetMenuDefaultItem :: HMENU -> MenuItem -> Bool -> IO Bool setMenuItemBitmaps :: HMENU -> MenuItem -> MenuFlag -> HBITMAP -> HBITMAP -> IO () c_SetMenuItemBitmaps :: HMENU -> UINT -> UINT -> HBITMAP -> HBITMAP -> IO Bool destroyMenu :: HMENU -> IO () c_DestroyMenu :: HMENU -> IO Bool deleteMenu :: HMENU -> MenuItem -> MenuFlag -> IO () c_DeleteMenu :: HMENU -> UINT -> UINT -> IO Bool setMenuItemInfo :: HMENU -> MenuItem -> Bool -> MenuItemMask -> MenuItemInfo -> IO () c_SetMenuItemInfo :: HMENU -> UINT -> Bool -> Ptr MenuItemInfo -> IO Bool trackPopupMenu :: HMENU -> TrackMenuFlag -> Int -> Int -> HWND -> RECT -> IO () c_TrackPopupMenu :: HMENU -> TrackMenuFlag -> Int -> Int -> Int -> HWND -> LPRECT -> IO Bool type TPMPARAMS = () withTPMPARAMS :: Ptr RECT -> (Ptr TPMPARAMS -> IO a) -> IO a trackPopupMenuEx :: HMENU -> TrackMenuFlag -> Int -> Int -> HWND -> Maybe (Ptr RECT) -> IO () c_TrackPopupMenuEx :: HMENU -> TrackMenuFlag -> Int -> Int -> HWND -> Ptr TPMPARAMS -> IO Bool appendMenu :: HMENU -> MenuFlag -> MenuID -> String -> IO () c_AppendMenu :: HMENU -> UINT -> MenuID -> LPCTSTR -> IO Bool insertMenu :: HMENU -> MenuItem -> MenuFlag -> MenuID -> String -> IO () c_InsertMenu :: HMENU -> UINT -> UINT -> MenuID -> LPCTSTR -> IO Bool modifyMenu :: HMENU -> MenuItem -> MenuFlag -> MenuID -> String -> IO () c_ModifyMenu :: HMENU -> UINT -> UINT -> MenuID -> LPCTSTR -> IO Bool removeMenu :: HMENU -> MenuItem -> MenuFlag -> IO () c_RemoveMenu :: HMENU -> UINT -> UINT -> IO Bool -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.Misc type Accelerator = LPCTSTR type Cursor = LPTSTR type Icon = LPTSTR loadAccelerators :: Maybe HINSTANCE -> Accelerator -> IO HACCEL c_LoadAccelerators :: HINSTANCE -> Accelerator -> IO HACCEL loadCursor :: Maybe HINSTANCE -> Cursor -> IO HCURSOR c_LoadCursor :: HINSTANCE -> Cursor -> IO HCURSOR loadIcon :: Maybe HINSTANCE -> Icon -> IO HICON c_LoadIcon :: HINSTANCE -> Icon -> IO HICON iDC_ARROW :: Cursor iDC_IBEAM :: Cursor iDC_WAIT :: Cursor iDC_CROSS :: Cursor iDC_UPARROW :: Cursor iDC_SIZENWSE :: Cursor iDI_APPLICATION :: Icon iDC_SIZENESW :: Cursor iDI_HAND :: Icon iDC_SIZEWE :: Cursor iDI_QUESTION :: Icon iDC_SIZENS :: Cursor iDI_EXCLAMATION :: Icon iDI_ASTERISK :: Icon type MBStyle = UINT mB_OK :: MBStyle mB_OKCANCEL :: MBStyle mB_ABORTRETRYIGNORE :: MBStyle mB_YESNOCANCEL :: MBStyle mB_YESNO :: MBStyle mB_RETRYCANCEL :: MBStyle mB_ICONHAND :: MBStyle mB_ICONQUESTION :: MBStyle mB_ICONEXCLAMATION :: MBStyle mB_ICONASTERISK :: MBStyle mB_ICONINFORMATION :: MBStyle type MBStatus = UINT mB_ICONSTOP :: MBStyle iDABORT :: MBStatus mB_DEFBUTTON1 :: MBStyle iDCANCEL :: MBStatus mB_DEFBUTTON2 :: MBStyle iDIGNORE :: MBStatus mB_DEFBUTTON3 :: MBStyle iDNO :: MBStatus mB_APPLMODAL :: MBStyle iDOK :: MBStatus mB_SYSTEMMODAL :: MBStyle iDRETRY :: MBStatus mB_TASKMODAL :: MBStyle iDYES :: MBStatus mB_SETFOREGROUND :: MBStyle messageBox :: HWND -> String -> String -> MBStyle -> IO MBStatus c_MessageBox :: HWND -> LPCTSTR -> LPCTSTR -> MBStyle -> IO MBStatus type StdHandleId = DWORD sTD_INPUT_HANDLE :: StdHandleId sTD_OUTPUT_HANDLE :: StdHandleId sTD_ERROR_HANDLE :: StdHandleId getStdHandle :: StdHandleId -> IO HANDLE c_GetStdHandle :: StdHandleId -> IO HANDLE transformedEllipse :: HDC -> POINT -> POINT -> POINT -> IO () c_transformedEllipse :: HDC -> LONG -> LONG -> LONG -> LONG -> LONG -> LONG -> IO Bool getCursorPos :: IO POINT c_GetCursorPos :: Ptr POINT -> IO Bool setCursorPos :: POINT -> IO () c_SetCursorPos :: LONG -> LONG -> IO Bool clipCursor :: RECT -> IO () c_ClipCursor :: Ptr RECT -> IO Bool getClipCursor :: IO RECT c_GetClipCursor :: Ptr RECT -> IO Bool type ExitOption = UINT eWX_FORCE :: ExitOption eWX_LOGOFF :: ExitOption eWX_POWEROFF :: ExitOption eWX_REBOOT :: ExitOption eWX_SHUTDOWN :: ExitOption exitWindowsEx :: ExitOption -> IO () c_ExitWindowsEx :: ExitOption -> DWORD -> IO Bool exitWindows :: IO () type Beep = UINT type MbBeep = Maybe Beep maybeBeep :: Maybe Beep -> Beep type Duration = Int type MbDuration = Maybe Duration maybeDuration :: Maybe Duration -> Duration messageBeep :: Maybe Beep -> IO () c_MessageBeep :: Beep -> IO () beep :: WORD -> MbDuration -> IO () c_Beep :: WORD -> Duration -> IO Bool type TimerId = UINT type TIMERPROC = FunPtr (HWND -> UINT -> TimerId -> DWORD -> IO ()) setWinTimer :: HWND -> TimerId -> UINT -> IO TimerId c_SetTimer :: HWND -> TimerId -> UINT -> TIMERPROC -> IO TimerId killTimer :: Maybe HWND -> TimerId -> IO () c_KillTimer :: HWND -> TimerId -> IO Bool type MilliSeconds = DWORD timeGetTime :: IO MilliSeconds -- | A function to check if the current terminal uses MinTTY. Much of this -- code was originally authored by Phil Ruffwind and the git-for-windows -- project. module System.Win32.MinTTY -- | Returns True if the current process's standard error is -- attached to a MinTTY console (e.g., Cygwin or MSYS). Returns -- False otherwise. isMinTTY :: IO Bool -- | Returns True is the given handle is attached to a MinTTY -- console (e.g., Cygwin or MSYS). Returns False otherwise. isMinTTYHandle :: HANDLE -> IO Bool instance GHC.Show.Show System.Win32.MinTTY.OBJECT_NAME_INFORMATION instance GHC.Show.Show System.Win32.MinTTY.UNICODE_STRING instance GHC.Show.Show System.Win32.MinTTY.FILE_NAME_INFO instance Foreign.Storable.Storable System.Win32.MinTTY.FILE_NAME_INFO instance Foreign.Storable.Storable System.Win32.MinTTY.OBJECT_NAME_INFORMATION instance Foreign.Storable.Storable System.Win32.MinTTY.UNICODE_STRING -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.Window type ClassName = LPCTSTR mkClassName :: String -> ClassName type ClassStyle = UINT cS_VREDRAW :: ClassStyle cS_HREDRAW :: ClassStyle cS_OWNDC :: ClassStyle cS_CLASSDC :: ClassStyle cS_PARENTDC :: ClassStyle cS_SAVEBITS :: ClassStyle cS_DBLCLKS :: ClassStyle cS_BYTEALIGNCLIENT :: ClassStyle type WNDCLASS = (ClassStyle, HINSTANCE, Maybe HICON, Maybe HCURSOR, Maybe HBRUSH, Maybe LPCTSTR, ClassName) cS_BYTEALIGNWINDOW :: ClassStyle cS_NOCLOSE :: ClassStyle cS_GLOBALCLASS :: ClassStyle withWNDCLASS :: WNDCLASS -> (Ptr WNDCLASS -> IO a) -> IO a genericWndProc_p :: FunPtr WindowClosure registerClass :: WNDCLASS -> IO (Maybe ATOM) c_RegisterClass :: Ptr WNDCLASS -> IO ATOM unregisterClass :: ClassName -> HINSTANCE -> IO () type WindowStyle = DWORD wS_OVERLAPPED :: WindowStyle wS_POPUP :: WindowStyle wS_CHILD :: WindowStyle wS_CLIPSIBLINGS :: WindowStyle wS_CLIPCHILDREN :: WindowStyle wS_VISIBLE :: WindowStyle wS_DISABLED :: WindowStyle wS_MINIMIZE :: WindowStyle wS_MAXIMIZE :: WindowStyle wS_CAPTION :: WindowStyle wS_BORDER :: WindowStyle wS_DLGFRAME :: WindowStyle wS_VSCROLL :: WindowStyle wS_HSCROLL :: WindowStyle wS_SYSMENU :: WindowStyle type WindowStyleEx = DWORD wS_THICKFRAME :: WindowStyle wS_MINIMIZEBOX :: WindowStyle wS_EX_DLGMODALFRAME :: WindowStyleEx wS_MAXIMIZEBOX :: WindowStyle wS_EX_NOPARENTNOTIFY :: WindowStyleEx wS_GROUP :: WindowStyle wS_EX_TOPMOST :: WindowStyleEx wS_TABSTOP :: WindowStyle wS_EX_ACCEPTFILES :: WindowStyleEx wS_OVERLAPPEDWINDOW :: WindowStyle wS_EX_TRANSPARENT :: WindowStyleEx wS_POPUPWINDOW :: WindowStyle wS_EX_MDICHILD :: WindowStyleEx wS_CHILDWINDOW :: WindowStyle wS_EX_TOOLWINDOW :: WindowStyleEx wS_TILED :: WindowStyle wS_EX_WINDOWEDGE :: WindowStyleEx wS_ICONIC :: WindowStyle wS_EX_CLIENTEDGE :: WindowStyleEx wS_SIZEBOX :: WindowStyle wS_EX_CONTEXTHELP :: WindowStyleEx wS_TILEDWINDOW :: WindowStyle wS_EX_RIGHT :: WindowStyleEx wS_EX_LEFT :: WindowStyleEx wS_EX_RTLREADING :: WindowStyleEx cW_USEDEFAULT :: Pos wS_EX_LTRREADING :: WindowStyleEx wS_EX_LEFTSCROLLBAR :: WindowStyleEx wS_EX_RIGHTSCROLLBAR :: WindowStyleEx type Pos = Int wS_EX_CONTROLPARENT :: WindowStyleEx type MbPos = Maybe Pos wS_EX_STATICEDGE :: WindowStyleEx maybePos :: Maybe Pos -> Pos wS_EX_APPWINDOW :: WindowStyleEx wS_EX_OVERLAPPEDWINDOW :: WindowStyleEx type WindowClosure = HWND -> WindowMessage -> WPARAM -> LPARAM -> IO LRESULT wS_EX_PALETTEWINDOW :: WindowStyleEx mkWindowClosure :: WindowClosure -> IO (FunPtr WindowClosure) setWindowClosure :: HWND -> WindowClosure -> IO () c_SetWindowLongPtr :: HWND -> INT -> Ptr LONG -> IO (Ptr LONG) createWindow :: ClassName -> String -> WindowStyle -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe HWND -> Maybe HMENU -> HINSTANCE -> WindowClosure -> IO HWND createWindowEx :: WindowStyle -> ClassName -> String -> WindowStyle -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe HWND -> Maybe HMENU -> HINSTANCE -> WindowClosure -> IO HWND c_CreateWindowEx :: WindowStyle -> ClassName -> LPCTSTR -> WindowStyle -> Pos -> Pos -> Pos -> Pos -> HWND -> HMENU -> HINSTANCE -> LPVOID -> IO HWND defWindowProc :: Maybe HWND -> WindowMessage -> WPARAM -> LPARAM -> IO LRESULT c_DefWindowProc :: HWND -> WindowMessage -> WPARAM -> LPARAM -> IO LRESULT getClientRect :: HWND -> IO RECT c_GetClientRect :: HWND -> Ptr RECT -> IO Bool getWindowRect :: HWND -> IO RECT c_GetWindowRect :: HWND -> Ptr RECT -> IO Bool invalidateRect :: Maybe HWND -> Maybe LPRECT -> Bool -> IO () c_InvalidateRect :: HWND -> LPRECT -> Bool -> IO Bool screenToClient :: HWND -> POINT -> IO POINT c_ScreenToClient :: HWND -> Ptr POINT -> IO Bool clientToScreen :: HWND -> POINT -> IO POINT c_ClientToScreen :: HWND -> Ptr POINT -> IO Bool setWindowText :: HWND -> String -> IO () c_SetWindowText :: HWND -> LPCTSTR -> IO Bool type PAINTSTRUCT = (HDC, Bool, RECT) type LPPAINTSTRUCT = Addr sizeofPAINTSTRUCT :: DWORD allocaPAINTSTRUCT :: (LPPAINTSTRUCT -> IO a) -> IO a beginPaint :: HWND -> LPPAINTSTRUCT -> IO HDC c_BeginPaint :: HWND -> LPPAINTSTRUCT -> IO HDC endPaint :: HWND -> LPPAINTSTRUCT -> IO () type ShowWindowControl = DWORD sW_HIDE :: ShowWindowControl sW_SHOWNORMAL :: ShowWindowControl sW_SHOWMINIMIZED :: ShowWindowControl sW_SHOWMAXIMIZED :: ShowWindowControl sW_MAXIMIZE :: ShowWindowControl sW_SHOWNOACTIVATE :: ShowWindowControl sW_SHOW :: ShowWindowControl sW_MINIMIZE :: ShowWindowControl showWindow :: HWND -> ShowWindowControl -> IO Bool sW_SHOWMINNOACTIVE :: ShowWindowControl sW_SHOWNA :: ShowWindowControl sW_RESTORE :: ShowWindowControl adjustWindowRect :: RECT -> WindowStyle -> Bool -> IO RECT c_AdjustWindowRect :: Ptr RECT -> WindowStyle -> Bool -> IO Bool adjustWindowRectEx :: RECT -> WindowStyle -> Bool -> WindowStyleEx -> IO RECT c_AdjustWindowRectEx :: Ptr RECT -> WindowStyle -> Bool -> WindowStyleEx -> IO Bool anyPopup :: IO Bool arrangeIconicWindows :: HWND -> IO () c_ArrangeIconicWindows :: HWND -> IO Bool beginDeferWindowPos :: Int -> IO HDWP c_BeginDeferWindowPos :: Int -> IO HDWP bringWindowToTop :: HWND -> IO () c_BringWindowToTop :: HWND -> IO Bool childWindowFromPoint :: HWND -> POINT -> IO (Maybe HWND) childWindowFromPointEx :: HWND -> POINT -> DWORD -> IO (Maybe HWND) closeWindow :: HWND -> IO () deferWindowPos :: HDWP -> HWND -> HWND -> Int -> Int -> Int -> Int -> SetWindowPosFlags -> IO HDWP c_DeferWindowPos :: HDWP -> HWND -> HWND -> Int -> Int -> Int -> Int -> SetWindowPosFlags -> IO HDWP destroyWindow :: HWND -> IO () c_DestroyWindow :: HWND -> IO Bool endDeferWindowPos :: HDWP -> IO () c_EndDeferWindowPos :: HDWP -> IO Bool findWindow :: String -> String -> IO (Maybe HWND) findWindowByName :: String -> IO (Maybe HWND) c_FindWindow :: LPCTSTR -> LPCTSTR -> IO HWND findWindowEx :: HWND -> HWND -> String -> String -> IO (Maybe HWND) c_FindWindowEx :: HWND -> HWND -> LPCTSTR -> LPCTSTR -> IO HWND flashWindow :: HWND -> Bool -> IO Bool moveWindow :: HWND -> Int -> Int -> Int -> Int -> Bool -> IO () c_MoveWindow :: HWND -> Int -> Int -> Int -> Int -> Bool -> IO Bool getDesktopWindow :: IO HWND getForegroundWindow :: IO HWND getParent :: HWND -> IO HWND c_GetParent :: HWND -> IO HWND getTopWindow :: HWND -> IO HWND c_GetTopWindow :: HWND -> IO HWND type SetWindowPosFlags = UINT sWP_NOSIZE :: SetWindowPosFlags sWP_NOMOVE :: SetWindowPosFlags sWP_NOZORDER :: SetWindowPosFlags sWP_NOREDRAW :: SetWindowPosFlags sWP_NOACTIVATE :: SetWindowPosFlags sWP_FRAMECHANGED :: SetWindowPosFlags sWP_SHOWWINDOW :: SetWindowPosFlags sWP_HIDEWINDOW :: SetWindowPosFlags sWP_NOCOPYBITS :: SetWindowPosFlags sWP_NOOWNERZORDER :: SetWindowPosFlags type GetDCExFlags = DWORD sWP_NOSENDCHANGING :: SetWindowPosFlags dCX_WINDOW :: GetDCExFlags sWP_DRAWFRAME :: SetWindowPosFlags dCX_CACHE :: GetDCExFlags sWP_NOREPOSITION :: SetWindowPosFlags dCX_CLIPCHILDREN :: GetDCExFlags dCX_CLIPSIBLINGS :: GetDCExFlags dCX_PARENTCLIP :: GetDCExFlags dCX_EXCLUDERGN :: GetDCExFlags dCX_INTERSECTRGN :: GetDCExFlags getDCEx :: HWND -> HRGN -> GetDCExFlags -> IO HDC dCX_LOCKWINDOWUPDATE :: GetDCExFlags c_GetDCEx :: HWND -> PRGN -> GetDCExFlags -> IO HDC getDC :: Maybe HWND -> IO HDC c_GetDC :: HWND -> IO HDC getWindowDC :: Maybe HWND -> IO HDC c_GetWindowDC :: HWND -> IO HDC releaseDC :: Maybe HWND -> HDC -> IO () c_ReleaseDC :: HWND -> HDC -> IO Bool getDCOrgEx :: HDC -> IO POINT c_GetDCOrgEx :: HDC -> Ptr POINT -> IO Bool hideCaret :: HWND -> IO () c_HideCaret :: HWND -> IO Bool showCaret :: HWND -> IO () c_ShowCaret :: HWND -> IO Bool createCaret :: HWND -> HBITMAP -> Maybe INT -> Maybe INT -> IO () c_CreateCaret :: HWND -> HBITMAP -> INT -> INT -> IO Bool destroyCaret :: IO () c_DestroyCaret :: IO Bool getCaretPos :: IO POINT c_GetCaretPos :: Ptr POINT -> IO Bool setCaretPos :: POINT -> IO () c_SetCaretPos :: LONG -> LONG -> IO Bool type LPMSG = Addr allocaMessage :: (LPMSG -> IO a) -> IO a getMessage :: LPMSG -> Maybe HWND -> IO Bool c_GetMessage :: LPMSG -> HWND -> UINT -> UINT -> IO LONG peekMessage :: LPMSG -> Maybe HWND -> UINT -> UINT -> UINT -> IO () c_PeekMessage :: LPMSG -> HWND -> UINT -> UINT -> UINT -> IO LONG translateMessage :: LPMSG -> IO BOOL updateWindow :: HWND -> IO () c_UpdateWindow :: HWND -> IO Bool dispatchMessage :: LPMSG -> IO LONG sendMessage :: HWND -> WindowMessage -> WPARAM -> LPARAM -> IO LRESULT -- | FFI bindings to the various standard Win32 controls. module Graphics.Win32.Control type ButtonStyle = WindowStyle bS_PUSHBUTTON :: ButtonStyle bS_DEFPUSHBUTTON :: ButtonStyle bS_CHECKBOX :: ButtonStyle bS_AUTOCHECKBOX :: ButtonStyle bS_RADIOBUTTON :: ButtonStyle bS_3STATE :: ButtonStyle bS_AUTO3STATE :: ButtonStyle bS_GROUPBOX :: ButtonStyle createButton :: String -> WindowStyle -> ButtonStyle -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe HWND -> Maybe HMENU -> HANDLE -> IO HWND bS_AUTORADIOBUTTON :: ButtonStyle bS_OWNERDRAW :: ButtonStyle bS_LEFTTEXT :: ButtonStyle bS_USERBUTTON :: ButtonStyle buttonStyle :: ClassName type ButtonState = UINT bST_CHECKED :: ButtonState bST_INDETERMINATE :: ButtonState bST_UNCHECKED :: ButtonState checkDlgButton :: HWND -> Int -> ButtonState -> IO () c_CheckDlgButton :: HWND -> Int -> ButtonState -> IO Bool checkRadioButton :: HWND -> Int -> Int -> Int -> IO () c_CheckRadioButton :: HWND -> Int -> Int -> Int -> IO Bool isDlgButtonChecked :: HWND -> Int -> IO ButtonState c_IsDlgButtonChecked :: HWND -> Int -> IO ButtonState type ComboBoxStyle = WindowStyle cBS_SIMPLE :: ComboBoxStyle cBS_DROPDOWN :: ComboBoxStyle cBS_DROPDOWNLIST :: ComboBoxStyle cBS_OWNERDRAWFIXED :: ComboBoxStyle cBS_OWNERDRAWVARIABLE :: ComboBoxStyle cBS_AUTOHSCROLL :: ComboBoxStyle cBS_OEMCONVERT :: ComboBoxStyle cBS_SORT :: ComboBoxStyle createComboBox :: String -> WindowStyle -> ComboBoxStyle -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe Pos -> HWND -> Maybe HMENU -> HANDLE -> IO HWND cBS_HASSTRINGS :: ComboBoxStyle cBS_NOINTEGRALHEIGHT :: ComboBoxStyle cBS_DISABLENOSCROLL :: ComboBoxStyle comboBoxStyle :: ClassName type EditStyle = WindowStyle eS_LEFT :: EditStyle eS_CENTER :: EditStyle eS_RIGHT :: EditStyle eS_MULTILINE :: EditStyle eS_UPPERCASE :: EditStyle eS_LOWERCASE :: EditStyle eS_PASSWORD :: EditStyle eS_AUTOVSCROLL :: EditStyle eS_AUTOHSCROLL :: EditStyle createEditWindow :: String -> WindowStyle -> EditStyle -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe Pos -> HWND -> Maybe HMENU -> HANDLE -> IO HWND eS_NOHIDESEL :: EditStyle eS_OEMCONVERT :: EditStyle eS_READONLY :: EditStyle eS_WANTRETURN :: EditStyle editStyle :: ClassName type ListBoxStyle = WindowStyle lBS_NOTIFY :: ListBoxStyle lBS_SORT :: ListBoxStyle lBS_NOREDRAW :: ListBoxStyle lBS_MULTIPLESEL :: ListBoxStyle lBS_OWNERDRAWFIXED :: ListBoxStyle lBS_OWNERDRAWVARIABLE :: ListBoxStyle lBS_HASSTRINGS :: ListBoxStyle lBS_USETABSTOPS :: ListBoxStyle lBS_NOINTEGRALHEIGHT :: ListBoxStyle createListBox :: String -> WindowStyle -> ListBoxStyle -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe Pos -> HWND -> Maybe HMENU -> HANDLE -> IO HWND lBS_MULTICOLUMN :: ListBoxStyle lBS_WANTKEYBOARDINPUT :: ListBoxStyle lBS_DISABLENOSCROLL :: ListBoxStyle lBS_STANDARD :: ListBoxStyle listBoxStyle :: ClassName type ScrollbarStyle = WindowStyle sBS_HORZ :: ScrollbarStyle sBS_TOPALIGN :: ScrollbarStyle sBS_BOTTOMALIGN :: ScrollbarStyle sBS_VERT :: ScrollbarStyle sBS_LEFTALIGN :: ScrollbarStyle sBS_RIGHTALIGN :: ScrollbarStyle sBS_SIZEBOX :: ScrollbarStyle createScrollbar :: String -> WindowStyle -> ScrollbarStyle -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe Pos -> HWND -> Maybe HMENU -> HANDLE -> IO HWND sBS_SIZEBOXTOPLEFTALIGN :: ScrollbarStyle sBS_SIZEBOXBOTTOMRIGHTALIGN :: ScrollbarStyle scrollBarStyle :: ClassName type StaticControlStyle = WindowStyle sS_LEFT :: StaticControlStyle sS_CENTER :: StaticControlStyle sS_RIGHT :: StaticControlStyle sS_ICON :: StaticControlStyle sS_BLACKRECT :: StaticControlStyle sS_GRAYRECT :: StaticControlStyle sS_WHITERECT :: StaticControlStyle sS_BLACKFRAME :: StaticControlStyle sS_GRAYFRAME :: StaticControlStyle createStaticWindow :: String -> WindowStyle -> StaticControlStyle -> Maybe Pos -> Maybe Pos -> Maybe Pos -> Maybe Pos -> HWND -> Maybe HMENU -> HANDLE -> IO HWND sS_WHITEFRAME :: StaticControlStyle sS_SIMPLE :: StaticControlStyle sS_LEFTNOWORDWRAP :: StaticControlStyle sS_NOPREFIX :: StaticControlStyle staticStyle :: ClassName pBM_DELTAPOS :: WindowMessage pBM_SETPOS :: WindowMessage pBM_SETRANGE :: WindowMessage pBM_SETSTEP :: WindowMessage pBM_STEPIT :: WindowMessage -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.Dialogue type DTemplate = LPCTSTR type DTemplateMem = Ptr Stub_DTM newtype Stub_DTM Stub_DTM :: DTemplateMem -> Stub_DTM newtype DIA_TEMPLATE DIA_TEMPLATE :: (Ptr DIA_TEMPLATE) -> DIA_TEMPLATE type DialogStyle = WindowStyle mkDialogTemplate :: String -> IO DTemplate type ResourceID = Int mkResource :: ResourceID -> IO (Ptr a) mkDialogTemplateFromResource :: Int -> IO DTemplate type DialogProc = HWND -> WindowMessage -> WPARAM -> LPARAM -> IO Int marshall_dialogProc_ :: DialogProc -> IO (FunPtr DialogProc) mkDialogClosure :: DialogProc -> IO (FunPtr DialogProc) dialogBox :: HINSTANCE -> DTemplate -> Maybe HWND -> DialogProc -> IO Int dialogBoxParam :: HINSTANCE -> DTemplate -> Maybe HWND -> DialogProc -> LPARAM -> IO Int c_DialogBoxParam :: HINSTANCE -> DTemplate -> HWND -> FunPtr DialogProc -> LPARAM -> IO Int dialogBoxIndirect :: HINSTANCE -> DTemplateMem -> Maybe HWND -> DialogProc -> IO Int dialogBoxIndirectParam :: HINSTANCE -> DTemplateMem -> Maybe HWND -> DialogProc -> LPARAM -> IO Int c_DialogBoxIndirectParam :: HINSTANCE -> DTemplateMem -> HWND -> FunPtr DialogProc -> LPARAM -> IO Int data DialogTemplate DialogTemplate :: Int -> Int -> Int -> Int -> WindowStyle -> DWORD -> (Either ResourceID String) -> (Either ResourceID String) -> (Either ResourceID String) -> (Either ResourceID String) -> Int -> [DialogControl] -> DialogTemplate data DialogControl DialogControl :: Int -> Int -> Int -> Int -> (Either ResourceID String) -> (Either ResourceID String) -> WindowStyle -> DWORD -> Int -> DialogControl mkDialogFromTemplate :: DialogTemplate -> IO DTemplateMem pushButtonControl :: Int -> Int -> Int -> Int -> DWORD -> DWORD -> Int -> String -> DialogControl labelControl :: Int -> Int -> Int -> Int -> DWORD -> DWORD -> Int -> String -> DialogControl listBoxControl :: Int -> Int -> Int -> Int -> DWORD -> DWORD -> Int -> String -> DialogControl comboBoxControl :: Int -> Int -> Int -> Int -> DWORD -> DWORD -> Int -> String -> DialogControl editControl :: Int -> Int -> Int -> Int -> DWORD -> DWORD -> Int -> String -> DialogControl scrollBarControl :: Int -> Int -> Int -> Int -> DWORD -> DWORD -> Int -> String -> DialogControl getFinalDialog :: Ptr DIA_TEMPLATE -> IO DTemplateMem mkDiaTemplate :: Int -> Int -> Int -> Int -> Int -> WindowStyle -> DWORD -> LPCWSTR -> LPCWSTR -> LPCWSTR -> LPCWSTR -> Int -> IO (Ptr DIA_TEMPLATE) addControl :: Ptr DIA_TEMPLATE -> DialogControl -> IO () addDiaControl :: Ptr DIA_TEMPLATE -> LPCWSTR -> Int -> LPCWSTR -> DWORD -> Int -> Int -> Int -> Int -> DWORD -> IO (Ptr DIA_TEMPLATE) marshall_res :: Either ResourceID String -> IO LPCWSTR createDialog :: HINSTANCE -> DTemplate -> Maybe HWND -> DialogProc -> IO HWND createDialogParam :: HINSTANCE -> DTemplate -> Maybe HWND -> DialogProc -> LPARAM -> IO HWND c_CreateDialogParam :: HINSTANCE -> DTemplate -> HWND -> FunPtr DialogProc -> LPARAM -> IO HWND createDialogIndirect :: HINSTANCE -> DTemplateMem -> Maybe HWND -> DialogProc -> IO HWND createDialogIndirectParam :: HINSTANCE -> DTemplateMem -> Maybe HWND -> DialogProc -> LPARAM -> IO HWND c_CreateDialogIndirectParam :: HINSTANCE -> DTemplateMem -> HWND -> FunPtr DialogProc -> LPARAM -> IO HWND defDlgProc :: HWND -> WindowMessage -> WPARAM -> LPARAM -> IO LRESULT endDialog :: HWND -> Int -> IO () c_EndDialog :: HWND -> Int -> IO BOOL getDialogBaseUnits :: IO LONG getDlgCtrlID :: HWND -> IO Int c_GetDlgCtrlID :: HWND -> IO Int getDlgItem :: HWND -> Int -> IO HWND c_GetDlgItem :: HWND -> Int -> IO HWND getDlgItemInt :: HWND -> Int -> Bool -> IO Int c_GetDlgItemInt :: HWND -> Int -> Ptr Bool -> Bool -> IO UINT getDlgItemText :: HWND -> Int -> Int -> IO String c_GetDlgItemText :: HWND -> Int -> LPTSTR -> Int -> IO Int getNextDlgGroupItem :: HWND -> HWND -> BOOL -> IO HWND c_GetNextDlgGroupItem :: HWND -> HWND -> BOOL -> IO HWND getNextDlgTabItem :: HWND -> HWND -> BOOL -> IO HWND c_GetNextDlgTabItem :: HWND -> HWND -> BOOL -> IO HWND isDialogMessage :: HWND -> LPMSG -> IO BOOL mapDialogRect :: HWND -> LPRECT -> IO () c_MapDialogRect :: HWND -> LPRECT -> IO Bool sendDlgItemMessage :: HWND -> Int -> WindowMessage -> WPARAM -> LPARAM -> IO LONG setDlgItemInt :: HWND -> Int -> UINT -> BOOL -> IO () c_SetDlgItemInt :: HWND -> Int -> UINT -> BOOL -> IO Bool setDlgItemText :: HWND -> Int -> String -> IO () c_SetDlgItemText :: HWND -> Int -> LPCTSTR -> IO Bool dS_3DLOOK :: WindowStyle dS_ABSALIGN :: WindowStyle dS_CENTER :: WindowStyle dS_CENTERMOUSE :: WindowStyle dS_CONTEXTHELP :: WindowStyle dS_CONTROL :: WindowStyle dS_FIXEDSYS :: WindowStyle dS_LOCALEDIT :: WindowStyle dS_MODALFRAME :: WindowStyle dM_GETDEFID :: WindowMessage dS_NOFAILCREATE :: WindowStyle dM_REPOSITION :: WindowMessage dS_NOIDLEMSG :: WindowStyle dM_SETDEFID :: WindowMessage dS_SETFONT :: WindowStyle wM_CTLCOLORDLG :: WindowMessage dS_SETFOREGROUND :: WindowStyle wM_CTLCOLORMSGBOX :: WindowMessage dS_SYSMODAL :: WindowStyle -- | Provide AnimatedWindow function and flags. module Graphics.Win32.Window.AnimateWindow type AnimateWindowType = DWORD aW_SLIDE :: AnimateWindowType aW_ACTIVATE :: AnimateWindowType aW_BLEND :: AnimateWindowType aW_HIDE :: AnimateWindowType aW_CENTER :: AnimateWindowType aW_HOR_POSITIVE :: AnimateWindowType aW_HOR_NEGATIVE :: AnimateWindowType animateWindow :: HWND -> DWORD -> AnimateWindowType -> IO () aW_VER_POSITIVE :: AnimateWindowType aW_VER_NEGATIVE :: AnimateWindowType c_AnimateWindow :: HWND -> DWORD -> AnimateWindowType -> IO BOOL -- | Get/Set Foreground Window. module Graphics.Win32.Window.ForegroundWindow getForegroundWindow :: IO HWND -- | Setting Window to Foreground. See: -- https://github.com/haskell/win32/pull/9, -- http://stackoverflow.com/questions/14297146/win32-setforegroundwindow-in-haskell. setForegroundWindow :: HWND -> IO Bool c_SetForegroundWindow :: HWND -> IO Bool -- | Allow other process to set Window to Foreground by using -- setForegroundWindow function. allowSetForegroundWindow :: ProcessId -> IO () c_AllowSetForegroundWindow :: ProcessId -> IO Bool -- | An FFI binding to the IMM (Input Method Manager) part of the Win32 -- API. module Graphics.Win32.Window.IMM iME_SMODE_AUTOMATIC :: DWORD iME_SMODE_NONE :: DWORD iME_SMODE_PHRASEPREDICT :: DWORD iME_SMODE_PLAURALCLAUSE :: DWORD iME_SMODE_SINGLECONVERT :: DWORD immReleaseContext :: HWND -> HIMC -> IO () c_ImmReleaseContext :: HWND -> HIMC -> IO BOOL immGetVirtualKey :: HWND -> IO VKey immSimulateHotKey :: HWND -> DWORD -> IO () c_ImmSimulateHotKey :: HWND -> DWORD -> IO BOOL type HIMC = Ptr () immGetContext :: HWND -> IO HIMC immGetOpenStatus :: HIMC -> IO BOOL immSetOpenStatus :: HIMC -> BOOL -> IO () c_ImmSetOpenStatus :: HIMC -> UINT -> IO BOOL data IMEMode IMEMode :: DWORD -> DWORD -> IMEMode immGetConversionStatus :: HIMC -> IO IMEMode c_ImmGetConversionStatus :: HIMC -> LPDWORD -> LPDWORD -> IO BOOL immSetConversionStatus :: HIMC -> IMEMode -> IO () c_ImmSetConversionStatus :: HIMC -> DWORD -> DWORD -> IO BOOL iME_CMODE_ALPHANUMERIC :: DWORD iME_CMODE_CHARCODE :: DWORD iME_CMODE_EUDC :: DWORD iME_CMODE_FIXED :: DWORD iME_CMODE_FULLSHAPE :: DWORD iME_CMODE_HANJACONVERT :: DWORD iME_CMODE_KATAKANA :: DWORD iME_CMODE_NATIVE :: DWORD iME_CMODE_NOCONVERSION :: DWORD iME_CMODE_ROMAN :: DWORD iME_CMODE_SOFTKBD :: DWORD iME_CMODE_SYMBOL :: DWORD -- | Provide PostMessage function and friends. module Graphics.Win32.Window.PostMessage inSendMessage :: IO Bool postMessage :: MbHWND -> WindowMessage -> WPARAM -> LPARAM -> IO () c_PostMessage :: HWND -> WindowMessage -> WPARAM -> LPARAM -> IO BOOL postQuitMessage :: Int -> IO () postThreadMessage :: DWORD -> WindowMessage -> WPARAM -> LPARAM -> IO () c_PostThreadMessage :: DWORD -> WindowMessage -> WPARAM -> LPARAM -> IO BOOL hWND_BROADCAST :: HWND -- | Provides alpha blending functionality. module Graphics.Win32.GDI.AlphaBlend aC_SRC_ALPHA :: BYTE type PBLENDFUNCTION = Ptr BLENDFUNCTION type LPBLENDFUNCTION = Ptr BLENDFUNCTION data BLENDFUNCTION BLENDFUNCTION :: BYTE -> BYTE -> BYTE -> BYTE -> BLENDFUNCTION [blendOp] :: BLENDFUNCTION -> BYTE [blendFlags] :: BLENDFUNCTION -> BYTE [sourceConstantAlpha] :: BLENDFUNCTION -> BYTE [alphaFormat] :: BLENDFUNCTION -> BYTE c_AlphaBlend :: HDC -> Int -> Int -> Int -> Int -> HDC -> Int -> Int -> Int -> Int -> PBLENDFUNCTION -> IO BOOL c_TransparentBlt :: HDC -> Int -> Int -> Int -> Int -> HDC -> Int -> Int -> Int -> Int -> UINT -> IO BOOL aC_SRC_OVER :: BYTE instance GHC.Show.Show Graphics.Win32.GDI.AlphaBlend.BLENDFUNCTION instance Foreign.Storable.Storable Graphics.Win32.GDI.AlphaBlend.BLENDFUNCTION -- | Provides LayeredWindow functionality. module Graphics.Win32.LayeredWindow toLayeredWindow :: HANDLE -> IO () gWL_EXSTYLE :: INT wS_EX_LAYERED :: WindowStyleEx lWA_COLORKEY :: DWORD lWA_ALPHA :: DWORD c_SetLayeredWindowAttributes :: HANDLE -> COLORREF -> BYTE -> DWORD -> IO BOOL c_GetLayeredWindowAttributes :: HANDLE -> COLORREF -> Ptr BYTE -> Ptr DWORD -> IO BOOL c_UpdateLayeredWindow :: HANDLE -> HDC -> Ptr POINT -> Ptr SIZE -> HDC -> Ptr POINT -> COLORREF -> Ptr BLENDFUNCTION -> DWORD -> IO BOOL c_GetWindowLongPtr :: HANDLE -> INT -> IO LONG_PTR uLW_ALPHA :: DWORD uLW_COLORKEY :: DWORD uLW_OPAQUE :: DWORD -- | An FFI binding to the hot key part of the Win32 API. module Graphics.Win32.Window.HotKey -- | This parameter requires to use Windows 7 or later. mOD_NOREPEAT :: FsModifier wM_HOTKEY :: WindowMessage joinModifiers :: FsModifiers -> FsModifier registerHotKey :: MbHWND -> Int -> FsModifier -> VKey -> IO () c_RegisterHotKey :: HWND -> Int -> UINT -> VKey -> IO BOOL unregisterHotKey :: MbHWND -> Int -> IO () c_UnregisterHotKey :: HWND -> Int -> IO BOOL type FsModifiers = [FsModifier] type FsModifier = UINT mOD_ALT :: FsModifier mOD_CONTROL :: FsModifier mOD_SHIFT :: FsModifier mOD_WIN :: FsModifier -- | Win32 stuff from shell32.dll module System.Win32.Shell sHGetFolderPath :: HWND -> CSIDL -> HANDLE -> SHGetFolderPathFlags -> IO String type CSIDL = CInt cSIDL_PROFILE :: CSIDL cSIDL_APPDATA :: CSIDL cSIDL_WINDOWS :: CSIDL cSIDL_PERSONAL :: CSIDL cSIDL_LOCAL_APPDATA :: CSIDL cSIDL_DESKTOPDIRECTORY :: CSIDL cSIDL_PROGRAM_FILES :: CSIDL type SHGetFolderPathFlags = DWORD sHGFP_TYPE_CURRENT :: SHGetFolderPathFlags sHGFP_TYPE_DEFAULT :: SHGetFolderPathFlags -- | An FFI binding to the system part of the Win32 API. module System.Win32 -- | FFI-bindings to interact with SimpleMAPI module System.Win32.SimpleMAPI type ULONG = DWORD type LHANDLE = ULONG newtype MapiRecipDesc MapiRecipDesc :: () -> MapiRecipDesc type MapiFlag = ULONG mAPI_LOGON_UI :: MapiFlag mAPI_NEW_SESSION :: MapiFlag mAPI_FORCE_DOWNLOAD :: MapiFlag mAPI_DIALOG :: MapiFlag mAPI_UNREAD_ONLY :: MapiFlag mAPI_LONG_MSGID :: MapiFlag mAPI_GUARANTEE_FIFO :: MapiFlag mAPI_ENVELOPE_ONLY :: MapiFlag mAPI_PEEK :: MapiFlag mAPI_BODY_AS_FILE :: MapiFlag mAPI_SUPPRESS_ATTACH :: MapiFlag mAPI_AB_NOMODIFY :: MapiFlag mAPI_OLE :: MapiFlag mapiErrors :: [(ULONG, String)] mAPI_OLE_STATIC :: MapiFlag mAPI_UNREAD :: MapiFlag mAPI_RECEIPT_REQUESTED :: MapiFlag mAPI_SENT :: MapiFlag mapiErrorString :: ULONG -> String mapiFail :: String -> IO ULONG -> IO ULONG mapiFail_ :: String -> IO ULONG -> IO () type MapiLogonType = ULONG -> LPSTR -> LPSTR -> MapiFlag -> ULONG -> Ptr LHANDLE -> IO ULONG mkMapiLogon :: FunPtr MapiLogonType -> MapiLogonType type MapiLogoffType = LHANDLE -> ULONG -> MapiFlag -> ULONG -> IO ULONG mkMapiLogoff :: FunPtr MapiLogoffType -> MapiLogoffType type MapiResolveNameType = LHANDLE -> ULONG -> LPSTR -> MapiFlag -> ULONG -> Ptr (Ptr MapiRecipDesc) -> IO ULONG mkMapiResolveName :: FunPtr MapiResolveNameType -> MapiResolveNameType type MapiFreeBufferType = Ptr () -> IO ULONG mkMapiFreeBuffer :: FunPtr MapiFreeBufferType -> MapiFreeBufferType type MapiSendMailType = LHANDLE -> ULONG -> Ptr Message -> MapiFlag -> ULONG -> IO ULONG mkMapiSendMail :: FunPtr MapiSendMailType -> MapiSendMailType data MapiFuncs MapiFuncs :: MapiLogonType -> MapiLogoffType -> MapiResolveNameType -> MapiFreeBufferType -> MapiSendMailType -> MapiFuncs [mapifLogon] :: MapiFuncs -> MapiLogonType [mapifLogoff] :: MapiFuncs -> MapiLogoffType [mapifResolveName] :: MapiFuncs -> MapiResolveNameType [mapifFreeBuffer] :: MapiFuncs -> MapiFreeBufferType [mapifSendMail] :: MapiFuncs -> MapiSendMailType type MapiLoaded = (MapiFuncs, ForeignPtr ()) loadMapiFuncs :: String -> HMODULE -> IO MapiFuncs loadMapiDll :: String -> IO (MapiFuncs, HMODULE) withMapiFuncs :: [String] -> (MapiFuncs -> IO a) -> IO a loadMapi :: [String] -> IO MapiLoaded withMapiLoaded :: MapiLoaded -> (MapiFuncs -> IO a) -> IO a maybeHWND :: Maybe HWND -> ULONG -- | Create Simple MAPI-session by logon mapiLogon :: MapiFuncs -> Maybe HWND -> Maybe String -> Maybe String -> MapiFlag -> IO LHANDLE -- | End Simple MAPI-session mapiLogoff :: MapiFuncs -> LHANDLE -> Maybe HWND -> IO () data RecipientClass RcOriginal :: RecipientClass RcTo :: RecipientClass RcCc :: RecipientClass RcBcc :: RecipientClass rcToULONG :: RecipientClass -> ULONG uLONGToRc :: ULONG -> RecipientClass data Recipient RecipResolve :: (Maybe HWND) -> MapiFlag -> String -> (Maybe Recipient) -> Recipient Recip :: String -> String -> Recipient type Recipients = [(RecipientClass, Recipient)] simpleRecip :: String -> Recipient withRecipient :: MapiFuncs -> LHANDLE -> RecipientClass -> Recipient -> (Ptr MapiRecipDesc -> IO a) -> IO a withRecipients :: MapiFuncs -> LHANDLE -> Recipients -> (Int -> Ptr MapiRecipDesc -> IO a) -> IO a data FileTag FileTag :: Maybe String -> Maybe String -> FileTag -- | mime [ftTag] :: FileTag -> Maybe String [ftEncoding] :: FileTag -> Maybe String defFileTag :: FileTag withFileTag :: FileTag -> (Ptr FileTag -> IO a) -> IO a data Attachment Attachment :: MapiFlag -> Maybe ULONG -> String -> Maybe String -> Maybe FileTag -> Attachment [attFlag] :: Attachment -> MapiFlag [attPosition] :: Attachment -> Maybe ULONG [attPath] :: Attachment -> String [attName] :: Attachment -> Maybe String [attTag] :: Attachment -> Maybe FileTag defAttachment :: Attachment type Attachments = [Attachment] withAttachments :: Attachments -> (Int -> Ptr Attachment -> IO a) -> IO a data Message Message :: String -> String -> Maybe String -> Maybe String -> Maybe String -> MapiFlag -> Maybe Recipient -> Recipients -> Attachments -> Message [msgSubject] :: Message -> String [msgBody] :: Message -> String [msgType] :: Message -> Maybe String [msgDate] :: Message -> Maybe String [msgConversationId] :: Message -> Maybe String [msgFlags] :: Message -> MapiFlag [msgFrom] :: Message -> Maybe Recipient [msgRecips] :: Message -> Recipients [msgAttachments] :: Message -> Attachments defMessage :: Message withMessage :: MapiFuncs -> LHANDLE -> Message -> (Ptr Message -> IO a) -> IO a mapiSendMail :: MapiFuncs -> LHANDLE -> Maybe HWND -> Message -> MapiFlag -> IO () handleIOException :: (IOException -> IO a) -> IO a -> IO a instance GHC.Show.Show System.Win32.SimpleMAPI.Message instance GHC.Show.Show System.Win32.SimpleMAPI.Attachment instance GHC.Show.Show System.Win32.SimpleMAPI.FileTag instance GHC.Show.Show System.Win32.SimpleMAPI.Recipient instance GHC.Enum.Enum System.Win32.SimpleMAPI.RecipientClass instance GHC.Classes.Ord System.Win32.SimpleMAPI.RecipientClass instance GHC.Classes.Eq System.Win32.SimpleMAPI.RecipientClass instance GHC.Show.Show System.Win32.SimpleMAPI.RecipientClass -- | Get the handle of the current console window. module System.Win32.Console.HWND -- | Get the handle of the current console window by using window's title. -- See: http://support.microsoft.com/kb/124103 getConsoleHWND :: IO HWND -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Region badRegion :: RegionType -> Bool combineRgn :: HRGN -> HRGN -> HRGN -> ClippingMode -> IO RegionType c_CombineRgn :: PRGN -> PRGN -> PRGN -> ClippingMode -> IO RegionType offsetRgn :: HRGN -> INT -> INT -> IO RegionType c_OffsetRgn :: PRGN -> INT -> INT -> IO RegionType getRgnBox :: HRGN -> LPRECT -> IO RegionType c_GetRgnBox :: PRGN -> LPRECT -> IO RegionType createEllipticRgn :: INT -> INT -> INT -> INT -> IO HRGN c_CreateEllipticRgn :: INT -> INT -> INT -> INT -> IO PRGN createEllipticRgnIndirect :: LPRECT -> IO HRGN c_CreateEllipticRgnIndirect :: LPRECT -> IO PRGN createRectRgn :: INT -> INT -> INT -> INT -> IO HRGN c_CreateRectRgn :: INT -> INT -> INT -> INT -> IO PRGN createRectRgnIndirect :: LPRECT -> IO HRGN c_CreateRectRgnIndirect :: LPRECT -> IO PRGN createRoundRectRgn :: INT -> INT -> INT -> INT -> INT -> INT -> IO HRGN c_CreateRoundRectRgn :: INT -> INT -> INT -> INT -> INT -> INT -> IO PRGN createPolygonRgn :: [POINT] -> PolyFillMode -> IO HRGN c_CreatePolygonRgn :: Ptr POINT -> Int -> PolyFillMode -> IO PRGN equalRgn :: PRGN -> PRGN -> IO Bool fillRgn :: HDC -> HRGN -> HBRUSH -> IO () c_FillRgn :: HDC -> PRGN -> HBRUSH -> IO Bool invertRgn :: HDC -> HRGN -> IO () c_InvertRgn :: HDC -> PRGN -> IO Bool paintRgn :: HDC -> HRGN -> IO () c_PaintRgn :: HDC -> PRGN -> IO Bool frameRgn :: HDC -> HRGN -> HBRUSH -> Int -> Int -> IO () c_FrameRgn :: HDC -> PRGN -> HBRUSH -> Int -> Int -> IO Bool ptInRegion :: HRGN -> Int -> Int -> IO Bool c_PtInRegion :: PRGN -> Int -> Int -> IO Bool rectInRegion :: HRGN -> RECT -> IO Bool c_RectInRegion :: PRGN -> Ptr RECT -> IO Bool -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Pen type StockPen = INT wHITE_PEN :: StockPen bLACK_PEN :: StockPen nULL_PEN :: StockPen getStockPen :: StockPen -> IO HPEN c_GetStockPen :: StockPen -> IO HPEN deletePen :: HPEN -> IO () c_DeletePen :: HPEN -> IO Bool type PenStyle = INT pS_SOLID :: PenStyle pS_DASH :: PenStyle pS_DOT :: PenStyle pS_DASHDOT :: PenStyle pS_DASHDOTDOT :: PenStyle pS_NULL :: PenStyle pS_INSIDEFRAME :: PenStyle pS_ENDCAP_ROUND :: PenStyle pS_USERSTYLE :: PenStyle pS_ENDCAP_SQUARE :: PenStyle pS_ALTERNATE :: PenStyle pS_ENDCAP_FLAT :: PenStyle pS_STYLE_MASK :: PenStyle pS_ENDCAP_MASK :: PenStyle pS_JOIN_ROUND :: PenStyle pS_JOIN_BEVEL :: PenStyle pS_JOIN_MITER :: PenStyle pS_COSMETIC :: PenStyle pS_GEOMETRIC :: PenStyle pS_TYPE_MASK :: PenStyle createPen :: PenStyle -> INT -> COLORREF -> IO HPEN c_CreatePen :: PenStyle -> INT -> COLORREF -> IO HPEN -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Path beginPath :: HDC -> IO () closeFigure :: HDC -> IO () endPath :: HDC -> IO () fillPath :: HDC -> IO () flattenPath :: HDC -> IO () pathToRegion :: HDC -> IO HRGN strokeAndFillPath :: HDC -> IO () strokePath :: HDC -> IO () widenPath :: HDC -> IO () -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Palette type StockPalette = WORD dEFAULT_PALETTE :: StockPalette getStockPalette :: StockPalette -> IO HPALETTE c_GetStockPalette :: StockPalette -> IO HPALETTE deletePalette :: HPALETTE -> IO () c_DeletePalette :: HPALETTE -> IO Bool -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.HDC getPixel :: HDC -> Int -> Int -> IO COLORREF c_GetPixel :: HDC -> Int -> Int -> IO COLORREF setArcDirection :: HDC -> ArcDirection -> IO ArcDirection c_SetArcDirection :: HDC -> ArcDirection -> IO ArcDirection getArcDirection :: HDC -> IO ArcDirection c_GetArcDirection :: HDC -> IO ArcDirection setPolyFillMode :: HDC -> PolyFillMode -> IO PolyFillMode c_SetPolyFillMode :: HDC -> PolyFillMode -> IO PolyFillMode getPolyFillMode :: HDC -> IO PolyFillMode c_GetPolyFillMode :: HDC -> IO PolyFillMode setGraphicsMode :: HDC -> GraphicsMode -> IO GraphicsMode c_SetGraphicsMode :: HDC -> GraphicsMode -> IO GraphicsMode getGraphicsMode :: HDC -> IO GraphicsMode c_GetGraphicsMode :: HDC -> IO GraphicsMode setStretchBltMode :: HDC -> StretchBltMode -> IO StretchBltMode c_SetStretchBltMode :: HDC -> StretchBltMode -> IO StretchBltMode getStretchBltMode :: HDC -> IO StretchBltMode c_GetStretchBltMode :: HDC -> IO StretchBltMode setBkColor :: HDC -> COLORREF -> IO COLORREF c_SetBkColor :: HDC -> COLORREF -> IO COLORREF getBkColor :: HDC -> IO COLORREF c_GetBkColor :: HDC -> IO COLORREF setTextColor :: HDC -> COLORREF -> IO COLORREF c_SetTextColor :: HDC -> COLORREF -> IO COLORREF getTextColor :: HDC -> IO COLORREF c_GetTextColor :: HDC -> IO COLORREF setBkMode :: HDC -> BackgroundMode -> IO BackgroundMode c_SetBkMode :: HDC -> BackgroundMode -> IO BackgroundMode getBkMode :: HDC -> IO BackgroundMode c_GetBkMode :: HDC -> IO BackgroundMode setBrushOrgEx :: HDC -> Int -> Int -> IO POINT c_SetBrushOrgEx :: HDC -> Int -> Int -> Ptr POINT -> IO Bool getBrushOrgEx :: HDC -> IO POINT c_GetBrushOrgEx :: HDC -> Ptr POINT -> IO Bool setTextAlign :: HDC -> TextAlignment -> IO TextAlignment c_SetTextAlign :: HDC -> TextAlignment -> IO TextAlignment getTextAlign :: HDC -> IO TextAlignment c_GetTextAlign :: HDC -> IO TextAlignment setTextCharacterExtra :: HDC -> Int -> IO Int c_SetTextCharacterExtra :: HDC -> Int -> IO Int getTextCharacterExtra :: HDC -> IO Int c_GetTextCharacterExtra :: HDC -> IO Int getMiterLimit :: HDC -> IO Float c_GetMiterLimit :: HDC -> Ptr FLOAT -> IO Bool setMiterLimit :: HDC -> Float -> IO Float c_SetMiterLimit :: HDC -> FLOAT -> Ptr FLOAT -> IO Bool saveDC :: HDC -> IO Int c_SaveDC :: HDC -> IO Int restoreDC :: HDC -> Int -> IO () c_RestoreDC :: HDC -> Int -> IO Bool getCurrentBitmap :: HDC -> IO HBITMAP c_GetCurrentBitmap :: HDC -> UINT -> IO HBITMAP getCurrentBrush :: HDC -> IO HBRUSH c_GetCurrentBrush :: HDC -> UINT -> IO HBRUSH getCurrentFont :: HDC -> IO HFONT c_GetCurrentFont :: HDC -> UINT -> IO HFONT getCurrentPalette :: HDC -> IO HPALETTE c_GetCurrentPalette :: HDC -> UINT -> IO HPALETTE getCurrentPen :: HDC -> IO HPEN c_GetCurrentPen :: HDC -> UINT -> IO HPEN selectBitmap :: HDC -> HBITMAP -> IO HBITMAP c_SelectBitmap :: HDC -> HBITMAP -> IO HBITMAP selectBrush :: HDC -> HBRUSH -> IO HBRUSH c_SelectBrush :: HDC -> HBRUSH -> IO HBRUSH selectFont :: HDC -> HFONT -> IO HFONT c_SelectFont :: HDC -> HFONT -> IO HFONT selectPen :: HDC -> HPEN -> IO HPEN c_SelectPen :: HDC -> HPEN -> IO HPEN selectPalette :: HDC -> HPALETTE -> Bool -> IO HPALETTE c_SelectPalette :: HDC -> HPALETTE -> Bool -> IO HPALETTE selectRgn :: HDC -> HRGN -> IO RegionType c_SelectRgn :: HDC -> PRGN -> IO RegionType selectClipRgn :: HDC -> Maybe HRGN -> IO RegionType c_SelectClipRgn :: HDC -> PRGN -> IO RegionType extSelectClipRgn :: HDC -> Maybe HRGN -> ClippingMode -> IO RegionType c_ExtSelectClipRgn :: HDC -> PRGN -> ClippingMode -> IO RegionType selectClipPath :: HDC -> ClippingMode -> IO RegionType c_SelectClipPath :: HDC -> ClippingMode -> IO RegionType cancelDC :: HDC -> IO () c_CancelDC :: HDC -> IO Bool createCompatibleDC :: Maybe HDC -> IO HDC c_CreateCompatibleDC :: HDC -> IO HDC deleteDC :: HDC -> IO () c_DeleteDC :: HDC -> IO Bool -- | 2D graphics operations module Graphics.Win32.GDI.Graphics2D moveToEx :: HDC -> Int32 -> Int32 -> IO POINT c_MoveToEx :: HDC -> Int32 -> Int32 -> Ptr POINT -> IO Bool lineTo :: HDC -> Int32 -> Int32 -> IO () c_LineTo :: HDC -> Int32 -> Int32 -> IO Bool polyline :: HDC -> [POINT] -> IO () c_Polyline :: HDC -> Ptr POINT -> Int -> IO Bool polylineTo :: HDC -> [POINT] -> IO () c_PolylineTo :: HDC -> Ptr POINT -> Int -> IO Bool polygon :: HDC -> [POINT] -> IO () c_Polygon :: HDC -> Ptr POINT -> Int -> IO Bool polyBezier :: HDC -> [POINT] -> IO () c_PolyBezier :: HDC -> Ptr POINT -> Int -> IO Bool polyBezierTo :: HDC -> [POINT] -> IO () c_PolyBezierTo :: HDC -> Ptr POINT -> Int -> IO Bool arc :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO () c_Arc :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO Bool arcTo :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO () c_ArcTo :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO Bool angleArc :: HDC -> Int32 -> Int32 -> WORD -> Float -> Float -> IO () c_AngleArc :: HDC -> Int32 -> Int32 -> WORD -> Float -> Float -> IO Bool fillRect :: HDC -> RECT -> HBRUSH -> IO () c_FillRect :: HDC -> Ptr RECT -> HBRUSH -> IO Bool frameRect :: HDC -> RECT -> HBRUSH -> IO () c_FrameRect :: HDC -> Ptr RECT -> HBRUSH -> IO Bool invertRect :: HDC -> RECT -> IO () c_InvertRect :: HDC -> Ptr RECT -> IO Bool rectangle :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> IO () c_Rectangle :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> IO Bool roundRect :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO () c_RoundRect :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO Bool ellipse :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> IO () c_Ellipse :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> IO Bool chord :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO () c_Chord :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO Bool pie :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO () c_Pie :: HDC -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> IO Bool bitBlt :: HDC -> INT -> INT -> INT -> INT -> HDC -> INT -> INT -> RasterOp3 -> IO () c_BitBlt :: HDC -> INT -> INT -> INT -> INT -> HDC -> INT -> INT -> RasterOp3 -> IO Bool maskBlt :: HDC -> INT -> INT -> INT -> INT -> HDC -> INT -> INT -> HBITMAP -> INT -> INT -> RasterOp4 -> IO () c_MaskBlt :: HDC -> INT -> INT -> INT -> INT -> HDC -> INT -> INT -> HBITMAP -> INT -> INT -> RasterOp4 -> IO Bool stretchBlt :: HDC -> INT -> INT -> INT -> INT -> HDC -> INT -> INT -> INT -> INT -> RasterOp3 -> IO () c_StretchBlt :: HDC -> INT -> INT -> INT -> INT -> HDC -> INT -> INT -> INT -> INT -> RasterOp3 -> IO Bool plgBlt :: HDC -> POINT -> POINT -> POINT -> HDC -> INT -> INT -> INT -> INT -> MbHBITMAP -> INT -> INT -> IO () c_PlgBlt :: HDC -> Ptr POINT -> HDC -> INT -> INT -> INT -> INT -> HBITMAP -> INT -> INT -> IO Bool textOut :: HDC -> INT -> INT -> String -> IO () c_TextOut :: HDC -> INT -> INT -> LPCTSTR -> Int -> IO Bool getTextExtentPoint32 :: HDC -> String -> IO SIZE c_GetTextExtentPoint32 :: HDC -> LPCTSTR -> Int -> Ptr SIZE -> IO Bool -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Font type CharSet = UINT type PitchAndFamily = UINT type OutPrecision = UINT type ClipPrecision = UINT type FontQuality = UINT type FontWeight = Word32 type FaceName = String aNSI_CHARSET :: CharSet dEFAULT_CHARSET :: CharSet sYMBOL_CHARSET :: CharSet sHIFTJIS_CHARSET :: CharSet hANGEUL_CHARSET :: CharSet cHINESEBIG5_CHARSET :: CharSet dEFAULT_PITCH :: PitchAndFamily oEM_CHARSET :: CharSet fIXED_PITCH :: PitchAndFamily vARIABLE_PITCH :: PitchAndFamily fF_DONTCARE :: PitchAndFamily fF_ROMAN :: PitchAndFamily fF_SWISS :: PitchAndFamily fF_MODERN :: PitchAndFamily familyMask :: PitchAndFamily pitchMask :: PitchAndFamily fF_SCRIPT :: PitchAndFamily fF_DECORATIVE :: PitchAndFamily oUT_DEFAULT_PRECIS :: OutPrecision oUT_STRING_PRECIS :: OutPrecision oUT_CHARACTER_PRECIS :: OutPrecision oUT_STROKE_PRECIS :: OutPrecision oUT_TT_PRECIS :: OutPrecision oUT_DEVICE_PRECIS :: OutPrecision cLIP_DEFAULT_PRECIS :: ClipPrecision oUT_RASTER_PRECIS :: OutPrecision cLIP_CHARACTER_PRECIS :: ClipPrecision oUT_TT_ONLY_PRECIS :: OutPrecision cLIP_STROKE_PRECIS :: ClipPrecision cLIP_MASK :: ClipPrecision cLIP_LH_ANGLES :: ClipPrecision dEFAULT_QUALITY :: FontQuality cLIP_TT_ALWAYS :: ClipPrecision dRAFT_QUALITY :: FontQuality cLIP_EMBEDDED :: ClipPrecision pROOF_QUALITY :: FontQuality fW_DONTCARE :: FontWeight fW_THIN :: FontWeight fW_EXTRALIGHT :: FontWeight fW_LIGHT :: FontWeight fW_NORMAL :: FontWeight fW_MEDIUM :: FontWeight fW_SEMIBOLD :: FontWeight fW_BOLD :: FontWeight fW_EXTRABOLD :: FontWeight fW_HEAVY :: FontWeight fW_REGULAR :: FontWeight fW_ULTRALIGHT :: FontWeight fW_DEMIBOLD :: FontWeight createFont :: INT -> INT -> INT -> INT -> FontWeight -> Bool -> Bool -> Bool -> CharSet -> OutPrecision -> ClipPrecision -> FontQuality -> PitchAndFamily -> FaceName -> IO HFONT fW_ULTRABOLD :: FontWeight fW_BLACK :: FontWeight c_CreateFont :: INT -> INT -> INT -> INT -> FontWeight -> Bool -> Bool -> Bool -> CharSet -> OutPrecision -> ClipPrecision -> FontQuality -> PitchAndFamily -> LPCTSTR -> IO HFONT deleteFont :: HFONT -> IO () type StockFont = WORD oEM_FIXED_FONT :: StockFont aNSI_FIXED_FONT :: StockFont aNSI_VAR_FONT :: StockFont sYSTEM_FONT :: StockFont dEVICE_DEFAULT_FONT :: StockFont getStockFont :: StockFont -> IO HFONT sYSTEM_FIXED_FONT :: StockFont -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Clip type ClipboardFormat = UINT cF_BITMAP :: ClipboardFormat cF_DIB :: ClipboardFormat cF_DIF :: ClipboardFormat cF_DSPBITMAP :: ClipboardFormat cF_DSPENHMETAFILE :: ClipboardFormat cF_DSPMETAFILEPICT :: ClipboardFormat cF_DSPTEXT :: ClipboardFormat cF_ENHMETAFILE :: ClipboardFormat cF_GDIOBJFIRST :: ClipboardFormat cF_HDROP :: ClipboardFormat cF_LOCALE :: ClipboardFormat cF_METAFILEPICT :: ClipboardFormat cF_OEMTEXT :: ClipboardFormat cF_OWNERDISPLAY :: ClipboardFormat cF_PALETTE :: ClipboardFormat wM_CLIPBOARDUPDATE :: WindowMessage cF_PENDATA :: ClipboardFormat cF_PRIVATEFIRST :: ClipboardFormat cF_PRIVATELAST :: ClipboardFormat changeClipboardChain :: HWND -> HWND -> IO Bool cF_RIFF :: ClipboardFormat closeClipboard :: IO () cF_SYLK :: ClipboardFormat cF_TEXT :: ClipboardFormat c_CloseClipboard :: IO BOOL cF_WAVE :: ClipboardFormat countClipboardFormats :: IO Int cF_TIFF :: ClipboardFormat emptyClipboard :: IO () cF_DIBV5 :: ClipboardFormat cF_GDIOBJLAST :: ClipboardFormat c_EmptyClipboard :: IO BOOL cF_UNICODETEXT :: ClipboardFormat enumClipboardFormats :: ClipboardFormat -> IO ClipboardFormat c_EnumClipboardFormats :: ClipboardFormat -> IO ClipboardFormat getClipboardData :: ClipboardFormat -> IO HANDLE c_GetClipboardData :: ClipboardFormat -> IO HANDLE getClipboardFormatName :: ClipboardFormat -> IO String c_GetClipboardFormatName :: ClipboardFormat -> LPTSTR -> Int -> IO Int getClipboardOwner :: IO HWND c_GetClipboardOwner :: IO HWND getClipboardViewer :: IO HWND c_GetClipboardViewer :: IO HWND getOpenClipboardWindow :: IO HWND c_GetOpenClipboardWindow :: IO HWND getPriorityClipboardFormat :: [ClipboardFormat] -> IO Int c_GetPriorityClipboardFormat :: Ptr UINT -> Int -> IO Int isClipboardFormatAvailable :: ClipboardFormat -> IO BOOL openClipboard :: HWND -> IO () c_OpenClipboard :: HWND -> IO BOOL registerClipboardFormat :: String -> IO ClipboardFormat c_RegisterClipboardFormat :: LPCTSTR -> IO ClipboardFormat setClipboardData :: ClipboardFormat -> HANDLE -> IO HANDLE c_SetClipboardData :: ClipboardFormat -> HANDLE -> IO HANDLE setClipboardViewer :: HWND -> IO HWND c_SetClipboardViewer :: HWND -> IO HWND -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Brush createSolidBrush :: COLORREF -> IO HBRUSH c_CreateSolidBrush :: COLORREF -> IO HBRUSH createHatchBrush :: HatchStyle -> COLORREF -> IO HBRUSH c_CreateHatchBrush :: HatchStyle -> COLORREF -> IO HBRUSH createPatternBrush :: HBITMAP -> IO HBRUSH c_CreatePatternBrush :: HBITMAP -> IO HBRUSH deleteBrush :: HBRUSH -> IO () c_DeleteBrush :: HBRUSH -> IO Bool type StockBrush = INT wHITE_BRUSH :: StockBrush lTGRAY_BRUSH :: StockBrush gRAY_BRUSH :: StockBrush dKGRAY_BRUSH :: StockBrush bLACK_BRUSH :: StockBrush nULL_BRUSH :: StockBrush getStockBrush :: StockBrush -> IO HBRUSH hOLLOW_BRUSH :: StockBrush c_GetStockBrush :: StockBrush -> IO HBRUSH -- | A collection of FFI declarations for interfacing with Win32. module Graphics.Win32.GDI.Bitmap type RasterOp3 = Word32 type RasterOp4 = Word32 sRCCOPY :: RasterOp3 sRCPAINT :: RasterOp3 sRCAND :: RasterOp3 sRCINVERT :: RasterOp3 sRCERASE :: RasterOp3 nOTSRCCOPY :: RasterOp3 nOTSRCERASE :: RasterOp3 mERGECOPY :: RasterOp3 mERGEPAINT :: RasterOp3 pATCOPY :: RasterOp3 pATPAINT :: RasterOp3 pATINVERT :: RasterOp3 dSTINVERT :: RasterOp3 bLACKNESS :: RasterOp3 wHITENESS :: RasterOp3 mAKEROP4 :: RasterOp3 -> RasterOp3 -> RasterOp4 type BITMAP = (INT, INT, INT, INT, WORD, WORD, LPVOID) type LPBITMAP = Ptr BITMAP setBITMAP :: LPBITMAP -> BITMAP -> IO () deleteBitmap :: HBITMAP -> IO () createCompatibleBitmap :: HDC -> Int32 -> Int32 -> IO HBITMAP createBitmap :: INT -> INT -> UINT -> UINT -> Maybe LPVOID -> IO HBITMAP createBitmapIndirect :: LPBITMAP -> IO HBITMAP createDIBPatternBrushPt :: LPVOID -> ColorFormat -> IO HBRUSH getBitmapDimensionEx :: HBITMAP -> IO SIZE setBitmapDimensionEx :: HBITMAP -> SIZE -> IO SIZE getBitmapInfo :: HBITMAP -> IO BITMAP type BitmapCompression = DWORD bI_RGB :: BitmapCompression bI_RLE8 :: BitmapCompression bI_RLE4 :: BitmapCompression bI_BITFIELDS :: BitmapCompression type ColorFormat = DWORD dIB_PAL_COLORS :: ColorFormat dIB_RGB_COLORS :: ColorFormat type LPBITMAPINFO = Ptr () type BITMAPINFOHEADER = (DWORD, LONG, LONG, WORD, WORD, BitmapCompression, DWORD, LONG, LONG, Maybe DWORD, Maybe DWORD) type LPBITMAPINFOHEADER = Ptr BITMAPINFOHEADER getBITMAPINFOHEADER_ :: LPBITMAPINFOHEADER -> IO BITMAPINFOHEADER type BITMAPFILEHEADER = (WORD, DWORD, WORD, WORD, DWORD) type LPBITMAPFILEHEADER = Ptr BITMAPFILEHEADER getBITMAPFILEHEADER :: LPBITMAPFILEHEADER -> IO BITMAPFILEHEADER sizeofBITMAP :: Word32 sizeofBITMAPINFO :: Word32 sizeofBITMAPINFOHEADER :: Word32 sizeofBITMAPFILEHEADER :: Word32 sizeofLPBITMAPFILEHEADER :: Word32 createBMPFile :: String -> HBITMAP -> HDC -> IO () cBM_INIT :: DWORD getDIBits :: HDC -> HBITMAP -> INT -> INT -> Maybe LPVOID -> LPBITMAPINFO -> ColorFormat -> IO INT setDIBits :: HDC -> HBITMAP -> INT -> INT -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO INT createDIBitmap :: HDC -> LPBITMAPINFOHEADER -> DWORD -> LPVOID -> LPBITMAPINFO -> ColorFormat -> IO HBITMAP -- | An interface to the Microsoft Windows graphics device interface (GDI). -- See http://msdn.microsoft.com/library/ under Graphics and -- Multimedia for more details of the underlying library. module Graphics.Win32.GDI -- | An interface to the Microsoft Windows user interface. See -- http://msdn.microsoft.com/library/ under /User Interface Design -- and Development and then Windows User Interface/ for more -- details of the underlying library. module Graphics.Win32