-- Automatically generated by HaskellDirect (ihc.exe), snapshot 181103 -- Created: 12:29 E. Europe Standard Time, Saturday 29 November, 2003 -- Command line: idl/HaskellPackage.idl -s -iidl module HaskellPackageProxy ( libidHaskellPackage , IVsInstalledProduct , IVsInstalledProduct_ , iidIVsInstalledProduct , mkIVsInstalledProduct_vtbl , IVsPackage , IVsPackage_ , iidIVsPackage , mkIVsPackage_vtbl , clsidHaskellPackage , componentInfo ) where import Prelude (fromEnum, toEnum) import qualified Prelude import qualified Automation (IDispatch) import qualified Bits ((.&.)) import qualified Com (LIBID, mkLIBID, IUnknown, IID, mkIID, returnHR, marshallBSTR, GUID, unmarshallIUnknown, marshallIUnknown, unmarshallGUID, CLSID, mkCLSID) import qualified ComDll (ComponentInfo, mkComponentInfo) import qualified ComServ (ComVTable, createComVTable, getObjState, createComInstance, ComInterface, mkIface) import qualified Foreign (poke) import qualified Foreign.Ptr (Ptr, castPtr) import qualified HDirect (Flags(..), pow2Series, orList, writeWord32, writePtr, writeInt32, writefptr, unmarshallEnum32) import qualified HaskellPackage (new, State, getPropertyPage, resetDefaults, createTool, getAutomationObject, close, queryClose, setSite, getIdIcoLogoForAboutbox, getProductDetails, getProductID, getOfficialName, getIdBmpSplash) import HaskellPackageTypes (IVsPackage, IVsPackage_(..), iidIVsPackage, clsidHaskellPackage) import System.IO.Unsafe (unsafePerformIO) import qualified Int (Int32) import qualified Maybe (mapMaybe) import qualified ServProv (IServiceProvider) import qualified WideString (WideString, unmarshallWideString) import qualified Word (Word32) import qualified Wtypes (UINT, BOOL, LPCOLESTR, REFGUID) import qualified VsTypes (VSPROPSHEETPAGE, readVSPROPSHEETPAGE, writeVSPROPSHEETPAGE, VSPKGRESETFLAGS(..)) libidHaskellPackage :: Com.LIBID libidHaskellPackage = Com.mkLIBID "{03146D22-83C6-4df5-B3E6-71953ABFAF92}" -- -------------------------------------------------- -- -- interface IVsInstalledProduct -- -- -------------------------------------------------- data IVsInstalledProduct_ a = IVsInstalledProduct__ type IVsInstalledProduct a = Com.IUnknown (IVsInstalledProduct_ a) iidIVsInstalledProduct :: Com.IID (IVsInstalledProduct ()) iidIVsInstalledProduct = Com.mkIID "{098FCA58-5F42-11d3-8BDC-00C04F8EC28C}" mkIVsInstalledProduct_vtbl :: (objState -> Prelude.IO Wtypes.UINT) -> (objState -> Prelude.IO Prelude.String) -> (objState -> Prelude.IO Prelude.String) -> (objState -> Prelude.IO Prelude.String) -> (objState -> Prelude.IO Wtypes.UINT) -> Prelude.IO (ComServ.ComVTable (IVsInstalledProduct ()) objState) mkIVsInstalledProduct_vtbl getIdBmpSplash getOfficialName getProductID getProductDetails getIdIcoLogoForAboutbox = do meth_arg0 <- export_getIdBmpSplash (prim_getIdBmpSplash getIdBmpSplash) meth_arg1 <- export_getOfficialName (prim_getOfficialName getOfficialName) meth_arg2 <- export_getOfficialName (prim_getProductID getProductID) meth_arg3 <- export_getOfficialName (prim_getProductDetails getProductDetails) meth_arg4 <- export_getIdBmpSplash (prim_getIdIcoLogoForAboutbox getIdIcoLogoForAboutbox) ComServ.createComVTable [ meth_arg0 , meth_arg1 , meth_arg2 , meth_arg3 , meth_arg4 ] foreign import stdcall "wrapper" export_getIdBmpSplash :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Word.Word32 -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getOfficialName :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) prim_getIdBmpSplash :: (objState -> Prelude.IO Wtypes.UINT) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Word.Word32 -> Prelude.IO Int.Int32 prim_getIdBmpSplash getIdBmpSplash_meth iptr out_pIdBmp = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getIdBmpSplash_meth obj Prelude.>>= \ res__pIdBmp -> HDirect.writeWord32 out_pIdBmp res__pIdBmp) prim_getOfficialName :: (objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32 prim_getOfficialName getOfficialName_meth iptr out_pbstrName = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getOfficialName_meth obj Prelude.>>= \ res__pbstrName -> Com.marshallBSTR res__pbstrName Prelude.>>= \ res__pbstrName -> HDirect.writePtr (Foreign.Ptr.castPtr out_pbstrName) res__pbstrName) prim_getProductID :: (objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32 prim_getProductID getProductID_meth iptr out_pbstrPID = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getProductID_meth obj Prelude.>>= \ res__pbstrPID -> Com.marshallBSTR res__pbstrPID Prelude.>>= \ res__pbstrPID -> HDirect.writePtr (Foreign.Ptr.castPtr out_pbstrPID) res__pbstrPID) prim_getProductDetails :: (objState -> Prelude.IO Prelude.String) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32 prim_getProductDetails getProductDetails_meth iptr out_pbstrProductDetails = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getProductDetails_meth obj Prelude.>>= \ res__pbstrProductDetails -> Com.marshallBSTR res__pbstrProductDetails Prelude.>>= \ res__pbstrProductDetails -> HDirect.writePtr (Foreign.Ptr.castPtr out_pbstrProductDetails) res__pbstrProductDetails) prim_getIdIcoLogoForAboutbox :: (objState -> Prelude.IO Wtypes.UINT) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Word.Word32 -> Prelude.IO Int.Int32 prim_getIdIcoLogoForAboutbox getIdIcoLogoForAboutbox_meth iptr out_pIdIco = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> getIdIcoLogoForAboutbox_meth obj Prelude.>>= \ res__pIdIco -> HDirect.writeWord32 out_pIdIco res__pIdIco) -- -------------------------------------------------- -- -- interface IVsPackage -- -- -------------------------------------------------- mkIVsPackage_vtbl :: (ServProv.IServiceProvider a0 -> objState -> Prelude.IO ()) -> (objState -> Prelude.IO Wtypes.BOOL) -> (objState -> Prelude.IO ()) -> (Wtypes.LPCOLESTR -> objState -> Prelude.IO (Automation.IDispatch ())) -> (Wtypes.REFGUID -> objState -> Prelude.IO ()) -> (VsTypes.VSPKGRESETFLAGS -> objState -> Prelude.IO ()) -> (Wtypes.REFGUID -> VsTypes.VSPROPSHEETPAGE -> objState -> Prelude.IO VsTypes.VSPROPSHEETPAGE) -> Prelude.IO (ComServ.ComVTable (IVsPackage ()) objState) mkIVsPackage_vtbl setSite queryClose close getAutomationObject createTool resetDefaults getPropertyPage = do meth_arg0 <- export_setSite (prim_setSite setSite) meth_arg1 <- export_queryClose (prim_queryClose queryClose) meth_arg2 <- export_close (prim_close close) meth_arg3 <- export_getAutomationObject (prim_getAutomationObject getAutomationObject) meth_arg4 <- export_createTool (prim_createTool createTool) meth_arg5 <- export_resetDefaults (prim_resetDefaults resetDefaults) meth_arg6 <- export_getPropertyPage (prim_getPropertyPage getPropertyPage) ComServ.createComVTable [ meth_arg0 , meth_arg1 , meth_arg2 , meth_arg3 , meth_arg4 , meth_arg5 , meth_arg6 ] foreign import stdcall "wrapper" export_setSite :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr (ServProv.IServiceProvider a0) -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_queryClose :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_close :: (Foreign.Ptr.Ptr a -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getAutomationObject :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (Automation.IDispatch a0)) -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_createTool :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Com.GUID -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_resetDefaults :: (Foreign.Ptr.Ptr a -> Int.Int32 -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) foreign import stdcall "wrapper" export_getPropertyPage :: (Foreign.Ptr.Ptr a -> Foreign.Ptr.Ptr Com.GUID -> Foreign.Ptr.Ptr VsTypes.VSPROPSHEETPAGE -> Prelude.IO Int.Int32) -> Prelude.IO (Foreign.Ptr.Ptr ()) prim_setSite :: (ServProv.IServiceProvider a0 -> objState -> Prelude.IO ()) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr (ServProv.IServiceProvider ()) -> Prelude.IO Int.Int32 prim_setSite setSite_meth iptr pSP = Com.returnHR (Com.unmarshallIUnknown Prelude.True pSP Prelude.>>= \ pSP -> ComServ.getObjState iptr Prelude.>>= \ obj -> setSite_meth pSP obj) prim_queryClose :: (objState -> Prelude.IO Wtypes.BOOL) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32 prim_queryClose queryClose_meth iptr out_pfCanClose = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> queryClose_meth obj Prelude.>>= \ res__pfCanClose -> HDirect.writeInt32 out_pfCanClose res__pfCanClose) prim_close :: (objState -> Prelude.IO ()) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Prelude.IO Int.Int32 prim_close close_meth iptr = Com.returnHR (ComServ.getObjState iptr Prelude.>>= \ obj -> close_meth obj) prim_getAutomationObject :: (Wtypes.LPCOLESTR -> objState -> Prelude.IO (Automation.IDispatch ())) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (Automation.IDispatch ())) -> Prelude.IO Int.Int32 prim_getAutomationObject getAutomationObject_meth iptr pszPropName out_ppDisp = Com.returnHR (WideString.unmarshallWideString pszPropName Prelude.>>= \ pszPropName -> ComServ.getObjState iptr Prelude.>>= \ obj -> getAutomationObject_meth pszPropName obj Prelude.>>= \ res__ppDisp -> Com.marshallIUnknown res__ppDisp Prelude.>>= \ res__ppDisp -> Foreign.poke (Foreign.Ptr.castPtr out_ppDisp) res__ppDisp) prim_createTool :: (Wtypes.REFGUID -> objState -> Prelude.IO ()) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Com.GUID -> Prelude.IO Int.Int32 prim_createTool createTool_meth iptr rguidPersistenceSlot = Com.returnHR (Com.unmarshallGUID Prelude.False rguidPersistenceSlot Prelude.>>= \ rguidPersistenceSlot -> ComServ.getObjState iptr Prelude.>>= \ obj -> createTool_meth rguidPersistenceSlot obj) prim_resetDefaults :: (VsTypes.VSPKGRESETFLAGS -> objState -> Prelude.IO ()) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Int.Int32 -> Prelude.IO Int.Int32 prim_resetDefaults resetDefaults_meth iptr grfFlags = Com.returnHR (HDirect.unmarshallEnum32 grfFlags Prelude.>>= \ grfFlags -> ComServ.getObjState iptr Prelude.>>= \ obj -> resetDefaults_meth grfFlags obj) prim_getPropertyPage :: (Wtypes.REFGUID -> VsTypes.VSPROPSHEETPAGE -> objState -> Prelude.IO VsTypes.VSPROPSHEETPAGE) -> Foreign.Ptr.Ptr (Com.IUnknown ()) -> Foreign.Ptr.Ptr Com.GUID -> Foreign.Ptr.Ptr VsTypes.VSPROPSHEETPAGE -> Prelude.IO Int.Int32 prim_getPropertyPage getPropertyPage_meth iptr rguidPage ppage = Com.returnHR (Com.unmarshallGUID Prelude.False rguidPage Prelude.>>= \ rguidPage -> VsTypes.readVSPROPSHEETPAGE ppage Prelude.>>= \ in__ppage -> ComServ.getObjState iptr Prelude.>>= \ obj -> getPropertyPage_meth rguidPage in__ppage obj Prelude.>>= \ res__ppage -> VsTypes.writeVSPROPSHEETPAGE ppage res__ppage) -- -------------------------------------------------- -- -- coclass HaskellPackage -- -- implements: IVsPackage , IVsInstalledProduct -- -------------------------------------------------- register_HaskellPackage :: Prelude.String -> Prelude.Bool -> Prelude.IO () register_HaskellPackage _ _ = Prelude.return () newHaskellPackage :: Prelude.String -> Prelude.IO () -> Com.IID (Com.IUnknown iid) -> Prelude.IO (Com.IUnknown iid) newHaskellPackage dll_path finaliser iid = do obj_state <- HaskellPackage.new ComServ.createComInstance dll_path obj_state finaliser ifaces_HaskellPackage iid componentInfo :: ComDll.ComponentInfo componentInfo = ComDll.mkComponentInfo clsidHaskellPackage register_HaskellPackage newHaskellPackage iVsPackage_vtbl :: ComServ.ComVTable (IVsPackage ()) HaskellPackage.State iVsPackage_vtbl = unsafePerformIO (mkIVsPackage_vtbl HaskellPackage.setSite HaskellPackage.queryClose HaskellPackage.close HaskellPackage.getAutomationObject HaskellPackage.createTool HaskellPackage.resetDefaults HaskellPackage.getPropertyPage) iVsInstalledProduct_vtbl :: ComServ.ComVTable (IVsInstalledProduct ()) HaskellPackage.State iVsInstalledProduct_vtbl = unsafePerformIO (mkIVsInstalledProduct_vtbl HaskellPackage.getIdBmpSplash HaskellPackage.getOfficialName HaskellPackage.getProductID HaskellPackage.getProductDetails HaskellPackage.getIdIcoLogoForAboutbox) ifaces_HaskellPackage :: [ComServ.ComInterface HaskellPackage.State] ifaces_HaskellPackage = [ ComServ.mkIface iidIVsPackage iVsPackage_vtbl , ComServ.mkIface iidIVsInstalledProduct iVsInstalledProduct_vtbl ]