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.

196 lines
5.1 KiB
C++

// 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;
}