![]() |
Problem with ItemSent event
Hello all,
I am writing an outlook plugin for saving emails I send and receive. For some reason, after a while, the ItemSent event stops and the delegate doesn't get called when emails are sent. Any ideas why does that happen? What could be done to prevent it from happening? Thanks in advance, Nool |
Problem with ItemSent event
Sounds like the classic "object goes out of scope and get's garbage
collected" issue. Make sure whenever you bind to events in any .NET application (but especially COM interop scenarios like Office) that the object remains rooted for as long as you intend to handle the event. Otherwise the garbage collector will pick it up and discard it. The problem is worse in COM interop scenarios because even though the real object might still be alive (like the Outlook Application object) it's runtime callable wrapper (RCW) is created on the fly and thrown away when it goes out of scope. You can hang onto the RCW in a static field or instance field if need be. -- Josh Einstein / Tablet PC MVP Einstein Technologies, LLC ----------------------------------------------------- Tablet Enhancements for Outlook 3.0 Now Available Unleash the potential of Outlook on your Tablet PC, Origami, or UMPC. Try it for 15 days - http://www.tabletoutlook.com/Go.ashx?id=ng wrote in message ups.com... Hello all, I am writing an outlook plugin for saving emails I send and receive. For some reason, after a while, the ItemSent event stops and the delegate doesn't get called when emails are sent. Any ideas why does that happen? What could be done to prevent it from happening? Thanks in advance, Nool |
Problem with ItemSent event
Thanks for your reply - but I'm am not sure what you mean - what is
getting out of scope? I'm attaching the delegate to an outlook event - how can I prevent from it getting out of scope. Another thing is I played around with it - and the problem only happens when I use streams - when I do some other (similarly time consuming) action - it does not happen and the delegate gets called all the time. Any ideas? Thanks again. Nool Josh Einstein wrote: Sounds like the classic "object goes out of scope and get's garbage collected" issue. Make sure whenever you bind to events in any .NET application (but especially COM interop scenarios like Office) that the object remains rooted for as long as you intend to handle the event. Otherwise the garbage collector will pick it up and discard it. The problem is worse in COM interop scenarios because even though the real object might still be alive (like the Outlook Application object) it's runtime callable wrapper (RCW) is created on the fly and thrown away when it goes out of scope. You can hang onto the RCW in a static field or instance field if need be. -- Josh Einstein / Tablet PC MVP Einstein Technologies, LLC ----------------------------------------------------- Tablet Enhancements for Outlook 3.0 Now Available Unleash the potential of Outlook on your Tablet PC, Origami, or UMPC. Try it for 15 days - http://www.tabletoutlook.com/Go.ashx?id=ng wrote in message ups.com... Hello all, I am writing an outlook plugin for saving emails I send and receive. For some reason, after a while, the ItemSent event stops and the delegate doesn't get called when emails are sent. Any ideas why does that happen? What could be done to prevent it from happening? Thanks in advance, Nool |
Problem with ItemSent event
Either declare your item for the event handler at a module level in a class
that never gets released or add the item to a collection or hashtable to make sure it stays alive and doesn't get garbage collected. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm wrote in message ups.com... Thanks for your reply - but I'm am not sure what you mean - what is getting out of scope? I'm attaching the delegate to an outlook event - how can I prevent from it getting out of scope. Another thing is I played around with it - and the problem only happens when I use streams - when I do some other (similarly time consuming) action - it does not happen and the delegate gets called all the time. Any ideas? Thanks again. Nool |
All times are GMT +1. The time now is 05:04 AM. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com