{- | Module : System.Win32.Types.Compat Copyright : 2013 shelarcy License : BSD-style Maintainer : shelarcy@gmail.com Stability : Provisional Portability : Non-portable (Win32 API) Provide 64 bit compatible types. We should use this module's types to make bindings. We should use this module's types instead of "System.Win32.Types" module's one. Because "System.Win32.Types" module's types are hard-corded. So, some types are not compatible with Windows 64 bit environment. -} module System.Win32.Types.Compat where import Data.Word import Data.Int import Foreign.C.Types (CSize(..)) #include type DWORD32 = Word32 type DWORD64 = Word64 type INT32 = Int32 type INT64 = Int64 type LONG32 = #type LONG32 type LONG64 = #type LONG64 type UINT32 = Word32 type UINT64 = Word64 type ULONG32 = #type ULONG32 type ULONG64 = #type ULONG64 type DWORD_PTR = #type DWORD_PTR type HALF_PTR = #type HALF_PTR type INT_PTR = #type INT_PTR type LONG_PTR = #type LONG_PTR -- | We should use this instead of "System.Win32.Types" module's one. -- "System.Win32.Types" module's type is wrong. type SIZE_T = CSize type SSIZE_T = #type SSIZE_T type UHALF_PTR = #type UHALF_PTR -- | We should use this instead of "System.Win32.Types" module's one. -- "System.Win32.Types" module's type is wrong. type UINT_PTR = #type UINT_PTR type ULONG_PTR = #type ULONG_PTR