Ich habe diesen Code geschrieben, um die ungelesenen Elemente in meinem Outlook-Postfach anzuzeigen, und hier ist der Code:
Microsoft.Office.Interop.Outlook.Application app;
Microsoft.Office.Interop.Outlook.Items items;
Microsoft.Office.Interop.Outlook.NameSpace ns;
Microsoft.Office.Interop.Outlook.MAPIFolder inbox;
Microsoft.Office.Interop.Outlook.Application application = new Microsoft.Office.Interop.Outlook.Application();
app = application;
ns = application.Session;
inbox = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
items = inbox.Items;
foreach (Microsoft.Office.Interop.Outlook.MailItem mail in items)
{
if (mail.UnRead == true)
{
MessageBox.Show(mail.Subject.ToString());
}
}
aber in der foreach-Schleife erhalte ich diesen Fehler:
"COM-Objekt des Typs 'System.__ComObject' konnte nicht auf den Schnittstellentyp 'Microsoft.Office.Interop.Outlook.MailItem' übertragen werden. Dieser Vorgang ist fehlgeschlagen, da der QueryInterface-Aufruf für die COM-Komponente für die Schnittstelle mit IID '{00063034-0000-0000-C000-000000000046}' aufgrund des folgenden Fehlers fehlgeschlagen ist: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE))."
Können Sie mir bitte helfen, wie ich diesen Fehler beheben kann?
0 Stimmen
@Bolu Nein, das ist, was ich in meiner c#-Windows-Anwendung schreibe
1 Stimmen
MAPIFolder ist veraltet, verwenden Sie stattdessen Folder.
0 Stimmen
Konnten Sie das Problem lösen?
0 Stimmen
Dieser Fehler ist mit der Änderung der Office-Version vereinbar. (es schafft eine ganze Familie von Problemen) Was getan werden muss, ist, einige Registrierungsdateien wie hier beschrieben zu bearbeiten: stackoverflow.com/questions/12957595/