1

Microsoft Outlook の署名挿入機能と非常によく似た機能を持つ Outlook アドインを作成しようとしています。これに似たことを議論している私が見つけた最良かつ最も詳細なスレッドは、ここにあります。

私のコードの問題は、単語から開くことができる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 オブジェクトについて何も知りません。RTF をロードするために使用する Word.Application オブジェクトのインスタンスを明示的に作成する必要があります。Outlook オブジェクト モデルで Inspector.WordEditor を使用して、Word.Document オブジェクトのインスタンスを取得することもできます。

于 2013-01-30T17:12:27.327 に答える