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(); }
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; }
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; }
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; }
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; }
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(); } }
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(); }
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 ); } }
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; }
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(); }
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; }
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; }
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; }
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; }
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(); }