You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

322 lines
13 KiB
C++

// XTPCalendarCustomDataProvider.h: interface for the CXTPCalendarCustomProperties class.
//
// This file is a part of the XTREME CALENDAR MFC class library.
// (c)1998-2012 Codejock Software, All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
// CONSENT OF CODEJOCK SOFTWARE.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
// SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// support@codejock.com
// http://www.codejock.com
//
/////////////////////////////////////////////////////////////////////////////
//{{AFX_CODEJOCK_PRIVATE
#if !defined(_XTP_CALENDAR_CUSTOM_DATA_PROVIDER_H__)
#define _XTP_CALENDAR_CUSTOM_DATA_PROVIDER_H__
//}}AFX_CODEJOCK_PRIVATE
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
//===========================================================================
// Summary:
// Custom implementation of XTPCalendarData based on notifications.
// Remarks:
// This class is the implementation of the XTPCalendarData abstract
// class which represents a data portion of the Calendar control.
//
// This implementation is based on a notifications mechanism.
// Each significant method sends a custom notification, which could be
// handled by a user and where a custom data access code should be
// implemented.
// See Also:
// CXTPCalendarData overview
//===========================================================================
class _XTP_EXT_CLASS CXTPCalendarCustomDataProvider : public CXTPCalendarData
{
//{{AFX_CODEJOCK_PRIVATE
DECLARE_DYNAMIC(CXTPCalendarCustomDataProvider)
//}}AFX_CODEJOCK_PRIVATE
public:
//-----------------------------------------------------------------------
// Summary:
// Default constructor.
// Remarks:
// Constructs a Data object. To establish a connection to a
// specified data source and initialize the object you must
// call Open() member function immediately after construction.
// See Also: Open()
//-----------------------------------------------------------------------
CXTPCalendarCustomDataProvider();
//-----------------------------------------------------------------------
// Summary:
// Default Destructor.
// Remarks:
// Handles all deallocation.
//-----------------------------------------------------------------------
virtual ~CXTPCalendarCustomDataProvider();
//-----------------------------------------------------------------------
// Summary:
// Call this member function to close the connection to a data source.
//-----------------------------------------------------------------------
virtual void Close();
protected:
//-----------------------------------------------------------------------
// Summary:
// Retrieves day events for a specified day from the data source.
// Parameters:
// dtDay - A specified day.
// Remarks:
// This method retrieves all appointments for a specified day from
// the data source. It includes recurrence appointments occurrences,
// regular appointments for this day, multi day appointments which
// also have a part of this day.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoRetrieveDayEvents which a user can handle and
// implement a custom method.
// Returns:
// A collection of events for a specified day.
// See also:
// XTP_NC_CALENDAR_DoRetrieveDayEvents notification
//-----------------------------------------------------------------------
virtual CXTPCalendarEventsPtr DoRetrieveDayEvents(COleDateTime dtDay);
//-----------------------------------------------------------------------
// Summary:
// Removes all events from the data source.
// Remarks:
// This method removes all appointments from the data source.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoRemoveAllEvents which a user can handle and
// implement a custom method.
// See also:
// XTP_NC_CALENDAR_DoRemoveAllEvents notification
//-----------------------------------------------------------------------
virtual void DoRemoveAllEvents();
//-----------------------------------------------------------------------
// Summary:
// Read event from the data source.
// Parameters:
// dwEventID - Event ID of the read target.
// Remarks:
// This method retrieves all data for a specified event.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoRead_Event which a user can handle and
// implement a custom method.
// Returns:
// A pointer to the new CXTPCalendarEvent object which fields
// are filled with a data from the data source.
// See also:
// XTP_NC_CALENDAR_DoRead_Event notification
//-----------------------------------------------------------------------
virtual CXTPCalendarEventPtr DoRead_Event(DWORD dwEventID);
//-----------------------------------------------------------------------
// Summary:
// Read recurrence pattern from the data source
// Parameters:
// dwPatternID - Pattern ID of the read target.
// Remarks:
// This method retrieves all data for a specified recurrence pattern.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoRead_RPattern which a user can handle and
// implement a custom method.
// Returns:
// A pointer to the new CXTPCalendarRecurrencePatternPtr object which
// fields are filled with a data from the data source.
// See also:
// XTP_NC_CALENDAR_DoRead_RPattern notification
//-----------------------------------------------------------------------
virtual CXTPCalendarRecurrencePatternPtr DoRead_RPattern(DWORD dwPatternID);
//-----------------------------------------------------------------------
// Summary:
// Creates a new event in the data source
// Parameters:
// pEvent - Pointer to the CXTPCalendarEvent object which describes
// all data fields of a newly created record.
// rdwNewEventID - [out] EventID of a newly created record
// Remarks:
// This method creates a data record corresponding with the
// specified event.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoCreate_Event which a user can handle and
// implement a custom method.
// Returns:
// TRUE if event created successfully,
// FALSE in case of any error during the process.
// See also:
// XTP_NC_CALENDAR_DoCreate_Event notification
//-----------------------------------------------------------------------
virtual BOOL DoCreate_Event(CXTPCalendarEvent* pEvent, DWORD& rdwNewEventID);
//-----------------------------------------------------------------------
// Summary:
// Updates event properties in the data source.
// Parameters:
// pEvent - Pointer to the CXTPCalendarEvent object which describes
// all data fields of an event.
// Remarks:
// This method updates a data record corresponding with the
// specified event.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoUpdate_Event which a user can handle and
// implement a custom method.
// Returns:
// TRUE if an event updated successfully,
// FALSE in case of any errors during the process.
// See also:
// XTP_NC_CALENDAR_DoUpdate_Event notification
//-----------------------------------------------------------------------
virtual BOOL DoUpdate_Event (CXTPCalendarEvent* pEvent);
//-----------------------------------------------------------------------
// Summary:
// Deletes an event from the data source.
// Parameters:
// pEvent - Pointer to the CXTPCalendarEvent object which describes
// all data fields of an event.
// Remarks:
// This method deletes a data record corresponding with the
// specified event.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoDelete_Event which a user can handle and
// implement a custom method.
// Returns:
// TRUE if an event deleted successfully,
// FALSE in case of any errors during the process.
// See also:
// XTP_NC_CALENDAR_DoDelete_Event notification
//-----------------------------------------------------------------------
virtual BOOL DoDelete_Event (CXTPCalendarEvent* pEvent);
//-----------------------------------------------------------------------
// Summary:
// Creates a new recurrence pattern in the data source
// Parameters:
// pPattern - Pointer to the CXTPCalendarRecurrencePattern object which
// describes all data fields of a newly created record.
// rdwNewPatternID - [out] ID of a newly created record
// Remarks:
// This method creates a data record corresponding with the
// specified recurrence pattern.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoCreate_RPattern which a user can handle and
// implement a custom method.
// Returns:
// TRUE if recurrence pattern created successfully,
// FALSE in case of any error during the process.
// See also:
// XTP_NC_CALENDAR_DoCreate_RPattern notification
//-----------------------------------------------------------------------
virtual BOOL DoCreate_RPattern (CXTPCalendarRecurrencePattern* pPattern, DWORD& rdwNewPatternID);
//-----------------------------------------------------------------------
// Summary:
// Updates a recurrence pattern in the database
// Parameters:
// pPattern - Pointer to the CXTPCalendarRecurrencePattern object.
// Remarks:
// This method updates a data record corresponding with the
// specified recurrence pattern.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoUpdate_RPattern which a user can handle and
// implement a custom method.
// Returns:
// TRUE if recurrence pattern updated successfully,
// FALSE in case of any error during the process.
// See also:
// XTP_NC_CALENDAR_DoUpdate_RPattern notification
//-----------------------------------------------------------------------
virtual BOOL DoUpdate_RPattern (CXTPCalendarRecurrencePattern* pPattern);
//-----------------------------------------------------------------------
// Summary:
// Deletes a recurrence pattern from the database
// Parameters:
// pPattern - Pointer to the CXTPCalendarRecurrencePattern object
// which should be deleted.
// Remarks:
// This method deletes a data record corresponding with the
// specified recurrence pattern.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoDelete_RPattern which a user can handle and
// implement a custom method.
// Returns:
// TRUE if recurrence pattern deleted successfully,
// FALSE in case of any error during the process.
// See also:
// XTP_NC_CALENDAR_DoDelete_RPattern notification
//-----------------------------------------------------------------------
virtual BOOL DoDelete_RPattern (CXTPCalendarRecurrencePattern* pPattern);
//-----------------------------------------------------------------------
// Summary:
// This method implements Getting all events without generating
// recurrence occurrences.
// Remarks:
// This method actually implements working with the data source.
// Simple events are included as is.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoGetAllEvents_raw which a user can handle and
// implement a custom method.
// Returns:
// A CXTPCalendarEvents pointer containing a collection of
// all events.
// See also:
// XTP_NC_CALENDAR_DoGetAllEvents_raw notification, GetAllEvents_raw()
//-----------------------------------------------------------------------
virtual CXTPCalendarEventsPtr DoGetAllEvents_raw();
//-----------------------------------------------------------------------
// Summary:
// This method implements getting a collection of events expiring in
// the period from dtFrom during next spPeriod.
// Parameters:
// dtFrom - Start date and time of a specified period.
// spPeriod - A duration of a specified period.
// Remarks:
// This method is used by a reminders manager.
//
// This implementation of the method sends a notification
// XTP_NC_CALENDAR_DoGetUpcomingEvents which a user can handle and
// implement a custom method.
// Returns:
// A CXTPCalendarEvents pointer containing a collection of
// upcoming events.
// See Also:
// CXTPCalendarRemindersManager overview,
// XTP_NC_CALENDAR_DoGetUpcomingEvents notification.
//-----------------------------------------------------------------------
virtual CXTPCalendarEventsPtr DoGetUpcomingEvents(COleDateTime dtFrom, COleDateTimeSpan spPeriod);
};
///////////////////////////////////////////////////////////////////
#endif // !defined(_XTP_CALENDAR_CUSTOM_DATA_PROVIDER_H__)