-- Automatically generated by HaskellDirect (ihc.exe), snapshot 171208 -- Created: 23:37 Pacific Standard Time, Wednesday 17 December, 2008 -- Command line: -fno-qualified-names -fappend-interface-short-name -c System/Win32/Com/Automation/Connection.idl -o System/Win32/Com/Automation/Connection.hs module System.Win32.Com.Automation.Connection ( DWORD , ULONG , PCONNECTIONPOINT , LPCONNECTIONPOINT , getConnectionInterface , getConnectionPointContainer , advise , unadvise , enumConnections , IConnectionPoint , IConnectionPoint_ , iidIConnectionPoint , PCONNECTIONPOINTCONTAINER , LPCONNECTIONPOINTCONTAINER , enumConnectionPoints , findConnectionPoint , IConnectionPointContainer , IConnectionPointContainer_ , iidIConnectionPointContainer , PENUMCONNECTIONS , LPENUMCONNECTIONS , CONNECTDATA(..) , writeCONNECTDATA , readCONNECTDATA , sizeofCONNECTDATA , TagCONNECTDATA , PCONNECTDATA0 , TagCONNECTDATA0 , LPCONNECTDATA0 , next , skip , reset , clone , IEnumConnections , IEnumConnections_ , iidIEnumConnections , PENUMCONNECTIONPOINTS , LPENUMCONNECTIONPOINTS , nextECP , skipECP , resetECP , cloneECP , IEnumConnectionPoints , IEnumConnectionPoints_ , iidIEnumConnectionPoints ) where import Prelude import Data.Int (Int32) import Data.Word (Word32) import Foreign.ForeignPtr (withForeignPtr) import Foreign.Ptr (Ptr) import System.Win32.Com (IUnknown, IID, mkIID, sizeofIID, invokeAndCheck, unmarshallIID, readIUnknown, marshallIUnknown, marshallIID, writeIUnknown, enumNext, enumSkip, enumReset, enumClone) import System.Win32.Com.HDirect.HDirect (allocBytes, sizeofForeignPtr, free, doThenFree, sizeofWord32, readWord32, writeWord32, addNCastPtr) type DWORD = Word32 type ULONG = Word32 -- -------------------------------------------------- -- -- interface IConnectionPoint -- -- -------------------------------------------------- data IConnectionPoint_ a = IConnectionPoint__ type IConnectionPoint a = IUnknown (IConnectionPoint_ a) iidIConnectionPoint :: IID (IConnectionPoint ()) iidIConnectionPoint = mkIID "{B196B286-BAB4-101A-B69C-00AA00341D07}" type PCONNECTIONPOINT = IConnectionPoint () type LPCONNECTIONPOINT = IConnectionPoint () getConnectionInterface :: IConnectionPoint a0 -> IO (IID ()) getConnectionInterface iptr = do piid <- allocBytes (fromIntegral sizeofIID) invokeAndCheck (\ methPtr iptr -> prim_System_Win32_Com_Automation_Connection_getConnectionInterface methPtr iptr piid) 3 iptr unmarshallIID True piid foreign import stdcall "dynamic" prim_System_Win32_Com_Automation_Connection_getConnectionInterface :: Ptr (Ptr () -> Ptr (IID a) -> IO Int32) -> Ptr () -> Ptr (IID a) -> IO Int32 getConnectionPointContainer :: IConnectionPoint a0 -> IO (IConnectionPointContainer ()) getConnectionPointContainer iptr = do ppCPC <- allocBytes (fromIntegral sizeofForeignPtr) invokeAndCheck (\ methPtr iptr -> prim_System_Win32_Com_Automation_Connection_getConnectionPointContainer methPtr iptr ppCPC) 4 iptr doThenFree free (readIUnknown False) ppCPC foreign import stdcall "dynamic" prim_System_Win32_Com_Automation_Connection_getConnectionPointContainer :: Ptr (Ptr () -> Ptr (Ptr (IConnectionPointContainer a)) -> IO Int32) -> Ptr () -> Ptr (Ptr (IConnectionPointContainer a)) -> IO Int32 advise :: IUnknown a1 -> IConnectionPoint a0 -> IO DWORD advise pUnkSink iptr = do pdwCookie <- allocBytes (fromIntegral sizeofWord32) pUnkSink <- marshallIUnknown pUnkSink invokeAndCheck (\ methPtr iptr -> withForeignPtr pUnkSink (\ pUnkSink -> prim_System_Win32_Com_Automation_Connection_advise methPtr iptr pUnkSink pdwCookie)) 5 iptr doThenFree free readWord32 pdwCookie foreign import stdcall "dynamic" prim_System_Win32_Com_Automation_Connection_advise :: Ptr (Ptr () -> Ptr (IUnknown a) -> Ptr Word32 -> IO Int32) -> Ptr () -> Ptr (IUnknown a) -> Ptr Word32 -> IO Int32 unadvise :: DWORD -> IConnectionPoint a0 -> IO () unadvise dwCookie iptr = invokeAndCheck (\ methPtr iptr -> prim_System_Win32_Com_Automation_Connection_unadvise methPtr iptr dwCookie) 6 iptr foreign import stdcall "dynamic" prim_System_Win32_Com_Automation_Connection_unadvise :: Ptr (Ptr () -> Word32 -> IO Int32) -> Ptr () -> Word32 -> IO Int32 enumConnections :: IConnectionPoint a0 -> IO (IEnumConnections ()) enumConnections iptr = do ppEnum <- allocBytes (fromIntegral sizeofForeignPtr) invokeAndCheck (\ methPtr iptr -> prim_System_Win32_Com_Automation_Connection_enumConnections methPtr iptr ppEnum) 7 iptr doThenFree free (readIUnknown False) ppEnum foreign import stdcall "dynamic" prim_System_Win32_Com_Automation_Connection_enumConnections :: Ptr (Ptr () -> Ptr (Ptr (IEnumConnections a)) -> IO Int32) -> Ptr () -> Ptr (Ptr (IEnumConnections a)) -> IO Int32 -- -------------------------------------------------- -- -- interface IConnectionPointContainer -- -- -------------------------------------------------- data IConnectionPointContainer_ a = IConnectionPointContainer__ type IConnectionPointContainer a = IUnknown (IConnectionPointContainer_ a) iidIConnectionPointContainer :: IID (IConnectionPointContainer ()) iidIConnectionPointContainer = mkIID "{B196B284-BAB4-101A-B69C-00AA00341D07}" type PCONNECTIONPOINTCONTAINER = IConnectionPointContainer () type LPCONNECTIONPOINTCONTAINER = IConnectionPointContainer () enumConnectionPoints :: IConnectionPointContainer a0 -> IO (IEnumConnectionPoints ()) enumConnectionPoints iptr = do ppEnum <- allocBytes (fromIntegral sizeofForeignPtr) invokeAndCheck (\ methPtr iptr -> prim_System_Win32_Com_Automation_Connection_enumConnectionPoints methPtr iptr ppEnum) 3 iptr doThenFree free (readIUnknown False) ppEnum foreign import stdcall "dynamic" prim_System_Win32_Com_Automation_Connection_enumConnectionPoints :: Ptr (Ptr () -> Ptr (Ptr (IEnumConnectionPoints a)) -> IO Int32) -> Ptr () -> Ptr (Ptr (IEnumConnectionPoints a)) -> IO Int32 findConnectionPoint :: IID a1 -> IConnectionPointContainer a0 -> IO (IConnectionPoint ()) findConnectionPoint riid iptr = do ppCP <- allocBytes (fromIntegral sizeofForeignPtr) riid <- marshallIID riid invokeAndCheck (\ methPtr iptr -> withForeignPtr riid (\ riid -> prim_System_Win32_Com_Automation_Connection_findConnectionPoint methPtr iptr riid ppCP)) 4 iptr doThenFree free (readIUnknown False) ppCP foreign import stdcall "dynamic" prim_System_Win32_Com_Automation_Connection_findConnectionPoint :: Ptr (Ptr () -> Ptr (IID a) -> Ptr (Ptr (IConnectionPoint a)) -> IO Int32) -> Ptr () -> Ptr (IID a) -> Ptr (Ptr (IConnectionPoint a)) -> IO Int32 -- -------------------------------------------------- -- -- interface IEnumConnections -- -- -------------------------------------------------- data IEnumConnections_ a = IEnumConnections__ type IEnumConnections a = IUnknown (IEnumConnections_ a) iidIEnumConnections :: IID (IEnumConnections ()) iidIEnumConnections = mkIID "{B196B287-BAB4-101A-B69C-00AA00341D07}" type PENUMCONNECTIONS = IEnumConnections () type LPENUMCONNECTIONS = IEnumConnections () data CONNECTDATA = TagCONNECTDATA {pUnk :: (IUnknown ()), dwCookie :: DWORD} writeCONNECTDATA :: Bool -> Ptr CONNECTDATA -> CONNECTDATA -> IO () writeCONNECTDATA addRefMe__ ptr (TagCONNECTDATA pUnk dwCookie) = let pf0 = ptr pf1 = addNCastPtr pf0 0 in do writeIUnknown addRefMe__ pf1 pUnk let pf2 = addNCastPtr pf1 4 writeWord32 pf2 dwCookie readCONNECTDATA :: Bool -> Ptr CONNECTDATA -> IO CONNECTDATA readCONNECTDATA finaliseMe__ ptr = let pf0 = ptr pf1 = addNCastPtr pf0 0 in do pUnk <- readIUnknown finaliseMe__ pf1 let pf2 = addNCastPtr pf1 4 dwCookie <- readWord32 pf2 return (TagCONNECTDATA pUnk dwCookie) sizeofCONNECTDATA :: Word32 sizeofCONNECTDATA = 8 type TagCONNECTDATA = CONNECTDATA type PCONNECTDATA0 = TagCONNECTDATA type TagCONNECTDATA0 = CONNECTDATA type LPCONNECTDATA0 = TagCONNECTDATA0 next :: ULONG -> IEnumConnections a0 -> IO [CONNECTDATA] next cConnections iptr = enumNext sizeofCONNECTDATA (readCONNECTDATA False) cConnections iptr skip :: ULONG -> IEnumConnections a0 -> IO () skip cConnections iptr = enumSkip cConnections iptr reset :: IEnumConnections a0 -> IO () reset iptr = enumReset iptr clone :: IEnumConnections a0 -> IO (IEnumConnections ()) clone iptr = enumClone iptr -- -------------------------------------------------- -- -- interface IEnumConnectionPoints -- -- -------------------------------------------------- data IEnumConnectionPoints_ a = IEnumConnectionPoints__ type IEnumConnectionPoints a = IUnknown (IEnumConnectionPoints_ a) iidIEnumConnectionPoints :: IID (IEnumConnectionPoints ()) iidIEnumConnectionPoints = mkIID "{B196B285-BAB4-101A-B69C-00AA00341D07}" type PENUMCONNECTIONPOINTS = IEnumConnectionPoints () type LPENUMCONNECTIONPOINTS = IEnumConnectionPoints () nextECP :: ULONG -> IEnumConnectionPoints a0 -> IO [IConnectionPoint a1] nextECP cConnections iptr = enumNext sizeofForeignPtr (readIUnknown False) cConnections iptr skipECP :: ULONG -> IEnumConnectionPoints a0 -> IO () skipECP cConnections iptr = enumSkip cConnections iptr resetECP :: IEnumConnectionPoints a0 -> IO () resetECP iptr = enumReset iptr cloneECP :: IEnumConnectionPoints a0 -> IO (IEnumConnectionPoints ()) cloneECP iptr = enumClone iptr