Copyright | (c) Sigbjorn Finne <sof@dcs.gla.ac.uk> 1998-99 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | sof@forkIO.com |
Stability | provisional |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
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 #
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_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 t1, Variant t2) => String -> DISPID -> (t1 -> t2 -> objState -> IO ()) -> DispMethod objState Source #
dispmethod_3_0 :: (Variant t1, Variant t2, Variant t3) => String -> DISPID -> (t1 -> t2 -> t3 -> objState -> IO ()) -> DispMethod objState Source #
dispmethod_0_1 :: Variant a => String -> DISPID -> (objState -> IO a) -> DispMethod objState Source #
dispmethod_0_2 :: (Variant a1, Variant a2) => String -> DISPID -> (objState -> IO (a1, a2)) -> DispMethod objState Source #