icalitem.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * Copyright 2005 - 2016 Zarafa and its licensors
  3. *
  4. * This program is free software: you can redistribute it and/or modify
  5. * it under the terms of the GNU Affero General Public License, version 3,
  6. * as published by the Free Software Foundation.
  7. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU Affero General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU Affero General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. *
  16. */
  17. #ifndef ICALMAPI_ICALITEM_H
  18. #define ICALMAPI_ICALITEM_H
  19. #include <list>
  20. #include <string>
  21. #include <mapidefs.h>
  22. #include "recurrence.h"
  23. namespace KC {
  24. enum eIcalType { VEVENT, VTODO, VJOURNAL };
  25. struct icalrecip {
  26. /* recipient type (From==organizer, To==attendee, CC==opt attendee ?)) */
  27. ULONG ulRecipientType;
  28. /* tentative, canceled */
  29. ULONG ulTrackStatus;
  30. std::wstring strEmail;
  31. std::wstring strName;
  32. ULONG cbEntryID;
  33. LPENTRYID lpEntryID; /* realloced to icalitem.base !! */
  34. };
  35. struct icalitem {
  36. void *base; /* pointer on which we use MAPIAllocateMore, to only need to free this pointer */
  37. eIcalType eType;
  38. time_t tLastModified;
  39. SPropValue sBinGuid;
  40. TIMEZONE_STRUCT tTZinfo;
  41. ULONG ulFbStatus;
  42. recurrence *lpRecurrence;
  43. std::list<SPropValue> lstMsgProps; /* all objects are allocated more on icalitem pointer */
  44. std::list<ULONG> lstDelPropTags; /* properties to delete from message */
  45. std::list<icalrecip> lstRecips; /* list of all recipients */
  46. struct exception {
  47. time_t tBaseDate;
  48. time_t tStartDate;
  49. std::list<SPropValue> lstAttachProps;
  50. std::list<SPropValue> lstMsgProps;
  51. std::list<icalrecip> lstRecips;
  52. };
  53. std::list<exception> lstExceptionAttachments;
  54. };
  55. } /* namespace */
  56. #endif