-- Automatically generated by HaskellDirect (ihc.exe), snapshot 030904 -- Created: 10:29 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/IScope.idl module BabelServiceLibProxy ( mkINames_vtbl , mkIDeclarations_vtbl , mkIMethods_vtbl , mkIScope_vtbl , mkIBabelProject_vtbl ) where import Prelude (fromEnum, toEnum) import qualified Prelude import qualified Automation (IDispatch, marshallVARIANT_BOOL) import qualified Com (IID, mkIID, IUnknown, returnHR, marshallBSTR, unmarshallBSTR, unmarshallIUnknown, marshallIUnknown) import qualified ComServ (ComVTable, createComVTable, createDualVTable, getObjState) import qualified Data.Int (Int32, Int16) import qualified Foreign.Ptr (Ptr, castPtr) import qualified HDirect (writeInt32, writePtr, writeInt16, writeEnum32, unmarshallunique) import BabelServiceLib import qualified VsTypes(VSITEMID) import qualified VsClassView(IVsObjectList) -- -------------------------------------------------- -- -- interface INames -- -- -------------------------------------------------- mkINames_vtbl :: (objState -> Prelude.IO Data.Int.Int32) -> (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> Prelude.IO (ComServ.ComVTable (INames ()) objState) mkINames_vtbl getCount getName getSelector = do meth_arg0 <- export_getCount (prim_getCount getCount) meth_arg1 <- export_getName (prim_getName getName) meth_arg2 <- export_getName (prim_getSelector getSelector) ComServ.createComVTable [ meth_arg0 , meth_arg1 , meth_arg2 ] foreign import stdcall "wrapper" export_getCount :: (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_getName :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) prim_getCount :: (objState -> Prelude.IO Data.Int.Int32) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_getCount getCount_meth iptr out_count = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getCount_meth obj Prelude.>>= \ res__count -> HDirect.writeInt32 out_count res__count) prim_getName :: (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getName getName_meth iptr index out_name = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getName_meth index obj Prelude.>>= \ res__name -> Com.marshallBSTR res__name Prelude.>>= \ res__name -> HDirect.writePtr (Foreign.Ptr.castPtr out_name) res__name) prim_getSelector :: (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getSelector getSelector_meth iptr index out_selector = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getSelector_meth index obj Prelude.>>= \ res__selector -> Com.marshallBSTR res__selector Prelude.>>= \ res__selector -> HDirect.writePtr (Foreign.Ptr.castPtr out_selector) res__selector) -- -------------------------------------------------- -- -- interface IDeclarations -- -- -------------------------------------------------- mkIDeclarations_vtbl :: (objState -> Prelude.IO Data.Int.Int32) -> (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> (Data.Int.Int32 -> objState -> Prelude.IO Data.Int.Int32) -> (Prelude.String -> objState -> Prelude.IO (Data.Int.Int32, Prelude.Bool)) -> Prelude.IO (ComServ.ComVTable (IDeclarations ()) objState) mkIDeclarations_vtbl getCount0 getName0 getDescription getGlyph getBestMatch = do meth_arg0 <- export_getCount (prim_getCount0 getCount0) meth_arg1 <- export_getName (prim_getName0 getName0) meth_arg2 <- export_getName (prim_getDescription getDescription) meth_arg3 <- export_getGlyph (prim_getGlyph getGlyph) meth_arg4 <- export_getBestMatch (prim_getBestMatch getBestMatch) ComServ.createComVTable [ meth_arg0 , meth_arg1 , meth_arg2 , meth_arg3 , meth_arg4 ] foreign import stdcall "wrapper" export_getGlyph :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getBestMatch :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int16 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) prim_getCount0 :: (objState -> Prelude.IO Data.Int.Int32) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_getCount0 getCount0_meth iptr out_count = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getCount0_meth obj Prelude.>>= \ res__count -> HDirect.writeInt32 out_count res__count) prim_getName0 :: (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getName0 getName0_meth iptr index out_name = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getName0_meth index obj Prelude.>>= \ res__name -> Com.marshallBSTR res__name Prelude.>>= \ res__name -> HDirect.writePtr (Foreign.Ptr.castPtr out_name) res__name) prim_getDescription :: (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getDescription getDescription_meth iptr index out_description = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getDescription_meth index obj Prelude.>>= \ res__description -> Com.marshallBSTR res__description Prelude.>>= \ res__description -> HDirect.writePtr (Foreign.Ptr.castPtr out_description) res__description) prim_getGlyph :: (Data.Int.Int32 -> objState -> Prelude.IO Data.Int.Int32) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_getGlyph getGlyph_meth iptr index out_glyph = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getGlyph_meth index obj Prelude.>>= \ res__glyph -> HDirect.writeInt32 out_glyph res__glyph) prim_getBestMatch :: (Prelude.String -> objState -> Prelude.IO (Data.Int.Int32, Prelude.Bool)) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int16 -> Prelude.IO Data.Int.Int32 prim_getBestMatch getBestMatch_meth iptr text out_index out_uniqueMatch = Com.returnHR (Com.unmarshallBSTR text Prelude.>>= \ text -> ComServ.getObjState iptr Prelude.>>= \ obj -> getBestMatch_meth text obj Prelude.>>= \ (res__index, res__uniqueMatch) -> Automation.marshallVARIANT_BOOL res__uniqueMatch Prelude.>>= \ res__uniqueMatch -> HDirect.writeInt32 out_index res__index Prelude.>> HDirect.writeInt16 out_uniqueMatch res__uniqueMatch) -- -------------------------------------------------- -- -- interface IMethods -- -- -------------------------------------------------- mkIMethods_vtbl :: (objState -> Prelude.IO Prelude.String) -> (objState -> Prelude.IO Data.Int.Int32) -> (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> (Data.Int.Int32 -> objState -> Prelude.IO Data.Int.Int32) -> (Data.Int.Int32 -> Data.Int.Int32 -> objState -> Prelude.IO (Prelude.String, Prelude.String, Prelude.String)) -> Prelude.IO (ComServ.ComVTable (IMethods ()) objState) mkIMethods_vtbl getName1 getCount1 getDescription0 getType getParameterCount getParameterInfo = do meth_arg0 <- export_getName1 (prim_getName1 getName1) meth_arg1 <- export_getCount (prim_getCount1 getCount1) meth_arg2 <- export_getName (prim_getDescription0 getDescription0) meth_arg3 <- export_getName (prim_getType getType) meth_arg4 <- export_getGlyph (prim_getParameterCount getParameterCount) meth_arg5 <- export_getParameterInfo (prim_getParameterInfo getParameterInfo) ComServ.createComVTable [ meth_arg0 , meth_arg1 , meth_arg2 , meth_arg3 , meth_arg4 , meth_arg5 ] foreign import stdcall "wrapper" export_getName1 :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getParameterInfo :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) prim_getName1 :: (objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getName1 getName1_meth iptr out_name = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getName1_meth obj Prelude.>>= \ res__name -> Com.marshallBSTR res__name Prelude.>>= \ res__name -> HDirect.writePtr (Foreign.Ptr.castPtr out_name) res__name) prim_getCount1 :: (objState -> Prelude.IO Data.Int.Int32) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_getCount1 getCount1_meth iptr out_count = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getCount1_meth obj Prelude.>>= \ res__count -> HDirect.writeInt32 out_count res__count) prim_getDescription0 :: (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getDescription0 getDescription0_meth iptr index out_description = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getDescription0_meth index obj Prelude.>>= \ res__description -> Com.marshallBSTR res__description Prelude.>>= \ res__description -> HDirect.writePtr (Foreign.Ptr.castPtr out_description) res__description) prim_getType :: (Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getType getType_meth iptr index out_type0 = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getType_meth index obj Prelude.>>= \ res__type0 -> Com.marshallBSTR res__type0 Prelude.>>= \ res__type0 -> HDirect.writePtr (Foreign.Ptr.castPtr out_type0) res__type0) prim_getParameterCount :: (Data.Int.Int32 -> objState -> Prelude.IO Data.Int.Int32) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_getParameterCount getParameterCount_meth iptr index out_count = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getParameterCount_meth index obj Prelude.>>= \ res__count -> HDirect.writeInt32 out_count res__count) prim_getParameterInfo :: (Data.Int.Int32 -> Data.Int.Int32 -> objState -> Prelude.IO (Prelude.String, Prelude.String, Prelude.String)) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getParameterInfo getParameterInfo_meth iptr index parameter out_name out_display out_description = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getParameterInfo_meth index parameter obj Prelude.>>= \ (res__name, res__display, res__description) -> Com.marshallBSTR res__name Prelude.>>= \ res__name -> Com.marshallBSTR res__display Prelude.>>= \ res__display -> Com.marshallBSTR res__description Prelude.>>= \ res__description -> HDirect.writePtr (Foreign.Ptr.castPtr out_name) res__name Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_display) res__display Prelude.>> HDirect.writePtr (Foreign.Ptr.castPtr out_description) res__description) -- -------------------------------------------------- -- -- interface IScope -- -- -------------------------------------------------- mkIScope_vtbl :: (Data.Int.Int32 -> Data.Int.Int32 -> Prelude.Maybe (INames ()) -> objState -> Prelude.IO (IDeclarations ())) -> (Data.Int.Int32 -> Data.Int.Int32 -> objState -> Prelude.IO (FindDeclarationResult, Data.Int.Int32, Data.Int.Int32, Prelude.String)) -> (Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> (Data.Int.Int32 -> Data.Int.Int32 -> Prelude.Maybe (INames ()) -> objState -> Prelude.IO (IMethods ())) -> (Data.Int.Int32 -> Data.Int.Int32 -> objState -> Prelude.IO (Prelude.String, Data.Int.Int32)) -> Prelude.IO (ComServ.ComVTable (IScope ()) objState) mkIScope_vtbl getDeclarations getDeclarationOfNameAt getDataTipText getMethods narrow = do meth_arg0 <- export_getDeclarations (prim_getDeclarations getDeclarations) meth_arg1 <- export_getDeclarationOfNameAt (prim_getDeclarationOfNameAt getDeclarationOfNameAt) meth_arg2 <- export_getDataTipText (prim_getDataTipText getDataTipText) meth_arg3 <- export_getMethods (prim_getMethods getMethods) meth_arg4 <- export_narrow (prim_narrow narrow) ComServ.createComVTable [ meth_arg0 , meth_arg1 , meth_arg2 , meth_arg3 , meth_arg4 ] foreign import stdcall "wrapper" export_getDeclarations :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr (INames a0) -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (IDeclarations a1)) -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getDeclarationOfNameAt :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr Prelude.String) -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getDataTipText :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getMethods :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr (INames a0) -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (IMethods a1)) -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_narrow :: (Foreign.Ptr.Ptr a -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) prim_getDeclarations :: (Data.Int.Int32 -> Data.Int.Int32 -> Prelude.Maybe (INames ()) -> objState -> Prelude.IO (IDeclarations ())) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr (INames ()) -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (IDeclarations ())) -> Prelude.IO Data.Int.Int32 prim_getDeclarations getDeclarations_meth iptr line idx names out_decls = Com.returnHR (HDirect.unmarshallunique (Com.unmarshallIUnknown Prelude.True) names Prelude.>>= \ names -> ComServ.getObjState iptr Prelude.>>= \ obj -> getDeclarations_meth line idx names obj Prelude.>>= \ res__decls -> Com.marshallIUnknown res__decls Prelude.>>= \ res__decls -> HDirect.writePtr (Foreign.Ptr.castPtr out_decls) res__decls) prim_getDeclarationOfNameAt :: (Data.Int.Int32 -> Data.Int.Int32 -> objState -> Prelude.IO (FindDeclarationResult, Data.Int.Int32, Data.Int.Int32, Prelude.String)) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr Data.Int.Int32 -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr Prelude.String) -> Prelude.IO Data.Int.Int32 prim_getDeclarationOfNameAt getDeclarationOfNameAt_meth iptr line idx out_found out_sline out_sidx out_strDocName = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getDeclarationOfNameAt_meth line idx obj Prelude.>>= \ (res__found, res__sline, res__sidx, res__strDocName) -> HDirect.writeEnum32 out_found res__found Prelude.>> HDirect.writeInt32 out_sline res__sline Prelude.>> HDirect.writeInt32 out_sidx res__sidx Prelude.>> Com.marshallBSTR res__strDocName Prelude.>>= \ res__strDocName -> HDirect.writePtr out_strDocName res__strDocName) prim_getDataTipText :: (Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Data.Int.Int32 prim_getDataTipText getDataTipText_meth iptr sline sidx eline eidx out_text = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getDataTipText_meth sline sidx eline eidx obj Prelude.>>= \ res__text -> Com.marshallBSTR res__text Prelude.>>= \ res__text -> HDirect.writePtr (Foreign.Ptr.castPtr out_text) res__text) prim_getMethods :: (Data.Int.Int32 -> Data.Int.Int32 -> Prelude.Maybe (INames ()) -> objState -> Prelude.IO (IMethods ())) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr (INames ()) -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (IMethods ())) -> Prelude.IO Data.Int.Int32 prim_getMethods getMethods_meth iptr line idx names out_imethods = Com.returnHR (HDirect.unmarshallunique (Com.unmarshallIUnknown Prelude.True) names Prelude.>>= \ names -> ComServ.getObjState iptr Prelude.>>= \ obj -> getMethods_meth line idx names obj Prelude.>>= \ res__imethods -> Com.marshallIUnknown res__imethods Prelude.>>= \ res__imethods -> HDirect.writePtr (Foreign.Ptr.castPtr out_imethods) res__imethods) prim_narrow :: (Data.Int.Int32 -> Data.Int.Int32 -> objState -> Prelude.IO (Prelude.String, Data.Int.Int32)) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Data.Int.Int32 -> Data.Int.Int32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Data.Int.Int32 -> Prelude.IO Data.Int.Int32 prim_narrow narrow_meth iptr line idx out_name out_startLine = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> narrow_meth line idx obj Prelude.>>= \ (res__name, res__startLine) -> Com.marshallBSTR res__name Prelude.>>= \ res__name -> HDirect.writePtr (Foreign.Ptr.castPtr out_name) res__name Prelude.>> HDirect.writeInt32 out_startLine res__startLine) -- -------------------------------------------------- -- -- interface IBabelProject -- -- -------------------------------------------------- mkIBabelProject_vtbl :: (Prelude.String -> objState -> Prelude.IO Prelude.String) -> (VsTypes.VSITEMID -> objState -> Prelude.IO (VsClassView.IVsObjectList ())) -> Prelude.IO (ComServ.ComVTable (IBabelProject ()) objState) mkIBabelProject_vtbl searchFile getObjectBrowserList = do meth_arg0 <- export_searchFile (prim_searchFile searchFile) meth_arg1 <- export_getObjectBrowserList (prim_getObjectBrowserList getObjectBrowserList) ComServ.createDualVTable (Prelude.Left libidBabelServiceLib) iidIBabelProject [ meth_arg0 , meth_arg1 ] foreign import stdcall "wrapper" export_searchFile :: (Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr Prelude.String) -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getObjectBrowserList :: (Foreign.Ptr.Ptr (Com.IUnknown ()) -> VsTypes.VSITEMID -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (VsClassView.IVsObjectList ())) -> Prelude.IO Data.Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) prim_searchFile :: (Prelude.String -> objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr Prelude.String) -> Prelude.IO Data.Int.Int32 prim_searchFile searchFile_meth iptr fileName out_filePath = Com.returnHR (Com.unmarshallBSTR fileName Prelude.>>= \ fileName -> ComServ.getObjState iptr Prelude.>>= \ obj -> searchFile_meth fileName obj Prelude.>>= \ res__filePath -> Com.marshallBSTR res__filePath Prelude.>>= \ res__filePath -> HDirect.writePtr out_filePath res__filePath) prim_getObjectBrowserList :: (VsTypes.VSITEMID -> objState -> Prelude.IO (VsClassView.IVsObjectList ())) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> VsTypes.VSITEMID -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (VsClassView.IVsObjectList ())) -> Prelude.IO Data.Int.Int32 prim_getObjectBrowserList getObjectBrowserList_meth iptr itemid out_list = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getObjectBrowserList_meth itemid obj Prelude.>>= \ res__list -> Com.marshallIUnknown res__list Prelude.>>= \ res__list -> HDirect.writePtr (Foreign.Ptr.castPtr out_list) res__list)