internal static ICollection <String> GetCalendarList(String selectedCalendar) { Folder currentFolder = GetApplication().ActiveExplorer().CurrentFolder as Folder; m_calendars = new Dictionary <String, MAPIFolder>(); var navPane = GetApplication().ActiveExplorer().NavigationPane; CalendarModule objModule = (CalendarModule)navPane.Modules.GetNavigationModule(OlNavigationModuleType.olModuleCalendar); // iterate over all groups and add the selected calendars to the list // add the previously selected calendar and make sure it's selected // don't include the default calendar NavigationGroups objGroup = objModule.NavigationGroups; foreach (NavigationGroup navGroup in objGroup) { foreach (NavigationFolder navFolder in navGroup.NavigationFolders) { if (navFolder.DisplayName.Equals(MY_CALENDAR_DEFAULT_NAME)) { continue; } var isSelectedCalendar = navFolder.DisplayName.Equals(selectedCalendar); if (navFolder.IsSelected || isSelectedCalendar) { navFolder.IsSelected = true; m_calendars.Add(navFolder.DisplayName, navFolder.Folder); } } } return(m_calendars.Keys); }
private void Explorer_BeforeFolderSwitch(object aNewFolder, ref bool Cancel) { MAPIFolder folder = (aNewFolder as MAPIFolder); CalendarModule modCalendar = (CalendarModule)Globals.ThisAddIn.Application.ActiveExplorer().NavigationPane.Modules.GetNavigationModule(OlNavigationModuleType.olModuleCalendar); if (folder != null) { try { if (folder.DefaultItemType == OlItemType.olAppointmentItem) { HookupCalendarEvents(folder); } } finally { } } }