Home |
Search |
Today's Posts |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Peter - I agree that, in theory that would be causing the problem; I
just don't know what I could do differently in my code - again, here are the code snippets: Excel.AppEvents_SheetSelectionChangeEventHandler EventDel_SheetSelectionChange; OnConnection(...){ EventDel_SheetSelectionChange = new AppEvents_SheetSelectionChangeEventHandler(API.App lication_SheetSelectionChange); m_Excel.SheetSelectionChange += EventDel_SheetSelectionChange; } OnDisconnection(...){ m_Excel.SheetSelectionChange -= EventDel_SheetSelectionChange; Marshal.ReleaseComObject(EventDel_SheetSelectionCh ange); EventDel_SheetSelectionChange = null; } On Sep 17, 3:55*pm, "Peter T" <peter_t@discussions wrote: I don't know C# but I'd look further into this bit Removing the delegate from the event (and releaseing the COM reference) in the OnDisconnection method does not help. maybe you have more than one reference that you have not released (not necessarily the app) Regards, Peter T wrote in message ... My C# add-in implements IDTExtensibility2. *As long as I don't sync my add-in to any Excel events, it works perfectly and the Excel instance is removed when Excel is shut down. However, my add-in must listen to some Excel events. I hook them up during OnConnection, like so (using any of the Excel Workbook events gives the same problem): applicationObject.WorkbookOpen += new Microsoft.Office.Interop.Excel.AppEvents_WorkbookO penEventHandler(applicationObject_WorkbookOpen); Once I add this line of code, the Excel instance sticks around, even after Excel is terminated and released. *Removing the delegate from the event (and releaseing the COM reference) in the OnDisconnection method does not help. Using .Net 2.0 and the issue exists with at least Office XP and 2003. The code used to test the creation and release of the Excel instance is he Sub Test() * *Set oXL = CreateObject("Excel.Application") * *Set WBs = oXL.Workbooks * *Set Wkbk = WBs.Add * *Set Wkbk = Nothing * *Set WBs = Nothing * *oXL.Quit * *Set oXL = Nothing End Sub |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Add-in with IDTExtensibility2 and worksheet formulae | Excel Programming | |||
Excel 12 New Release | Excel Discussion (Misc queries) | |||
IDTExtensibility2 | Excel Programming | |||
IDTExtensibility2.OnConnection Event | Excel Programming | |||
How to release the EXCEL.EXE procedure? | Excel Programming |