1

我正在尝试编写一个功能与 Microsoft Outlook 的插入签名功能非常相似的 Outlook 加载项。我发现讨论与此类似的东西的最好和最详细的线程在这里找到。

我的代码的问题是内存流,尽管它是一个可以从 word 打开的 rtf 文件,但它返回 null。

doc = ms as Microsoft.Office.Interop.Word.Document ;

我正试图让它工作

    if (selObject is Outlook.AppointmentItem)
    {
        Outlook.AppointmentItem obj = (Outlook.AppointmentItem)selObject;
        Microsoft.Office.Interop.Word.Document doc = obj.GetInspector.WordEditor as Microsoft.Office.Interop.Word.Document;
        if (doc != null)
        {
            String path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                "Outlook", "Intercall.rtf");

            if (File.Exists(path))
            {
                MemoryStream ms = new MemoryStream();
                Stream fs = new FileStream(path,FileMode.Open);
                fs.CopyTo(ms);
                doc = ms as Microsoft.Office.Interop.Word.Document ;
                fs.Close();
            }
        }
    }
4

1 回答 1

1

您是否期望从 MemoryStream 转换为 Microsoft.Office.Interop.Word.Document 会成功?MemoryStream 对 Word 或任何其他 COM 对象一无所知。您需要明确创建 Word.Application 对象的实例,使用它来加载 RTF。您还可以使用 Outlook 对象模型中的 Inspector.WordEditor 来获取 Word.Document 对象的实例。

于 2013-01-30T17:12:27.327 回答