Group:  Microsoft Outlook ยป microsoft.public.outlook.program_addins
Thread: Very Odd Behavior - Outlook 2003 AddIn with a Form

Geek News

Very Odd Behavior - Outlook 2003 AddIn with a Form
Miguel Lopes 6/28/2006 11:42:01 AM
Hi,

I am developing a Outlook 2003 Add In, using Visual Studio 2005 and Shared
Add In project template with C#.
The Primary Interop Assemblies for Office 2003 are also installed.
The goal of the addin is to provide the user that sends an email the ability
to save it to disk. For that i am trapping the ItemSend
event as follows:

public void OnConnection(object application, Extensibility.ext_Co....
{
.....
Outlook._Application obj = (Outlook._Application)application;
obj.Application.ItemSend += new
ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
.....
}

In order to provide user interaction with the addin, i added to the project
a standard Windows Form ( WhereToSaveForm.cs )
and in the addin event handler code i put the following code:

MessageBox.Show("Saving");
WhereToSaveForm formSave = new WhereToSaveForm();
formSave.ShowDialog();

In order to test, i just added a button to the form, with a click event
handler, that justs closes the form:

this.Close();

When i send an email the following happen:

1) The message box is shown, saying: "Saving";
2) The form is loaded and shown;
3) Click on form button;
4) The form is closed;
5) Email is sent;

But when i repeat the procedure ( without closing Outlook ):

1) The message box is not shown;
2) The form is not loaded and obviously not shown;
3) The email is sent;

It seems that for some reason my addin gets unloaded or somehow the event
handler is not invoked.

I tracked down the problem to the following line:

formSave.ShowDialog();

if i comment this line, the event is always called, no matter how many
messages are sent ( the message box is always shown ).

In order to discover the problem i tested the following:

1) See if any exception was thrown that could cause the add in to unload -
No exception was thrown;
2) Try to reproduce the implementation of the message box, since with
MessageBox object the event is always fired - Without success;
3) Use Dispose() and Close() from the addIn ItemSend event handler, to get
the form closed - Without success;

Any ideas on this odd behavior?

Best Regards,
Miguel Lopes

Re: Very Odd Behavior - Outlook 2003 AddIn with a Form
"Ken Slovak - [MVP - Outlook]" <kenslovak[ at ]mvps.org> 6/28/2006 1:24:48 PM
Please don't multipost. See my response in another group you posted in.

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


"Miguel Lopes" <MiguelLopes[ at ]discussions.microsoft.com> wrote in message
news:701DBC9E-0B5B-4130-9AF0-BF4617DC2EC2[ at ]microsoft.com...
[Quoted Text]
> Hi,
>
> I am developing a Outlook 2003 Add In, using Visual Studio 2005 and Shared
> Add In project template with C#.
> The Primary Interop Assemblies for Office 2003 are also installed.
> The goal of the addin is to provide the user that sends an email the
> ability
> to save it to disk. For that i am trapping the ItemSend
> event as follows:
>
> public void OnConnection(object application, Extensibility.ext_Co....
> {
> ....
> Outlook._Application obj = (Outlook._Application)application;
> obj.Application.ItemSend += new
> ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
> ....
> }
>
> In order to provide user interaction with the addin, i added to the
> project
> a standard Windows Form ( WhereToSaveForm.cs )
> and in the addin event handler code i put the following code:
>
> MessageBox.Show("Saving");
> WhereToSaveForm formSave = new WhereToSaveForm();
> formSave.ShowDialog();
>
> In order to test, i just added a button to the form, with a click event
> handler, that justs closes the form:
>
> this.Close();
>
> When i send an email the following happen:
>
> 1) The message box is shown, saying: "Saving";
> 2) The form is loaded and shown;
> 3) Click on form button;
> 4) The form is closed;
> 5) Email is sent;
>
> But when i repeat the procedure ( without closing Outlook ):
>
> 1) The message box is not shown;
> 2) The form is not loaded and obviously not shown;
> 3) The email is sent;
>
> It seems that for some reason my addin gets unloaded or somehow the event
> handler is not invoked.
>
> I tracked down the problem to the following line:
>
> formSave.ShowDialog();
>
> if i comment this line, the event is always called, no matter how many
> messages are sent ( the message box is always shown ).
>
> In order to discover the problem i tested the following:
>
> 1) See if any exception was thrown that could cause the add in to unload -
> No exception was thrown;
> 2) Try to reproduce the implementation of the message box, since with
> MessageBox object the event is always fired - Without success;
> 3) Use Dispose() and Close() from the addIn ItemSend event handler, to get
> the form closed - Without success;
>
> Any ideas on this odd behavior?
>
> Best Regards,
> Miguel Lopes
>

Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net