Pomocou programu Outlook 2010 sa táto chyba vyskytla pri ladení
Nepodarilo sa odovzdať objekt typu COM "Microsoft.Office.Interop.Outlook.ApplicationClass "do typu rozhrania "Microsoft.Office.Interop.Outlook._Application". Táto operácia zlyhala pretože volanie QueryInterface na komponente 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
}
Tento kód fungoval dokonale v programe Outlook 2013. Stále však dochádza k zrúteniu pri používaní programu Outlook 2010.
Zrušil som Interop.Outlook z 15 na 14
odpovede:
1 pre odpoveď č. 1Myslím, že to musíte nahradiť:
Outlook._MailItem oMailItem = (Outlook._MailItem)oApp.CreateItem(Outlook.OlItemType.olMailItem);
s tým:
Outlook.MailItem oMailItem = oApp.CreateItem(Outlook.OlItemType.olMailItem);
Ak je tento kód v doplnku, nebudete musieť vytvoriť novú inštanciu aplikácie Outlook.Application - použite objekt odovzdaný udalosti OnConnection.