Mario  Meir-HuberOffice Developer Serie: Outlook 2 - Was kann eigentlich das ContactItem Objekt ?


Ein interessantes Objekt in Outlook ist das ContactItem Objekt. Dieses wird erstellt wenn man auf Kontakte zugreift. Dieses ContactItem speichert Informationen über Kontakte. Erstellt wird es aus einem MAPIFolder. Bevor wir uns das Objekt genauer ansehen werden, werfen wir mal einen Blick auf das Erstellen eines ContactItem Objekts. Dieses wird aus dem Explorer von Outlook erstellt. Hierbei greift man auf die Session zu und ruft den Standard-Ordner ab. Als Wert gibt man "olFolderContacts" an.

Outlook.MAPIFolder contact = Application.ActiveExplorer().Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderContacts);
Outlook.Items itm = contact.Items;

Danach iterieren wir über sämtliche ContactItems Objekte. Hierbei wird auch auf "NULL" überprüft, um keine NullReferenceExceptions zu erhalten.

Outlook.ContactItem mi;

foreach (object o in itm)
{
    mi = o as Outlook.ContactItem;

    if (null != mi)
    {

Innerhalb dieser Abfrage werden wir uns nun einige Möglichkeiten des ContactItem-Objekts ansehen.

Jeder Kontakt kann einem gewissen Account zugeordnet werden. Dies wird über "Account" ausgegeben.

Debug.Write("Account: ");
Debug.WriteLine(mi.Account);
Debug.WriteLine("");

Einen Kontakt kann man auch Anlagen - ebenso wie E-Mails - hinzufügen. Ferner können Kontakte über Kategorien verfügen.

Debug.Write("Attachment: ");
Debug.Write(mi.Attachments.Count);
Debug.WriteLine("");

Debug.Write("Kategorien: ");
Debug.Write(mi.Categories);
Debug.WriteLine("");

 

Damit man Kontakte eindeutig identifizieren kann, gibt es eine EntryID, welche einen eindeutigen Identifier darstellt.

Debug.Write("EntryID: ");
Debug.Write(mi.EntryID);
Debug.WriteLine("");

Kontakte können auch eine Wichtigkeit enthalten.

Debug.Write("Wichtigkeit: ");
Debug.Write(mi.Importance);
Debug.WriteLine("");

Will man neue Kategorien hinzufügen, so kann man dies über ItemProperties erledigen. Hierbei gibt man den Namen an und den Typ (z.B. Text: olText). Werte kommen dann in "Value" rein.

mi.ItemProperties.Add("MyName", Microsoft.Office.Interop.Outlook.OlUserPropertyType.olText,
    System.Type.Missing, System.Type.Missing);

Debug.Write("Properties: ");
Debug.Write(mi.ItemProperties[mi.ItemProperties.Count- 1].Value);
Debug.WriteLine(mi.ItemProperties[mi.ItemProperties.Count - 1].Name);
Debug.WriteLine("");

Man kann auch benutzerdefinierte Felder verwenden - diese sind von Outlook vorgegeben und gehen von User1 bis User4.

mi.User1 = "My Tag";
Debug.WriteLine(mi.User1);

Debug.Write("Name: ");
Debug.Write(mi.FirstName);
Debug.WriteLine("");

Das ganze würde dann auf der Konsole etwa folgendermaßen aussehen:

image



Kategorien: .Net;C#;Office;VSTO; 05.06.2008 00:34:36


 


Neuen Kommentar einfügen:

  Titel:     
  Name:  
  E-Mail:
  Kommentar:

 
 
 


Kommentare




© Copyright 2008 ppedv AG