Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Outlook - Using Forms (http://www.outlookbanter.com/outlook-using-forms/)
-   -   What is the recommendet way to read/write a user defined Field (Named Property) in the MailItem Object using VSTO? (http://www.outlookbanter.com/outlook-using-forms/89321-what-recommendet-way-read-write.html)

Michael Schmitz April 21st 09 08:48 PM

What is the recommendet way to read/write a user defined Field (Named Property) in the MailItem Object using VSTO?
 
Hello NG,

I am very new to Outlook2007 and VSTO (Visual Studio 2008)

in a mail i have a user defined Named Property "UID"

the DASL is
http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/UID
(I used outlookspy to get this)

At the moment I'am looping through all ItemProperties and search for
a Property with the Name "UID" to read/write to that property.

Is their a better way to directly access such a user defined property?

maybe something like: string foo = (string) mail.Properties["UID"]; ?
I've read something about the Outlook.PropertyAccessor, but I'am not
aure if this is the normal way to read/write a user defiened field.


below is a snippet of a csharp code I'am using at the moment.
CodeSnippet:
############################################
private void On_btnSave_Click(object sender, EventArgs e)
{
Outlook.MailItem mail;
Outlook.ItemProperties properties;

try
{

if (this.OutlookItem is Outlook.MailItem)
{
mail = (Outlook.MailItem)this.OutlookItem;
properties = mail.ItemProperties;

// aender den Betreff wie gewuenscht ab
mail.Subject = this._txt1.Text;

// suche das UID Propertie!
foreach (Outlook.ItemProperty xProperty in properties)
{
if (xProperty.Name == "UID")
{
xProperty.Value = this._txt2.Text;

break;
}
}
mail.Save();
}
}
finally
{
mail = null;
properties = null;
}
}



Sue Mosher [MVP][_3_] April 21st 09 09:05 PM

What is the recommendet way to read/write a user defined Field (Named Property) in the MailItem Object using VSTO?
 
You should be able to use ItemProperties.Item("UID") or
UserProperties.Item("UID").

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"Michael Schmitz" wrote in message
...
Hello NG,

I am very new to Outlook2007 and VSTO (Visual Studio 2008)

in a mail i have a user defined Named Property "UID"

the DASL is
http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/UID
(I used outlookspy to get this)

At the moment I'am looping through all ItemProperties and search for
a Property with the Name "UID" to read/write to that property.

Is their a better way to directly access such a user defined property?




Michael Schmitz April 21st 09 10:09 PM

What is the recommendet way to read/write a user defined Field (Named Property) in the MailItem Object using VSTO?
 

"Sue Mosher [MVP]" schrieb im Newsbeitrag
...
You should be able to use ItemProperties.Item("UID") or
UserProperties.Item("UID").


Thanks Sue that was the right hint to point me to a direction.
My code looks now like this, I guess the above only works for
VB.NET?

Regards

Michael (I got your Book allready ;))!

codesnipet:
###########################################

mail = (Outlook.MailItem)this.OutlookItem;
this._txt1.Text = "Read:" + mail.Subject;
try
{
this._txt2.Text = mail.ItemProperties["UID"].Value.ToString();
}
catch
{
this._txt2.Text = "???";
}




Sue Mosher [MVP][_3_] April 22nd 09 12:49 AM

What is the recommendet way to read/write a user defined Field (Named Property) in the MailItem Object using VSTO?
 
I have no idea. I write code only for VB languages. Your best reference is
the PIA documentation on MSDN; perhaps the example at
http://msdn.microsoft.com/en-us/library/bb608929.aspx will be helpful.

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"Michael Schmitz" wrote in message
...

"Sue Mosher [MVP]" schrieb im Newsbeitrag
...
You should be able to use ItemProperties.Item("UID") or
UserProperties.Item("UID").


Thanks Sue that was the right hint to point me to a direction.
My code looks now like this, I guess the above only works for
VB.NET?

Regards

Michael (I got your Book allready ;))!

codesnipet:
###########################################

mail = (Outlook.MailItem)this.OutlookItem;
this._txt1.Text = "Read:" + mail.Subject;
try
{
this._txt2.Text = mail.ItemProperties["UID"].Value.ToString();
}
catch
{
this._txt2.Text = "???";
}






Ken Slovak - [MVP - Outlook] April 22nd 09 02:17 PM

What is the recommendet way to read/write a user defined Field (Named Property) in the MailItem Object using VSTO?
 
This C# code:

mail.ItemProperties["UID"] or mail.UserProperties["UID"]

is the equivalent of the VB type code:

mail.UserProperties.Item("UID") or mail.ItemProperties.Item("UID")

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


"Sue Mosher [MVP]" wrote in message
...
I have no idea. I write code only for VB languages. Your best reference is
the PIA documentation on MSDN; perhaps the example at
http://msdn.microsoft.com/en-us/library/bb608929.aspx will be helpful.

--
Sue Mosher, Outlook MVP
Author of Microsoft Outlook 2007 Programming:
Jumpstart for Power Users and Administrators
http://www.outlookcode.com/article.aspx?id=54


"Michael Schmitz" wrote in message
...

"Sue Mosher [MVP]" schrieb im Newsbeitrag
...
You should be able to use ItemProperties.Item("UID") or
UserProperties.Item("UID").


Thanks Sue that was the right hint to point me to a direction.
My code looks now like this, I guess the above only works for
VB.NET?

Regards

Michael (I got your Book allready ;))!

codesnipet:
###########################################

mail = (Outlook.MailItem)this.OutlookItem;
this._txt1.Text = "Read:" + mail.Subject;
try
{
this._txt2.Text = mail.ItemProperties["UID"].Value.ToString();
}
catch
{
this._txt2.Text = "???";
}







Michael Schmitz April 22nd 09 07:27 PM

What is the recommendet way to read/write a user defined Field (Named Property) in the MailItem Object using VSTO?
 

"Ken Slovak - [MVP - Outlook]" schrieb im Newsbeitrag
...
This C# code:

mail.ItemProperties["UID"] or mail.UserProperties["UID"]

is the equivalent of the VB type code:

mail.UserProperties.Item("UID") or mail.ItemProperties.Item("UID")


Thanks, thats what i thought ;)





All times are GMT +1. The time now is 03:38 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