Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Add-ins for Outlook (http://www.outlookbanter.com/add-ins-outlook/)
-   -   BeforeItemMove (http://www.outlookbanter.com/add-ins-outlook/79245-beforeitemmove.html)

tobes September 25th 08 12:14 PM

BeforeItemMove
 
Hi folks,

Having checked the forums and code samples, we're still struggling with 1
issue with our Outlook 2007 .NET (VSTO) plugin.

We have a .NET class that monitors a calendar that we've created. This
monitor class is always referenced from the main plugin, so and it's
lifecycle is the same as the plugin.

We hook the following calendar.Items events: ItemAdded, ItemRemoved and
ItemChanged, BeforeItemMoved. They all work great, EXCEPT, the
BeforeItemMoved event only works briefly and then stops working.

This monitoring class also keeps references to the calendar (MAPIFOlder)
object it's monitoring, and also a reference to the calendar.Items collection
class. Why would all the other events fire reliably, but not BeforeItemMove?

See the class code here.
http://rafb.net/p/dRcIj341.html

Could we be missing somehting? Any ideas what else we need to keep a
reference to?

Many thanks in advance.

Tobes

Note: I originally posted this on outlookcode.com, but this may be a better
place?

Ken Slovak - [MVP - Outlook] September 25th 08 02:28 PM

BeforeItemMove
 
There's a 404 for that link. Unless the relevant code is really long post it
here. A lot of people won't go to a link like that.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"tobes" wrote in message
...
Hi folks,

Having checked the forums and code samples, we're still struggling with 1
issue with our Outlook 2007 .NET (VSTO) plugin.

We have a .NET class that monitors a calendar that we've created. This
monitor class is always referenced from the main plugin, so and it's
lifecycle is the same as the plugin.

We hook the following calendar.Items events: ItemAdded, ItemRemoved and
ItemChanged, BeforeItemMoved. They all work great, EXCEPT, the
BeforeItemMoved event only works briefly and then stops working.

This monitoring class also keeps references to the calendar (MAPIFOlder)
object it's monitoring, and also a reference to the calendar.Items
collection
class. Why would all the other events fire reliably, but not
BeforeItemMove?

See the class code here.
http://rafb.net/p/dRcIj341.html

Could we be missing somehting? Any ideas what else we need to keep a
reference to?

Many thanks in advance.

Tobes

Note: I originally posted this on outlookcode.com, but this may be a
better
place?



tobes September 25th 08 02:57 PM

BeforeItemMove
 
Thanks Ken, would I be better posting the code inline?

BTW - I'm currently reading your "Outlook 2007 Programming" book - great
stuff. That said, I still haven't solved this problem despite what you wrote
about wrappers and COM references :(

Tobin



"Ken Slovak - [MVP - Outlook]" wrote:

There's a 404 for that link. Unless the relevant code is really long post it
here. A lot of people won't go to a link like that.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"tobes" wrote in message
...
Hi folks,

Having checked the forums and code samples, we're still struggling with 1
issue with our Outlook 2007 .NET (VSTO) plugin.

We have a .NET class that monitors a calendar that we've created. This
monitor class is always referenced from the main plugin, so and it's
lifecycle is the same as the plugin.

We hook the following calendar.Items events: ItemAdded, ItemRemoved and
ItemChanged, BeforeItemMoved. They all work great, EXCEPT, the
BeforeItemMoved event only works briefly and then stops working.

This monitoring class also keeps references to the calendar (MAPIFOlder)
object it's monitoring, and also a reference to the calendar.Items
collection
class. Why would all the other events fire reliably, but not
BeforeItemMove?

See the class code here.
http://rafb.net/p/dRcIj341.html

Could we be missing somehting? Any ideas what else we need to keep a
reference to?

Many thanks in advance.

Tobes

Note: I originally posted this on outlookcode.com, but this may be a
better
place?




tobes September 25th 08 03:06 PM

BeforeItemMove
 
In case it helps, the code is he

http://gist.github.com/12823

(It's quite long).

Tobin

"Ken Slovak - [MVP - Outlook]" wrote:

There's a 404 for that link. Unless the relevant code is really long post it
here. A lot of people won't go to a link like that.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"tobes" wrote in message
...
Hi folks,

Having checked the forums and code samples, we're still struggling with 1
issue with our Outlook 2007 .NET (VSTO) plugin.

We have a .NET class that monitors a calendar that we've created. This
monitor class is always referenced from the main plugin, so and it's
lifecycle is the same as the plugin.

We hook the following calendar.Items events: ItemAdded, ItemRemoved and
ItemChanged, BeforeItemMoved. They all work great, EXCEPT, the
BeforeItemMoved event only works briefly and then stops working.

This monitoring class also keeps references to the calendar (MAPIFOlder)
object it's monitoring, and also a reference to the calendar.Items
collection
class. Why would all the other events fire reliably, but not
BeforeItemMove?

See the class code here.
http://rafb.net/p/dRcIj341.html

Could we be missing somehting? Any ideas what else we need to keep a
reference to?

Many thanks in advance.

Tobes

Note: I originally posted this on outlookcode.com, but this may be a
better
place?




Ken Slovak - [MVP - Outlook] September 25th 08 07:35 PM

BeforeItemMove
 
You really should be declaring all the Items collections you are working
with at class level and not inside methods. I can see the GC getting rid of
those at random intervals. Or you can create wrapper classes for folders and
declare the Items collection and folder entities at wrapper class level and
put the wrapper classes in a list of some sort to keep the classes alive.
The way you're doing it I'd expect to see all of your handlers going out of
scope at some point.

In some cases it also helps to declare the COM Outlook objects as static,
although don't ever do that with objects from the CommandBars collections.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"tobes" wrote in message
...
In case it helps, the code is he

http://gist.github.com/12823

(It's quite long).

Tobin




All times are GMT +1. The time now is 12:26 PM.

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