C# 使用C以编程方式将OLE对象插入Outlook电子邮件

C# 使用C以编程方式将OLE对象插入Outlook电子邮件,c#,outlook,C#,Outlook,我正在尝试将Excel文件嵌入Outlook电子邮件中。我正在将附件类型设置为OlAttachmentType.olOLE,但是当创建消息时,Excel文档作为附件到达 下面是我的代码。这看起来很简单,但并不像预期的那样有效 var application = new Microsoft.Office.Interop.Outlook.Application(); var message = (MailItem)application.CreateItem(OlIt

我正在尝试将Excel文件嵌入Outlook电子邮件中。我正在将附件类型设置为OlAttachmentType.olOLE,但是当创建消息时,Excel文档作为附件到达

下面是我的代码。这看起来很简单,但并不像预期的那样有效

        var application = new Microsoft.Office.Interop.Outlook.Application();
        var message = (MailItem)application.CreateItem(OlItemType.olMailItem);
        var path = @"C:\Excel\Workbook.xlsx";
        var missing = System.Type.Missing;

        message.Attachments.Add(path, OlAttachmentType.olOLE, 1, missing);
        message.SaveAs(@"C:\Excel\Workbook.msg", OlSaveAsType.olMSG);

        application.Quit();

Outlook对象模型不允许您插入嵌入的OLE对象-您最好访问现有对象。即使在扩展MAPI级别上,插入OLE附件也是非常重要的—您需要为附件创建一个特殊格式的IStorage,然后以只有稍后处理它的主机才能理解的格式填充其数据。您还需要为位图提供预览,并在RTF正文中插入适当的占位符