2013-04-05 1 views
0

MS Outlook fournit MAPI pour accéder aux éléments du calendrier Outlook. Avec les éléments du calendrier, il peut trouver tous les rendez-vous récurrents et non récurrents de perspectives. En cas de rendez-vous récurrents, toutes les occurrences de rendez-vous récurrents peuvent être trouvées en utilisant la fonction GetOccurence de RecurrencePattern de AppointmentItem. La fonction GetOccurence prendra la date et l'heure pour retourner l'occurrence à cette date. Si l'occurrence existe, elle reviendra sinon elle donnera une exception.Liste toutes les occurrences de rendez-vous récurrents Outlook

Si toutes les occurrences d'un rendez-vous périodique ont le même StartTime et EndTime, puis fournir une entrée de démarrage à GetOccurence, fonctionne parfaitement. Mais si une occurrence particulière StartTime et EndTime est modifiée, GetOccurence ne retournera pas cette occurrence. L'autre façon pourrait être de vérifier l'occurrence tous les 30 minutes tous les jours. Mais cette approche ne semble pas être efficace.

Quelqu'un a une meilleure idée de le faire?

_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()); 

Répondre

Questions connexes