Maitems in List(of T)
Hallo,
Ich würde gerne E-Mails, die in ein OL-Exchange-Postfach eingehen, in einer List(of T) ablegen, um sie dann später daraus zur Weiterbearbeitung zu entnehmen.
Die Variable "lstMailItemsReceivedLive" ist definiert, die Überwachung des Postfachs funktioniert:
Alt 1:
Alt 2:
Ich erhalte folgende Fehlermeldungen:
Alt 1:
"Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Microsoft.Office.Interop.Outlook.Items" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{00063041-0000-0000-C000-000000000046}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE))."
Alt 2:
"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Kann mir jemand sagen, was ich wo wie zu ändern habe?
Neugierige Grüße,
Andreas
Ich würde gerne E-Mails, die in ein OL-Exchange-Postfach eingehen, in einer List(of T) ablegen, um sie dann später daraus zur Weiterbearbeitung zu entnehmen.
Die Variable "lstMailItemsReceivedLive" ist definiert, die Überwachung des Postfachs funktioniert:
Alt 1:
Public lstMailItemsReceivedLive As List(Of Microsoft.Office.Interop.Outlook.Items)
Alt 2:
Public lstMailItemsReceivedLive As List(Of Object)
Public Sub olInboxItems_ItemAdd(ByVal Item As Object) Handles olInboxItems.ItemAdd
lstMailItemsReceivedLive.Add(Item)
End Sub
Ich erhalte folgende Fehlermeldungen:
Alt 1:
"Das COM-Objekt des Typs "System.__ComObject" kann nicht in den Schnittstellentyp "Microsoft.Office.Interop.Outlook.Items" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf an die COM-Komponente für die Schnittstelle mit der IID "{00063041-0000-0000-C000-000000000046}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte: Schnittstelle nicht unterstützt (Ausnahme von HRESULT: 0x80004002 (E_NOINTERFACE))."
Alt 2:
"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Kann mir jemand sagen, was ich wo wie zu ändern habe?
Neugierige Grüße,
Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 223224
Url: https://administrator.de/forum/maitems-in-listof-t-223224.html
Ausgedruckt am: 10.04.2025 um 01:04 Uhr
10 Kommentare
Neuester Kommentar
Hallo Andreas,
das sollte problemlos gehen...
du solltest aber noch zusätzlich prüfen ob das übergebene Objekt im ItemAdd-Event tatsächlich ein MailItem ist indem du die Klasse des Objekts überpüfst.
Wenn das obige bei dir nicht geht, dann hast du anstatt des .NET Assemblies von Outlook, die COM-Variante als Referenz eingebunden.
Grüße Uwe
das sollte problemlos gehen...
Public lstMailItemsReceivedLive As new List(Of Microsoft.Office.Interop.Outlook.MailItem)
Public Sub olInboxItems_ItemAdd(ByVal Item As Object) Handles olInboxItems.ItemAdd
If Item.Class = Microsoft.Office.Interop.Outlook.OlObjectClass.olMail Then
lstMailItemsReceivedLive.Add(Item)
End if
End Sub
Grüße Uwe
also bei mir geht's so wie ich es oben beschrieben habe auch mit der COM-Variante (getestet mit Visual Studio 2010 Professional).
Du hast die Listen nicht mit
"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Und auch die Objekttypen der Liste stimmen nicht.
Du hast die Listen nicht mit
New
erzeugt, deshalb bekommst du den Fehler :"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."
Und auch die Objekttypen der Liste stimmen nicht.
lese doch mal bitte meinen ersten Post richtig:
Das Objekt in der Liste ist immer als Objekt-Typ in der Einzahl zu sehen nicht in der Mehrzahl. Du übergibst ja nicht eine ganze Liste an Mails an die Liste, sondern nur eine Mail auf einmal.
Public lstMailItemsReceivedLive As new List(Of Microsoft.Office.Interop.Outlook.MailItem)