Beispiel #1
0
void CUserMeetingDlg::OnCancel()
{
	if (AfxMessageBox(IDS_QUITPROMPT, MB_OKCANCEL | MB_ICONQUESTION | MB_DEFBUTTON2) != IDOK) return;
	
	CXMLElement* pXML = new CXMLElement( NULL, ISyncDataView );
	pXML->AddAttribute( "method", "update" );
	
	CXMLElement* pSync = pXML->AddElement( "table_name" );
	pSync->SetValue( "xmeetingroomlist" );
	
	pSync = pXML->AddElement( "column_name" );
	pSync->SetValue( "set xmeetingused = '0'" );
	
	CString str;
	str.Format( "xmeetingroomfee = '%s'", Network.m_xUserId );
	
	pSync = pXML->AddElement( "search_condition" );
	pSync->SetValue( (LPCTSTR)str );
	
	Network.SendPacket( new CSyncDataView( pXML ) );
	delete pXML;
#if 1
	pXML = new CXMLElement( NULL, ISyncHostFile );
	pXML->AddAttribute( "method", "bye" );
	
	Network.SendPacket( new CSyncHostFile(pXML) );
	delete pXML;
#endif
	
	CDialog::OnCancel();
}
Beispiel #2
0
BOOL CGroupingDlg::ProcessUpdate(CXMLElement* pParent, LPCTSTR lpszMethod)
{
	CXMLElement* pXML = new CXMLElement( NULL, ISyncDataView );
	pXML->AddAttribute( "method", lpszMethod );
	
	CXMLElement* pSync = pXML->AddElement( "table_name" );
	pSync->SetValue( "xphonemeetinggroupmore" );
	
	CXMLElement* pMap = pParent->GetFirstElement();
	ASSERT( pMap != NULL );
	
	CString str;
	FormatUpdate( pMap, str );
	
	pSync = pXML->AddElement( "column_name" );
	pSync->SetValue( "set " + str );
	
	str.Format( "xjsjbh in (select xjsjbh from xuser_info"
				" where xphone='%s')", Network.m_xUserId );
	FormatMapping( pParent, str );
	
	pSync = pXML->AddElement( "search_condition" );
	pSync->SetValue( (LPCTSTR)str );
	
	Network.SendPacket( new CSyncDataView( pXML ) ); delete pXML;
	
	return TRUE;
}
Beispiel #3
0
BOOL CGroupingDlg::CreateGroup(LPCTSTR lpszName, CXMLElement* pParent)
{
	CXMLElement* pXML = new CXMLElement( NULL, ISyncDataView );
	pXML->AddAttribute( "method", "insert into" );
	
	CXMLElement* pSync = pXML->AddElement( "table_name" );
	pSync->SetValue( "xphonemeetinggroup" );
	
	CString str;
	str.Format( "(xjsjbh, xgroupnum, xgroupname)"
				" select a.xjsjbh, isnull(max(b.xgroupnum),0)+1, '%s' from xuser_info a"
				" left join xphonemeetinggroup b on b.xjsjbh = a.xjsjbh"
				" where a.xphone='%s'"
#if 0
				" group by a.xjsjbh", lpszName, Network.m_xUserId );
#else
				" and '%s' not in (select xgroupname from xphonemeetinggroup"
					" where xjsjbh in (select xjsjbh from xuser_info where xphone='%s'))"
				" group by a.xjsjbh", lpszName, Network.m_xUserId, lpszName, Network.m_xUserId );
