View Single Post
  #2  
Old April 15th 08, 02:20 PM posted to microsoft.public.outlook.program_addins
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default Find Related Messages in Outlook 2003 with VSTO 2005 C#

It would be much faster to use a filter or restriction on the Items
collection of that folder using Subject as the filter condition. Review the
help in the Outlook VBA Object Browser for Items.Restrict, it shows how to
construct a restriction on various Outlook properties. The same type filter
also would apply if you use the Find methods. Which you use depends on how
many hits you expect.

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


"PGS123" wrote in message
...
Hi,

I have a sample code here which simply looks for the same email subject
and
returns the total of number messages located in a folder. But this code
took
noticeably longer time to execute compare to the good old Outlook's "Find
All
/ Related Messages" feature. This Outlook's feature returns a list in an
instant without delay while this sample code took at least 2 or more
seconds
to return just a number.

==================== begin ==================
private int FindEmailsWithSameSubject(string EmailSubject)
{
int MessageFound = 0;

// The following two variables are declared
// private Outlook.Application App;
// private Outlook.Explorer CurrentExplorer;
// and defined globally in the main class:
// App = new Outlook.Application();
// CurrentExplorer = App.ActiveExplorer();

Outlook.MAPIFolder SelectedFolder = CurrentExplorer.CurrentFolder;

foreach (Object SelectedObject in SelectedFolder.Items)
{
// Only work on messages which are email items.
if (SelectedObject is Outlook.MailItem)
{
Outlook.MailItem MailItem = SelectedObject as Outlook.MailItem;
if (EmailSubject == MailItem.Subject)
{
++MessageFound;
}
}
}
return MessageFound;
}
==================== end ==================

This code is executed on an inbox with just 190 messages. Questions:

1) Why this code take a longer time to run?
2) Is there a better way to find all related messages?

Thanks a lot.
Robin


Ads