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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarResource.h: interface for the CXTPCalendarResource 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(_XTPCALENDARRESOURCE_H_)
  22. #define _XTPCALENDARRESOURCE_H_
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "Common/XTPNotifyConnection.h"
  28. #include "XTPCalendarDefines.h"
  29. #include "XTPCalendarPtrCollectionT.h"
  30. #include "XtpCalendarPtrs.h"
  31. class CXTPCalendarControl;
  32. class CXTPCalendarView;
  33. class CXTPCalendarPaintManager;
  34. class CXTPCalendarData;
  35. class CXTPCalendarDayView;
  36. class CXTPCalendarWeekView;
  37. class CXTPCalendarMonthView;
  38. class CXTPCalendarOptions;
  39. class CXTPNotifyConnection;
  40. class CXTPCalendarRemindersManager;
  41. class CXTPCalendarCustomProperties;
  42. //===========================================================================
  43. // Summary:
  44. //    Calendar Schedule is a characteristic of the Calendar Event, which
  45. //    describes a belonging of the Event to a particular Schedule (which
  46. //    could be people schedule, common resource schedule, etc).
  47. //
  48. //    This class implements base properties of the Schedule and operations
  49. //    on it.
  50. //===========================================================================
  51. class _XTP_EXT_CLASS CXTPCalendarSchedule : public CXTPCmdTarget
  52. {
  53. //{{AFX_CODEJOCK_PRIVATE
  54. DECLARE_DYNAMIC(CXTPCalendarSchedule)
  55. //}}AFX_CODEJOCK_PRIVATE
  56. public:
  57. //-----------------------------------------------------------------------
  58. // Summary:
  59. //     Default object constructor.
  60. //     Construct CXTPCalendarSchedule object.
  61. // Parameters:
  62. //     uScheduleID      - A numeric positive ID of the schedule.
  63. //     pcszScheduleName - A string name of the schedule (could be a name
  64. //                        of the person, etc)
  65. // See Also: ~CXTPCalendarSchedule
  66. //-----------------------------------------------------------------------
  67. CXTPCalendarSchedule(UINT uScheduleID = 0, LPCTSTR pcszScheduleName = _T(""));
  68. //-----------------------------------------------------------------------
  69. // Summary:
  70. //     Default class destructor.
  71. // Remarks:
  72. //     Handles member items deallocation.
  73. // See Also: CXTPCalendarSchedule
  74. //-----------------------------------------------------------------------
  75. virtual ~CXTPCalendarSchedule();
  76. //-----------------------------------------------------------------------
  77. // Summary:
  78. //     This member function is used to obtain a unique schedule ID.
  79. // See Also: CXTPCalendarSchedule, SetID
  80. //-----------------------------------------------------------------------
  81. UINT GetID() const;
  82. //-----------------------------------------------------------------------
  83. // Summary:
  84. //     This member function is used to obtain the schedule name.
  85. // Returns:
  86. //     A CString object that contains the schedule name text.
  87. // See Also: SetName
  88. //-----------------------------------------------------------------------
  89. LPCTSTR GetName() const;
  90. //-----------------------------------------------------------------------
  91. // Summary:
  92. //     This member function is used to set a new ID value for a schedule.
  93. // Parameters:
  94. //     uScheduleID - A DWORD that contains the id value.
  95. // See Also: GetID
  96. //-----------------------------------------------------------------------
  97. void SetID(UINT uScheduleID);
  98. //-----------------------------------------------------------------------
  99. // Summary:
  100. //     This member function is used to set the schedule name text.
  101. // Parameters:
  102. //     pcszScheduleName - An LPCTSTR object that contains the string of text.
  103. // See Also: GetName
  104. //-----------------------------------------------------------------------
  105. void SetName(LPCTSTR pcszScheduleName);
  106. //-----------------------------------------------------------------------
  107. // Summary:
  108. //      Get custom (named, user defined) properties collection.
  109. // Returns:
  110. //      A pointer to CXTPCalendarCustomProperties object.
  111. // See Also:
  112. //      CXTPCalendarCustomProperties.
  113. //-----------------------------------------------------------------------
  114. CXTPCalendarCustomProperties* GetCustomProperties();
  115. protected:
  116. UINT    m_uScheduleID;     // Stores numeric positive ID of the schedule
  117. CString m_strScheduleName; // Stores Schedule Name
  118. CXTPCalendarCustomProperties* m_pCustomProperties;  // Stores custom properties collection for this Schedule
  119. protected:
  120. };
  121. //===========================================================================
  122. // Summary:
  123. //      This class represents a simple array collection of CXTPCalendarSchedule
  124. //      objects.
  125. // Remarks:
  126. //      Array indexes always start at position 0.
  127. //
  128. //      As with a C array, the access time for indexed element of this
  129. //      array is constant and is independent of the array size.
  130. //
  131. // See Also: CArray overview, CXTPCalendarSchedule overview.
  132. //===========================================================================
  133. class _XTP_EXT_CLASS CXTPCalendarSchedules : public CXTPCalendarPtrCollectionT<CXTPCalendarSchedule>
  134. {
  135. //{{AFX_CODEJOCK_PRIVATE
  136. DECLARE_DYNAMIC(CXTPCalendarSchedules)
  137. //}}AFX_CODEJOCK_PRIVATE
  138. public:
  139. //-----------------------------------------------------------------------
  140. // Summary:
  141. //     Default collection constructor.
  142. // See Also: ~CXTPCalendarSchedules()
  143. //-----------------------------------------------------------------------
  144. CXTPCalendarSchedules();
  145. //-----------------------------------------------------------------------
  146. // Summary:
  147. //     Default collection destructor.
  148. // Remarks:
  149. //     Handles member item deallocation. Decreases reference of all
  150. //     stored CXTPCalendarSchedule objects.
  151. // See Also: RemoveAll()
  152. //-----------------------------------------------------------------------
  153. virtual ~CXTPCalendarSchedules();
  154. //-----------------------------------------------------------------------
  155. // Summary: Creates and adds a new schedule object by its name.
  156. // Parameters:
  157. //     pcszScheduleName - String with the schedule name.
  158. // Returns: TRUE if added successfully; FALSE otherwise.
  159. // See Also: RemoveSchedule
  160. //-----------------------------------------------------------------------
  161. virtual BOOL AddNewSchedule(LPCTSTR pcszScheduleName);
  162. //-----------------------------------------------------------------------
  163. // Summary: Removes a schedule object from the array by its ID.
  164. // Parameters:
  165. //     uScheduleID - An ID of the schedule.
  166. // Returns: TRUE if object was found and removed from the array;
  167. //          FALSE otherwise.
  168. // See Also: AddNewSchedule
  169. //-----------------------------------------------------------------------
  170. virtual BOOL RemoveSchedule(UINT uScheduleID);
  171. //-----------------------------------------------------------------------
  172. // Summary: Returns a name of the schedule by its numeric ID.
  173. // Parameters:
  174. //     uScheduleID - An ID of the schedule.
  175. // See Also: SetScheduleName
  176. //-----------------------------------------------------------------------
  177. virtual LPCTSTR GetScheduleName(UINT uScheduleID) const;
  178. //-----------------------------------------------------------------------
  179. // Summary:
  180. //     Finds schedule index in the internal array by its ID.
  181. // Parameters:
  182. //     uScheduleID - Label ID
  183. // Returns:
  184. //     Schedule index in the internal label array.
  185. //-----------------------------------------------------------------------
  186. virtual int FindIndex(UINT uScheduleID) const;
  187. //-----------------------------------------------------------------------
  188. // Summary: Sets a new schedule name by its numeric ID.
  189. // Parameters:
  190. //     uScheduleID - An ID of the schedule
  191. //     pcszNewName - String of text for the new name of the schedule
  192. // See Also: GetScheduleName
  193. //-----------------------------------------------------------------------
  194. virtual void SetScheduleName(UINT uScheduleID, LPCTSTR pcszNewName);
  195. //-----------------------------------------------------------------------
  196. // Summary:
  197. //     Call this member function to Store/Load a schedule using the
  198. //     specified data object.
  199. // Parameters:
  200. //     pPX - Source or destination CXTPPropExchange data object reference.
  201. // Remarks:
  202. //     This member function is used to store or load schedule data to or
  203. //     from a storage.
  204. //-----------------------------------------------------------------------
  205. virtual void DoPropExchange(CXTPPropExchange* pPX);
  206. protected:
  207. //-----------------------------------------------------------------------
  208. // Summary: Finds next available ID which does not exist in the array.
  209. // Returns: Available ID which does not exist in the array.
  210. // Remarks: Function found max ID and returns it incremented by one.
  211. //-----------------------------------------------------------------------
  212. virtual UINT _GetNextID() const;
  213. //-----------------------------------------------------------------------
  214. // Summary:
  215. //     Call this member function to Load a schedule from the
  216. //     specified data object.
  217. // Parameters:
  218. //     pPX - Source CXTPPropExchange data object reference.
  219. // Remarks:
  220. //     This member function is used to load schedule data
  221. //     from a specified storage.
  222. //-----------------------------------------------------------------------
  223. virtual void _Load(CXTPPropExchange* pPX);
  224. //-----------------------------------------------------------------------
  225. // Summary:
  226. //     Call this member function to Store a schedule to the
  227. //     specified data object.
  228. // Parameters:
  229. //     pPX - Destination CXTPPropExchange data object reference.
  230. // Remarks:
  231. //     This member function is used to store schedule data to
  232. //     a storage.
  233. //-----------------------------------------------------------------------
  234. virtual void _Save(CXTPPropExchange* pPX);
  235. };
  236. //===========================================================================
  237. // Summary:
  238. //     Class CXTPCalendarResource represents a calendar for some subject like
  239. //     a person, a shared resource, or even a group of persons or resources.
  240. //
  241. // Remarks:
  242. //
  243. //     Each resource is to be drawn in the separate column on the calendar view.
  244. //     Each resource should have its own DataProvider. For example, events
  245. //     for peoples could be stored inside the Memory data provider (somebody's
  246. //     own or temporary events), and for other resources - inside a Database
  247. //     data provider (those events are not changed by the user). So, there is
  248. //     a possibility to use any combination of data providers in the same control.
  249. //
  250. // See Also: CXTPCalendarControl, CXTPCalendarData
  251. //===========================================================================
  252. class _XTP_EXT_CLASS CXTPCalendarResource : public CXTPCmdTarget
  253. {
  254. //{{AFX_CODEJOCK_PRIVATE
  255. DECLARE_DYNCREATE(CXTPCalendarResource)
  256. //}}AFX_CODEJOCK_PRIVATE
  257. public:
  258. //-----------------------------------------------------------------------
  259. // Summary:
  260. //     Default object constructor.
  261. //     Construct CXTPCalendarResource object.
  262. // Parameters:
  263. //     pCalendarCtrl - Pointer to the parent Calendar control.
  264. // See Also: ~CXTPCalendarResource
  265. //-----------------------------------------------------------------------
  266. CXTPCalendarResource(CXTPCalendarControl* pCalendarCtrl = NULL);
  267. //-----------------------------------------------------------------------
  268. // Summary:
  269. //     Default class destructor.
  270. // Remarks:
  271. //     Handles member items deallocation.
  272. // See Also: CXTPCalendarResource
  273. //-----------------------------------------------------------------------
  274. virtual ~CXTPCalendarResource();
  275. /////////////////////////////////////////////////////////////////////////
  276. // data provider related
  277. //-----------------------------------------------------------------------
  278. // Summary:
  279. //     This member function obtains a pointer to the current data
  280. //     provider instance.
  281. // Remarks:
  282. //     Call this member function to obtain the data provider object
  283. //     currently used by this calendar control.
  284. // Returns:
  285. //     A CXTPCalendarData pointer to the associated data provider object.
  286. // See Also: CXTPCalendarData overview, SetDataProvider
  287. //-----------------------------------------------------------------------
  288. CXTPCalendarData* GetDataProvider();
  289. //-----------------------------------------------------------------------
  290. // Summary:
  291. //     This member function sets the custom data provider for the control.
  292. // Parameters:
  293. //     pDataProvider - Pointer to the custom data provider object.
  294. //     bCloseDataProviderWhenDestroy - If this parameter TRUE the Close method
  295. //                                     of data provided will be called on this
  296. //                                     resource destruction.
  297. // Remarks:
  298. //     Call this member function to set the custom data provider
  299. //     that is currently used by this calendar control. Note that
  300. //     custom data provider must be a descendant of CXTPCalendarData.
  301. // See Also: CXTPCalendarData overview, GetDataProvider
  302. //-----------------------------------------------------------------------
  303. void SetDataProvider(CXTPCalendarData* pDataProvider, BOOL bCloseDataProviderWhenDestroy = FALSE);
  304. //-----------------------------------------------------------------------
  305. // Summary:
  306. //     Call this member function to get the collection of the day's
  307. //     events for this resource. All events from the applied schedules
  308. //     will be included.
  309. // Parameters:
  310. //     dtDay - A COleDateTime object that contains the day's date.
  311. // Returns:
  312. //     A pointer to a CXTPCalendarEvents object that contains the
  313. //     collection of the day's events.
  314. // See Also: CXTPCalendarEvents
  315. //-----------------------------------------------------------------------
  316. virtual CXTPCalendarEventsPtr RetrieveDayEvents(COleDateTime dtDay);
  317. //-----------------------------------------------------------------------
  318. // Summary:
  319. //     Call this member function to get the collection of all schedules
  320. //     ID's for this resource.
  321. // Returns:
  322. //     A pointer to CUIntArray collection which contains numeric ID's
  323. //     for all schedules existing in this resource.
  324. // See Also:
  325. //     CUIntArray overview, IsSchedulesSetEmpty, ExistsScheduleID
  326. //-----------------------------------------------------------------------
  327. virtual CUIntArray* GetSchedules();
  328. //-----------------------------------------------------------------------
  329. // Summary:
  330. //     This member function determines whether a schedule with the
  331. //     specified ID exists or not.
  332. // Parameters:
  333. //     uScheduleID - A numeric ID of the schedule to check.
  334. //     bReturnTrueIfSchedulesSetEmpty - TRUE by default.
  335. //          If there are no any schedules specified inside this resource,
  336. //          the Calendar will show (and process in other way) all events.
  337. // Returns: TRUE if a schedule ID exists in the Schedules collection for
  338. //          this resource; FALSE otherwise.
  339. // See Also: GetSchedules, IsSchedulesSetEmpty
  340. //-----------------------------------------------------------------------
  341. virtual BOOL ExistsScheduleID(UINT uScheduleID, BOOL bReturnTrueIfSchedulesSetEmpty = TRUE);
  342. //-----------------------------------------------------------------------
  343. // Summary:
  344. //     This member function used to remove events which are not from this 
  345. //    resource.
  346. // Parameters:
  347. //     pEvents - An events collection to be filtered.
  348. // See Also: ExistsScheduleID
  349. //-----------------------------------------------------------------------
  350. void FilterEventsByScheduleID(CXTPCalendarEvents* pEvents);
  351. //-----------------------------------------------------------------------
  352. // Summary:
  353. //     Call this member function to check whether schedules set in this
  354. //     resource is empty or not.
  355. // Returns:
  356. //     TRUE when schedules set is empty for this resource;
  357. //     FALSE if at least 1 schedule exists.
  358. // See Also: GetSchedules, ExistsScheduleID
  359. //-----------------------------------------------------------------------
  360. virtual BOOL IsSchedulesSetEmpty() const;
  361. //-----------------------------------------------------------------------
  362. // Summary:
  363. //     This member function returns a string name of this resource object
  364. // Returns: A string with the name of the resource object.
  365. // See Also: SetName
  366. //-----------------------------------------------------------------------
  367. virtual LPCTSTR GetName();
  368. //-----------------------------------------------------------------------
  369. // Summary:
  370. //     This member function applies a new name to the resource object.
  371. // Parameters:
  372. //     pcszResourceName - A string with the new name for the resource
  373. // See Also: GetName
  374. //-----------------------------------------------------------------------
  375. virtual void SetName(LPCTSTR pcszResourceName);
  376. protected:
  377. CString m_strResourceName;            // Text name of the resource
  378. CXTPCalendarControl* m_pCalendarCtrl; // Parent Calendar control
  379. CXTPCalendarData* m_pDataProvider;    // Associated data provider
  380. CUIntArray m_arScheduleIDs; // which schedules are used for this resource.
  381. BOOL m_bCloseDataProviderWhenDestroy;   // If TRUE - call Close() method if the data provider when control is destroyed.
  382. // Returns reminders manager associated with the main Calendar control
  383. //CXTPCalendarRemindersManager* GetRemindersManager();
  384. protected:
  385. };
  386. //===========================================================================
  387. // Summary:
  388. //      This class represents a simple array collection of CXTPCalendarResource
  389. //      objects.
  390. // See Also: CXTPCalendarPtrCollectionT
  391. //===========================================================================
  392. class _XTP_EXT_CLASS CXTPCalendarResources : public CXTPCalendarPtrCollectionT<CXTPCalendarResource>
  393. {
  394. //{{AFX_CODEJOCK_PRIVATE
  395. DECLARE_DYNCREATE(CXTPCalendarResources)
  396. //}}AFX_CODEJOCK_PRIVATE
  397. public:
  398. //-----------------------------------------------------------------------
  399. // Summary:
  400. //     Default collection constructor.
  401. // See Also: ~CXTPCalendarResources()
  402. //-----------------------------------------------------------------------
  403. CXTPCalendarResources();
  404. //-----------------------------------------------------------------------
  405. // Summary:
  406. //     Default collection destructor.
  407. // Remarks:
  408. //     Handles member item deallocation. Decreases reference of all
  409. //     stored CXTPCalendarResource objects.
  410. // See Also: RemoveAll()
  411. //-----------------------------------------------------------------------
  412. virtual ~CXTPCalendarResources();
  413. protected:
  414. };
  415. //===========================================================================
  416. // Summary:
  417. //     This class implements CXTPCalendarResource functionality with addition
  418. //     of notifications mechanism implemented by CXTPNotifySink.
  419. // See also:
  420. //     CXTPCalendarResource overview, CXTPNotifySink overview.
  421. //===========================================================================
  422. class _XTP_EXT_CLASS CXTPCalendarResourcesNf : public  CXTPCalendarResources,
  423.    private CXTPNotifySink
  424. {
  425. public:
  426. //-----------------------------------------------------------------------
  427. // Summary:
  428. //     Default object constructor.
  429. //     Construct CXTPCalendarResourcesNf object.
  430. // See Also: ~CXTPCalendarResourcesNf
  431. //-----------------------------------------------------------------------
  432. CXTPCalendarResourcesNf();
  433. //-----------------------------------------------------------------------
  434. // Summary:
  435. //     Default class destructor.
  436. // Remarks:
  437. //     Handles member items deallocation.
  438. // See Also: CXTPCalendarResourcesNf
  439. //-----------------------------------------------------------------------
  440. virtual ~CXTPCalendarResourcesNf();
  441. //-----------------------------------------------------------------------
  442. // Summary:
  443. //     Obtain a pointer to the notification connection object.
  444. // Remarks:
  445. //     Used to subscribe (Advice) for notification events from the
  446. //     control.
  447. // Returns:
  448. //     Connection object pointer.
  449. // See Also: CXTPNotifyConnection overview,
  450. //           IXTPNotificationSink overview
  451. //-----------------------------------------------------------------------
  452. virtual CXTPNotifyConnection* GetConnection();
  453. //-----------------------------------------------------------------------
  454. // Summary:
  455. //     Rebuilds notification connection objects after changes in resources
  456. //     configuration.
  457. //     Call this member function after advising to notifications from
  458. //     connection pointers of the CXTPCalendarResourcesNf object
  459. // See Also: GetConnection, GetResourcesGroupedByDP
  460. //-----------------------------------------------------------------------
  461. virtual void ReBuildInternalData();
  462. //-----------------------------------------------------------------------
  463. // Summary:
  464. //     Call this member function to retrieve a resources collection
  465. //     only for unique data providers.
  466. // Remarks:
  467. //     This method returns a collection of temporary resources objects
  468. //     having only unique data providers.
  469. //     It could be useful to retrieve a complete collection of events for
  470. //     further processing from all data providers in scope of resources
  471. //     collection, and in order not to retrieve duplicate events.
  472. // Returns:
  473. //     A pointer to the internal resources collection which is rebuilt
  474. //     during the ReBuildInternalData method execution.
  475. // See Also: ReBuildInternalData
  476. //-----------------------------------------------------------------------
  477. virtual CXTPCalendarResources* GetResourcesGroupedByDP();
  478. //-----------------------------------------------------------------------
  479. // Summary:
  480. //     Call this member function to retrieve a resource object for specified
  481. //    data provider.
  482. // Remarks:
  483. //     This method returns a resource from temporary intermal collection.
  484. // Returns:
  485. //     A pointer to the internal resource from collection which is rebuilt
  486. //     during the ReBuildInternalData method execution.
  487. // See Also: GetResourcesGroupedByDP, ReBuildInternalData
  488. //-----------------------------------------------------------------------
  489. CXTPCalendarResource* FindByDataProvider(CXTPCalendarData* pData);
  490. protected:
  491. //-----------------------------------------------------------------------
  492. // Summary:
  493. //     This member function catches all the events from the associated
  494. //     data provider and forwards it to CXTPCalendarResourcesNf
  495. //     subscribers.
  496. // Parameters:
  497. //     dwNotifyCode - Events notification code
  498. //     wParam - First user's parameter.
  499. //     lParam - Second user's parameter.
  500. //     dwFlags - Unused parameter.
  501. //-----------------------------------------------------------------------
  502. virtual void OnEvent(XTP_NOTIFY_CODE dwNotifyCode, WPARAM wParam, LPARAM lParam,
  503.  DWORD dwFlags);
  504. private:
  505. //{{AFX_CODEJOCK_PRIVATE
  506. static CXTPCalendarResource* AFX_CDECL FindByDataProvider(CXTPCalendarResources* pResources, CXTPCalendarData* pData);
  507. CXTPCalendarResources m_arResourcesGroupedByDP;
  508. class CXTPNotifyConnection_internal : public CXTPNotifyConnection
  509. {
  510. public:
  511. using CXTPNotifyConnection::CONNECTION_DESCRIPTOR;
  512. using CXTPNotifyConnection::m_arrConnections;
  513. };
  514. CXTPNotifyConnection_internal* m_pConnection;
  515. //}}AFX_CODEJOCK_PRIVATE
  516. };
  517. //////////////////////////////////////////////////////////////////////////
  518. AFX_INLINE UINT CXTPCalendarSchedule::GetID() const {
  519. return m_uScheduleID;
  520. }
  521. AFX_INLINE LPCTSTR CXTPCalendarSchedule::GetName() const {
  522. return m_strScheduleName;
  523. }
  524. AFX_INLINE void CXTPCalendarSchedule::SetID(UINT uScheduleID) {
  525. m_uScheduleID = uScheduleID;
  526. }
  527. AFX_INLINE void CXTPCalendarSchedule::SetName(LPCTSTR pcszScheduleName) {
  528. ASSERT(pcszScheduleName);
  529. m_strScheduleName = pcszScheduleName ? pcszScheduleName : _T("");
  530. }
  531. AFX_INLINE CUIntArray* CXTPCalendarResource::GetSchedules() {
  532. return &m_arScheduleIDs;
  533. }
  534. AFX_INLINE BOOL CXTPCalendarResource::IsSchedulesSetEmpty() const {
  535. return m_arScheduleIDs.GetSize() == 0;
  536. }
  537. AFX_INLINE CXTPCalendarData* CXTPCalendarResource::GetDataProvider() {
  538. ASSERT(this);
  539. return this ? m_pDataProvider : NULL;
  540. }
  541. AFX_INLINE LPCTSTR CXTPCalendarResource::GetName() {
  542. return m_strResourceName;
  543. }
  544. AFX_INLINE void CXTPCalendarResource::SetName(LPCTSTR pcszResourceName) {
  545. ASSERT(pcszResourceName);
  546. m_strResourceName = pcszResourceName ? pcszResourceName : m_strResourceName;
  547. }
  548. /////////////////////////////////////////////////////////////////////////////
  549. AFX_INLINE CXTPNotifyConnection* CXTPCalendarResourcesNf::GetConnection() {
  550. return m_pConnection;
  551. }
  552. AFX_INLINE CXTPCalendarResources* CXTPCalendarResourcesNf::GetResourcesGroupedByDP() {
  553. return &m_arResourcesGroupedByDP;
  554. }
  555. AFX_INLINE CXTPCalendarResource* CXTPCalendarResourcesNf::FindByDataProvider(CXTPCalendarData* pData) {
  556. return FindByDataProvider(GetResourcesGroupedByDP(), pData);
  557. }
  558. AFX_INLINE CXTPCalendarCustomProperties* CXTPCalendarSchedule::GetCustomProperties() {
  559. return m_pCustomProperties;
  560. }
  561. #endif // !defined(_XTPCALENDARRESOURCE_H_)