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 |
Support code for writing Haskell COM components (yay!)
The library code for Haskell COM components (aka. servers), support the wrapping up of a bunch of Haskell function values into the binary representation that the COM spec mandates.
The library has two classes of users
:
- HaskellDirect generated stubs for interfaces representing Haskell COM components.
- on-the-fly generation of COM interface pointers by a Haskell application.
i.e., in short, we care about having a simple, programmer-useable, API :-)
Documentation
createComInstance :: String -> objState -> IO () -> [ComInterface objState] -> IID (IUnknown iid) -> IO (IUnknown iid) Source #
cloneIPointer :: IUnknown iid_old -> VTable (IUnknown iid_new) objState -> IO (IUnknown iid_new) Source #
cloneIPointer_prim :: Ptr (IUnknown a) -> VTable (IUnknown iid_new) objState -> IO (IUnknown iid_new) Source #
createDualInterface :: StablePtr objState -> ComVTable (IUnknown iid) objState -> Either LIBID String -> IID (IUnknown iid) -> IO (IUnknown iid) Source #
createDispInterface :: IUnknown iid -> Either LIBID String -> IID (IUnknown iid) -> IO (IUnknown iid) Source #
data ComInterface objState Source #
mkDispIface :: Maybe LIBID -> IID iid -> VTable iid objState -> ComInterface objState Source #
mkDualIface :: Maybe LIBID -> IID iid -> VTable iid objState -> ComInterface objState Source #
export_getTypeInfoCount :: (Ptr () -> Ptr Word32 -> IO HRESULT) -> IO (Ptr (Ptr () -> Ptr Word32 -> IO HRESULT)) Source #
export_getTypeInfo :: (Ptr (IDispatch ()) -> Word32 -> LCID -> Ptr () -> IO HRESULT) -> IO (Ptr (Ptr (IDispatch ()) -> Word32 -> LCID -> Ptr () -> IO HRESULT)) Source #
export_getIDsOfNames :: (Ptr (IDispatch ()) -> Ptr (IID ()) -> Ptr WideString -> Word32 -> LCID -> Ptr DISPID -> IO HRESULT) -> IO (Ptr (Ptr (IDispatch ()) -> Ptr (IID ()) -> Ptr WideString -> Word32 -> LCID -> Ptr DISPID -> IO HRESULT)) Source #
export_invoke :: (Ptr (IDispatch ()) -> DISPID -> Ptr (IID a) -> LCID -> Word32 -> Ptr DISPPARAMS -> Ptr VARIANT -> Ptr EXCEPINFO -> Ptr Word32 -> IO HRESULT) -> IO (Ptr (Ptr (IDispatch ()) -> DISPID -> Ptr (IID a) -> LCID -> Word32 -> Ptr DISPPARAMS -> Ptr VARIANT -> Ptr EXCEPINFO -> Ptr Word32 -> IO HRESULT)) Source #