-- 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.2.2.0 -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.Types 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 DDWORD = Word64 type MbString = Maybe String type MbINT = Maybe INT type ATOM = UINT type WPARAM = UINT type LPARAM = LONG type LRESULT = LONG type SIZE_T = DWORD 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 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 type ErrCode = DWORD failIf :: (a -> Bool) -> String -> IO a -> IO a failIf_ :: (a -> Bool) -> String -> IO a -> IO () 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 errorWin :: String -> IO a failWith :: String -> ErrCode -> IO a c_maperrno :: IO () ddwordToDwords :: DDWORD -> (DWORD, DWORD) dwordsToDdword :: (DWORD, DWORD) -> DDWORD deleteObjectFinaliser :: FunPtr (Ptr a -> IO ()) localFree :: Ptr a -> IO (Ptr a) getLastError :: IO ErrCode getErrorMessage :: DWORD -> IO LPWSTR lOWORD :: DWORD -> WORD hIWORD :: DWORD -> WORD castUINTToPtr :: UINT -> Ptr a castPtrToUINT :: Ptr s -> UINT castFunPtrToLONG :: FunPtr a -> LONG 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 -- | 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 -- | 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 -- | 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 searchPath :: Maybe String -> FilePath -> String -> IO (Maybe FilePath) try :: String -> (LPTSTR -> UINT -> IO UINT) -> UINT -> IO String 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_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 -> LPVOID -> DWORD -> DWORD -> DWORD -> DWORD -> WORD -> WORD -> SYSTEM_INFO siProcessorArchitecture :: SYSTEM_INFO -> ProcessorArchitecture siPageSize :: SYSTEM_INFO -> DWORD siMinimumApplicationAddress :: SYSTEM_INFO -> LPVOID 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 sM_CYSIZEFRAME :: SMSetting 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 Show ProcessorArchitecture instance Eq ProcessorArchitecture instance Show SYSTEM_INFO instance Storable SYSTEM_INFO instance Storable ProcessorArchitecture -- | A collection of FFI declarations for interfacing with Win32. module System.Win32.Mem 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 virtualUnlock :: Addr -> DWORD -> IO () c_VirtualUnlock :: Addr -> DWORD -> IO Bool -- | 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 -> WORD -> WORD -> WORD -> WORD -> WORD -> WORD -> WORD -> SYSTEMTIME wYear :: SYSTEMTIME -> WORD wMonth :: SYSTEMTIME -> WORD wDayOfWeek :: SYSTEMTIME -> WORD wDay :: SYSTEMTIME -> WORD wHour :: SYSTEMTIME -> WORD wMinute :: SYSTEMTIME -> WORD wSecond :: SYSTEMTIME -> WORD 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 Show FILETIME instance Eq FILETIME instance Ord FILETIME instance Show SYSTEMTIME instance Eq SYSTEMTIME instance Ord SYSTEMTIME instance Show TIME_ZONE_INFORMATION instance Eq TIME_ZONE_INFORMATION instance Ord TIME_ZONE_INFORMATION instance Show TimeZoneId instance Eq TimeZoneId instance Ord TimeZoneId instance Storable TIME_ZONE_INFORMATION instance Storable SYSTEMTIME instance Storable FILETIME -- | 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 type ShareMode = UINT sTANDARD_RIGHTS_WRITE :: AccessMode fILE_SHARE_NONE :: ShareMode sTANDARD_RIGHTS_EXECUTE :: AccessMode sTANDARD_RIGHTS_ALL :: AccessMode fILE_SHARE_READ :: ShareMode sPECIFIC_RIGHTS_ALL :: AccessMode fILE_SHARE_WRITE :: ShareMode aCCESS_SYSTEM_SECURITY :: AccessMode mAXIMUM_ALLOWED :: AccessMode type CreateMode = UINT cREATE_NEW :: CreateMode cREATE_ALWAYS :: CreateMode oPEN_EXISTING :: CreateMode oPEN_ALWAYS :: CreateMode tRUNCATE_EXISTING :: CreateMode type FileAttributeOrFlag = UINT 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_FLAG_WRITE_THROUGH :: FileAttributeOrFlag fILE_FLAG_OVERLAPPED :: FileAttributeOrFlag sECURITY_ANONYMOUS :: FileAttributeOrFlag fILE_FLAG_NO_BUFFERING :: FileAttributeOrFlag sECURITY_IDENTIFICATION :: FileAttributeOrFlag fILE_FLAG_RANDOM_ACCESS :: FileAttributeOrFlag sECURITY_IMPERSONATION :: FileAttributeOrFlag fILE_FLAG_SEQUENTIAL_SCAN :: FileAttributeOrFlag sECURITY_DELEGATION :: FileAttributeOrFlag fILE_FLAG_DELETE_ON_CLOSE :: FileAttributeOrFlag sECURITY_CONTEXT_TRACKING :: FileAttributeOrFlag fILE_FLAG_BACKUP_SEMANTICS :: FileAttributeOrFlag sECURITY_EFFECTIVE_ONLY :: FileAttributeOrFlag fILE_FLAG_POSIX_SEMANTICS :: FileAttributeOrFlag sECURITY_SQOS_PRESENT :: 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 type LPSECURITY_ATTRIBUTES = Ptr () type MbLPSECURITY_ATTRIBUTES = Maybe LPSECURITY_ATTRIBUTES data BY_HANDLE_FILE_INFORMATION BY_HANDLE_FILE_INFORMATION :: FileAttributeOrFlag -> FILETIME -> FILETIME -> FILETIME -> DWORD -> DDWORD -> DWORD -> DDWORD -> BY_HANDLE_FILE_INFORMATION bhfiFileAttributes :: BY_HANDLE_FILE_INFORMATION -> FileAttributeOrFlag bhfiCreationTime :: BY_HANDLE_FILE_INFORMATION -> FILETIME bhfiLastAccessTime :: BY_HANDLE_FILE_INFORMATION -> FILETIME 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 -- | like failIfFalse_, but retried on sharing violations. This is -- necessary for many file operations; see -- http:support.microsoft.comkb316609 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 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 Show BY_HANDLE_FILE_INFORMATION instance Storable BY_HANDLE_FILE_INFORMATION -- | 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 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 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 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 () -- | 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 -- | 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 eax, edx, ecx, ebx :: Int esi, edi :: Int ebp, esp, eip :: Int segCs, segGs, segFs, segEs, segDs :: 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 Show Exception instance Show DebugEventInfo -- | 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 enableWindow :: HWND -> Bool -> IO Bool vK_NUMPAD9 :: VKey getActiveWindow :: IO (Maybe HWND) vK_MULTIPLY :: VKey c_GetActiveWindow :: IO HWND vK_ADD :: VKey vK_SEPARATOR :: VKey getAsyncKeyState :: Int -> IO WORD vK_SUBTRACT :: VKey getFocus :: IO (Maybe HWND) vK_DECIMAL :: VKey c_GetFocus :: IO HWND vK_DIVIDE :: VKey vK_F1 :: VKey getKBCodePage :: IO UINT vK_F2 :: VKey isWindowEnabled :: HWND -> IO Bool 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 vK_SCROLL :: VKey -- | 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 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 cW_USEDEFAULT :: Pos wS_EX_RTLREADING :: WindowStyleEx wS_EX_LTRREADING :: WindowStyleEx type Pos = Int wS_EX_LEFTSCROLLBAR :: WindowStyleEx type MbPos = Maybe Pos wS_EX_RIGHTSCROLLBAR :: WindowStyleEx maybePos :: Maybe Pos -> Pos wS_EX_CONTROLPARENT :: WindowStyleEx wS_EX_STATICEDGE :: WindowStyleEx type WindowClosure = HWND -> WindowMessage -> WPARAM -> LPARAM -> IO LRESULT wS_EX_APPWINDOW :: WindowStyleEx mkWindowClosure :: WindowClosure -> IO (FunPtr WindowClosure) wS_EX_OVERLAPPEDWINDOW :: WindowStyleEx setWindowClosure :: HWND -> WindowClosure -> IO () wS_EX_PALETTEWINDOW :: WindowStyleEx c_SetWindowLong :: HWND -> INT -> LONG -> IO 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) 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 -- | 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_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_LOGOFF_SHARED :: MapiFlag mAPI_LOGOFF_UI :: MapiFlag mAPI_DIALOG :: MapiFlag mAPI_UNREAD_ONLY :: MapiFlag mAPI_LONG_MSGID :: MapiFlag mAPI_GUARANTEE_FIFO :: MapiFlag mAPI_ENVELOPE_ONLY :: MapiFlag mAPI_PEEK :: MapiFlag mapiErrors :: [(ULONG, String)] mAPI_BODY_AS_FILE :: MapiFlag mAPI_SUPPRESS_ATTACH :: MapiFlag mAPI_AB_NOMODIFY :: MapiFlag mAPI_OLE :: MapiFlag 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 Show RecipientClass instance Eq RecipientClass instance Ord RecipientClass instance Enum RecipientClass instance Show Recipient instance Show FileTag instance Show Attachment instance Show Message -- | 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 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, 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 changeClipboardChain :: HWND -> HWND -> IO Bool cF_PENDATA :: ClipboardFormat closeClipboard :: IO () cF_PRIVATEFIRST :: ClipboardFormat cF_PRIVATELAST :: ClipboardFormat c_CloseClipboard :: IO BOOL cF_RIFF :: ClipboardFormat countClipboardFormats :: IO Int cF_SYLK :: ClipboardFormat emptyClipboard :: IO () cF_TEXT :: ClipboardFormat cF_WAVE :: ClipboardFormat c_EmptyClipboard :: IO BOOL cF_TIFF :: 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