簡體   English   中英

如何確定Outlook中是否已發送會議邀請?

[英]How can you tell if invitations have been sent for a meeting in Outlook?

我正在使用C#為Outlook編寫COM加載項。 如果保存了會議且未發送邀請,Outlook會在表單頂部顯示一條消息,指出尚未發送邀請。 如何以編程方式確定尚未發送會議邀請?

我嘗試檢查每個Recipient並檢查MeetingResponseStatus 我希望它可以OlResponseNone如果邀請還沒有被發送,但OlResponseNotResponded如果請帖已發出,但沒有答復已經收到。 不過,我總是得到OlResponseNone的,要么尚未發出的邀請,或者有,但還沒有reponded收件人。 因此,我無法區分一次會議,其中沒有發送邀請,而沒有發送邀請,但是沒有人響應。

我已經在Outlook 2007中完成了大部分測試,但是我認為2003和2010年也是如此,我需要所有這些支持。

我在這篇文章中找到了部分答案。 我需要閱讀DASL屬性“ http://schemas.microsoft.com/mapi/id/{00020329-0000-0000-C000-000000000046}/80BE0102”。 在Outlook 2007和leter中,可以使用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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM