/ / Wyjątek Outlooka, który nie ma sensu - c #, Outlook, Interop, Office-Interop

Wyjątek Outlooka, który nie ma sensu - c #, Outlook, Interop, Office-Interop

Korzystając z programu Outlook 2010, pojawia się ten błąd podczas debugowania

Nie można rzutować obiektu COM typu "Microsoft.Office.Interop.Outlook.ApplicationClass "do typu interfejsu "Microsoft.Office.Interop.Outlook._Application". Ta operacja się nie udała ponieważ wywołanie QueryInterface na składniku COM

    public void sendEMailThroughOUTLOOK()
{
try
{
String address = "john.doe@contoso.com";

Outlook.Application oApp = new Outlook.Application();
Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem); // CRASHING HERE
oMailItem.To = address;

oMailItem.Subject = "Status Update on " + DateTime.Now.ToString("M/d/yyyy");

oMailItem.BodyFormat = Outlook.OlBodyFormat.olFormatPlain;

oMailItem.Body = createEmailBody();
// body, bcc etc...
oMailItem.Display(true);
}//end of try block
catch (Exception ex)
{
Console.WriteLine(ex.InnerException.ToString());
}//end of catch
}

Ten kod działał PERFECTLY na Outlook 2013. Jednak nadal zawiesza się podczas korzystania z programu Outlook 2010.

Zredagowałem Interop.Outlook z 15 na 14

Odpowiedzi:

1 dla odpowiedzi № 1

Myślę, że musisz to zastąpić:

Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);

z tym:

Outlook.MailItem oMailItem = oApp.CreateItem(Outlook.OlItemType.olMailItem);

Ponadto, jeśli ten kod znajduje się w dodatku, nie musisz tworzyć nowej instancji programu Outlook.Application - użyj obiektu przekazanego do zdarzenia OnConnection.