hcom-0.0.0.2: Haskell COM support library

Copyright(c) Sigbjorn Finne <sof@dcs.gla.ac.uk> 1998-99
LicenseBSD-style (see the file libraries/base/LICENSE)
Maintainersof@forkIO.com
Stabilityprovisional
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

System.Win32.Com.Server.StdDispatch

Description

Implementation of IDispatch in Haskell; pretty useful when creating/registering dynamic, on-the-fly event sinks.

Documentation

createStdDispatchVTBL :: (String -> Maybe DISPID) -> (DISPID -> MethodKind -> [VARIANT] -> objState -> IO (Maybe VARIANT)) -> IO (ComVTable (IDispatch iid) objState) Source #

createStdDispatchVTBL2 :: [DispMethod objState] -> IO (ComVTable (IDispatch iid) objState) Source #

createStdDispatch :: objState -> IO () -> [DispMethod objState] -> IID (IUnknown iid) -> IO (IUnknown iid) Source #

data DispMethod objState Source #

Constructors

DispMethod 

inArg :: Variant a => (a -> [VARIANT] -> objState -> IO b) -> [VARIANT] -> objState -> IO b Source #

inIUnknownArg :: (IUnknown a -> [VARIANT] -> objState -> IO b) -> [VARIANT] -> objState -> IO b Source #

inoutArg :: (Variant a, Variant b) => (a -> (b -> IO ()) -> [VARIANT] -> objState -> IO c) -> [VARIANT] -> objState -> IO c Source #

outArg :: Variant a => ((a -> IO ()) -> [VARIANT] -> objState -> IO b) -> [VARIANT] -> objState -> IO b Source #

retVal :: Variant a => ((a -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT)) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

apply_0 :: (objState -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

apply_1 :: Variant a => (objState -> IO a) -> (a -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

apply_2 :: (Variant a0, Variant a1) => (objState -> IO (a0, a1)) -> (a0 -> IO ()) -> (a1 -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

apply_3 :: (Variant a0, Variant a1, Variant a2) => (objState -> IO (a0, a1, a2)) -> (a0 -> IO ()) -> (a1 -> IO ()) -> (a2 -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

apply_4 :: (Variant a0, Variant a1, Variant a2, Variant a3) => (objState -> IO (a0, a1, a2, a3)) -> (a0 -> IO ()) -> (a1 -> IO ()) -> (a2 -> IO ()) -> (a3 -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

apply_5 :: (Variant a0, Variant a1, Variant a2, Variant a3, Variant a4) => (objState -> IO (a0, a1, a2, a3, a4)) -> (a0 -> IO ()) -> (a1 -> IO ()) -> (a2 -> IO ()) -> (a3 -> IO ()) -> (a4 -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

apply_6 :: (Variant a0, Variant a1, Variant a2, Variant a3, Variant a4, Variant a5) => (objState -> IO (a0, a1, a2, a3, a4, a5)) -> (a0 -> IO ()) -> (a1 -> IO ()) -> (a2 -> IO ()) -> (a3 -> IO ()) -> (a4 -> IO ()) -> (a5 -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

apply_7 :: (Variant a0, Variant a1, Variant a2, Variant a3, Variant a4, Variant a5, Variant a6) => (objState -> IO (a0, a1, a2, a3, a4, a5, a6)) -> (a0 -> IO ()) -> (a1 -> IO ()) -> (a2 -> IO ()) -> (a3 -> IO ()) -> (a4 -> IO ()) -> (a5 -> IO ()) -> (a6 -> IO ()) -> [VARIANT] -> objState -> IO (Maybe VARIANT) Source #

mkDispMethod :: String -> DISPID -> ([VARIANT] -> objState -> IO (Maybe VARIANT)) -> DispMethod objState Source #

dispmethod_0_0 :: String -> DISPID -> (objState -> IO ()) -> DispMethod objState Source #

dispmethod_1_0 :: Variant t => String -> DISPID -> (t -> objState -> IO ()) -> DispMethod objState Source #

dispmethod_2_0 :: (Variant t, Variant t1) => String -> DISPID -> (t1 -> t -> objState -> IO ()) -> DispMethod objState Source #

dispmethod_3_0 :: (Variant t, Variant t1, Variant t2) => String -> DISPID -> (t2 -> t1 -> t -> objState -> IO ()) -> DispMethod objState Source #

dispmethod_0_1 :: Variant a => String -> DISPID -> (objState -> IO a) -> DispMethod objState Source #

dispmethod_0_2 :: (Variant a, Variant a1) => String -> DISPID -> (objState -> IO (a1, a)) -> DispMethod objState Source #