// XTPCalendarCustomDataProvider.cpp: implementation of 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 // ///////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "Common/XTPSmartPtrInternalT.h" #include "XTPCalendarDefines.h" #include "XTPCalendarNotifications.h" #include "XTPCalendarData.h" #include "XTPCalendarCustomDataProvider.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif IMPLEMENT_DYNAMIC(CXTPCalendarCustomDataProvider, CXTPCalendarData) CXTPCalendarCustomDataProvider::CXTPCalendarCustomDataProvider() { m_typeProvider = xtpCalendarDataProviderCustom; SetCacheMode(xtpCalendarDPCacheModeOnRepeat); } CXTPCalendarCustomDataProvider::~CXTPCalendarCustomDataProvider() { } void CXTPCalendarCustomDataProvider::Close() { if (!IsOpen()) { CXTPCalendarData::Open(); } CXTPCalendarData::Close(); } CXTPCalendarEventsPtr CXTPCalendarCustomDataProvider::DoRetrieveDayEvents(COleDateTime dtDay) { CXTPCalendarEventsPtr ptrEvents; WPARAM wParam = (XTP_DATE_VALUE)(double)dtDay; LPARAM lParam = (LPARAM)&ptrEvents; SendNotification(XTP_NC_CALENDAR_DoRetrieveDayEvents, wParam, lParam); return ptrEvents; } void CXTPCalendarCustomDataProvider::DoRemoveAllEvents() { SendNotification(XTP_NC_CALENDAR_DoRemoveAllEvents, 0, 0); } CXTPCalendarEventPtr CXTPCalendarCustomDataProvider::DoRead_Event(DWORD dwEventID) { CXTPCalendarEventPtr ptrEvent; WPARAM wParam = (WPARAM)dwEventID; LPARAM lParam = (LPARAM)&ptrEvent; SendNotification(XTP_NC_CALENDAR_DoRead_Event, wParam, lParam); return ptrEvent; } CXTPCalendarRecurrencePatternPtr CXTPCalendarCustomDataProvider::DoRead_RPattern(DWORD dwPatternID) { CXTPCalendarRecurrencePatternPtr ptrPattern; WPARAM wParam = (WPARAM)dwPatternID; LPARAM lParam = (LPARAM)&ptrPattern; SendNotification(XTP_NC_CALENDAR_DoRead_RPattern, wParam, lParam); return ptrPattern; } BOOL CXTPCalendarCustomDataProvider::DoCreate_Event(CXTPCalendarEvent* pEvent, DWORD& rdwNewEventID) { BOOL bResult = -1; XTP_CALENDAR_WPARAM2 wParamX2; wParamX2.wParam1 = (WPARAM)pEvent; wParamX2.wParam2 = (WPARAM)&rdwNewEventID; WPARAM wParam = (WPARAM)&wParamX2; LPARAM lParam = (LPARAM)&bResult; SendNotification(XTP_NC_CALENDAR_DoCreate_Event, wParam, lParam); return bResult > 0; } BOOL CXTPCalendarCustomDataProvider::DoUpdate_Event (CXTPCalendarEvent* pEvent) { BOOL bResult = -1; WPARAM wParam = (WPARAM)pEvent; LPARAM lParam = (LPARAM)&bResult; SendNotification(XTP_NC_CALENDAR_DoUpdate_Event, wParam, lParam); return bResult > 0; } BOOL CXTPCalendarCustomDataProvider::DoDelete_Event (CXTPCalendarEvent* pEvent) { BOOL bResult = -1; WPARAM wParam = (WPARAM)pEvent; LPARAM lParam = (LPARAM)&bResult; SendNotification(XTP_NC_CALENDAR_DoDelete_Event, wParam, lParam); return bResult > 0; } BOOL CXTPCalendarCustomDataProvider::DoCreate_RPattern(CXTPCalendarRecurrencePattern* pPattern, DWORD& rdwNewPatternID) { BOOL bResult = -1; XTP_CALENDAR_WPARAM2 wParamX2; wParamX2.wParam1 = (WPARAM)pPattern; wParamX2.wParam2 = (WPARAM)&rdwNewPatternID; WPARAM wParam = (WPARAM)&wParamX2; LPARAM lParam = (LPARAM)&bResult; SendNotification(XTP_NC_CALENDAR_DoCreate_RPattern, wParam, lParam); return bResult > 0; } BOOL CXTPCalendarCustomDataProvider::DoUpdate_RPattern(CXTPCalendarRecurrencePattern* pPattern) { BOOL bResult = -1; WPARAM wParam = (WPARAM)pPattern; LPARAM lParam = (LPARAM)&bResult; SendNotification(XTP_NC_CALENDAR_DoUpdate_RPattern, wParam, lParam); return bResult > 0; } BOOL CXTPCalendarCustomDataProvider::DoDelete_RPattern(CXTPCalendarRecurrencePattern* pPattern) { BOOL bResult = -1; WPARAM wParam = (WPARAM)pPattern; LPARAM lParam = (LPARAM)&bResult; SendNotification(XTP_NC_CALENDAR_DoDelete_RPattern, wParam, lParam); return bResult > 0; } CXTPCalendarEventsPtr CXTPCalendarCustomDataProvider::DoGetAllEvents_raw() { CXTPCalendarEventsPtr ptrEvents; WPARAM wParam = 0; LPARAM lParam = (LPARAM)&ptrEvents; SendNotification(XTP_NC_CALENDAR_DoGetAllEvents_raw, wParam, lParam); return ptrEvents; } CXTPCalendarEventsPtr CXTPCalendarCustomDataProvider::DoGetUpcomingEvents(COleDateTime dtFrom, COleDateTimeSpan spPeriod) { CXTPCalendarEventsPtr ptrEvents; XTP_CALENDAR_WPARAM2 wParamX2; wParamX2.wParam1 = (WPARAM)&dtFrom; wParamX2.wParam2 = (WPARAM)&spPeriod; WPARAM wParam = (WPARAM)&wParamX2; LPARAM lParam = (LPARAM)&ptrEvents; SendNotification(XTP_NC_CALENDAR_DoGetUpcomingEvents, wParam, lParam); return ptrEvents; }