#endif
	
	pSync = pXML->AddElement( "column_name" );
	pSync->SetValue( (LPCTSTR)str );
	
	Network.SendPacket( new CSyncDataView( pXML ) ); delete pXML;
	
	m_wndGroup.SetItemDataPtr( m_wndGroup.AddString( lpszName ), pParent );
	m_wndList.DeleteAllItems();
	
	return TRUE;
}
Beispiel #4
0
BOOL CGroupingDlg::ProcessInsert(CXMLElement* pParent, LPCTSTR lpszMethod)
{
	CXMLElement* pXML = new CXMLElement( NULL, ISyncDataView );
	pXML->AddAttribute( "method", lpszMethod );
	
	CXMLElement* pSync = pXML->AddElement( "table_name" );
	pSync->SetValue( "xphonemeetinggroupmore" );
	
	CString str;
	str.Format( "(xjsjbh,xgroupnum,xphone,xname,xgrouprow)"
				" select a.xjsjbh,a.xgroupnum,'%s','%s',isnull(max(b.xgrouprow),0)+1"
				" from xphonemeetinggroup a"
				" left join xphonemeetinggroupmore b on b.xjsjbh=a.xjsjbh and a.xgroupnum=b.xgroupnum"
				" where a.xgroupname = '%s' and a.xjsjbh in"
					" (select xjsjbh from xuser_info where xphone='%s')"
				" group by a.xjsjbh,a.xgroupnum",
				pParent->GetAttributeValue( _T("xphone") ),
				pParent->GetAttributeValue( _T("xname") ),
				pParent->GetAttributeValue( _T("xgroupname") ),
				Network.m_xUserId );

	pSync = pXML->AddElement( "column_name" );
	pSync->SetValue( (LPCTSTR)str );
	
	Network.SendPacket( new CSyncDataView( pXML ) ); delete pXML;
	
	return TRUE;
}
Beispiel #5
0
BOOL CChannel::JoinTalk(LPCTSTR xRemoteId, LPCTSTR xCallerId)
{
	ASSERT( IsConnected() );
	
	CXMLElement* pXML = new CXMLElement( NULL, ISyncHostLink );
	pXML->AddAttribute( "method", "dial" );
	
	CXMLElement* pSync = pXML->AddElement( "RemoteId" );
	pSync->SetValue( xRemoteId );
	
	if ( xCallerId && _tcslen(xCallerId) )
	{
		pSync = pXML->AddElement( "CallerId" );
		pSync->SetValue( xCallerId );
	}
	
	SendPacket( new CSyncHostLink(pXML) );
	delete pXML;
	
	m_bNavigated = TRUE;
	m_tNavigated = GetTickCount();

	CopyMemory( m_xCallType, CA_TALK, MAX_CALLTYPE );
	
	return TRUE;
}
Beispiel #6
0
void CGroupingDlg::OnSyncOrderRelation()
{
	CXMLElement* pXML = new CXMLElement( NULL, ISyncDataView );
	pXML->AddAttribute( "method", "select" );
	
	CXMLElement* pSync = pXML->AddElement( "column_expression" );
	pSync->SetValue( "a.xphone, a.xname, a.xgroupnum, b.xgroupname" );
	
	pSync = pXML->AddElement( "table_name" );
	pSync->SetValue( "from xphonemeetinggroupmore a"
		" inner join xphonemeetinggroup b on a.xjsjbh=b.xjsjbh"
			" and a.xgroupnum=b.xgroupnum" );
	
	CString str;
	str.Format( "a.xjsjbh in (select xjsjbh from xuser_info "
				"where xphone = '%s')", Network.m_xUserId );
	
	pSync = pXML->AddElement( "search_condition" );
	pSync->SetValue( (LPCTSTR)str );
	
	Network.SendPacket( new CSyncDataView(pXML) );
	delete pXML; pXML = NULL;
	
	if ( ! Network.CallWorker( &pXML, INFINITE ) )
	{
		OnSyncDataViewResp( pXML );
		//pXML->Delete();
	}
}
Beispiel #7
0
void CUserMeetingDlg::OnTimer(UINT nIDEvent) 
{
	CXMLElement* pXML = new CXMLElement( NULL, ISyncDataView );
	pXML->AddAttribute( "method", "select" );
	
	CXMLElement* pSync = pXML->AddElement( "column_expression" );
	pSync->SetValue( "xmeetingphone, xmeetingphonestate=case"
					" when xmeetingphonestate='0' then '等待'"
					" when xmeetingphonestate='1' then '呼叫'"
					" when xmeetingphonestate='2' then '在线'"
					" else '其他' end" );
	
	pSync = pXML->AddElement( "table_name" );
	pSync->SetValue( "from xmeetingroom" );
	
	CString str;
	str.Format( "xmeetingroomcode=(select xmeetingroomcode"
		" from xmeetingroomlist where xmeetingroomfee='%s' and xmeetingused='1')", Network.m_xUserId );
	
	pSync = pXML->AddElement( "search_condition" );
	pSync->SetValue( (LPCTSTR)str );
	
	Network.SendPacket( new CSyncDataView(pXML) );
	delete pXML; pXML = NULL;
	
	if ( Network.CallWorker( &pXML, INFINITE ) ) return;
	
	int nItem = 0;
	POSITION posNext = pXML->GetElementIterator();
	for ( POSITION pos = posNext ; pos ; pos = posNext )
	{
		CXMLElement* pSync = pXML->GetNextElement( posNext );
		
		CString strDebug = pSync->GetAttributeValue( "xmeetingphone" );
		if ( m_wndList.GetItemText(nItem, 0).CompareNoCase( strDebug ) )
		{
			m_wndList.DeleteItem( nItem );
			posNext = pos; continue;
		}
		
		CString strValue = pSync->GetAttributeValue( "xmeetingphonestate" );
		m_wndList.SetItemText( nItem, 2, strValue );
		
		nItem++;
	}
	for ( ; nItem < m_wndList.GetItemCount(); nItem )
	{
		m_wndList.DeleteItem( nItem );
	}
	
	pXML->Delete();
}
Beispiel #8
0
void CUserMeetingDlg::OnOK()
{
	CXMLElement* pXML = new CXMLElement( NULL, ISyncDataView );
	pXML->AddAttribute( "method", "update" );
	
	CXMLElement* pSync = pXML->AddElement( "table_name" );
	pSync->SetValue( "xmeetingroomlist" );
	
	CString str;
	str.Format( "set xmeetingused = '1', xmeetingroomfee = '%s'", Network.m_xUserId );
	
	pSync = pXML->AddElement( "column_name" );
	pSync->SetValue( (LPCTSTR)str );
#if 0
	str.Format( "xmeetingroomcode in (select top 1 xmeetingroomcode"
		" from xmeetingroomlist where xmeetingused!='1' and xmeetingroomcode"
		" not in (select xmeetingroomcode from xmeetingroom))" );
#else
	str.Format( "xmeetingroomcode in (select top 1 xmeetingroomcode"
		" from xmeetingroomlist where xmeetingused!='1')" );
#endif
	
	pSync = pXML->AddElement( "search_condition" );
	pSync->SetValue( (LPCTSTR)str );
	
	Network.SendPacket( new CSyncDataView( pXML ) );
	delete pXML;
#if 0
	pXML = new CXMLElement( NULL, ISyncHostFile );
	pXML->AddAttribute( "method", "meeting" );
	
	Network.SendPacket( new CSyncHostFile( pXML ) );
	delete pXML;
#else
	pXML = new CXMLElement( NULL, ISyncHostFile );
	pXML->AddAttribute( "method", "talk" );
	
	Network.SendPacket( new CSyncHostFile(pXML) );
	delete pXML;
#endif
	GetDlgItem( IDOK )->EnableWindow( FALSE );
	
	CGraphRender*& pRenderer = m_pRenderer;
	if ( ! pRenderer ) pRenderer = new CGraphRender( Network.m_xUserId );
	
	CDatagrams* pDatagram = Datagrams.SeekNext(Payload_Alaw);
	pRenderer->RenderPreview( PreviewPayload(PayloadMask_Audio), NULL, (DWORD)pDatagram );
	
	SetTimer( 1, 6000, NULL );
	PostMessage( WM_TIMER, 1 );
}
void CSchemaMember::SetValueTo(CXMLElement* pBase, LPCTSTR pszValue)
{
	if ( CXMLElement* pElement = pBase->GetElementByName( m_sName ) )
	{
		if ( m_bElement && pszValue != NULL && _tcslen( pszValue ) > 0 )
			pElement->SetValue( pszValue );
		else
			pElement->Delete();
	}
	else if ( m_bElement && pszValue != NULL && _tcslen( pszValue ) > 0 )
	{
		CXMLElement* pElement = pBase->AddElement( m_sName );
		pElement->SetValue( pszValue );
	}
	
	if ( CXMLAttribute* pAttribute = pBase->GetAttribute( m_sName ) )
	{
		if ( ! m_bElement && pszValue != NULL && _tcslen( pszValue ) > 0 )
			pAttribute->SetValue( pszValue );
		else
			pAttribute->Delete();
	}
	else if ( ! m_bElement && pszValue != NULL && _tcslen( pszValue ) > 0 )
	{
		pBase->AddAttribute( m_sName, pszValue );
	}
}
Beispiel #10
0
int WINAPI XLoginHost(LPCTSTR xUserId, LPCTSTR xPassword, BOOL bTestor)
{
	CSingleLock pLock( &Network.m_pSection, TRUE );
	
	CXMLElement* pXML = new CXMLElement( NULL, ISyncOrderRelation );
	pXML->AddAttribute( "method", "login" );
	
	if ( bTestor ) pXML->AddAttribute( "operator" );
	
	CXMLElement* pSync = pXML->AddElement( "UserId" );
	pSync->SetValue( xUserId );
	
	CString strValue;
	int nLength	= CalcHashBytes( strValue.GetBuffer(32), xPassword );
	strValue.ReleaseBuffer( nLength );
	
	pSync = pXML->AddElement( "Hashing" );
	pSync->SetValue( strValue );
	
	Network.SendPacket( new CSyncOrderRelation(pXML) );
	delete pXML; pXML = NULL;
	
	Network.SetUserId( xUserId );
	pLock.Unlock();
	
	int nResult = Network.CallWorker( &pXML );
	if ( ! nResult ) nResult = ParseMatch( pXML, "Welcome" );
	
	pXML->Delete();
	if ( nResult ) {XDisconnect(); return nResult;}
	
	// Datagrams
	
	SOCKADDR_IN	pHost;
	CopyMemory( &pHost, &Network.m_pHost, sizeof(pHost) );
	
	CDatagrams* pDatagram = &Datagrams;
	pHost.sin_port = pDatagram->m_pHost.sin_port;
	pDatagram->JoinMirror( &pHost, Network.m_xUserId );
	
	pDatagram = pDatagram->m_pNext;
	pHost.sin_port = pDatagram->m_pHost.sin_port;
	pDatagram->JoinMirror( &pHost, Network.m_xUserId );
	
	return nResult;
}
Beispiel #11
0
void CUserChannel::PutHangup()
{
	CXMLElement* pSync = new CXMLElement( NULL, "SyncOrderRelation" );
	
	CXMLElement* pSub = pSync->AddElement( "MsgType" );
	pSub->SetValue( "BYE" );
	
//	SendPacket( new CSyncOrderRelation( pSync ) ); delete pSync;
	
	m_bNavigated = FALSE;
	m_tNavigated = GetTickCount();
}
Beispiel #12
0
void CUserMeetingDlg::PutIntoPhone(LPCTSTR lpszPhone, LPCTSTR lpszName)
{
	int nItem = m_wndList.InsertItem( m_wndList.GetItemCount(), lpszPhone );
	m_wndList.SetItemText( nItem, 1, lpszName );
	
	CXMLElement* pXML = new CXMLElement( NULL, ISyncDataView );
	pXML->AddAttribute( "method", "insert into" );
	
	CXMLElement* pSync = pXML->AddElement( "table_name" );
	pSync->SetValue( "xmeetingroom" );
	
	CString str;
	str.Format( "(xmeetingroomcode, xmeetingphone)"
				" select xmeetingroomcode, '%s' from xmeetingroomlist"
				" where xmeetingused='1' and xmeetingroomfee = '%s'", lpszPhone, Network.m_xUserId );
	
	pSync = pXML->AddElement( "column_name" );
	pSync->SetValue( (LPCTSTR)str );
	
	Network.SendPacket( new CSyncDataView( pXML ) );
	delete pXML;
}
Beispiel #13
0
HRESULT WINAPI XDialupWith(LPCTSTR xRemoteId, LPCTSTR xCallerId)
{
	CXMLElement* pXML = new CXMLElement( NULL, ISyncHostFile );
	pXML->AddAttribute( "method", "dialup" );
	
	CXMLElement* pSync = pXML->AddElement( "RemoteId" );
	pSync->SetValue( xRemoteId );
	
	if ( xCallerId && _tcslen(xCallerId) )
	{
		pSync = pXML->AddElement( "CallerId" );
		pSync->SetValue( xCallerId );
	}
	
	BOOL bResult = Network.DialupWith( pXML );
	pXML->Delete();
	
	if ( ! bResult ) return S_FALSE;
	//	XRenderPreview(PreviewPayload(PayloadMask_Video|PayloadMask_Audio), Network.m_xUserId);
	XRenderPreview(PreviewPayload(PayloadMask_Audio), Network.m_xUserId);
	
	return S_OK;
}
Beispiel #14
0
BOOL CChannel::PutDialup(LPCTSTR xRemoteId, LPCTSTR xCallerId)
{
	ASSERT( IsConnected() );
	CXMLElement* pSync = new CXMLElement( NULL, "SyncOrderRelation" );
	
	CXMLElement* pSub = pSync->AddElement( "MsgType" );
	pSub->SetValue( "Dialup" );
	
//	pSub = pSync->AddElement( "LocalId" );
//	pSub->SetValue( ( xLocalId && _tcslen(xLocalId) ) ? xLocalId : m_xUserId );
	
	pSub = pSync->AddElement( "RemoteId" );
	pSub->SetValue( xRemoteId );
	
	pSub = pSync->AddElement( "CallType" );
	pSub->SetValue( CA_HOOK );
	
//	SendPacket( new CSyncOrderRelation( pSync ) ); delete pSync;
	
	m_bNavigated = TRUE;
	m_tNavigated = GetTickCount();
	
	return TRUE;
}
Beispiel #15
0
BOOL CPlayerWnd::SaveXML()
{
	CXMLElement* pXML = new CXMLElement( NULL, _T("XlivePlayer") );
	
	for ( int nItem = 0; nItem < m_wndHistory.GetCount(); nItem++ )
	{
		CString strUrl;
		m_wndHistory.GetLBText( nItem, strUrl );
		
		CXMLElement* pMap = pXML->AddElement( _T("Cookie") );
		pMap->SetValue( strUrl );
	}
	
	BOOL bResult = SaveXML( pXML );
	pXML->Delete();
	
	return bResult;
}
Beispiel #16
0
void CProfileProfilePage::OnOK()
{
	UpdateData();

	if ( CXMLElement* pLocation = MyProfile.GetXML( _T("location"), TRUE ) )
	{
		if ( CXMLElement* pPolitical = pLocation->GetElementByName( _T("political"), TRUE ) )
		{
			if ( m_sLocCountry.GetLength() )
			{
				pPolitical->AddAttribute( _T("country"), m_sLocCountry );
			}
			else
			{
				if ( CXMLAttribute* pAttr = pPolitical->GetAttribute( _T("country") ) )
					pAttr->Delete();
			}

			int nPos = m_sLocCity.Find( _T(", ") );

			if ( nPos >= 0 )
			{
				pPolitical->AddAttribute( _T("city"), m_sLocCity.Left( nPos ) );
				pPolitical->AddAttribute( _T("state"), m_sLocCity.Mid( nPos + 2 ) );
			}
			else if ( m_sLocCity.GetLength() )
			{
				pPolitical->AddAttribute( _T("city"), m_sLocCity );
				if ( CXMLAttribute* pAttr = pPolitical->GetAttribute( _T("state") ) )
					pAttr->Delete();
			}
			else
			{
				if ( CXMLAttribute* pAttr = pPolitical->GetAttribute( _T("city") ) )
					pAttr->Delete();
				if ( CXMLAttribute* pAttr = pPolitical->GetAttribute( _T("state") ) )
					pAttr->Delete();
			}

			if ( pPolitical->GetElementCount() == 0 && pPolitical->GetAttributeCount() == 0 )
				pPolitical->Delete();
		}

		if ( CXMLElement* pCoordinates = pLocation->GetElementByName( _T("coordinates"), TRUE ) )
		{
			CString strValue;
			float nValue = 0;

			if ( _stscanf( m_sLocLatitude, _T("%f"), &nValue ) == 1 )
			{
				if ( m_sLocLatitude.Find( 'S' ) >= 0 ) nValue *= -1;
				strValue.Format( _T("%f"), double( nValue ) );
				pCoordinates->AddAttribute( _T("latitude"), strValue );
			}

			if ( _stscanf( m_sLocLongitude, _T("%f"), &nValue ) == 1 )
			{
				if ( m_sLocLongitude.Find( 'W' ) >= 0 ) nValue *= -1;
				strValue.Format( _T("%f"), double( nValue ) );
				pCoordinates->AddAttribute( _T("longitude"), strValue );
			}

			if ( nValue == 0 ) pCoordinates->Delete();
		}

		if ( pLocation->GetElementCount() == 0 ) pLocation->Delete();
	}

	if ( CXMLElement* pInterests = MyProfile.GetXML( _T("interests"), TRUE ) )
	{
		pInterests->DeleteAllElements();

		for ( int nItem = 0 ; nItem < m_wndInterestList.GetCount() ; nItem++ )
		{
			CString str;
			m_wndInterestList.GetText( nItem, str );
			CXMLElement* pInterest = pInterests->AddElement( _T("interest") );
			pInterest->SetValue( str );
		}

		if ( pInterests->GetElementCount() == 0 ) pInterests->Delete();
	}

	CSettingsPage::OnOK();
}