Yes, I think that's one of the reasons it was added -- to provide a better
way to handle that event.
--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54
"Mark B" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> No but I wonder if that handles the email being read in the preview pane
> though. Think it would? I think a lot of people just use that these days
> to read emails.
>
>
> "Sue Mosher [MVP]" <(E-Mail Removed)> wrote in message
> news:%(E-Mail Removed)...
>> Have you considered using the Application.ItemLoad event along with a
>> wrapper class to handle multiple items being loaded?
>>
>> "Mark B" <(E-Mail Removed)> wrote in message
>> news:(E-Mail Removed)...
>>> VSTO, 2007, C#.
>>>
>>> I'm going through the code of our senior developer to try and reduce the
>>> load-time of the Outlook Add-on.
>>>
>>> I see he is adding an event handler to all email items on
>>> ThisAddIn_Startup so he can detect when an email is read. (He uses this
>>> info for something else we need). It all works fine but I have noticed
>>> in testing it gets pretty slow as more emails are stored in Outlook.
>>> I've got around 50 and the delay is too long already...
>>>
>>> He did have one for On-Email-Send but I removed that code and put a
>>> "folder watch" event on the SentItems folder instead.
>>>
>>> I am just trying to think of any way I can do something similar or an
>>> alternative for detecting if an email is read. Any ideas?
>>>
>>>
>>>
>>> private void ThisAddIn_Startup(object sender, System.EventArgs e)
>>> {
>>>
>>> ....
>>>
>>> Outlook.Stores stores =
>>> Globals.ThisAddIn.Application.GetNamespace("MAPI").Stores;
>>> foreach (Outlook.Store store in stores)
>>> {
>>> foreach (Outlook.Folder f in
>>> store.GetRootFolder().Folders)
>>> {
>>> foreach (object i in f.Items)
>>> {
>>> if (i != null && i is Outlook.MailItem)
>>> {
>>>
>>> EmailsEventHandler.AddHandlers((Outlook.MailItem)i);
>>> }
>>> }
>>> }
>>> }
>>>
>>> ....
>>> }
>>>
>>> public static bool AddHandlers(Outlook.MailItem mail)
>>> {
>>> bool result = true;
>>> readEventHandlers.Add(new EmailReadEventHandler(mail));
>>> return result;
>>> }
>>>
>>
>>
>