[英]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.