MailItem Close Event

R

Robert Morley

Hi all,

I have a MailItem object (technically via Redemption, but as far as I can
tell, it works the same with the "normal" object library as well), which I'm
displaying on screen with the Display method. I'm monitoring the Close
event to determine if the message is not being sent. I need to find some
way of determining whether the user has clicked Cancel to the "Do you want
to save changes?" dialog and the message is really still open. Is there
some way I can do this? I've looked around most of the properties,
including the various GetInspector properties, and I can't seem to find
ANYTHING that's different whether I click "Cancel" or "No" when prompted.

Or better yet, is there an easy way to open an object with Display, then
determine when the message has been finalized (i.e., sent or truly closed)?



Thanks,
Rob
 
M

Michael Bauer [MVP - Outlook]

You will get either the MailItem's Send event or its Inspector's Close
event.

Another possibility is that the user deletes the message. Then the
MailItem's BeforeDelete fires after the user had the chance to cancel. That
event is available sinve OL XP.

--
Viele Gruesse / Best regards
Michael Bauer - MVP Outlook
Quick-Cats - Categorize Outlook data:
http://www.vboffice.net/product.html?id=2006063&cmd=detail&lang=en&pub=6

Am Wed, 18 Apr 2007 16:04:53 -0400 schrieb Robert Morley:
 
R

Robert Morley

But what's happening is that the Close event is firing *before* the
Yes/No/Cancel question is answered. So if the user says Cancel, then sends
the message, I've already processed the Close event. How can I tell, either
during the Close event or immediately afterwards, whether the message was
actually closed or if it's still on-screen?


Rob
 
R

Robert Morley

What other events fire when an item is closed, but not saved? I couldn't
find anything that fired and was distinguishable.



Rob
 
R

Robert Morley

Just to give you a better idea of what I'm trying to accomplish, I'm
creating a new e-mail and populating the subject, body, etc., then
displaying it on-screen. I then need to wait (indefinitely) until one of
three things occurs, and determine with absolute certainty which one it was:
the e-mail is sent; the e-mail is saved but not sent, the e-mail is
cancelled without being saved or sent.

It's those last two that're causing the big headache, since the Close event
happens before the Save Yes/No/Cancel question is asked. That means I have
no way of determining what actually happened to the outgoing e-mail after
that point.

I've tried monitoring the "BeforeDelete" event, but it doesn't fire if the
message is new (whether or not I save it before-hand).



Thanks,
Rob
 
R

Robert Morley

A-ha!

Okay, after poking around a bit, I've determined that what I need to do is
to monitor the Inspector's Close event, not the MailItem's Close event.
That will tell me deterministically when the window has been closed, and
from that point, I can determine what actually happened to the item by
looking at its Saved property, which will be either True, False, or raise an
error if the item has been sent successfully.

Thanks for trying to help me out. I appreciate your efforts.



Rob
 
R

Robert Morley

Sorry, looking back, you had pointed me to the Inspector's Close event in
your very first response; I hadn't picked up on it, and thought you were
still referring to the MailItem's Close event. My bad!



Rob
 
R

Robert Morley

What's funny about all this is that it seems that whatever reason I had for
not using a modal display is no longer applicable, and I'm going through all
this effort for nothing. <sigh!>


Rob
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top