Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Add-ins for Outlook (http://www.outlookbanter.com/add-ins-outlook/)
-   -   Event trigers only first two times from FromRegion. (http://www.outlookbanter.com/add-ins-outlook/102066-event-trigers-only-first-two.html)

Lukasz April 23rd 10 02:59 PM

Event trigers only first two times from FromRegion.
 
Hello,

I have a custom VSTO Addin with FormRegion. In that add_in I wan't to hook to the events triggered when a user presses Reply or Forward buttons of the inspector window running my FormRegion. To do this I do:

Private Sub ChoixProjetRegion_FormRegionShowing(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing

If TypeOf (Me.OutlookItem) Is Outlook.MailItem AND Me.OutlookFormRegion.FormRegionMode = Outlook.OlFormRegionMode.olFormRegionRead Then
AddHandler CType(Me.OutlookItem, Outlook.MailItem).Reply, (AddressOf OutlookApplication_ItemReply)

End If

End Sub



Private Sub OutlookApplication_ItemReply(ByVal Item As Object, ByRef Cancel As Boolean)
MsgBox("here")
End Sub

It works. I see My Message Box when I press Reply. The Problem Is that it only works the first two times. ie, on the reply window I close it, and press Reply again on the original window and I get my MsgBox again, followed by the reply window. I close it again, and click on Reply thisr time, but this time the Reply window comes on without the MsgBox.

If I keep closing the Reply window and pressing the Reply button again a few times, eventually I'll get:

"COM object that has been separated from its underlying RCW cannot be used."



Does anyone know what's going on?.
Submitted using http://www.outlookforums.com

Ken Slovak - [MVP - Outlook] April 23rd 10 03:58 PM

Event trigers only first two times from FromRegion.
 
Your handler is being eaten by the garbage collector. Make sure to declare
all relevant objects at class level, where they won't be garbage collected
and will remain in scope. You need a class level MailItem object that you
assign to that item and then you add the event handler to that class level
object.

--
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


"Lukasz" lukaszmail[at]gmail[dot]com wrote in message
...
Hello,
I have a custom VSTO Addin with FormRegion. In that add_in I wan't to hook
to the events triggered when a user presses Reply or Forward buttons of
the inspector window running my FormRegion. To do this I do:

Private Sub ChoixProjetRegion_FormRegionShowing(ByVal sender As Object,
ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing

If TypeOf (Me.OutlookItem) Is Outlook.MailItem AND
Me.OutlookFormRegion.FormRegionMode =
Outlook.OlFormRegionMode.olFormRegionRead Then
AddHandler CType(Me.OutlookItem, Outlook.MailItem).Reply,
(AddressOf OutlookApplication_ItemReply)

End If

End Sub



Private Sub OutlookApplication_ItemReply(ByVal Item As Object, ByRef
Cancel As Boolean)
MsgBox("here")
End Sub

It works. I see My Message Box when I press Reply. The Problem Is that it
only works the first two times. ie, on the reply window I close it, and
press Reply again on the original window and I get my MsgBox again,
followed by the reply window. I close it again, and click on Reply thisr
time, but this time the Reply window comes on without the MsgBox.

If I keep closing the Reply window and pressing the Reply button again a
few times, eventually I'll get:

"COM object that has been separated from its underlying RCW cannot be
used."



Does anyone know what's going on?. Submitted using
http://www.outlookforums.com



Lukasz April 23rd 10 04:42 PM

Event trigers only first two times from FromRegion.
 
That was it. Thank you Ken. It even took care of the COM error. My woes are not over though. Now the event handler executes between two and four times whenever I click on the Reply. Any idea why?

Thanks,

Lukasz

kenslovak wrote on Fri, 23 April 2010 10:58
Your handler is being eaten by the garbage collector. Make sure to declare
all relevant objects at class level, where they won't be garbage collected
and will remain in scope. You need a class level MailItem object that you
assign to that item and then you add the event handler to that class level
object.

--
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


"Lukasz" lukaszmail[at]gmail[dot]com wrote in message
...
Hello,
I have a custom VSTO Addin with FormRegion. In that add_in I wan't to hook
to the events triggered when a user presses Reply or Forward buttons of
the inspector window running my FormRegion. To do this I do:

Private Sub ChoixProjetRegion_FormRegionShowing(ByVal sender As Object,
ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing

If TypeOf (Me.OutlookItem) Is Outlook.MailItem AND
Me.OutlookFormRegion.FormRegionMode =
Outlook.OlFormRegionMode.olFormRegionRead Then
AddHandler CType(Me.OutlookItem, Outlook.MailItem).Reply,
(AddressOf OutlookApplication_ItemReply)

End If

End Sub



Private Sub OutlookApplication_ItemReply(ByVal Item As Object, ByRef
Cancel As Boolean)
MsgBox("here")
End Sub

It works. I see My Message Box when I press Reply. The Problem Is that it
only works the first two times. ie, on the reply window I close it, and
press Reply again on the original window and I get my MsgBox again,
followed by the reply window. I close it again, and click on Reply thisr
time, but this time the Reply window comes on without the MsgBox.

If I keep closing the Reply window and pressing the Reply button again a
few times, eventually I'll get:

"COM object that has been separated from its underlying RCW cannot be
used."



Does anyone know what's going on?. Submitted using
http://www.outlookforums.com




All times are GMT +1. The time now is 12:32 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