2

C# を使用して Outlook 用の COM アドインを作成しています。会議が保存され、招待状が送信されなかった場合、Outlook は招待状が送信されていないことを示すメッセージをフォームの上部に表示します。会議への招待状が送信されていないことをプログラムで確認するにはどうすればよいですか?

それぞれ調べてRecipient確認してみましたMeetingResponseStatusOlResponseNone招待状が送信されていないがOlResponseNotResponded、招待状は送信されているが応答が受信されていない場合は、そうなると思います。OlResponseNoneただし、招待状が送信されていないか、まだ返信していない受信者を常に取得します。したがって、招待状が送信されたが誰も応答していない会議と、招待状が送信されていない会議を区別することはできません。

私はほとんどのテストを Outlook 2007 で行いましたが、2003 と 2010 についても同じことが言えると思います。これらすべてをサポートする必要があります。

4

1 に答える 1

1

この投稿で部分的な回答を見つけました。DASL プロパティ "http://schemas.microsoft.com/mapi/id/{00020329-0000-0000-C000-000000000046}/80BE0102" を読み取る必要があります。Outlook 2007 およびレターでは、次のように PropertyAccessor を使用してこれを行うことができます。

appointment.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/id/{00020329-0000-0000-C000-000000000046}/80BE0102");

ただし、Outlook 2003 もサポートする必要があり、Outlook 2007 で PropertyAccessor プロパティが追加されました。したがって、次のコードでRedemption の RDOMail オブジェクトを使用できました(エラー処理は省略)。

var _session = New RDOSession();
_session.Logon();
var _message = _session.GetMessageFromID(appointment.EntryID, ((Outlook.MAPIFolder)appointment.Parent).StoreID);
return (bool)_message.Fields["http://schemas.microsoft.com/mapi/id/{00062002-0000-0000-C000-000000000046}/8229000B"];
Marshal.ReleaseComObject(_message);
_session.Logoff();
Marshal.ReleaseComObject(_session);
于 2012-08-27T19:31:42.953 に答える