-- Automatically generated by HaskellDirect (ihc.exe), snapshot 150305 -- Created: 10:47 GMT Standard Time, Tuesday 29 March, 2005 -- Command line: wtypes.idl module Wtypes ( CHAR , LPSTR , LPCSTR , WCHAR , TCHAR , LPWSTR , LPTSTR , LPCWSTR , LPCTSTR , SHORT , USHORT , DWORD , LCID , OLECHAR , LPOLESTR , LPCOLESTR , REFGUID , REFIID , REFCLSID , BOOL , HINSTANCE , WORD , DLGPROC , LPARAM , LPFNPSPCALLBACKA , HANDLE , HWND , HICON , HIMAGELIST , BYTE , UINT , ULONG , LONG , DWORD_PTR , ULONG0 , WPARAM , POINT(..) , writePOINT , readPOINT , sizeofPOINT , RECT(..) , writeRECT , readRECT , sizeofRECT , getCursorPos , CLIPFORMAT , FORMATETC(..) , marshallFORMATETC , unmarshallFORMATETC , writeFORMATETC , readFORMATETC , sizeofFORMATETC , LPFORMATETC , STGMEDIUM(..) , marshallSTGMEDIUM , unmarshallSTGMEDIUM , writeSTGMEDIUM , readSTGMEDIUM , sizeofSTGMEDIUM , LPSTGMEDIUM ) where import Prelude (fromEnum, toEnum) import qualified Prelude import qualified Com (GUID, IID, CLSID) import qualified Data.Int (Int16, Int32) import qualified Data.Word (Word16, Word32) import qualified Foreign.Ptr (Ptr) import qualified HDirect (Wchar_t, writeInt32, addNCastPtr, readInt32, allocBytes, free, doThenFree, writeWord32, readWord32) import qualified WideString (WideString) type CHAR = Prelude.Char type LPSTR = Prelude.String type LPCSTR = Prelude.String {- BEGIN_C_CODE #ifndef _WCHAR_DEFINED END_C_CODE-} {- BEGIN_C_CODE #define _WCHAR_DEFINED END_C_CODE-} type WCHAR = HDirect.Wchar_t type TCHAR = WCHAR {- BEGIN_C_CODE #endif // !_WCHAR_DEFINED END_C_CODE-} type LPWSTR = WideString.WideString type LPTSTR = WideString.WideString type LPCWSTR = WideString.WideString type LPCTSTR = WideString.WideString type SHORT = Data.Int.Int16 type USHORT = Data.Word.Word16 type DWORD = Data.Word.Word32 type LCID = DWORD type OLECHAR = WCHAR type LPOLESTR = WideString.WideString type LPCOLESTR = WideString.WideString type REFGUID = Com.GUID type REFIID = Com.IID () type REFCLSID = Com.CLSID type BOOL = Data.Int.Int32 type HINSTANCE = Foreign.Ptr.Ptr () type WORD = Data.Word.Word32 type DLGPROC = Foreign.Ptr.Ptr () type LPARAM = DWORD type LPFNPSPCALLBACKA = Foreign.Ptr.Ptr () type HANDLE = Foreign.Ptr.Ptr () type HWND = HANDLE type HICON = HANDLE type HIMAGELIST = HANDLE type BYTE = Prelude.Char type UINT = Data.Word.Word32 type ULONG = Data.Word.Word32 type LONG = Data.Int.Int32 type DWORD_PTR = Data.Word.Word32 type ULONG0 = Data.Word.Word32 type WPARAM = WORD data POINT = POINT {x :: LONG, y :: LONG} writePOINT :: Foreign.Ptr.Ptr POINT -> POINT -> Prelude.IO () writePOINT ptr (POINT x y) = let pf0 = ptr pf1 = HDirect.addNCastPtr pf0 0 in do HDirect.writeInt32 pf1 x let pf2 = HDirect.addNCastPtr pf1 4 HDirect.writeInt32 pf2 y readPOINT :: Foreign.Ptr.Ptr POINT -> Prelude.IO POINT readPOINT ptr = let pf0 = ptr pf1 = HDirect.addNCastPtr pf0 0 in do x <- HDirect.readInt32 pf1 let pf2 = HDirect.addNCastPtr pf1 4 y <- HDirect.readInt32 pf2 Prelude.return (POINT x y) sizeofPOINT :: Data.Word.Word32 sizeofPOINT = 8 data RECT = RECT {left :: LONG, top :: LONG, right :: LONG, bottom :: LONG} writeRECT :: Foreign.Ptr.Ptr RECT -> RECT -> Prelude.IO () writeRECT ptr (RECT left top right bottom) = let pf0 = ptr pf1 = HDirect.addNCastPtr pf0 0 in do HDirect.writeInt32 pf1 left let pf2 = HDirect.addNCastPtr pf1 4 HDirect.writeInt32 pf2 top let pf3 = HDirect.addNCastPtr pf2 4 HDirect.writeInt32 pf3 right let pf4 = HDirect.addNCastPtr pf3 4 HDirect.writeInt32 pf4 bottom readRECT :: Foreign.Ptr.Ptr RECT -> Prelude.IO RECT readRECT ptr = let pf0 = ptr pf1 = HDirect.addNCastPtr pf0 0 in do left <- HDirect.readInt32 pf1 let pf2 = HDirect.addNCastPtr pf1 4 top <- HDirect.readInt32 pf2 let pf3 = HDirect.addNCastPtr pf2 4 right <- HDirect.readInt32 pf3 let pf4 = HDirect.addNCastPtr pf3 4 bottom <- HDirect.readInt32 pf4 Prelude.return (RECT left top right bottom) sizeofRECT :: Data.Word.Word32 sizeofRECT = 16 getCursorPos :: Prelude.IO POINT getCursorPos = do lpPoint <- HDirect.allocBytes (Prelude.fromIntegral sizeofPOINT) prim_Wtypes_getCursorPos lpPoint HDirect.doThenFree HDirect.free readPOINT lpPoint foreign import stdcall "GetCursorPos" prim_Wtypes_getCursorPos :: Foreign.Ptr.Ptr POINT -> Prelude.IO () type CLIPFORMAT = UINT data FORMATETC = TagFORMATETC {cfFormat :: CLIPFORMAT} marshallFORMATETC :: FORMATETC -> Prelude.IO Data.Word.Word32 marshallFORMATETC (TagFORMATETC cfFormat) = Prelude.return (cfFormat) unmarshallFORMATETC :: Data.Word.Word32 -> Prelude.IO FORMATETC unmarshallFORMATETC cfFormat = Prelude.return (TagFORMATETC cfFormat) writeFORMATETC :: Foreign.Ptr.Ptr FORMATETC -> FORMATETC -> Prelude.IO () writeFORMATETC ptr (TagFORMATETC cfFormat) = let pf0 = ptr pf1 = HDirect.addNCastPtr pf0 0 in HDirect.writeWord32 pf1 cfFormat readFORMATETC :: Foreign.Ptr.Ptr FORMATETC -> Prelude.IO FORMATETC readFORMATETC ptr = let pf0 = ptr pf1 = HDirect.addNCastPtr pf0 0 in do cfFormat <- HDirect.readWord32 pf1 Prelude.return (TagFORMATETC cfFormat) sizeofFORMATETC :: Data.Word.Word32 sizeofFORMATETC = 4 type LPFORMATETC = FORMATETC data STGMEDIUM = TagSTGMEDIUM {tymed :: DWORD} marshallSTGMEDIUM :: STGMEDIUM -> Prelude.IO Data.Word.Word32 marshallSTGMEDIUM (TagSTGMEDIUM tymed) = Prelude.return (tymed) unmarshallSTGMEDIUM :: Data.Word.Word32 -> Prelude.IO STGMEDIUM unmarshallSTGMEDIUM tymed = Prelude.return (TagSTGMEDIUM tymed) writeSTGMEDIUM :: Foreign.Ptr.Ptr STGMEDIUM -> STGMEDIUM -> Prelude.IO () writeSTGMEDIUM ptr (TagSTGMEDIUM tymed) = let pf0 = ptr pf1 = HDirect.addNCastPtr pf0 0 in HDirect.writeWord32 pf1 tymed readSTGMEDIUM :: Foreign.Ptr.Ptr STGMEDIUM -> Prelude.IO STGMEDIUM readSTGMEDIUM ptr = let pf0 = ptr pf1 = HDirect.addNCastPtr pf0 0 in do tymed <- HDirect.readWord32 pf1 Prelude.return (TagSTGMEDIUM tymed) sizeofSTGMEDIUM :: Data.Word.Word32 sizeofSTGMEDIUM = 4 type LPSTGMEDIUM = STGMEDIUM