XTPCalendarCustomDataProvider.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:13k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarCustomDataProvider.h: interface for the CXTPCalendarCustomProperties class.
  2. //
  3. // This file is a part of the XTREME CALENDAR MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(_XTP_CALENDAR_CUSTOM_DATA_PROVIDER_H__)
  22. #define _XTP_CALENDAR_CUSTOM_DATA_PROVIDER_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "XTPCalendardata.h"
  28. //===========================================================================
  29. // Summary:
  30. //     Custom implementation of XTPCalendarData based on notifications.
  31. // Remarks:
  32. //     This class is the implementation of the XTPCalendarData abstract
  33. //     class which represents a data portion of the Calendar control.
  34. //
  35. //     This implementation is based on a notifications mechanism.
  36. //     Each significant method sends a custom notification, which could be
  37. //     handled by a user and where a custom data access code should be
  38. //     implemented.
  39. // See Also:
  40. //     CXTPCalendarData overview
  41. //===========================================================================
  42. class _XTP_EXT_CLASS CXTPCalendarCustomDataProvider : public CXTPCalendarData
  43. {
  44. //{{AFX_CODEJOCK_PRIVATE
  45. DECLARE_DYNAMIC(CXTPCalendarCustomDataProvider)
  46. //}}AFX_CODEJOCK_PRIVATE
  47. public:
  48. //-----------------------------------------------------------------------
  49. // Summary:
  50. //     Default constructor.
  51. // Remarks:
  52. //     Constructs a Data object. To establish a connection to a
  53. //     specified data source and initialize the object you must
  54. //     call Open() member function immediately after construction.
  55. // See Also: Open()
  56. //-----------------------------------------------------------------------
  57. CXTPCalendarCustomDataProvider();
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     Default Destructor.
  61. // Remarks:
  62. //     Handles all deallocation.
  63. //-----------------------------------------------------------------------
  64. virtual ~CXTPCalendarCustomDataProvider();
  65. //-----------------------------------------------------------------------
  66. // Summary:
  67. //     Call this member function to close the connection to a data source.
  68. //-----------------------------------------------------------------------
  69. virtual void Close();
  70. protected:
  71. //-----------------------------------------------------------------------
  72. // Summary:
  73. //     Retrieves day events for a specified day from the data source.
  74. // Parameters:
  75. //     dtDay - A specified day.
  76. // Remarks:
  77. //     This method retrieves all appointments for a specified day from
  78. //     the data source. It includes recurrence appointments occurrences,
  79. //     regular appointments for this day, multi day appointments which
  80. //     also have a part of this day.
  81. //
  82. //     This implementation of the method sends a notification
  83. //     XTP_NC_CALENDAR_DoRetrieveDayEvents which a user can handle and
  84. //     implement a custom method.
  85. // Returns:
  86. //     A collection of events for a specified day.
  87. // See also:
  88. //     XTP_NC_CALENDAR_DoRetrieveDayEvents notification
  89. //-----------------------------------------------------------------------
  90. virtual CXTPCalendarEventsPtr   DoRetrieveDayEvents(COleDateTime dtDay);
  91. //-----------------------------------------------------------------------
  92. // Summary:
  93. //     Removes all events from the data source.
  94. // Remarks:
  95. //     This method removes all appointments from the data source.
  96. //
  97. //     This implementation of the method sends a notification
  98. //     XTP_NC_CALENDAR_DoRemoveAllEvents which a user can handle and
  99. //     implement a custom method.
  100. // See also:
  101. //     XTP_NC_CALENDAR_DoRemoveAllEvents notification
  102. //-----------------------------------------------------------------------
  103. virtual void                    DoRemoveAllEvents();
  104. //-----------------------------------------------------------------------
  105. // Summary:
  106. //     Read event from the data source.
  107. // Parameters:
  108. //     dwEventID - Event ID of the read target.
  109. // Remarks:
  110. //     This method retrieves all data for a specified event.
  111. //
  112. //     This implementation of the method sends a notification
  113. //     XTP_NC_CALENDAR_DoRead_Event which a user can handle and
  114. //     implement a custom method.
  115. // Returns:
  116. //     A pointer to the new CXTPCalendarEvent object which fields
  117. //     are filled with a data from the data source.
  118. // See also:
  119. //     XTP_NC_CALENDAR_DoRead_Event notification
  120. //-----------------------------------------------------------------------
  121. virtual CXTPCalendarEventPtr                DoRead_Event(DWORD dwEventID);
  122. //-----------------------------------------------------------------------
  123. // Summary:
  124. //     Read recurrence pattern from the data source
  125. // Parameters:
  126. //     dwPatternID - Pattern ID of the read target.
  127. // Remarks:
  128. //     This method retrieves all data for a specified recurrence pattern.
  129. //
  130. //     This implementation of the method sends a notification
  131. //     XTP_NC_CALENDAR_DoRead_RPattern which a user can handle and
  132. //     implement a custom method.
  133. // Returns:
  134. //     A pointer to the new CXTPCalendarRecurrencePatternPtr object which
  135. //     fields are filled with a data from the data source.
  136. // See also:
  137. //     XTP_NC_CALENDAR_DoRead_RPattern notification
  138. //-----------------------------------------------------------------------
  139. virtual CXTPCalendarRecurrencePatternPtr    DoRead_RPattern(DWORD dwPatternID);
  140. //-----------------------------------------------------------------------
  141. // Summary:
  142. //     Creates a new event in the data source
  143. // Parameters:
  144. //     pEvent - Pointer to the CXTPCalendarEvent object which describes
  145. //              all data fields of a newly created record.
  146. //     rdwNewEventID - [out] EventID of a newly created record
  147. // Remarks:
  148. //     This method creates a data record corresponding with the
  149. //     specified event.
  150. //
  151. //     This implementation of the method sends a notification
  152. //     XTP_NC_CALENDAR_DoCreate_Event which a user can handle and
  153. //     implement a custom method.
  154. // Returns:
  155. //     TRUE if event created successfully,
  156. //     FALSE in case of any error during the process.
  157. // See also:
  158. //     XTP_NC_CALENDAR_DoCreate_Event notification
  159. //-----------------------------------------------------------------------
  160. virtual BOOL DoCreate_Event (CXTPCalendarEvent* pEvent, DWORD& rdwNewEventID);
  161. //-----------------------------------------------------------------------
  162. // Summary:
  163. //     Updates event properties in the data source.
  164. // Parameters:
  165. //     pEvent - Pointer to the CXTPCalendarEvent object which describes
  166. //              all data fields of an event.
  167. // Remarks:
  168. //     This method updates a data record corresponding with the
  169. //     specified event.
  170. //
  171. //     This implementation of the method sends a notification
  172. //     XTP_NC_CALENDAR_DoUpdate_Event which a user can handle and
  173. //     implement a custom method.
  174. // Returns:
  175. //     TRUE if an event updated successfully,
  176. //     FALSE in case of any errors during the process.
  177. // See also:
  178. //     XTP_NC_CALENDAR_DoUpdate_Event notification
  179. //-----------------------------------------------------------------------
  180. virtual BOOL DoUpdate_Event (CXTPCalendarEvent* pEvent);
  181. //-----------------------------------------------------------------------
  182. // Summary:
  183. //     Deletes an event from the data source.
  184. // Parameters:
  185. //     pEvent - Pointer to the CXTPCalendarEvent object which describes
  186. //              all data fields of an event.
  187. // Remarks:
  188. //     This method deletes a data record corresponding with the
  189. //     specified event.
  190. //
  191. //     This implementation of the method sends a notification
  192. //     XTP_NC_CALENDAR_DoDelete_Event which a user can handle and
  193. //     implement a custom method.
  194. // Returns:
  195. //     TRUE if an event deleted successfully,
  196. //     FALSE in case of any errors during the process.
  197. // See also:
  198. //     XTP_NC_CALENDAR_DoDelete_Event notification
  199. //-----------------------------------------------------------------------
  200. virtual BOOL DoDelete_Event (CXTPCalendarEvent* pEvent);
  201. //-----------------------------------------------------------------------
  202. // Summary:
  203. //     Creates a new recurrence pattern in the data source
  204. // Parameters:
  205. //     pPattern - Pointer to the CXTPCalendarRecurrencePattern object which
  206. //                describes all data fields of a newly created record.
  207. //     rdwNewPatternID - [out] ID of a newly created record
  208. // Remarks:
  209. //     This method creates a data record corresponding with the
  210. //     specified recurrence pattern.
  211. //
  212. //     This implementation of the method sends a notification
  213. //     XTP_NC_CALENDAR_DoCreate_RPattern which a user can handle and
  214. //     implement a custom method.
  215. // Returns:
  216. //     TRUE if recurrence pattern created successfully,
  217. //     FALSE in case of any error during the process.
  218. // See also:
  219. //     XTP_NC_CALENDAR_DoCreate_RPattern notification
  220. //-----------------------------------------------------------------------
  221. virtual BOOL DoCreate_RPattern (CXTPCalendarRecurrencePattern* pPattern, DWORD& rdwNewPatternID);
  222. //-----------------------------------------------------------------------
  223. // Summary:
  224. //     Updates a recurrence pattern in the database
  225. // Parameters:
  226. //     pPattern - Pointer to the CXTPCalendarRecurrencePattern object.
  227. // Remarks:
  228. //     This method updates a data record corresponding with the
  229. //     specified recurrence pattern.
  230. //
  231. //     This implementation of the method sends a notification
  232. //     XTP_NC_CALENDAR_DoUpdate_RPattern which a user can handle and
  233. //     implement a custom method.
  234. // Returns:
  235. //     TRUE if recurrence pattern updated successfully,
  236. //     FALSE in case of any error during the process.
  237. // See also:
  238. //     XTP_NC_CALENDAR_DoUpdate_RPattern notification
  239. //-----------------------------------------------------------------------
  240. virtual BOOL DoUpdate_RPattern (CXTPCalendarRecurrencePattern* pPattern);
  241. //-----------------------------------------------------------------------
  242. // Summary:
  243. //     Deletes a recurrence pattern from the database
  244. // Parameters:
  245. //     pPattern - Pointer to the CXTPCalendarRecurrencePattern object
  246. //                which should be deleted.
  247. // Remarks:
  248. //     This method deletes a data record corresponding with the
  249. //     specified recurrence pattern.
  250. //
  251. //     This implementation of the method sends a notification
  252. //     XTP_NC_CALENDAR_DoDelete_RPattern which a user can handle and
  253. //     implement a custom method.
  254. // Returns:
  255. //     TRUE if recurrence pattern deleted successfully,
  256. //     FALSE in case of any error during the process.
  257. // See also:
  258. //     XTP_NC_CALENDAR_DoDelete_RPattern notification
  259. //-----------------------------------------------------------------------
  260. virtual BOOL DoDelete_RPattern (CXTPCalendarRecurrencePattern* pPattern);
  261. //-----------------------------------------------------------------------
  262. // Summary:
  263. //     This method implements Getting all events without generating
  264. //     recurrence occurrences.
  265. // Remarks:
  266. //     This method actually implements working with the data source.
  267. //     Simple events are included as is.
  268. //
  269. //     This implementation of the method sends a notification
  270. //     XTP_NC_CALENDAR_DoGetAllEvents_raw which a user can handle and
  271. //     implement a custom method.
  272. // Returns:
  273. //     A CXTPCalendarEvents pointer containing a collection of
  274. //     all events.
  275. // See also:
  276. //     XTP_NC_CALENDAR_DoGetAllEvents_raw notification, GetAllEvents_raw()
  277. //-----------------------------------------------------------------------
  278. virtual CXTPCalendarEventsPtr DoGetAllEvents_raw();
  279. //-----------------------------------------------------------------------
  280. // Summary:
  281. //     This method implements getting a collection of events expiring in
  282. //     the period from dtFrom during next spPeriod.
  283. // Parameters:
  284. //     dtFrom   - Start date and time of a specified period.
  285. //     spPeriod - A duration of a specified period.
  286. // Remarks:
  287. //     This method is used by a reminders manager.
  288. //
  289. //     This implementation of the method sends a notification
  290. //     XTP_NC_CALENDAR_DoGetUpcomingEvents which a user can handle and
  291. //     implement a custom method.
  292. // Returns:
  293. //     A CXTPCalendarEvents pointer containing a collection of
  294. //     upcoming events.
  295. // See Also:
  296. //     CXTPCalendarRemindersManager overview,
  297. //     XTP_NC_CALENDAR_DoGetUpcomingEvents notification.
  298. //-----------------------------------------------------------------------
  299. virtual CXTPCalendarEventsPtr DoGetUpcomingEvents(COleDateTime dtFrom, COleDateTimeSpan spPeriod);
  300. };
  301. ///////////////////////////////////////////////////////////////////
  302. #endif // !defined(_XTP_CALENDAR_CUSTOM_DATA_PROVIDER_H__)