Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Outlook and VBA (http://www.outlookbanter.com/outlook-vba/)
-   -   Type of object for AdvancedSearch (http://www.outlookbanter.com/outlook-vba/14821-type-object-advancedsearch.html)

Renjith May 16th 06 07:45 AM

Type of object for AdvancedSearch
 
Hello
When I do advanced search using the AdvancedSearch method, I get the results
in the AdvancedSearch complete method. I am using C# to do this. But I have
problem here. I am not able to get the type of the item that was returned in
the result. For example it can be a MailItem or ContactItem. If I cast it to
a mail item it will result in an exception. How can I find the type of the
item before casting it?
The code is given below.
private void outLookApp_AdvancedSearchComplete(Search searchObj)
{
applicationObject.AdvancedSearchComplete -= new
ApplicationEvents_11_AdvancedSearchCompleteEventHa ndler (outLookApp_AdvancedSearchComplete);

string strZipFile = Path.GetTempFileName() + ".zip";
string[] strTempFiles = new string[searchObj.Results.Count];
for( int nCount = 0; nCount searchObj.Results.Count; nCount++)
{
MailItem item = (MailItem)searchObj.Results[nCount+1]; //This will throw
an exception if the item is not a MailItem
string strMailPath = Path.GetTempFileName() + ".msg";
item.SaveAs(strMailPath, OlSaveAsType.olMSG);
Helper.ZipFile(strMailPath,strZipFile);
strTempFiles[nCount] = strMailPath;
}
}

Sue Mosher [MVP-Outlook] May 16th 06 02:07 PM

Type of object for AdvancedSearch
 
I'm not a C# programmer, but my understanding is that the right approach in C# is to this kind of statement witih the Is operator to test for each object class

if (Item is Ol.MailItem)

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx

"Renjith" wrote in message ...
Hello
When I do advanced search using the AdvancedSearch method, I get the results
in the AdvancedSearch complete method. I am using C# to do this. But I have
problem here. I am not able to get the type of the item that was returned in
the result. For example it can be a MailItem or ContactItem. If I cast it to
a mail item it will result in an exception. How can I find the type of the
item before casting it?
The code is given below.
private void outLookApp_AdvancedSearchComplete(Search searchObj)
{
applicationObject.AdvancedSearchComplete -= new
ApplicationEvents_11_AdvancedSearchCompleteEventHa ndler (outLookApp_AdvancedSearchComplete);

string strZipFile = Path.GetTempFileName() + ".zip";
string[] strTempFiles = new string[searchObj.Results.Count];
for( int nCount = 0; nCount searchObj.Results.Count; nCount++)
{
MailItem item = (MailItem)searchObj.Results[nCount+1]; //This will throw
an exception if the item is not a MailItem
string strMailPath = Path.GetTempFileName() + ".msg";
item.SaveAs(strMailPath, OlSaveAsType.olMSG);
Helper.ZipFile(strMailPath,strZipFile);
strTempFiles[nCount] = strMailPath;
}
}


Ken Slovak - [MVP - Outlook] May 16th 06 03:28 PM

Type of object for AdvancedSearch
 
Or a Try...Catch block where if one item type cast fails another can be
tried.

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


"Sue Mosher [MVP-Outlook]" wrote in message
...
I'm not a C# programmer, but my understanding is that the right approach in
C# is to this kind of statement witih the Is operator to test for each
object class

if (Item is Ol.MailItem)

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx

"Renjith" wrote in message
...
Hello
When I do advanced search using the AdvancedSearch method, I get the
results
in the AdvancedSearch complete method. I am using C# to do this. But I
have
problem here. I am not able to get the type of the item that was returned
in
the result. For example it can be a MailItem or ContactItem. If I cast it
to
a mail item it will result in an exception. How can I find the type of the
item before casting it?
The code is given below.
private void outLookApp_AdvancedSearchComplete(Search searchObj)
{
applicationObject.AdvancedSearchComplete -= new
ApplicationEvents_11_AdvancedSearchCompleteEventHa ndler
(outLookApp_AdvancedSearchComplete);

string strZipFile = Path.GetTempFileName() + ".zip";
string[] strTempFiles = new string[searchObj.Results.Count];
for( int nCount = 0; nCount searchObj.Results.Count; nCount++)
{
MailItem item = (MailItem)searchObj.Results[nCount+1]; //This will throw
an exception if the item is not a MailItem
string strMailPath = Path.GetTempFileName() + ".msg";
item.SaveAs(strMailPath, OlSaveAsType.olMSG);
Helper.ZipFile(strMailPath,strZipFile);
strTempFiles[nCount] = strMailPath;
}
}



Renjith May 17th 06 01:19 PM

Type of object for AdvancedSearch
 
thankyou for the hint, actually I have now the try catch blocks for each
type, but the code becomes a bit lengthy with 16 such blocks :)

"Ken Slovak - [MVP - Outlook]" wrote:

Or a Try...Catch block where if one item type cast fails another can be
tried.

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


"Sue Mosher [MVP-Outlook]" wrote in message
...
I'm not a C# programmer, but my understanding is that the right approach in
C# is to this kind of statement witih the Is operator to test for each
object class

if (Item is Ol.MailItem)

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx

"Renjith" wrote in message
...
Hello
When I do advanced search using the AdvancedSearch method, I get the
results
in the AdvancedSearch complete method. I am using C# to do this. But I
have
problem here. I am not able to get the type of the item that was returned
in
the result. For example it can be a MailItem or ContactItem. If I cast it
to
a mail item it will result in an exception. How can I find the type of the
item before casting it?
The code is given below.
private void outLookApp_AdvancedSearchComplete(Search searchObj)
{
applicationObject.AdvancedSearchComplete -= new
ApplicationEvents_11_AdvancedSearchCompleteEventHa ndler
(outLookApp_AdvancedSearchComplete);

string strZipFile = Path.GetTempFileName() + ".zip";
string[] strTempFiles = new string[searchObj.Results.Count];
for( int nCount = 0; nCount searchObj.Results.Count; nCount++)
{
MailItem item = (MailItem)searchObj.Results[nCount+1]; //This will throw
an exception if the item is not a MailItem
string strMailPath = Path.GetTempFileName() + ".msg";
item.SaveAs(strMailPath, OlSaveAsType.olMSG);
Helper.ZipFile(strMailPath,strZipFile);
strTempFiles[nCount] = strMailPath;
}
}




Ken Slovak - [MVP - Outlook] May 17th 06 03:13 PM

Type of object for AdvancedSearch
 
It probably could be cut down by casting to a an object of indeterminate
type and testing the .Class property of the object and then casting it to
the correct type, all within a try...catch to handle any errors.

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


"Renjith" wrote in message
...
thankyou for the hint, actually I have now the try catch blocks for each
type, but the code becomes a bit lengthy with 16 such blocks :)




All times are GMT +1. The time now is 09:26 AM.

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