// FTDSet.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "FTDSet.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CFTDSet dialog #include "MainFrm.h" #include "ProcessSocket.h" #include "DLG_Back_Add.h" #include "DLG_User_InportP2.h" #include "DLG_Back_Export.h" #include "DLG_TDSet_Modify.h" #include "DLG_Find_TDSet.h" CFTDSet::CFTDSet(CWnd* pParent /*=NULL*/) : CDialog(CFTDSet::IDD, pParent) { //{{AFX_DATA_INIT(CFTDSet) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_bInit = false; m_bRefresh = false; m_bRefresh2= false; m_CliSmsTDData = NULL; memset(&m_CliSmsTD,0,sizeof(m_CliSmsTD)); } void CFTDSet::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CFTDSet) DDX_Control(pDX, IDC_QUERYFILT_LIST, m_wndList); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CFTDSet, CDialog) //{{AFX_MSG_MAP(CFTDSet) ON_WM_SIZE() ON_NOTIFY(NM_DBLCLK, IDC_QUERYFILT_LIST, OnDblclkQueryfiltList) ON_NOTIFY(LVN_KEYDOWN, IDC_QUERYFILT_LIST, OnKeydownQueryfiltList) ON_NOTIFY(NM_RCLICK, IDC_QUERYFILT_LIST, OnRclickQueryfiltList) ON_WM_DESTROY() //}}AFX_MSG_MAP ON_COMMAND( MENU_BACK_ADD , On_R_Add ) ON_COMMAND( MENU_BACK_MODIFY , On_R_Modify ) ON_COMMAND( MENU_BACK_DELETE , On_R_Delete ) ON_COMMAND( MENU_BACK_INPORT , On_R_Inport ) ON_COMMAND( MENU_BACK_EXPORT , On_R_Export ) ON_COMMAND( MENU_BACK_REFRESH, On_R_Refresh ) ON_COMMAND( MENU_BACK_FIND, On_R_Find ) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CFTDSet message handlers BOOL CFTDSet::OnInitDialog() { CDialog::OnInitDialog(); //取得共用参数 //CMainFrame * pFrame = static_cast ((CMainFrame *)AfxGetMainWnd()); this->GetParent()->GetParentFrame(); m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame(); m_pSocket = &m_pMainFrame->m_Socket; m_AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection ); m_AdoRS2.SetAdoConnection( &m_pMainFrame->m_adoConnection ); //初始化List m_Image.Create(16,16,ILC_COLOR32|ILC_MASK,5,5); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_TDSET) ); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) ); m_wndList.SubClassWindow2(); m_wndList.SetHeadings(_T("序号,50; 状态,60; 手机号码,100; 移动通道,100; 联通通道,100; 小灵通通道,100; 电信通道,100;通道标识,80;是否全网,80;说明,250;")); m_wndList.SetGridLines(true); //m_wndList.SetCheckboxes(true); m_wndList.SetImageList(&m_Image,LVSIL_SMALL); //m_wndList.SetBkColor( RGB(237,191,175) ); //m_wndList.SetTextBkColor( RGB(237,191,175) ); m_bInit = true; return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CFTDSet::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); if ( m_bInit ) { m_wndList.MoveWindow( 0 , 0 , cx,cy); } } void CFTDSet::OnOK() { //CDialog::OnOK(); } void CFTDSet::OnCancel() { //CDialog::OnCancel(); } BOOL CFTDSet::ReHide() { ShowWindow( SW_HIDE ); return true; } BOOL CFTDSet::ReShow(BOOL bRefresh) { ShowWindow( SW_SHOW ); if ( bRefresh || !m_bRefresh ) { RefreshInfo(); } return true; } BOOL CFTDSet::RefreshInfo() { //发送请求查看 REQ_CliSmsTD * pSee = new REQ_CliSmsTD; memset( pSee , 0 , sizeof(REQ_CliSmsTD) ); pSee->lType = 0; //取通道 pSee->lCorpID = m_pMainFrame->m_lCorpID; m_pMainFrame->SendFrame( SMSFUNC_CLISMSTD , (BYTE*)pSee , sizeof(REQ_CliSmsTD) ); return true; } BOOL CFTDSet::ProcessSocket(Socket_Head *pHead) { if ( pHead->lFuncType == SMSFUNC_CLISMSTD ) { ANS_CliSmsTD * pTD = (ANS_CliSmsTD *)pHead->pFrame; m_CliSmsTD = *pTD; //复制通道数据 if ( m_CliSmsTDData ) {delete m_CliSmsTDData;m_CliSmsTDData=NULL;} long lDataLen=pHead->lFrameLen - sizeof(ANS_CliSmsTD); m_CliSmsTDData = new BYTE[lDataLen]; memcpy(m_CliSmsTDData,pHead->pFrame+sizeof(ANS_CliSmsTD),lDataLen); m_bRefresh = true; //发送请求查看号码通道设置情况 REQ_TDSet_Get * pSee = new REQ_TDSet_Get; memset( pSee , 0 , sizeof(REQ_TDSet_Get) ); pSee->lCorpID = m_pMainFrame->m_lCorpID; pSee->lUserID = m_pMainFrame->m_lUserID; m_pMainFrame->SendFrame( SMSFUNC_TDSET_GET , (BYTE*)pSee , sizeof(REQ_TDSet_Get) ); return true; } return false; } void CFTDSet::ShowRMenu() { CMenu menu; menu.CreatePopupMenu(); BOOL bLock = false; long lItem = this->GetCurrentSelected(); //添加 menu.AppendMenu(MF_STRING , MENU_BACK_ADD, _T(" 添 加 ") ); menu.AppendMenu(MF_SEPARATOR ); //修改 if ( lItem >=0 && !bLock) { menu.AppendMenu(MF_STRING , MENU_BACK_MODIFY, _T(" 修 改 ") ); menu.AppendMenu(MF_STRING , MENU_BACK_DELETE, _T(" 删 除 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_BACK_MODIFY, _T(" 修 改 ") ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_BACK_DELETE, _T(" 删 除 ") ); } menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_BACK_FIND, _T(" 查找... ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_BACK_INPORT, _T(" 导入... ") ); menu.AppendMenu(MF_STRING , MENU_BACK_EXPORT, _T(" 导出... ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_BACK_REFRESH, _T(" 刷 新 ") ); //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } long CFTDSet::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndList.GetNextSelectedItem(pos); } return -1; } void CFTDSet::OnDblclkQueryfiltList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; On_R_Modify(); } void CFTDSet::OnKeydownQueryfiltList(NMHDR* pNMHDR, LRESULT* pResult) { LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR; *pResult = 0; if ( pLVKeyDow->wVKey == VK_DELETE ) { On_R_Delete(); } if ( pLVKeyDow->wVKey == VK_INSERT) { On_R_Add(); } if ( pLVKeyDow->wVKey == VK_SPACE) { On_R_Modify(); } if ( pLVKeyDow->wVKey == 'I' || pLVKeyDow->wVKey == 'i') { On_R_Inport(); } if ( pLVKeyDow->wVKey == 'R' || pLVKeyDow->wVKey == 'r') { On_R_Refresh(); } if ( pLVKeyDow->wVKey == 'A' || pLVKeyDow->wVKey == 'a') { m_wndList.SelectAllItems(); } } void CFTDSet::OnRclickQueryfiltList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu(); } void CFTDSet::On_R_Add() { ANS_TDSet_Data data={0}; data.lStatus = 1; //默认启动 _tcscpy(data.szOutAll , _T("0")); _tcscpy(data.szTD , _T("0000")); DLG_TDSet_Modify dlg(this); dlg.SetParam(m_CliSmsTD ,m_CliSmsTDData ,data,1 ); if ( dlg.DoModal()==IDOK ) { data = dlg.GetParam(); //发送请求查看 REQ_TDSet_Ins * pModify = new REQ_TDSet_Ins; memset( pModify , 0 , sizeof(REQ_TDSet_Ins) ); data.lCorpID = m_pMainFrame->m_lCorpID; pModify->data = data; pModify->lCount = 1; m_pMainFrame->SendFrame( SMSFUNC_TDSET_INS , (BYTE*)pModify , sizeof(REQ_TDSet_Ins) ); } } void CFTDSet::On_R_Modify() { long lItem = this->GetCurrentSelected(); if ( lItem < 0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); ANS_TDSet_Data * pSeeData=NULL; if ( pos>0 ) { pSeeData = m_TDData.GetNext(pos); } if ( !pSeeData ) return ; long lModifyCount = m_wndList.GetSelectedCount(); DLG_TDSet_Modify dlg(this); dlg.SetParam(m_CliSmsTD ,m_CliSmsTDData ,*pSeeData,lModifyCount); if ( dlg.DoModal()==IDOK ) { ANS_TDSet_Data data = dlg.GetParam(); //发送请求查看 long lSize = sizeof(REQ_TDSet_Modify) + sizeof(ANS_TDSet_ModifyData)*lModifyCount; BYTE * pData = new BYTE[lSize]; memset(pData , 0 , lSize); REQ_TDSet_Modify * pModify = (REQ_TDSet_Modify *)pData; ANS_TDSet_ModifyData * pModifyData = (ANS_TDSet_ModifyData *)(pData+sizeof(REQ_TDSet_Modify)); data.lCorpID = m_pMainFrame->m_lCorpID; data.lItemID = lItem; pModify->data = data; pModify->lCount = lModifyCount; POSITION pos2 = m_wndList.GetFirstSelectedItemPosition(); while(pos2) { long lItem = m_wndList.GetNextSelectedItem(pos2); POSITION pos = (POSITION)m_wndList.GetItemData(lItem); ANS_TDSet_Data * pSeeData=NULL; if ( pos>0 ) { pSeeData = m_TDData.GetNext(pos); } pModifyData->lItem = lItem; if ( pSeeData ) pModifyData->lTDSetID = pSeeData->lTDSetID; pModifyData ++; } m_pMainFrame->SendFrame( SMSFUNC_TDSET_MODIFY , (BYTE*)pData , lSize ); } } void CFTDSet::On_R_Delete() { long lCount = m_wndList.GetSelectedCount(); long lSize = sizeof(REQ_TDSet_Del)+sizeof(ANS_TDSet_DelData)*lCount; BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize); REQ_TDSet_Del * pDel = (REQ_TDSet_Del *)pDelSend; //头 ANS_TDSet_DelData * pDelData = (ANS_TDSet_DelData *)(pDelSend+sizeof(REQ_TDSet_Del)); pDel->lCount = lCount; pDel->lCorpID= m_pMainFrame->m_lCorpID; POSITION pos2 = m_wndList.GetFirstSelectedItemPosition(); while(pos2) { long lItem = m_wndList.GetNextSelectedItem(pos2); POSITION pos = (POSITION)m_wndList.GetItemData(lItem); ANS_TDSet_Data * pSeeData=NULL; if ( pos>0 ) { pSeeData = m_TDData.GetNext(pos); } pDelData->lItem = lItem; if ( pSeeData ) pDelData->lTDSetID = pSeeData->lTDSetID; pDelData++; } m_pMainFrame->SendFrame( SMSFUNC_TDSET_DEL , (BYTE*)pDelSend , lSize ); } void CFTDSet::On_R_Inport() { Close_TDSetIns(); //m_wndList.ShowWindow(SW_HIDE); //加快显示速度 Inport_Field Field[] = { {_T("手机号码"),0,7,-1}, //{_T("说明"),0,12,-1}, }; DLG_User_InportP2 dlg(this); dlg.SetParam(&Field[0],sizeof(Field)/sizeof(Inport_Field),9); //DLG_Send_Inport dlg(this); //dlg.SetInport(true); dlg.DoModal(); CString str; long lCount = m_TDDataIns.GetCount(); if ( lCount>500 ) { str.Format( _T("通道绑定每次最多上传500条记录,本次导入的记录为%d条!不能上传。") , lCount ); MessageBox(str , _T("错误") , MB_ICONWARNING ); return ; } long lSize = sizeof(REQ_TDSet_Ins) + sizeof(ANS_TDSet_InsData)*lCount; BYTE * pData = new BYTE[lSize]; memset(pData , 0 , lSize); //发送请求查看 REQ_TDSet_Ins * pIns = (REQ_TDSet_Ins*)pData; ANS_TDSet_InsData * pInsData = (ANS_TDSet_InsData*)(pData+sizeof(REQ_TDSet_Ins)); pIns->data.lCorpID = m_pMainFrame->m_lCorpID; pIns->data.lStatus = 1;//默认启动 _tcscpy(pIns->data.szOutAll , _T("0")); _tcscpy(pIns->data.szTD , _T("0000")); pIns->lCount = lCount; for ( int i=0 ; iSendFrame( SMSFUNC_TDSET_INS , (BYTE*)pData , lSize ); } void CFTDSet::On_R_Export() { DLG_Back_Export dlg(this); dlg.SetParam(&m_AdoRS2,&m_wndList,1); dlg.DoModal(); } void CFTDSet::On_R_Find() { DLG_Find_TDSet dlg(this); if ( dlg.DoModal() == IDOK ) { BOOL bFirst = true; m_wndList.UnSelectAllItems(); long lCount = m_wndList.GetItemCount(); for ( int i=0 ; i=0 ) { m_wndList.SelectItem(i); if ( bFirst ) { m_wndList.EnsureVisible(i,true); bFirst = false; } } } if ( bFirst ) { CString str; str.Format(_T("找不到手机号码为:%s的记录。") , dlg.m_strMobile ); MessageBox(str , _T("错误") , MB_OK|MB_ICONWARNING); } } } void CFTDSet::On_R_Refresh() { RefreshInfo(); } BOOL CFTDSet::QueryMobile(const TCHAR *pMobile, long lID) { long lCount = m_wndList.GetItemCount(); for ( int i=0 ; iszMobile , user.szMobile ); m_TDDataIns.AddTail(data); //m_TDDataIns.AddTail(data); /* //发送请求查看 REQ_TDSet_Ins * pModify = new REQ_TDSet_Ins; memset( pModify , 0 , sizeof(REQ_TDSet_Ins) ); data.lCorpID = m_pMainFrame->m_lCorpID; pModify->data = data; m_pMainFrame->SendFrame( SMSFUNC_TDSET_INS , (BYTE*)pModify , sizeof(REQ_TDSet_Ins) ); */ return true; } BOOL CFTDSet::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame) { //取推荐信息 if (pHead->lFuncType == SMSFUNC_TDSET_GET) { ANS_TDSet_Get * pSee = (ANS_TDSet_Get *)pFrame; ANS_TDSet_Data * pData = (ANS_TDSet_Data *)(pFrame+sizeof(ANS_TDSet_Get)); m_wndList.ShowWindow( SW_HIDE ); m_wndList.DeleteAllItems(); //删除原有的内容 Close_TDSet(); TCHAR Buf[128]; CString str; BOOL bTip = false; for ( int i=0;ilCount;i++ ) { //m_wndList.SetHeadings(_T("序号,50; 状态,60; 手机号码,100; 移动通道,100; 联通通道,100; 小灵通通道,100; 电信通道,100;是否全网,80;说明,250;")); ANS_TDSet_Data * pNewData = new ANS_TDSet_Data; *pNewData = *pData; POSITION pos = m_TDData.AddTail(pNewData); _stprintf(Buf , _T("%d") , i+1 ); m_wndList.InsertItem( i , Buf ,0 ); m_wndList.SetItemData( i , (DWORD_PTR)pos ); //存Pos long lTemp=1; if ( pData->lStatus == 1 ) m_wndList.SetItemText(i , lTemp++ , _T("启用")); else m_wndList.SetItemText(i , lTemp++ , _T("禁用")); m_wndList.SetItemText(i , lTemp++ , pData->szMobile ); m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[0],0) ); //移动 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[1],1) ); //联通 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[2],2) ); //小灵通 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[3],3) ); //电信 m_wndList.SetItemText(i , lTemp++ , pData->szTD ); //通道标识 switch ( pData->szOutAll[0]-'0' ) { case 0: default: m_wndList.SetItemText(i , lTemp++ , _T("默认")); break; case 1: m_wndList.SetItemText(i , lTemp++ , _T("非全网")); break; case 2: m_wndList.SetItemText(i , lTemp++ , _T("全网")); break; } m_wndList.SetItemText(i , lTemp++ , pData->szBZ); pData ++; } m_wndList.ShowWindow( SW_SHOW ); return true; } if (pHead->lFuncType == SMSFUNC_TDSET_INS) { ANS_TDSet_Ins * pSee = (ANS_TDSet_Ins *)pFrame; if ( pSee->bOK ) { if ( pSee->lCount>2 ) { this->On_R_Refresh(); //刷新通道 } else { //更新到列表中 ANS_TDSet_Data * pData = new ANS_TDSet_Data; *pData = pSee->ins.data; POSITION pos = m_TDData.AddTail(pData); TCHAR Buf[32]={0}; long i=m_wndList.GetItemCount(); _stprintf(Buf , _T("%d") , i+1 ); m_wndList.InsertItem( i , Buf ,0 ); m_wndList.SetItemData( i , (DWORD_PTR)pos ); //存Pos long lTemp=1; if ( pData->lStatus == 1 ) m_wndList.SetItemText(i , lTemp++ , _T("启用")); else m_wndList.SetItemText(i , lTemp++ , _T("禁用")); m_wndList.SetItemText(i , lTemp++ , pData->szMobile ); m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[0],0) ); //移动 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[1],1) ); //联通 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[2],2) ); //小灵通 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[3],3) ); //电信 m_wndList.SetItemText(i , lTemp++ , pData->szTD ); //通道标识 switch ( pData->szOutAll[0]-'0' ) { case 0: default: m_wndList.SetItemText(i , lTemp++ , _T("默认")); break; case 1: m_wndList.SetItemText(i , lTemp++ , _T("非全网")); break; case 2: m_wndList.SetItemText(i , lTemp++ , _T("全网")); break; } m_wndList.SetItemText(i , lTemp++ , pData->szBZ); } } else { MessageBox(_T("添加绑定通道失败,请检查!") , _T("错误") , MB_ICONWARNING ); } return true; } if (pHead->lFuncType == SMSFUNC_TDSET_MODIFY) { ANS_TDSet_Modify * pSee = (ANS_TDSet_Modify *)pFrame; if ( pSee->bOK ) { if ( pSee->lCount>1 ) { this->On_R_Refresh(); //刷新通道 } else { //更新到列表中 ANS_TDSet_Data * pData = &pSee->modify.data; ANS_TDSet_Data * pData2 = NULL; POSITION pos = (POSITION)m_wndList.GetItemData(pData->lItemID); if ( pos ) { pData2 = m_TDData.GetNext(pos); if ( pData2 ) *pData2 = *pData; } TCHAR Buf[32]={0}; long i=pData->lItemID; _stprintf(Buf , _T("%d") , i+1 ); long lTemp=1; if ( pData->lStatus == 1 ) m_wndList.SetItemText(i , lTemp++ , _T("启用")); else m_wndList.SetItemText(i , lTemp++ , _T("禁用")); m_wndList.SetItemText(i , lTemp++ , pData->szMobile ); m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[0],0) ); //移动 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[1],1) ); //联通 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[2],2) ); //小灵通 m_wndList.SetItemText(i , lTemp++ , GetTDName(pData->szTD[3],3) ); //电信 m_wndList.SetItemText(i , lTemp++ , pData->szTD ); //通道标识 switch ( pData->szOutAll[0]-'0' ) { case 0: default: m_wndList.SetItemText(i , lTemp++ , _T("默认")); break; case 1: m_wndList.SetItemText(i , lTemp++ , _T("非全网")); break; case 2: m_wndList.SetItemText(i , lTemp++ , _T("全网")); break; } m_wndList.SetItemText(i , lTemp++ , pData->szBZ); } } else { MessageBox(_T("修改绑定通道失败,请检查!") , _T("错误") , MB_ICONWARNING ); } return true; } //删除用户 if (pHead->lFuncType == SMSFUNC_TDSET_DEL) { ANS_TDSet_Del * pDel = (ANS_TDSet_Del *)pFrame; ANS_TDSet_DelData * pDelData = (ANS_TDSet_DelData *)(pFrame+sizeof(ANS_TDSet_Del)); for ( int i = pDel->lCount-1 ; i>=0 ; i-- ) { if ( pDelData[i].lItem >= 0 ) { POSITION pos = (POSITION)m_wndList.GetItemData( pDelData[i].lItem ); POSITION pos2 = pos; ANS_TDSet_Data * pSetData = m_TDData.GetNext( pos ); if ( pSetData->lTDSetID == pDelData[i].lTDSetID ) //ID相同才可删除 { delete pSetData; //先删除数据 m_TDData.RemoveAt(pos2); //从列表中删除 m_wndList.DeleteItem(pDelData[i].lItem); //从ListCtrl中删除 } } } m_wndList.ShowWindow( SW_SHOW ); //为了加快显示速度 return true; } return false; } void CFTDSet::Close() { Close_TDSet(); Close_TDSetIns(); if ( m_CliSmsTDData ) {delete m_CliSmsTDData ; m_CliSmsTDData=NULL;} } CString CFTDSet::GetTDName(TCHAR cTD, long lType) { CString strRet=_T("默认"); SC_CliTD * pRetTD=NULL; long lCount=0; switch(lType) { case 0: default: pRetTD = (SC_CliTD *)(m_CliSmsTDData); lCount = m_CliSmsTD.lCliTD_Cmcc; break; case 1: pRetTD = (SC_CliTD *)(m_CliSmsTDData+sizeof(SC_CliTD)*(m_CliSmsTD.lCliTD_Cmcc)); lCount = m_CliSmsTD.lCliTD_Unicom; break; case 2: pRetTD = (SC_CliTD *)(m_CliSmsTDData+sizeof(SC_CliTD)*(m_CliSmsTD.lCliTD_Cmcc+m_CliSmsTD.lCliTD_Unicom)); lCount = m_CliSmsTD.lCliTD_Phs; break; case 3: pRetTD = (SC_CliTD *)(m_CliSmsTDData+sizeof(SC_CliTD)*(m_CliSmsTD.lCliTD_Cmcc+m_CliSmsTD.lCliTD_Unicom+m_CliSmsTD.lCliTD_Phs)); lCount = m_CliSmsTD.lCliTD_Telcom; break; } //设移动数据 for ( int i=0 ; iszMobile)) { bRet = true; break; } } } return bRet; }