-- Automatically generated by HaskellDirect (ihc.exe), snapshot 030904 -- Created: 12:33 GMT Standard Time, Tuesday 26 October, 2004 -- Command line: -ic:/Program Files/Microsoft Visual Studio .NET/Vc7/PlatformSDK/Include -iidl -fdual-vtbl -fcom -s idl/haskellservice.idl module HaskellServiceProxy ( libidHaskellService , IBabelService , IBabelService_ , iidIBabelService , mkIBabelService_vtbl , clsidHaskellService , litComponentInfo , clsidLiterateHaskellService , componentInfo ) where import Prelude (fromEnum, toEnum) import qualified Prelude import qualified Automation (IDispatch, marshallVARIANT_BOOL) import qualified BabelServiceLib (ColorClass, IColorSink, IParseSink, ParseReason) import qualified Com (LIBID, mkLIBID, IID, mkIID, IUnknown, returnHR, marshallBSTR, unmarshallBSTR, unmarshallIUnknown, marshallIUnknown, CLSID, mkCLSID) import qualified ComDll (ComponentInfo, mkComponentInfo, hasTypeLib) import qualified ComServ (ComVTable, createComVTable, getObjState, createComInstance, ComInterface, mkDualIface) import qualified Data.Int (Int32, Int16) import qualified Data.Word (Word32) import qualified Foreign.Ptr (Ptr, castPtr) import qualified HDirect (writeInt32, writePtr, unmarshallunique, readInt32, unmarshallEnum32, writeInt16) import qualified HaskellService (new, State, getImageList, getCommentFormat, getMethodFormat, parseSource, colorLine, getColorInfo, colorCount, done, init) import qualified BabelServiceLib (IScope) import qualified LiterateHaskellService (new, State, getImageList, getCommentFormat, getMethodFormat, parseSource, colorLine, getColorInfo, colorCount, done, init) import qualified System.IO.Unsafe (unsafePerformIO) import qualified Wtypes (LCID) libidHaskellService :: Com.LIBID libidHaskellService = Com.mkLIBID "{53f64586-fdb1-4de7-a30b-8988a03af81a}" -- -------------------------------------------------- -- -- interface IBabelService -- -- -------------------------------------------------- data IBabelService_ a = IBabelService__ type IBabelService a = Automation.IDispatch (IBabelService_ a) iidIBabelService :: Com.IID (IBabelService ()) iidIBabelService = Com.mkIID "{4E71BA41-5C36-11d3-B3FD-006008D1BF8C}" mkIBabelService_vtbl :: (Wtypes.LCID -> Data.Int.Int32 -> objState -> Prelude.IO ()) -> (objState -> Prelude.IO ()) -> (objState -> Prelude.IO BabelServiceLib.ColorClass) -> (BabelServiceLib.ColorClass -> objState -> Prelude.IO (Prelude.String, Prelude.String)) -> (Foreign.Ptr.Ptr () -> Prelude.Maybe (BabelServiceLib.IColorSink ()) -> Data.Int.Int32 -> objState -> Prelude.IO Data.Int.Int32) -> (Foreign.Ptr.Ptr () -> Prelude.Maybe (BabelServiceLib.IParseSink ()) -> BabelServiceLib.ParseReason -> Data.Int.Int32 -> objState -> Prelude.IO (BabelServiceLib.IScope ())) -> (objState -> Prelude.IO (Prelude.String, Prelude.String, Prelude.String, Prelude.String, Prelude.String, Prelude.Bool)) -> (objState -> Prelude.IO (Prelude.String, Prelude.String, Prelude.String, Prelude.Bool)) -> (objState -> Prelude.IO (Data.Int.Int32, Data.Int.Int32)) -> Prelude.IO (ComServ.ComVTable (IBabelService ()) objState) mkIBabelService_vtbl init done colorCount getColorInfo colorLine parseSource getMethodFormat getCommentFormat getImageList = do meth_arg0 <- export_init (prim_init init) meth_arg1 <- export_done (prim_done done) meth_arg2 <- export_colorCount (prim_colorCount colorCount) meth_arg3 <- export_getColorInfo (prim_getColorInfo getColorInfo) meth_arg4 <- export_colorLine (prim_colorLine colorLine) meth_arg5 <- export_parseSource (prim_parseSource parseSource) meth_arg6 <- export_getMethodFormat (prim_getMethodFormat getMethodFormat) meth_arg7 <- export_getCommentFormat (prim_getCommentFormat getCommentFormat) meth_arg8 <- export_getImageList (prim_getImageList getImageList) ComServ.createComVTable [ meth_arg0 , meth_arg1 , meth_arg2 , meth_arg3 , meth_arg4 , meth_arg5 , meth_arg6 , meth_arg7 , meth_arg8 ] foreign import stdcall "wrapper" export_init :: (Foreign.Ptr.Ptr a -> Data.Word.Word32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_done :: (Foreign.Ptr.Ptr a -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_colorCount :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getColorInfo :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_colorLine :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (BabelServiceLib.IColorSink a0) -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_parseSource :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (BabelServiceLib.IParseSink a0) -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (BabelServiceLib.IScope a1)) -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getMethodFormat :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Data.Int.Int16 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getCommentFormat :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Data.Int.Int16 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getImageList :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) -- Init: first method called, [language] contains the VS user selected language prim_init :: (Wtypes.LCID -> Data.Int.Int32 -> objState -> Prelude.IO ()) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Word.Word32 -> Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_init init_meth iptr language reserved = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> init_meth language reserved obj) -- Done: last method called prim_done :: (objState -> Prelude.IO ()) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Prelude.IO Data.Int.Int32 prim_done done_meth iptr = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> done_meth obj) -- ColorCount: return the number of custom color classes prim_colorCount :: (objState -> Prelude.IO BabelServiceLib.ColorClass) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_colorCount colorCount_meth iptr out_count = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> colorCount_meth obj Prelude.>>= \ res__count -> HDirect.writeInt32 out_count res__count) -- GetColorInfo: get color class information prim_getColorInfo :: (BabelServiceLib.ColorClass -> objState -> Prelude.IO (Prelude.String, Prelude.String)) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getColorInfo getColorInfo_meth iptr index out_description out_style = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getColorInfo_meth index obj Prelude.>>= \ (res__description, res__style) -> Com.marshallBSTR res__description Prelude.>>= \ res__description -> Com.marshallBSTR res__style Prelude.>>= \ res__style -> HDirect.writePtr (Foreign.Ptr.castPtr out_description) res__description Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_style) res__style) -- ColorLine: colorize a line prim_colorLine :: (Foreign.Ptr.Ptr () -> Prelude.Maybe (BabelServiceLib.IColorSink ()) -> Data.Int.Int32 -> objState -> Prelude.IO Data.Int.Int32) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (BabelServiceLib.IColorSink ()) -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_colorLine colorLine_meth iptr line sink state = Com.returnHR (HDirect.unmarshallunique (Com.unmarshallIUnknown Prelude.True) sink Prelude.>>= \ sink -> HDirect.readInt32 state Prelude.>>= \ in__state -> ComServ.getObjState iptr Prelude.>>= \ obj -> colorLine_meth line sink in__state obj Prelude.>>= \ res__state -> HDirect.writeInt32 state res__state) -- ParseSource: parse the source prim_parseSource :: (Foreign.Ptr.Ptr () -> Prelude.Maybe (BabelServiceLib.IParseSink ()) -> BabelServiceLib.ParseReason -> Data.Int.Int32 -> objState -> Prelude.IO (BabelServiceLib.IScope ())) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (BabelServiceLib.IParseSink ()) -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (BabelServiceLib.IScope ())) -> Prelude.IO Data.Int.Int32 prim_parseSource parseSource_meth iptr text sink reason reserved out_scope = Com.returnHR (HDirect.unmarshallunique (Com.unmarshallIUnknown Prelude.True) sink Prelude.>>= \ sink -> HDirect.unmarshallEnum32 reason Prelude.>>= \ reason -> ComServ.getObjState iptr Prelude.>>= \ obj -> parseSource_meth text sink reason reserved obj Prelude.>>= \ res__scope -> Com.marshallIUnknown res__scope Prelude.>>= \ res__scope -> HDirect.writePtr (Foreign.Ptr.castPtr out_scope) res__scope) -- GetMethodFormat: return format tokens for method data tips prim_getMethodFormat :: (objState -> Prelude.IO (Prelude.String, Prelude.String, Prelude.String, Prelude.String, Prelude.String, Prelude.Bool)) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Data.Int.Int16 -> Prelude.IO Data.Int.Int32 prim_getMethodFormat getMethodFormat_meth iptr out_parStart out_parSep out_parEnd out_typeStart out_typeEnd out_typePrefixed = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getMethodFormat_meth obj Prelude.>>= \ (res__parStart, res__parSep, res__parEnd, res__typeStart, res__typeEnd, res__typePrefixed) -> Com.marshallBSTR res__parStart Prelude.>>= \ res__parStart -> Com.marshallBSTR res__parSep Prelude.>>= \ res__parSep -> Com.marshallBSTR res__parEnd Prelude.>>= \ res__parEnd -> Com.marshallBSTR res__typeStart Prelude.>>= \ res__typeStart -> Com.marshallBSTR res__typeEnd Prelude.>>= \ res__typeEnd -> Automation.marshallVARIANT_BOOL res__typePrefixed Prelude.>>= \ res__typePrefixed -> HDirect.writePtr (Foreign.Ptr.castPtr out_parStart) res__parStart Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_parSep) res__parSep Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_parEnd) res__parEnd Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_typeStart) res__typeStart Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_typeEnd) res__typeEnd Prelude.>> HDirect.writeInt16 out_typePrefixed res__typePrefixed) -- GetCommentFormat: return format tokens for comments prim_getCommentFormat :: (objState -> Prelude.IO (Prelude.String, Prelude.String, Prelude.String, Prelude.Bool)) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Data.Int.Int16 -> Prelude.IO Data.Int.Int32 prim_getCommentFormat getCommentFormat_meth iptr out_lineStart out_blockStart out_blockEnd out_useLineComments = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getCommentFormat_meth obj Prelude.>>= \ (res__lineStart, res__blockStart, res__blockEnd, res__useLineComments) -> Com.marshallBSTR res__lineStart Prelude.>>= \ res__lineStart -> Com.marshallBSTR res__blockStart Prelude.>>= \ res__blockStart -> Com.marshallBSTR res__blockEnd Prelude.>>= \ res__blockEnd -> Automation.marshallVARIANT_BOOL res__useLineComments Prelude.>>= \ res__useLineComments -> HDirect.writePtr (Foreign.Ptr.castPtr out_lineStart) res__lineStart Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_blockStart) res__blockStart Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_blockEnd) res__blockEnd Prelude.>> HDirect.writeInt16 out_useLineComments res__useLineComments) -- GetImageList: return HIMAGELIST for glyphs prim_getImageList :: (objState -> Prelude.IO (Data.Int.Int32, Data.Int.Int32)) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_getImageList getImageList_meth iptr out_imageListHandle out_glyphCount = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getImageList_meth obj Prelude.>>= \ (res__imageListHandle, res__glyphCount) -> HDirect.writeInt32 out_imageListHandle res__imageListHandle Prelude.>> HDirect.writeInt32 out_glyphCount res__glyphCount) -- -------------------------------------------------- -- -- coclass HaskellService -- -- implements: IBabelService -- -------------------------------------------------- clsidHaskellService :: Com.CLSID clsidHaskellService = Com.mkCLSID "{61D91AA5-2709-453b-B3FA-5A5A8FAD2F1A}" register_HaskellService :: Prelude.String -> Prelude.Bool -> Prelude.IO () register_HaskellService _ _ = Prelude.return () newHaskellService :: Prelude.String -> Prelude.IO () -> Com.IID (Com.IUnknown iid) -> Prelude.IO (Com.IUnknown iid) newHaskellService dll_path finaliser iid = do obj_state <- HaskellService.new ComServ.createComInstance dll_path obj_state finaliser ifaces_HaskellService iid componentInfo :: ComDll.ComponentInfo componentInfo = ComDll.hasTypeLib (ComDll.mkComponentInfo clsidHaskellService register_HaskellService newHaskellService) iBabelService_vtbl :: ComServ.ComVTable (IBabelService ()) HaskellService.State iBabelService_vtbl = System.IO.Unsafe.unsafePerformIO (mkIBabelService_vtbl HaskellService.init HaskellService.done HaskellService.colorCount HaskellService.getColorInfo HaskellService.colorLine HaskellService.parseSource HaskellService.getMethodFormat HaskellService.getCommentFormat HaskellService.getImageList) ifaces_HaskellService :: [ComServ.ComInterface HaskellService.State] ifaces_HaskellService = [ComServ.mkDualIface (Prelude.Just libidHaskellService) iidIBabelService iBabelService_vtbl] -- -------------------------------------------------- -- -- coclass LiterateHaskellService -- -- implements: IBabelService -- -------------------------------------------------- clsidLiterateHaskellService :: Com.CLSID clsidLiterateHaskellService = Com.mkCLSID "{FADF30A7-6E28-4af5-BA7B-92DF7B57263F}" register_LiterateHaskellService :: Prelude.String -> Prelude.Bool -> Prelude.IO () register_LiterateHaskellService _ _ = Prelude.return () newLiterateHaskellService :: Prelude.String -> Prelude.IO () -> Com.IID (Com.IUnknown iid) -> Prelude.IO (Com.IUnknown iid) newLiterateHaskellService dll_path finaliser iid = do obj_state <- LiterateHaskellService.new ComServ.createComInstance dll_path obj_state finaliser ifaces_LiterateHaskellService iid litComponentInfo :: ComDll.ComponentInfo litComponentInfo = ComDll.hasTypeLib (ComDll.mkComponentInfo clsidLiterateHaskellService register_LiterateHaskellService newLiterateHaskellService) lit_iBabelService_vtbl :: ComServ.ComVTable (IBabelService ()) LiterateHaskellService.State lit_iBabelService_vtbl = System.IO.Unsafe.unsafePerformIO (mkIBabelService_vtbl LiterateHaskellService.init LiterateHaskellService.done LiterateHaskellService.colorCount LiterateHaskellService.getColorInfo LiterateHaskellService.colorLine LiterateHaskellService.parseSource LiterateHaskellService.getMethodFormat LiterateHaskellService.getCommentFormat LiterateHaskellService.getImageList) ifaces_LiterateHaskellService :: [ComServ.ComInterface LiterateHaskellService.State] ifaces_LiterateHaskellService = [ComServ.mkDualIface (Prelude.Just libidHaskellService) iidIBabelService lit_iBabelService_vtbl]