Laden...

Outlook 2007 - Kalenderobjekte auslesen

Erstellt von Azrael Masters vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.819 Views
A
Azrael Masters Themenstarter:in
38 Beiträge seit 2005
vor 14 Jahren
Outlook 2007 - Kalenderobjekte auslesen

Hallo Zusammen,

ich versuche gerade in eine Windows Form mit einem Gridview die Outlook Kalenderobjekte einzulesen.
Dies mache ich analog einer Methode mit der ich erfolgreich die Kontakte ausgelesen habe.

Jedoch bekomme ich bei den MeetingItems Probleme:
Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Microsoft.Office.Interop.Outlook.MeetingItem" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{00063062-0000-0000-C000-000000000046}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE)).

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Outlook;

namespace Outlook_TEST
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            // Outlook Kontext herstellen
            var outlookApplication = new ApplicationClass();
            NameSpace mapiNamespace = outlookApplication.GetNamespace("MAPI");
            #region Kalender
            MAPIFolder meetings = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
            DataTable dtg = new DataTable(); 
            DataColumn dc;
            dc = new DataColumn("Name", System.Type.GetType("System.String"));
            dtg.Columns.Add(dc);
            for (int i = 1; i < meetings.Items.Count + 1; i++)
            {
                var meetingItem = (MeetingItem)meetings.Items[i]; // DER FEHLER
                DataRow dr = dtg.NewRow();
                dr["Name"] = meetingItem.Subject;
                dtg.Rows.Add(dr);
            }
            #endregion

            #region Kontakte
            //MAPIFolder contacts = mapiNamespace.GetDefaultFolder(OlDefaultFolders.olFolderContacts);
            //DataTable dtg = new DataTable(); 
            //DataColumn dc; 
            //// Spalten hinzufügen
            //dc = new DataColumn("Name",System.Type.GetType("System.String")); 
            //dtg.Columns.Add(dc); 
            //dc = new DataColumn("Firma",System.Type.GetType("System.String")); 
            //dtg.Columns.Add(dc); 
            //dc = new DataColumn("Emailadresse",System.Type.GetType("System.String")); 
            //dtg.Columns.Add(dc);
            //dc = new DataColumn("Mobil", System.Type.GetType("System.String"));
            //dtg.Columns.Add(dc); 
            //// Reihen füllen
            //for (int i = 1; i < contacts.Items.Count + 1; i++)
            //{
            //    var contact = (ContactItem)contacts.Items[i];
            //    DataRow dr = dtg.NewRow();
            //    dr["Name"] = contact.FullName;
            //    dr["Firma"] = contact.CompanyName;
            //    dr["Emailadresse"] = contact.Email1Address;
            //    dr["Mobil"] = contact.MobileTelephoneNumber;
            //    dtg.Rows.Add(dr); 
            //}
            #endregion

            // Gridview befüllen
            dataGridView1.DataSource=dtg; 
            dataGridView1.Refresh(); 
        }
    }
}

Habt ihr eine Idee warum dass nicht funktioniert oder wie man es besser machen kann?

Ich möchte erstmal die verschiedenen Ansätze zum auslesen der verschiedenen Outlook Objekte testen und später eine MCML Form im Windows Media Center erstellen um dort die Ergebnisse der Winform/Outlook-Tests darzustellen.

Vielen Dank schonmal für eure Unterstützung.

Viele Grüße

Azrael Masters

[**(¯`·._.·[The Higher Community]·._.·´¯)**](http://www.nexus-der-macht.de/)
A
Azrael Masters Themenstarter:in
38 Beiträge seit 2005
vor 14 Jahren

Ok konnte mir doch selber helfen, anscheinend habe ich die falschen Klassen verwendet.
Es ist nicht "MeetingItem" sondern "AppointmentItem".

I'm so sorry^^

[**(¯`·._.·[The Higher Community]·._.·´¯)**](http://www.nexus-der-macht.de/)