【问题标题】:List all occurrences of outlook recurring appointments列出所有出现的 Outlook 定期约会
【发布时间】:2013-04-05 04:17:31
【问题描述】:

MS Outlook 提供 MAPI 来访问 Outlook 日历项目。使用日历项目,它可以找到 Outlook 的所有定期和非定期约会。在定期约会的情况下,可以使用 AppointmentItem 的 RecurrencePattern 的 GetOccurence 函数找到所有重复约会的出现。 GetOccurence 函数将获取日期和时间以返回该日期的事件。如果存在,它将返回,否则将给出异常。

如果定期约会的所有发生都具有相同的 StartTime 和 EndTime,则向 GetOccurence 提供开始时间输入,工作得很好。但是,如果修改了某个特定事件的 StartTime 和 EndTime,则 GetOccurence 将不会返回该事件。另一种方法是每天每隔 30 分钟检查一次。但这种方法似乎效率不高。

有人有更好的主意吗?

_ApplicationPtr olApp("Outlook.Application");
_NameSpacePtr olMAPI;
olMAPI = olApp->GetNamespace("MAPI");
hr = olMAPI->Logon("","",false,false);
MAPIFolderPtr olCalendarFolder = olMAPI->GetDefaultFolder(olFolderCalendar);
_ItemsPtr olCalendarItems = olCalendarFolder->GetItems();
_AppointmentItemPtr olAppt  = (_AppointmentItemPtr) olCalendarItems->GetFirst();
RecurrencePatternPtr recurPattern = olAppt->GetRecurrencePattern();
_AppointmentItemPtr _olAppt = recurPattern->GetOccurrence(recurPattern->GetPatternStartDate()+recurPattern->GetStartTime());

【问题讨论】:

    标签: visual-c++ com mfc outlook mapi


    【解决方案1】:

    当然,使用 RecurrencePattern.Exceptions 集合 - 请参阅 http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.exceptions.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2011-12-24
      • 2016-05-16
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多