Laden...

Outlook TaskItem Fehler beim Hinzufügen zu MAPIFolder

Erstellt von dynatech vor 11 Jahren Letzter Beitrag vor 11 Jahren 2.227 Views
D
dynatech Themenstarter:in
17 Beiträge seit 2005
vor 11 Jahren
Outlook TaskItem Fehler beim Hinzufügen zu MAPIFolder

Ich habe eine kleine Funktion zum Testen geschrieben, die alle Aufgaben in einem bestimmten Ordner unter Outlook 2007 anzeigen soll und anschließend noch eine neue Aufgabe einfügen soll.
Das Auflisten funktioniert auch sehr gut aber beim Erstellen einer neuen Aufgabe bekomme ich immer eine Fehlermeldung.
Hier der Code dieser Funktion:



using Microsoft.Office.Interop.Outlook;

private void olTest()
        {
          
            MAPIFolder mp = getMapiFolderByName("Public Folders/Alle Öffentlichen Ordner/E4ATasks");
            if (mp == null) txtBox.Text += "no folder";
            else
            {
                try
                {
                    foreach (TaskItem itm in mp.Items)
                    {
                        txtBox.Text += itm.Subject + ": " + itm.Body + Environment.NewLine;
                    }

                    _Application olApp = mp.Application;
                    TaskItem objTask = (TaskItem)olApp.CreateItem(OlItemType.olTaskItem);
                    objTask.Subject = "Aufgabe XYZ";
                    
                    // Hier kommt der Fehler...
                    mp.Items.Add(objTask);

                }

                catch (System.Exception excp)
                {
                    txtBox.Text = "Ausnahme: " + excp.ToString() + Environment.NewLine;
                }
            }
        }

Die Ausnahme lautet:

System.ArgumentException: Der Vorgang konnte nicht abgeschlossen werden. Mindestens ein Parameterwert ist ungültig.
bei Microsoft.Office.Interop.Outlook.ItemsClass.Add(Object Type)

Ich habe die Microsoft Outlook 12.0 Object Library verwendet.
Entwicklungsumgebung MS Visual C# 2008 (express)

M
53 Beiträge seit 2008
vor 11 Jahren

Moin dynatech,

die Fehlermeldung ist doch gar nicht so schlecht. Versuch mal deine Aufgabe als object und nicht als TaskItem zu übergeben.

Gruß
muhtanten

D
dynatech Themenstarter:in
17 Beiträge seit 2005
vor 11 Jahren

Danke für die schnelle Antwort, leider klappt es immer noch nicht.

Ich habe versucht ein Objekt vom Typ Object zu übergeben aber leider ohne Erfolg.


Object oo = (Object) objTask;
mp.Items.Add(oo);

Oder durfte ich hier keinen Cast verwenden?

D
dynatech Themenstarter:in
17 Beiträge seit 2005
vor 11 Jahren

Ich habe eine Antwort gefunden. Für alle die es interessiert, hier ist sie:


private void olTest()
        {
            MAPIFolder mp = getMapiFolderByName("Public Folders/Alle Öffentlichen Ordner/E4ATasks");
            if (mp == null) txtBox.Text += "no folder";
            else
            {
                try
                {
                    foreach (TaskItem itm in mp.Items)
                    {
                        txtBox.Text += itm.Subject + ": " + itm.Body + Environment.NewLine;
                    }

                    _Application olApp = mp.Application;
                    TaskItem objTask = olApp.CreateItem(OlItemType.olTaskItem) as TaskItem;
                    objTask.Subject = "Aufgabe C#";
                    objTask.Save();
                    objTask.Move(mp);
              }

                catch (System.Exception excp)
                {
                    txtBox.Text = "Ausnahme: " + excp.ToString() + Environment.NewLine;
                }
            }
        }