00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef INCL_CLIENTAPPOINTMENT
00037 #define INCL_CLIENTAPPOINTMENT
00038
00043 #include "outlook/defs.h"
00044 #include "outlook/ClientItem.h"
00045 #include "outlook/ClientRecurrence.h"
00046
00047 #include <string>
00048
00049
00050
00058 class ClientAppointment : public ClientItem {
00059
00060 private:
00061
00063 _AppointmentItemPtr pAppointment;
00064
00066 Redemption::ISafeAppointmentItemPtr pSafeAppointment;
00067
00069 ClientRecurrence recPattern;
00070
00071
00072 void createSafeAppointmentInstance();
00073 void initializeRecPattern();
00074
00075 bool isSecureProperty (const std::wstring& propertyName);
00076 bool isComplexProperty(const std::wstring& propertyName);
00077
00078 const std::wstring getSafeProperty (const std::wstring& propertyName);
00079 const std::wstring getComplexProperty(const std::wstring& propertyName);
00080
00081 int setComplexProperty(const std::wstring& propertyName, const std::wstring& propertyValue);
00082
00087 TIME_ZONE_INFORMATION timeZoneInfo;
00088
00089 public:
00090
00091
00093 ClientAppointment();
00094 ClientAppointment(const ClientAppointment& c);
00095 ClientAppointment operator=(const ClientAppointment& c);
00096
00098 ~ClientAppointment();
00099
00100
00102 void setCOMPtr(_AppointmentItemPtr& ptr, const std::wstring& itemID);
00103 void setCOMPtr(_AppointmentItemPtr& ptr);
00104
00106 _AppointmentItemPtr& getCOMPtr();
00107
00108
00110 ClientRecurrence* getRecPattern();
00112 int clearRecPattern();
00113
00114
00115
00116
00117
00118 int saveItem();
00119 int deleteItem();
00120 ClientItem* copyItem();
00121
00122
00123
00124 void setRecurringTimezone(const TIME_ZONE_INFORMATION* tz) {timeZoneInfo = *tz; }
00125
00126 const TIME_ZONE_INFORMATION& getRecurringTimezone() const { return timeZoneInfo; }
00127
00128
00130 bool isAllDayEvent();
00131
00132 DATE localStartDate;
00133 DATE localEndDate;
00134
00135
00136 };
00137
00140 #endif