-- Automatically generated by HaskellDirect (ihc.exe), snapshot 061203 -- Created: 12:10 E. Europe Standard Time, Sunday 07 December, 2003 -- Command line: -iidl -fcom idl/VsSolution.idl module VsSolution ( next , skip , reset , clone , IEnumHierarchies , IEnumHierarchies_ , iidIEnumHierarchies , getProjectEnum , createProject , generateUniqueProjectName , getProjectOfGuid , getGuidOfProject , getSolutionInfo , adviseSolutionEvents , unadviseSolutionEvents , saveSolutionElement , closeSolutionElement , getProjectOfProjref , getProjrefOfProject , getProjectInfoOfProjref , addVirtualProject , getItemOfProjref , getProjrefOfItem , getItemInfoOfProjref , getProjectOfUniqueName , getUniqueNameOfProject , getProperty0 , setProperty0 , openSolutionFile , queryEditSolutionFile , createSolution , getProjectFactory , getProjectTypeGuid , openSolutionViaDlg , addVirtualProjectEx , queryRenameProject , onAfterRenameProject , removeVirtualProject , createNewProjectViaDlg , getVirtualProjectFlags , generateNextDefaultProjectName , getProjectFilesInSolution , canCreateNewProjectAtLocation , IVsSolution , IVsSolution_ , iidIVsSolution , onAfterOpenProject , onQueryCloseProject , onBeforeCloseProject , onAfterLoadProject , onQueryUnloadProject , onBeforeUnloadProject , onAfterOpenSolution , onQueryCloseSolution , onBeforeCloseSolution , onAfterCloseSolution , IVsSolutionEvents(..) , IVsSolutionEvents_(..) , iidIVsSolutionEvents ) where import Prelude (fromEnum, toEnum) import qualified Prelude import qualified Automation (Variant, allocVARIANT, unmarshallVariant, VARIANT, marshallVariant) import qualified Com (IUnknown, IID, mkIID, marshallIUnknown, invokeAndCheck, readIUnknown, GUID, sizeofGUID, unmarshallGUID, marshallGUID, marshallIID, readBSTR, freeBSTR, writeIUnknown, enumNext, enumSkip, enumReset, enumClone, copyGUID, coAlloc) import qualified Foreign.ForeignPtr (withForeignPtr) import qualified Foreign.Ptr (Ptr, castPtr) import qualified HDirect (sizeofForeignPtr, allocBytes, free, doThenFree, sizeofInt32, readInt32, unmarshallEnum32, marshallEnum32, sizeofWord32, readWord32, sizeofPtr, freeref, marshallref, readEnum32, unmarshallWord32, unmarshalllist, writeInt32) import qualified Int (Int32) import qualified ServProv (IServiceProvider) import qualified VsProject (IVsProjectFactory, IVsProject, IVsHierarchy) import qualified VsTypes (VSITEMID, VSHPROPID, VSCOOKIE, VSENUMPROJFLAGS, VSSLNSAVEOPTIONS, VSSLNCLOSEOPTIONS, VSADDVPFLAGS, VSPROPID, VSSLNOPENOPTIONS, VSCREATESOLUTIONFLAGS, VSREMOVEVPFLAGS, VSGETPROJFILESFLAGS, VSUPDATEPROJREFREASON) import qualified WideString (marshallWideString, freeWideString, WideString) import qualified Word (Word32) import qualified Wtypes (BOOL, REFGUID, REFIID, LPCOLESTR, DWORD, ULONG, HICON) -- -------------------------------------------------- -- -- interface IEnumHierarchies -- -- -------------------------------------------------- data IEnumHierarchies_ a = IEnumHierarchies__ type IEnumHierarchies a = Com.IUnknown (IEnumHierarchies_ a) iidIEnumHierarchies :: Com.IID (IEnumHierarchies ()) iidIEnumHierarchies = Com.mkIID "{BEC77711-2DF9-44d7-B478-A453C2E8A134}" next :: Wtypes.ULONG -> IEnumHierarchies a0 -> Prelude.IO [VsProject.IVsHierarchy a1] next celt iptr = Com.enumNext HDirect.sizeofForeignPtr (Com.readIUnknown Prelude.False) celt iptr skip :: Wtypes.ULONG -> IEnumHierarchies a0 -> Prelude.IO () skip celt iptr = Com.enumSkip celt iptr reset :: IEnumHierarchies a0 -> Prelude.IO () reset iptr = Com.enumReset iptr clone :: IEnumHierarchies a0 -> Prelude.IO (IEnumHierarchies ()) clone iptr = Com.enumClone iptr -- -------------------------------------------------- -- -- interface IVsSolution -- -- -------------------------------------------------- data IVsSolution_ a = IVsSolution__ type IVsSolution a = Com.IUnknown (IVsSolution_ a) iidIVsSolution :: Com.IID (IVsSolution ()) iidIVsSolution = Com.mkIID "{7F7CD0DB-91EF-49dc-9FA9-02D128515DD4}" getProjectEnum :: VsTypes.VSENUMPROJFLAGS -> Wtypes.REFGUID -> IVsSolution a0 -> Prelude.IO (IEnumHierarchies ()) getProjectEnum grfEnumFlags rguidEnumOnlyThisType iptr = do ppEnum <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofForeignPtr) grfEnumFlags <- HDirect.marshallEnum32 grfEnumFlags rguidEnumOnlyThisType <- Com.marshallGUID rguidEnumOnlyThisType Com.invokeAndCheck (\ methPtr iptr -> Foreign.ForeignPtr.withForeignPtr rguidEnumOnlyThisType (\ rguidEnumOnlyThisType -> prim_VsSolution_getProjectEnum methPtr iptr grfEnumFlags rguidEnumOnlyThisType ppEnum)) 3 iptr HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) ppEnum foreign import stdcall "dynamic" prim_VsSolution_getProjectEnum :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Int.Int32 -> Foreign.Ptr.Ptr Com.GUID -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (IEnumHierarchies a)) -> Prelude.IO Int.Int32 createProject :: Wtypes.REFGUID -> Wtypes.LPCOLESTR -> Wtypes.LPCOLESTR -> Wtypes.LPCOLESTR -> Wtypes.DWORD -> Com.IID (Com.IUnknown i0) -> IVsSolution a0 -> Prelude.IO (Com.IUnknown i0) createProject rguidProjectType lpszMoniker lpszLocation lpszName grfCreateFlags iidProject iptr = do ppProject <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofForeignPtr) rguidProjectType <- Com.marshallGUID rguidProjectType lpszMoniker <- WideString.marshallWideString lpszMoniker lpszLocation <- WideString.marshallWideString lpszLocation lpszName <- WideString.marshallWideString lpszName grfCreateFlags <- HDirect.marshallEnum32 grfCreateFlags iidProject <- Com.marshallIID iidProject Com.invokeAndCheck (\ methPtr iptr -> Foreign.ForeignPtr.withForeignPtr rguidProjectType (\ rguidProjectType -> Foreign.ForeignPtr.withForeignPtr iidProject (\ iidProject -> prim_VsSolution_createProject methPtr iptr rguidProjectType lpszMoniker lpszLocation lpszName grfCreateFlags iidProject ppProject))) 4 iptr WideString.freeWideString lpszMoniker WideString.freeWideString lpszLocation WideString.freeWideString lpszName HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) ppProject foreign import stdcall "dynamic" prim_VsSolution_createProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr Com.GUID -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr WideString.WideString -> Int.Int32 -> Foreign.Ptr.Ptr (Com.IID (Com.IUnknown i0)) -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (Com.IUnknown i0)) -> Prelude.IO Int.Int32 generateUniqueProjectName :: Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO Prelude.String generateUniqueProjectName lpszRoot iptr = do pbstrProjectName <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) lpszRoot <- WideString.marshallWideString lpszRoot Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_generateUniqueProjectName methPtr iptr lpszRoot pbstrProjectName) 5 iptr WideString.freeWideString lpszRoot HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrProjectName foreign import stdcall "dynamic" prim_VsSolution_generateUniqueProjectName :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32 getProjectOfGuid :: Wtypes.REFGUID -> IVsSolution a0 -> Prelude.IO (VsProject.IVsHierarchy ()) getProjectOfGuid rguidProjectID iptr = do ppHierarchy <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofForeignPtr) rguidProjectID <- Com.marshallGUID rguidProjectID Com.invokeAndCheck (\ methPtr iptr -> Foreign.ForeignPtr.withForeignPtr rguidProjectID (\ rguidProjectID -> prim_VsSolution_getProjectOfGuid methPtr iptr rguidProjectID ppHierarchy)) 6 iptr HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) ppHierarchy foreign import stdcall "dynamic" prim_VsSolution_getProjectOfGuid :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr Com.GUID -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (VsProject.IVsHierarchy a)) -> Prelude.IO Int.Int32 getGuidOfProject :: VsProject.IVsHierarchy a1 -> IVsSolution a0 -> Prelude.IO Com.GUID getGuidOfProject pHierarchy iptr = do pguidProjectID <- Com.coAlloc (Prelude.fromIntegral Com.sizeofGUID) pHierarchy <- Com.marshallIUnknown pHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getGuidOfProject methPtr iptr pHierarchy pguidProjectID) 7 iptr Com.unmarshallGUID Prelude.True pguidProjectID foreign import stdcall "dynamic" prim_VsSolution_getGuidOfProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Foreign.Ptr.Ptr Com.GUID -> Prelude.IO Int.Int32 getSolutionInfo :: IVsSolution a0 -> Prelude.IO (Prelude.String, Prelude.String, Prelude.String) getSolutionInfo iptr = do pbstrSolutionDirectory <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) pbstrSolutionFile <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) pbstrUserOptsFile <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getSolutionInfo methPtr iptr pbstrSolutionDirectory pbstrSolutionFile pbstrUserOptsFile) 8 iptr pbstrSolutionDirectory <- HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrSolutionDirectory pbstrSolutionFile <- HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrSolutionFile pbstrUserOptsFile <- HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrUserOptsFile Prelude.return (pbstrSolutionDirectory, pbstrSolutionFile, pbstrUserOptsFile) foreign import stdcall "dynamic" prim_VsSolution_getSolutionInfo :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32 adviseSolutionEvents :: IVsSolutionEvents a1 -> IVsSolution a0 -> Prelude.IO VsTypes.VSCOOKIE adviseSolutionEvents sink iptr = do pdwCookie <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofWord32) pSink <- Com.marshallIUnknown sink Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_adviseSolutionEvents methPtr iptr pSink pdwCookie) 9 iptr HDirect.doThenFree HDirect.free HDirect.readWord32 pdwCookie foreign import stdcall "dynamic" prim_VsSolution_adviseSolutionEvents :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (IVsSolutionEvents a) -> Foreign.Ptr.Ptr VsTypes.VSCOOKIE -> Prelude.IO Int.Int32 unadviseSolutionEvents :: VsTypes.VSCOOKIE -> IVsSolution a0 -> Prelude.IO () unadviseSolutionEvents dwCookie iptr = Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_unadviseSolutionEvents methPtr iptr dwCookie) 10 iptr foreign import stdcall "dynamic" prim_VsSolution_unadviseSolutionEvents :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Word.Word32 -> Prelude.IO Int.Int32 saveSolutionElement :: Wtypes.DWORD -> VsProject.IVsHierarchy a1 -> VsTypes.VSCOOKIE -> IVsSolution a0 -> Prelude.IO () saveSolutionElement grfSaveOpts pHier docCookie iptr = do -- grfSaveOpts <- HDirect.marshallEnum32 grfSaveOpts pHier <- Com.marshallIUnknown pHier Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_saveSolutionElement methPtr iptr grfSaveOpts pHier docCookie) 11 iptr foreign import stdcall "dynamic" prim_VsSolution_saveSolutionElement :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Wtypes.DWORD -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Word.Word32 -> Prelude.IO Int.Int32 closeSolutionElement :: Wtypes.DWORD -> VsProject.IVsHierarchy a1 -> VsTypes.VSCOOKIE -> IVsSolution a0 -> Prelude.IO () closeSolutionElement grfCloseOpts pHier docCookie iptr = do -- grfCloseOpts <- HDirect.marshallEnum32 grfCloseOpts pHier <- Com.marshallIUnknown pHier Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_saveSolutionElement methPtr iptr grfCloseOpts pHier docCookie) 12 iptr getProjectOfProjref :: Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO (VsProject.IVsHierarchy (), Prelude.String, VsTypes.VSUPDATEPROJREFREASON) getProjectOfProjref pszProjref iptr = do ppHierarchy <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofForeignPtr) pbstrUpdatedProjref <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) puprUpdateReason <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofInt32) pszProjref <- WideString.marshallWideString pszProjref Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjectOfProjref methPtr iptr pszProjref ppHierarchy pbstrUpdatedProjref puprUpdateReason) 13 iptr WideString.freeWideString pszProjref ppHierarchy <- HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) ppHierarchy pbstrUpdatedProjref <- HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrUpdatedProjref puprUpdateReason <- HDirect.doThenFree HDirect.free HDirect.readEnum32 puprUpdateReason Prelude.return (ppHierarchy, pbstrUpdatedProjref, puprUpdateReason) foreign import stdcall "dynamic" prim_VsSolution_getProjectOfProjref :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (VsProject.IVsHierarchy a)) -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32 getProjrefOfProject :: VsProject.IVsHierarchy a1 -> IVsSolution a0 -> Prelude.IO Prelude.String getProjrefOfProject pHierarchy iptr = do pbstrProjref <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) pHierarchy <- Com.marshallIUnknown pHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjrefOfProject methPtr iptr pHierarchy pbstrProjref) 14 iptr HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrProjref foreign import stdcall "dynamic" prim_VsSolution_getProjrefOfProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32 getProjectInfoOfProjref :: (Automation.Variant a1) => Wtypes.LPCOLESTR -> VsTypes.VSHPROPID -> IVsSolution a0 -> Prelude.IO a1 getProjectInfoOfProjref pszProjref propid iptr = do pvar <- Automation.allocVARIANT pszProjref <- WideString.marshallWideString pszProjref propid <- HDirect.marshallEnum32 propid Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjectInfoOfProjref methPtr iptr pszProjref propid pvar) 15 iptr WideString.freeWideString pszProjref Automation.unmarshallVariant pvar foreign import stdcall "dynamic" prim_VsSolution_getProjectInfoOfProjref :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Int.Int32 -> Automation.VARIANT -> Prelude.IO Int.Int32 addVirtualProject :: VsProject.IVsHierarchy a1 -> VsTypes.VSADDVPFLAGS -> IVsSolution a0 -> Prelude.IO () addVirtualProject pHierarchy grfAddVPFlags iptr = do pHierarchy <- Com.marshallIUnknown pHierarchy grfAddVPFlags <- HDirect.marshallEnum32 grfAddVPFlags Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_addVirtualProject methPtr iptr pHierarchy grfAddVPFlags) 16 iptr foreign import stdcall "dynamic" prim_VsSolution_addVirtualProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Int.Int32 -> Prelude.IO Int.Int32 getItemOfProjref :: Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO (VsProject.IVsHierarchy (), VsTypes.VSITEMID, Prelude.String, VsTypes.VSUPDATEPROJREFREASON) getItemOfProjref pszProjref iptr = do ppHierarchy <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofForeignPtr) pitemid <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofWord32) pbstrUpdatedProjref <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) puprUpdateReason <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofInt32) pszProjref <- WideString.marshallWideString pszProjref Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getItemOfProjref methPtr iptr pszProjref ppHierarchy pitemid pbstrUpdatedProjref puprUpdateReason) 17 iptr WideString.freeWideString pszProjref ppHierarchy <- HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) ppHierarchy pitemid <- HDirect.doThenFree HDirect.free HDirect.readWord32 pitemid pbstrUpdatedProjref <- HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrUpdatedProjref puprUpdateReason <- HDirect.doThenFree HDirect.free HDirect.readEnum32 puprUpdateReason Prelude.return (ppHierarchy, pitemid, pbstrUpdatedProjref, puprUpdateReason) foreign import stdcall "dynamic" prim_VsSolution_getItemOfProjref :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (VsProject.IVsHierarchy a)) -> Foreign.Ptr.Ptr VsTypes.VSITEMID -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32 getProjrefOfItem :: VsProject.IVsHierarchy a1 -> VsTypes.VSITEMID -> IVsSolution a0 -> Prelude.IO Prelude.String getProjrefOfItem pHierarchy itemid iptr = do pbstrProjref <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) pHierarchy <- Com.marshallIUnknown pHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjrefOfItem methPtr iptr pHierarchy itemid pbstrProjref) 18 iptr HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrProjref foreign import stdcall "dynamic" prim_VsSolution_getProjrefOfItem :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Word.Word32 -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32 getItemInfoOfProjref :: (Automation.Variant a1) => Wtypes.LPCOLESTR -> VsTypes.VSHPROPID -> IVsSolution a0 -> Prelude.IO a1 getItemInfoOfProjref pszProjref propid iptr = do pvar <- Automation.allocVARIANT pszProjref <- WideString.marshallWideString pszProjref propid <- HDirect.marshallEnum32 propid Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjectInfoOfProjref methPtr iptr pszProjref propid pvar) 19 iptr WideString.freeWideString pszProjref Automation.unmarshallVariant pvar getProjectOfUniqueName :: Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO (VsProject.IVsHierarchy ()) getProjectOfUniqueName pszUniqueName iptr = do ppHierarchy <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofForeignPtr) pszUniqueName <- WideString.marshallWideString pszUniqueName Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjectOfUniqueName methPtr iptr pszUniqueName ppHierarchy) 20 iptr WideString.freeWideString pszUniqueName HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) ppHierarchy foreign import stdcall "dynamic" prim_VsSolution_getProjectOfUniqueName :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (VsProject.IVsHierarchy a)) -> Prelude.IO Int.Int32 getUniqueNameOfProject :: VsProject.IVsHierarchy a1 -> IVsSolution a0 -> Prelude.IO Prelude.String getUniqueNameOfProject pHierarchy iptr = do pbstrUniqueName <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) pHierarchy <- Com.marshallIUnknown pHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjrefOfProject methPtr iptr pHierarchy pbstrUniqueName) 21 iptr HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrUniqueName getProperty0 :: (Automation.Variant a1) => VsTypes.VSPROPID -> IVsSolution a0 -> Prelude.IO a1 getProperty0 propid iptr = do pvar <- Automation.allocVARIANT propid <- HDirect.marshallEnum32 propid Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProperty0 methPtr iptr propid pvar) 22 iptr Automation.unmarshallVariant pvar foreign import stdcall "dynamic" prim_VsSolution_getProperty0 :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Int.Int32 -> Automation.VARIANT -> Prelude.IO Int.Int32 setProperty0 :: (Automation.Variant a1) => VsTypes.VSPROPID -> a1 -> IVsSolution a0 -> Prelude.IO () setProperty0 propid var iptr = do propid <- HDirect.marshallEnum32 propid var <- Automation.marshallVariant var Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_setProperty0 methPtr iptr propid var) 23 iptr foreign import stdcall "prim_VsSolution_setProperty0" prim_VsSolution_setProperty0 :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Int.Int32 -> Automation.VARIANT -> Prelude.IO Int.Int32 openSolutionFile :: VsTypes.VSSLNOPENOPTIONS -> Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO () openSolutionFile grfOpenOpts pszFilename iptr = do grfOpenOpts <- HDirect.marshallEnum32 grfOpenOpts pszFilename <- WideString.marshallWideString pszFilename Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_openSolutionFile methPtr iptr grfOpenOpts pszFilename) 24 iptr WideString.freeWideString pszFilename foreign import stdcall "dynamic" prim_VsSolution_openSolutionFile :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Int.Int32 -> Foreign.Ptr.Ptr WideString.WideString -> Prelude.IO Int.Int32 queryEditSolutionFile :: IVsSolution a0 -> Prelude.IO Wtypes.DWORD queryEditSolutionFile iptr = do pdwEditResult <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofWord32) Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_queryEditSolutionFile methPtr iptr pdwEditResult) 25 iptr HDirect.doThenFree HDirect.free HDirect.readWord32 pdwEditResult foreign import stdcall "dynamic" prim_VsSolution_queryEditSolutionFile :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr Word.Word32 -> Prelude.IO Int.Int32 createSolution :: Wtypes.LPCOLESTR -> Wtypes.LPCOLESTR -> VsTypes.VSCREATESOLUTIONFLAGS -> IVsSolution a0 -> Prelude.IO () createSolution lpszLocation lpszName grfCreateFlags iptr = do lpszLocation <- WideString.marshallWideString lpszLocation lpszName <- WideString.marshallWideString lpszName grfCreateFlags <- HDirect.marshallEnum32 grfCreateFlags Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_createSolution methPtr iptr lpszLocation lpszName grfCreateFlags) 26 iptr WideString.freeWideString lpszLocation WideString.freeWideString lpszName foreign import stdcall "dynamic" prim_VsSolution_createSolution :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr WideString.WideString -> Int.Int32 -> Prelude.IO Int.Int32 getProjectFactory :: Wtypes.DWORD -> Com.GUID -> Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO (Com.GUID, VsProject.IVsProjectFactory ()) getProjectFactory dwReserved pguidProjectType pszMkProject iptr = do ppProjectFactory <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofForeignPtr) pszMkProject <- WideString.marshallWideString pszMkProject pguidProjectType <- Prelude.fmap Foreign.Ptr.castPtr (Com.copyGUID pguidProjectType) Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjectFactory methPtr iptr dwReserved pguidProjectType pszMkProject ppProjectFactory) 27 iptr WideString.freeWideString pszMkProject ppProjectFactory <- HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) ppProjectFactory pguidProjectType <- Com.unmarshallGUID Prelude.True pguidProjectType Prelude.return (pguidProjectType, ppProjectFactory) foreign import stdcall "dynamic" prim_VsSolution_getProjectFactory :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Word.Word32 -> Foreign.Ptr.Ptr Com.GUID -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (VsProject.IVsProjectFactory a)) -> Prelude.IO Int.Int32 getProjectTypeGuid :: Wtypes.DWORD -> Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO Com.GUID getProjectTypeGuid dwReserved pszMkProject iptr = do pguidProjectType <- Com.coAlloc (Prelude.fromIntegral Com.sizeofGUID) pszMkProject <- WideString.marshallWideString pszMkProject Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjectTypeGuid methPtr iptr dwReserved pszMkProject pguidProjectType) 28 iptr WideString.freeWideString pszMkProject Com.unmarshallGUID Prelude.True pguidProjectType foreign import stdcall "dynamic" prim_VsSolution_getProjectTypeGuid :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Word.Word32 -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr Com.GUID -> Prelude.IO Int.Int32 openSolutionViaDlg :: Wtypes.LPCOLESTR -> Wtypes.BOOL -> IVsSolution a0 -> Prelude.IO () openSolutionViaDlg pszStartDirectory fDefaultToAllProjectsFilter iptr = do pszStartDirectory <- WideString.marshallWideString pszStartDirectory Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_openSolutionViaDlg methPtr iptr pszStartDirectory fDefaultToAllProjectsFilter) 29 iptr WideString.freeWideString pszStartDirectory foreign import stdcall "dynamic" prim_VsSolution_openSolutionViaDlg :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Int.Int32 -> Prelude.IO Int.Int32 addVirtualProjectEx :: VsProject.IVsHierarchy a1 -> VsTypes.VSADDVPFLAGS -> Wtypes.REFGUID -> IVsSolution a0 -> Prelude.IO () addVirtualProjectEx pHierarchy grfAddVPFlags rguidProjectID iptr = do pHierarchy <- Com.marshallIUnknown pHierarchy grfAddVPFlags <- HDirect.marshallEnum32 grfAddVPFlags rguidProjectID <- Com.marshallGUID rguidProjectID Com.invokeAndCheck (\ methPtr iptr -> Foreign.ForeignPtr.withForeignPtr rguidProjectID (\ rguidProjectID -> prim_VsSolution_addVirtualProjectEx methPtr iptr pHierarchy grfAddVPFlags rguidProjectID)) 30 iptr foreign import stdcall "dynamic" prim_VsSolution_addVirtualProjectEx :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Int.Int32 -> Foreign.Ptr.Ptr Com.GUID -> Prelude.IO Int.Int32 queryRenameProject :: VsProject.IVsProject a1 -> Wtypes.LPCOLESTR -> Wtypes.LPCOLESTR -> Wtypes.DWORD -> IVsSolution a0 -> Prelude.IO Wtypes.BOOL queryRenameProject pProject pszMkOldName pszMkNewName dwReserved iptr = do pfRenameCanContinue <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofInt32) pProject <- Com.marshallIUnknown pProject pszMkOldName <- WideString.marshallWideString pszMkOldName pszMkNewName <- WideString.marshallWideString pszMkNewName Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_queryRenameProject methPtr iptr pProject pszMkOldName pszMkNewName dwReserved pfRenameCanContinue) 31 iptr WideString.freeWideString pszMkOldName WideString.freeWideString pszMkNewName HDirect.doThenFree HDirect.free HDirect.readInt32 pfRenameCanContinue foreign import stdcall "dynamic" prim_VsSolution_queryRenameProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsProject a) -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr WideString.WideString -> Word.Word32 -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32 onAfterRenameProject :: VsProject.IVsProject a1 -> Wtypes.LPCOLESTR -> Wtypes.LPCOLESTR -> Wtypes.DWORD -> IVsSolution a0 -> Prelude.IO () onAfterRenameProject pProject pszMkOldName pszMkNewName dwReserved iptr = do pProject <- Com.marshallIUnknown pProject pszMkOldName <- WideString.marshallWideString pszMkOldName pszMkNewName <- WideString.marshallWideString pszMkNewName Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onAfterRenameProject methPtr iptr pProject pszMkOldName pszMkNewName dwReserved) 32 iptr WideString.freeWideString pszMkOldName WideString.freeWideString pszMkNewName foreign import stdcall "dynamic" prim_VsSolution_onAfterRenameProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsProject a) -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr WideString.WideString -> Word.Word32 -> Prelude.IO Int.Int32 removeVirtualProject :: VsProject.IVsHierarchy a1 -> VsTypes.VSREMOVEVPFLAGS -> IVsSolution a0 -> Prelude.IO () removeVirtualProject pHierarchy grfRemoveVPFlags iptr = do pHierarchy <- Com.marshallIUnknown pHierarchy grfRemoveVPFlags <- HDirect.marshallEnum32 grfRemoveVPFlags Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_addVirtualProject methPtr iptr pHierarchy grfRemoveVPFlags) 33 iptr createNewProjectViaDlg :: Wtypes.LPCOLESTR -> Wtypes.LPCOLESTR -> Wtypes.DWORD -> IVsSolution a0 -> Prelude.IO () createNewProjectViaDlg pszExpand pszSelect dwReserved iptr = do pszExpand <- WideString.marshallWideString pszExpand pszSelect <- WideString.marshallWideString pszSelect Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_createNewProjectViaDlg methPtr iptr pszExpand pszSelect dwReserved) 34 iptr WideString.freeWideString pszExpand WideString.freeWideString pszSelect foreign import stdcall "dynamic" prim_VsSolution_createNewProjectViaDlg :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr WideString.WideString -> Word.Word32 -> Prelude.IO Int.Int32 getVirtualProjectFlags :: VsProject.IVsHierarchy a1 -> IVsSolution a0 -> Prelude.IO VsTypes.VSADDVPFLAGS getVirtualProjectFlags pHierarchy iptr = do pgrfAddVPFlags <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofInt32) pHierarchy <- Com.marshallIUnknown pHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getVirtualProjectFlags methPtr iptr pHierarchy pgrfAddVPFlags) 35 iptr HDirect.doThenFree HDirect.free HDirect.readEnum32 pgrfAddVPFlags foreign import stdcall "dynamic" prim_VsSolution_getVirtualProjectFlags :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Foreign.Ptr.Ptr VsTypes.VSADDVPFLAGS -> Prelude.IO Int.Int32 generateNextDefaultProjectName :: Wtypes.LPCOLESTR -> Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO Prelude.String generateNextDefaultProjectName pszBaseName pszLocation iptr = do pbstrProjectName <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofPtr) pszBaseName <- WideString.marshallWideString pszBaseName pszLocation <- WideString.marshallWideString pszLocation Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_generateNextDefaultProjectName methPtr iptr pszBaseName pszLocation pbstrProjectName) 36 iptr WideString.freeWideString pszBaseName WideString.freeWideString pszLocation HDirect.doThenFree (HDirect.freeref Com.freeBSTR) Com.readBSTR pbstrProjectName foreign import stdcall "dynamic" prim_VsSolution_generateNextDefaultProjectName :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr Prelude.String -> Prelude.IO Int.Int32 getProjectFilesInSolution :: VsTypes.VSGETPROJFILESFLAGS -> Wtypes.ULONG -> IVsSolution a0 -> Prelude.IO [Prelude.String] getProjectFilesInSolution grfGetOpts cProjects iptr = do rgbstrProjectNames <- HDirect.allocBytes ((Prelude.fromIntegral HDirect.sizeofPtr Prelude.* Prelude.fromIntegral cProjects)) pcProjectsFetched <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofWord32) grfGetOpts <- HDirect.marshallEnum32 grfGetOpts Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_getProjectFilesInSolution methPtr iptr grfGetOpts cProjects rgbstrProjectNames pcProjectsFetched) 37 iptr cProjects <- HDirect.unmarshallWord32 cProjects pcProjectsFetched <- HDirect.readWord32 pcProjectsFetched let pcProjectsFetched' = (pcProjectsFetched) HDirect.doThenFree HDirect.free (HDirect.unmarshalllist HDirect.sizeofPtr 0 ((pcProjectsFetched')) Com.readBSTR) rgbstrProjectNames foreign import stdcall "dynamic" prim_VsSolution_getProjectFilesInSolution :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Int.Int32 -> Word.Word32 -> Foreign.Ptr.Ptr Prelude.String -> Foreign.Ptr.Ptr Word.Word32 -> Prelude.IO Int.Int32 canCreateNewProjectAtLocation :: Wtypes.BOOL -> Wtypes.LPCOLESTR -> IVsSolution a0 -> Prelude.IO Wtypes.BOOL canCreateNewProjectAtLocation fCreateNewSolution pszFullProjectFilePath iptr = do pfCanCreate <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofInt32) pszFullProjectFilePath <- WideString.marshallWideString pszFullProjectFilePath Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_canCreateNewProjectAtLocation methPtr iptr fCreateNewSolution pszFullProjectFilePath pfCanCreate) 38 iptr WideString.freeWideString pszFullProjectFilePath HDirect.doThenFree HDirect.free HDirect.readInt32 pfCanCreate foreign import stdcall "dynamic" prim_VsSolution_canCreateNewProjectAtLocation :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Int.Int32 -> Foreign.Ptr.Ptr WideString.WideString -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32 -- -------------------------------------------------- -- -- interface IVsSolutionEvents -- -- -------------------------------------------------- data IVsSolutionEvents_ a = IVsSolutionEvents__ type IVsSolutionEvents a = Com.IUnknown (IVsSolutionEvents_ a) iidIVsSolutionEvents :: Com.IID (IVsSolutionEvents ()) iidIVsSolutionEvents = Com.mkIID "{A8516B56-7421-4dbd-AB87-57AF7A2E85DE}" onAfterOpenProject :: VsProject.IVsHierarchy a1 -> Wtypes.BOOL -> IVsSolutionEvents a0 -> Prelude.IO () onAfterOpenProject pHierarchy fAdded iptr = do pHierarchy <- Com.marshallIUnknown pHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_addVirtualProject methPtr iptr pHierarchy fAdded) 3 iptr onQueryCloseProject :: VsProject.IVsHierarchy a1 -> Wtypes.BOOL -> Wtypes.BOOL -> IVsSolutionEvents a0 -> Prelude.IO Wtypes.BOOL onQueryCloseProject pHierarchy fRemoving pfCancel iptr = do pHierarchy <- Com.marshallIUnknown pHierarchy pfCancel <- HDirect.marshallref (HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofInt32)) HDirect.writeInt32 pfCancel Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onQueryCloseProject methPtr iptr pHierarchy fRemoving pfCancel) 4 iptr HDirect.doThenFree HDirect.free HDirect.readInt32 pfCancel foreign import stdcall "dynamic" prim_VsSolution_onQueryCloseProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Int.Int32 -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32 onBeforeCloseProject :: VsProject.IVsHierarchy a1 -> Wtypes.BOOL -> IVsSolutionEvents a0 -> Prelude.IO () onBeforeCloseProject pHierarchy fRemoved iptr = do pHierarchy <- Com.marshallIUnknown pHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_addVirtualProject methPtr iptr pHierarchy fRemoved) 5 iptr onAfterLoadProject :: VsProject.IVsHierarchy a1 -> VsProject.IVsHierarchy a2 -> IVsSolutionEvents a0 -> Prelude.IO () onAfterLoadProject pStubHierarchy pRealHierarchy iptr = do pStubHierarchy <- Com.marshallIUnknown pStubHierarchy pRealHierarchy <- Com.marshallIUnknown pRealHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onAfterLoadProject methPtr iptr pStubHierarchy pRealHierarchy) 6 iptr foreign import stdcall "dynamic" prim_VsSolution_onAfterLoadProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Prelude.IO Int.Int32 onQueryUnloadProject :: VsProject.IVsHierarchy a1 -> Wtypes.BOOL -> IVsSolutionEvents a0 -> Prelude.IO Wtypes.BOOL onQueryUnloadProject pRealHierarchy pfCancel iptr = do pRealHierarchy <- Com.marshallIUnknown pRealHierarchy pfCancel <- HDirect.marshallref (HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofInt32)) HDirect.writeInt32 pfCancel Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onQueryUnloadProject methPtr iptr pRealHierarchy pfCancel) 7 iptr HDirect.doThenFree HDirect.free HDirect.readInt32 pfCancel foreign import stdcall "dynamic" prim_VsSolution_onQueryUnloadProject :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (VsProject.IVsHierarchy a) -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32 onBeforeUnloadProject :: VsProject.IVsHierarchy a1 -> VsProject.IVsHierarchy a2 -> IVsSolutionEvents a0 -> Prelude.IO () onBeforeUnloadProject pRealHierarchy pStubHierarchy iptr = do pRealHierarchy <- Com.marshallIUnknown pRealHierarchy pStubHierarchy <- Com.marshallIUnknown pStubHierarchy Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onAfterLoadProject methPtr iptr pRealHierarchy pStubHierarchy) 8 iptr onAfterOpenSolution :: Com.IUnknown a1 -> Wtypes.BOOL -> IVsSolutionEvents a0 -> Prelude.IO () onAfterOpenSolution pUnkReserved fNewSolution iptr = do pUnkReserved <- Com.marshallIUnknown pUnkReserved Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onAfterOpenSolution methPtr iptr pUnkReserved fNewSolution) 9 iptr foreign import stdcall "dynamic" prim_VsSolution_onAfterOpenSolution :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (Com.IUnknown a) -> Int.Int32 -> Prelude.IO Int.Int32 onQueryCloseSolution :: Com.IUnknown a1 -> Wtypes.BOOL -> IVsSolutionEvents a0 -> Prelude.IO Wtypes.BOOL onQueryCloseSolution pUnkReserved pfCancel iptr = do pUnkReserved <- Com.marshallIUnknown pUnkReserved pfCancel <- HDirect.marshallref (HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofInt32)) HDirect.writeInt32 pfCancel Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onQueryCloseSolution methPtr iptr pUnkReserved pfCancel) 10 iptr HDirect.doThenFree HDirect.free HDirect.readInt32 pfCancel foreign import stdcall "dynamic" prim_VsSolution_onQueryCloseSolution :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (Com.IUnknown a) -> Foreign.Ptr.Ptr Int.Int32 -> Prelude.IO Int.Int32 onBeforeCloseSolution :: Com.IUnknown a1 -> IVsSolutionEvents a0 -> Prelude.IO () onBeforeCloseSolution pUnkReserved iptr = do pUnkReserved <- Com.marshallIUnknown pUnkReserved Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onBeforeCloseSolution methPtr iptr pUnkReserved) 11 iptr foreign import stdcall "dynamic" prim_VsSolution_onBeforeCloseSolution :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr (Com.IUnknown a) -> Prelude.IO Int.Int32 onAfterCloseSolution :: Com.IUnknown a1 -> IVsSolutionEvents a0 -> Prelude.IO () onAfterCloseSolution pUnkReserved iptr = do pUnkReserved <- Com.marshallIUnknown pUnkReserved Com.invokeAndCheck (\ methPtr iptr -> prim_VsSolution_onBeforeCloseSolution methPtr iptr pUnkReserved) 12 iptr