コード例 #1
0
void CXTPCalendarReminder::SetEvent(CXTPCalendarEvent* pEvent)
{
	if (!pEvent || !pEvent->GetDataProvider())
	{
		ASSERT(FALSE);
		return;
	}

	// data provider
	CMDTARGET_RELEASE(m_pEventDataProvider);

	m_pEventDataProvider = pEvent->GetDataProvider();
	CMDTARGET_ADDREF(m_pEventDataProvider);

	//-----
	m_dtEventStartTime = pEvent->GetStartTime();

	int nRState = pEvent->GetRecurrenceState();
	if (nRState == xtpCalendarRecurrenceNotRecurring)
	{
		m_eEventType = evtNormal;
		m_dwNormalEventID = pEvent->GetEventID();
		return;
	}

	CXTPCalendarRecurrencePatternPtr ptrPattern = pEvent->GetRecurrencePattern();

	if (nRState != xtpCalendarRecurrenceOccurrence &&
		nRState != xtpCalendarRecurrenceException || !ptrPattern)
	{
		ASSERT(FALSE);
		return;
	}

	m_eEventType = evtRecurrence;
	m_RecurrenceEventInfo.m_dwMasterEventID = ptrPattern->GetMasterEventID();

	if (nRState == xtpCalendarRecurrenceOccurrence)
	{
		m_RecurrenceEventInfo.m_dtOccurrenceStartTime = pEvent->GetStartTime();
		m_RecurrenceEventInfo.m_dtOccurrenceEndTime = pEvent->GetEndTime();
	}
	else if (nRState == xtpCalendarRecurrenceException)
	{
		m_RecurrenceEventInfo.m_dtOccurrenceStartTime = pEvent->GetRException_StartTimeOrig();
		m_RecurrenceEventInfo.m_dtOccurrenceEndTime = pEvent->GetRException_EndTimeOrig();
	}
	else
	{
		ASSERT(FALSE);
	}
}
コード例 #2
0
void CXTPSkinManager::SetWindowTheme(HWND hWnd, CXTPSkinManagerSchema* pSchema)
{
    CXTPSkinObject* pSkinObject = Lookup(hWnd);
    if (pSkinObject)
    {
        CMDTARGET_RELEASE(pSkinObject->m_pSchema);
        pSkinObject->m_pSchema = pSchema;
        CMDTARGET_ADDREF(pSchema);

        pSkinObject->OnSkinChanged(m_bEnabled, pSchema ? TRUE : m_bEnabled);
    }

    hWnd = ::GetWindow(hWnd, GW_CHILD);
    while (hWnd)
    {
        SetWindowTheme(hWnd, pSchema);

        hWnd = ::GetWindow(hWnd, GW_HWNDNEXT);
    }
}
コード例 #3
0
ファイル: SimpleReport.cpp プロジェクト: tlogger/TMon
void CSimpleReport::Paste()
{
	if (IsVirtualMode())
		return;

	CWaitCursor _WC;

	CLIPFORMAT uCF_Records = (CLIPFORMAT)::RegisterClipboardFormat(XTPREPORTCTRL_CF_RECORDS);

	CXTPReportRecords arRecords;
	BOOL bTryPasteFromText = TRUE;

	// Retrieve text from the clipboard
	if (!OpenClipboard())
		return;

	if (::IsClipboardFormatAvailable(uCF_Records))
	{
		HGLOBAL hPasteData = ::GetClipboardData(uCF_Records);

		if (hPasteData)
		{
			bTryPasteFromText = FALSE;

			const int cErrTextSize = 1024;
			TCHAR szErrText[cErrTextSize + 1];

			CSharedFile fileSahred;
			fileSahred.SetHandle(hPasteData, FALSE);
			CArchive ar(&fileSahred, CArchive::load);

			try
			{
				CXTPPropExchangeArchive px(ar);
				BOOL bread = FALSE;
			#if _XTPLIB_VERSION_PREFIX == 1502
				bread = _ReadRecordsFromData(&px, arRecords);
			#else
				bread = _ReadRecodsFromData(&px, arRecords);
			#endif
				if (!bread)
				{
					arRecords.RemoveAll();
				}
			}
			catch(CArchiveException* pE)
			{
				if (pE->GetErrorMessage(szErrText, cErrTextSize))
				{
					TRACE(_T("EXCEPTION: CXTPReportControl::Paste() - %s\n"), szErrText);
				}
				pE->Delete();
			}
			catch(CFileException* pE)
			{
				if (pE->GetErrorMessage(szErrText, cErrTextSize))
				{
					TRACE(_T("EXCEPTION: CXTPReportControl::Paste() - %s\n"), szErrText);
				}
				pE->Delete();
			}
			catch(...)
			{
				TRACE(_T("EXCEPTION: CXTPReportControl::Paste() - Unhandled Exception!\n"));
			}

			//*********
			ar.Close(); // detach from file
			fileSahred.Detach(); //detach from data
			::GlobalUnlock(hPasteData); // unlock data
		}
	}

	UINT uCF_TText = sizeof(TCHAR) == 2 ? CF_UNICODETEXT : CF_TEXT;

	if (bTryPasteFromText && ::IsClipboardFormatAvailable(uCF_TText))
	{
		// Try to get text data from the clipboard
		HGLOBAL hglbPaste = ::GetClipboardData(uCF_TText);

		// Import Text data into the control
		if (hglbPaste != NULL)
		{
			TCHAR* lpszClipboard = (TCHAR*)GlobalLock(hglbPaste);
			BOOL bRead = FALSE;
		#if _XTPLIB_VERSION_PREFIX == 1502	 
			bRead = _ReadRecordsFromText(lpszClipboard, arRecords);
		#else
			bRead = _ReadRecodsFromText(lpszClipboard, arRecords);
		#endif
			if (!bRead)
			{
				arRecords.RemoveAll();
			}
			::GlobalUnlock(hglbPaste);
		}
	}

	::CloseClipboard();
	//////////////////////////////////////////////////////////////////////////

	CUpdateContext updateContext(this);

	// Add and Populate records
	CXTPReportRow* pRow = GetFocusedRow();
	if (pRow == NULL)
		return;

	int n = pRow->GetRecord()->GetIndex();
	int nRecordsCount = arRecords.GetCount();
	if (nRecordsCount > 0) {
		for (int i = nRecordsCount - 1; i >= 0; i--) {
			CXTPReportRecord* pRecord = arRecords.GetAt(i);
			if (pRecord) {
				CMDTARGET_ADDREF(pRecord);
				if (m_bAdd)
					GetRecords()->Add(arRecords.GetAt(i));
				else
					GetRecords()->InsertAt(n, arRecords.GetAt(i));
			}
		}
		Populate();
		_SelectRows(&arRecords);
	}
	m_bAdd = false;
}