// MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "SmsManager.h" #include "MainFrm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMainFrame #include "DLG_Login.h" #include "SmsManagerDoc.h" #include "UserView.h" #include "DLG_Passwd.h" #include "DLG_Data_Back.h" #include "MainFrm.h" IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) ON_WM_CREATE() ON_WM_TIMER() ON_COMMAND(ID_MODIFY_PASSWD, OnModifyPasswd) ON_COMMAND(ID_BACK_DATA, OnBackData) ON_UPDATE_COMMAND_UI(ID_BACK_DATA, OnUpdateBackData) ON_COMMAND(ID_REBOOT, OnReboot) ON_UPDATE_COMMAND_UI(ID_REBOOT, OnUpdateReboot) ON_COMMAND(ID_SMSHELP, OnSmshelp) ON_WM_SIZE() ON_COMMAND(ID_T_GG, OnTGg) ON_COMMAND(ID_TJVIPINT, OnTjvipint) //}}AFX_MSG_MAP ON_MESSAGE(WM_OUTBAR_NOTIFY, OnOutbarNotify) ON_MESSAGE( PROCESSSOCKET_ERROR , ProcessSocket_Error ) ON_MESSAGE( PROCESSSOCKET_FRAME , ProcessSocket_Frame ) END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // status line indicator ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; ///////////////////////////////////////////////////////////////////////////// // CMainFrame construction/destruction CMainFrame::CMainFrame() { m_pUserView = NULL; CreateNullSetup(); m_lCurFunc = 0; m_ulPurview = 0; m_lType = 0; m_bYJ = 0; m_bTest = false; m_lUserID = 0; m_fUsed = 0.0f; m_lMmsUsed = 0; m_lAddCorpCount=0; m_lAddedCorp=0; m_dwLastCMTime=0; m_bInit = false; m_bSOS = false; m_pTJVipInt = NULL; // m_lGDText = 0; } CMainFrame::~CMainFrame() { } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; /* if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0(_T("Failed to create toolbar\n")); return -1; // fail to create } */ if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE(_T("Failed to create status bar\n")); return -1; // fail to create } /* CRect rect(0,0,0,0); if (!m_B_CJ.CreateEx(WS_EX_STATICEDGE,_T("Button"),_T("无公告信息"),WS_CHILD|WS_VISIBLE|BS_LEFT,rect, &m_wndToolBar, ID_T_GG)) //if (!m_B_CJ.CreateEx(WS_EX_TOOLWINDOW,_T("Button"),_T("我要充值"),WS_CHILD|WS_VISIBLE,rect, &m_wndToolBar, ID_T_GG)) { TRACE0(_T("Failed to create combo-box\n")); return FALSE; } m_B_CJ.EnableWindow(false); */ /* // TODO: Delete these three lines if you don't want the toolbar to // be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); */ #ifndef MANAGER_VER_YWY CMenu* mmenu = GetMenu(); if ( mmenu ) { CMenu* submenu = mmenu->GetSubMenu(2); if ( submenu ) { submenu->DeleteMenu(ID_TJVIPINT, MF_BYCOMMAND); } } #endif #ifdef MANAGER_VER_YWY //有命令行参数,自动启动 TCHAR szCmd[ 256 ]={0}; _stprintf( szCmd , ::AfxGetApp()->m_lpCmdLine ); if (szCmd[0]!=0 && !_tcscmp(szCmd,_T("SOS")) ) { this->m_bSOS=true; } #endif //取得UserView m_pUserView = (CUserView*)m_wndSplitter.GetPane( 0,1 ); //读入参数 ReadSetup(); //登录 SetTimer( 1 , 500 , NULL ); m_bInit = true; return 0; } BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CMainFrame diagnostics #ifdef _DEBUG void CMainFrame::AssertValid() const { CFrameWnd::AssertValid(); } void CMainFrame::Dump(CDumpContext& dc) const { CFrameWnd::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CMainFrame message handlers BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { if (!m_wndSplitter.CreateStatic(this, 1, 2)) return false; if (!m_wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, CSize(0,0), pContext)) return false; DWORD dwf = //CGfxOutBarCtrl::fDragItems| //CGfxOutBarCtrl::fEditGroups| //CGfxOutBarCtrl::fEditItems| //CGfxOutBarCtrl::fRemoveGroups| //CGfxOutBarCtrl::fRemoveItems| //CGfxOutBarCtrl::fAddGroups| CGfxOutBarCtrl::fAnimation; m_wndBar.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), &m_wndSplitter, m_wndSplitter.IdFromRowCol(0, 0), dwf); m_wndBar.SetOwner(this); BOOL b = m_imaLarge.Create(32,32,ILC_COLOR16|ILC_MASK,5,5); m_imaSmall.Create(16,16,ILC_COLOR16|ILC_MASK,5,5); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_INFO) ); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_MANAGER )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_CORP )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_SP )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_SP )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_FILT )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_CHECKUP )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_TAB )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_HZB )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_LIST )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_BACK )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_OTHER )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_AGENT )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_KHCARD )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_CJCARD )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_SWTSQ )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_BBS )); m_imaLarge.Add(AfxGetApp()->LoadIcon(IDI_L_USER )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_INFO )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_MANAGER )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_CORP )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_SP )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_SP )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_FILT )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_CHECKUP )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_TAB )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_HZB )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_LIST )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_BACK )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_OTHER )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_AGENT )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_KHCARD )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_CJCARD )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_SWTSQ )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_BBS )); m_imaSmall.Add(AfxGetApp()->LoadIcon(IDI_L_USER )); m_wndBar.SetImageList(&m_imaLarge, CGfxOutBarCtrl::fLargeIcon); m_wndBar.SetImageList(&m_imaSmall, CGfxOutBarCtrl::fSmallIcon); m_wndBar.SetAnimationTickCount(10); m_wndBar.SetAnimSelHighlight(200); //Blue Sky加入的控制 m_wndBar.SetIfQueryRemove(true); m_wndBar.AddFolder(_T("功能选择"), 0); //m_wndBar.AddFolder(_T("帐务管理"), 1); //m_wndBar.AddFolder(_T("卡类管理"), 2); int lIndex = 0; #ifdef MANAGER_VER_YWY m_wndBar.InsertItem(0, lIndex++, FUNC_INFOC, 0, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_NC, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_1C, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_2C, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_CC, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_HC, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_H2C, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_QXTC, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_MASC, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_AC, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_TABC , 9, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_AGENTC , 12, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_YWMSGC , 9, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_FPQUERYC, 8, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_SFQUERYC, 15, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_ALLQUERY_REPORTC, 7, 0); #ifdef SMSCENTER_ONE m_wndBar.InsertItem(0, lIndex++, FUNC_GZMSGC , 9, 0); #endif #else #ifdef MANAGER_VER_HF m_wndBar.InsertItem(0, lIndex++, FUNC_INFOC, 0, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_H2C, 2, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_HNEWC, 2, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_HNEW2C, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORP_HNEEDC, 2, 0); #else m_wndBar.InsertItem(0, lIndex++, FUNC_INFOC, 0, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_MANAGERC, 1, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_CORPC, 2, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_USERC, 17, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_SPC, 3, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_TSCMDC, 4, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_FILTC, 5, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_CHECKUPC, 6, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_BACKC , 10, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_OTHERC , 11, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_PAYC , 7, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_MYPAYC , 7, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_TABC , 9, 0); m_wndBar.InsertItem(0, lIndex++, FUNC_BBSUC , 16, 0); #if !defined(SMSCENTER_NX) && !defined(SMSCENTER_GDDX) m_wndBar.InsertItem(0, lIndex++, FUNC_BBSC , 16, 0); #endif #endif #endif //m_wndBar.InsertItem(1, lIndex++, FUNC_HZBC , 8, 0); //m_wndBar.InsertItem(1, lIndex++, FUNC_PAYC , 7, 0); //m_wndBar.InsertItem(1, lIndex++, FUNC_JCBC , 7, 0); //m_wndBar.InsertItem(0, lIndex++, FUNC_LISTC , 9, 0); //m_wndBar.InsertItem(2, lIndex++, FUNC_AGENTC , 12, 0); //m_wndBar.InsertItem(2, lIndex++, FUNC_KHCARDC, 13, 0); //m_wndBar.InsertItem(2, lIndex++, FUNC_CJCARDC, 14, 0); //m_wndBar.InsertItem(2, lIndex++, FUNC_SWTSQC , 15, 0); //m_wndBar.InsertItem(2, lIndex++, FUNC_BBSC , 16, 0); m_wndBar.SetSelFolder(0); m_wndBar.SetSelItem(0); CRect r; GetClientRect(&r); int w1 = r.Width()/5; int w2 = r.Width()/4; m_wndSplitter.SetColumnInfo( 0, w1, 0 ); m_wndSplitter.SetColumnInfo( 1, w2, 0 ); m_wndSplitter.RecalcLayout(); return true; } long CMainFrame::OnOutbarNotify(WPARAM wParam, LPARAM lParam) { switch (wParam) { case NM_OB_ITEMCLICK: { int index = (int)lParam; TCHAR szSelText[32]; _tcscpy( szSelText , m_wndBar.GetItemText(index) ); if ( !_tcscmp( szSelText , FUNC_INFOC ) ) { ShowFuncDlg( FUNC_INFO ); return 1; } if ( !_tcscmp( szSelText , FUNC_MANAGERC ) ) { ShowFuncDlg( FUNC_MANAGER ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORPC ) ) { ShowFuncDlg( FUNC_USER ); return 1; } if ( !_tcscmp( szSelText , FUNC_USERC ) ) { ShowFuncDlg( FUNC_USER2 ); return 1; } if ( !_tcscmp( szSelText , FUNC_SPC ) ) { ShowFuncDlg( FUNC_SP ); return 1; } if ( !_tcscmp( szSelText , FUNC_TSCMDC ) ) { ShowFuncDlg( FUNC_TSCMD ); return 1; } if ( !_tcscmp( szSelText , FUNC_FILTC ) ) { ShowFuncDlg( FUNC_FILT ); return 1; } if ( !_tcscmp( szSelText , FUNC_CHECKUPC ) ) { ShowFuncDlg( FUNC_CHECKUP ); return 1; } if ( !_tcscmp( szSelText , FUNC_TABC ) ) { ShowFuncDlg( FUNC_TAB ); return 1; } if ( !_tcscmp( szSelText , FUNC_PAYC ) ) { ShowFuncDlg( FUNC_PAY ); return 1; } if ( !_tcscmp( szSelText , FUNC_JCBC ) ) { ShowFuncDlg( FUNC_JCB ); return 1; } if ( !_tcscmp( szSelText , FUNC_HZBC ) ) { ShowFuncDlg( FUNC_HZB ); return 1; } if ( !_tcscmp( szSelText , FUNC_LISTC ) ) { ShowFuncDlg( FUNC_LIST ); return 1; } if ( !_tcscmp( szSelText , FUNC_BACKC ) ) { ShowFuncDlg( FUNC_BACK ); return 1; } if ( !_tcscmp( szSelText , FUNC_OTHERC ) ) { ShowFuncDlg( FUNC_OTHER ); return 1; } if ( !_tcscmp( szSelText , FUNC_AGENTC ) ) { ShowFuncDlg( FUNC_AGENT ); return 1; } if ( !_tcscmp( szSelText , FUNC_KHCARDC ) ) { ShowFuncDlg( FUNC_KHCARD ); return 1; } if ( !_tcscmp( szSelText , FUNC_CJCARDC ) ) { ShowFuncDlg( FUNC_CJCARD ); return 1; } if ( !_tcscmp( szSelText , FUNC_SWTSQC ) ) { ShowFuncDlg( FUNC_SWTSQ ); return 1; } if ( !_tcscmp( szSelText , FUNC_BBSC ) ) { ShowFuncDlg( FUNC_BBS ); return 1; } if ( !_tcscmp( szSelText , FUNC_BBSUC ) ) { ShowFuncDlg( FUNC_BBSU ); return 1; } if ( !_tcscmp( szSelText , FUNC_MYPAYC ) ) { ShowFuncDlg( FUNC_MYPAY ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_NC ) ) { ShowFuncDlg( FUNC_CORP_N ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_1C ) ) { ShowFuncDlg( FUNC_CORP_1 ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_2C ) ) { ShowFuncDlg( FUNC_CORP_2 ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_CC ) ) { ShowFuncDlg( FUNC_CORP_C ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_HC ) ) { ShowFuncDlg( FUNC_CORP_H ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_H2C ) ) { ShowFuncDlg( FUNC_CORP_H2 ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_QXTC ) ) { ShowFuncDlg( FUNC_CORP_QXT ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_MASC ) ) { ShowFuncDlg( FUNC_CORP_MAS ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_AC ) ) { ShowFuncDlg( FUNC_CORP_A ); return 1; } if ( !_tcscmp( szSelText , FUNC_YWMSGC ) ) { ShowFuncDlg( FUNC_YWMSG ); return 1; } if ( !_tcscmp( szSelText , FUNC_GZMSGC ) ) { ShowFuncDlg( FUNC_GZMSG ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_HNEWC ) ) { ShowFuncDlg( FUNC_CORP_HNEW ); return 1; } if ( !_tcscmp( szSelText , FUNC_CORP_HNEW2C ) ) { ShowFuncDlg( FUNC_CORP_HNEW2 ); return 1; } if (!_tcscmp(szSelText, FUNC_CORP_HNEEDC)) { ShowFuncDlg(FUNC_CORP_HNEED); return 1; } if (!_tcscmp(szSelText, FUNC_FPQUERYC)) { ShowFuncDlg(FUNC_FPQUERY); return 1; } if (!_tcscmp(szSelText, FUNC_SFQUERYC)) { ShowFuncDlg(FUNC_SFQUERY); return 1; } if (!_tcscmp(szSelText, FUNC_ALLQUERY_REPORTC)) { ShowFuncDlg(FUNC_ALLQUERY_REPORT); return 1; } } return 0; } return 0; } LONG CMainFrame::ProcessSocket_Error( WPARAM wParam , LPARAM lParam ) { return 1; } LONG CMainFrame::ProcessSocket_Frame( WPARAM wParam , LPARAM lParam ) { KillTimer( 3 ); //成功收到,超时检测失效 SetStatMsg( _T("成功接收到服务器返回!") ); Socket_Head * pHead = (Socket_Head *)wParam; switch( pHead->lFuncType ) { case SMSFUNC_PASSWD: case SMSFUNC_DATABACK: case SMSFUNC_REBOOT: case SMSFUNC_YJ: case SMSFUNC_YJ2: case SMSFUNC_GETGG3: case SMSFUNC_CORP_BZ_ADD: case SMSFUNC_CORP_OPER_ADD: case SMSFUNC_CLOSECLIENT2: ProcessSocket(pHead); break; case SMSFUNC_GETINFO: case SMSFUNC_AGENT_SEE2: case SMSFUNC_GETYWY2: case SMSFUNC_GETKF: m_pUserView->m_dlgInfo.ProcessSocket(pHead); break; case SMSFUNC_TEST: break; case SMSFUNC_GETMANAGER: case SMSFUNC_MANAGER_MODIFY: case SMSFUNC_MANAGER_ADD: case SMSFUNC_MANAGER_DEL: m_pUserView->m_dlgManager.ProcessSocket(pHead); break; case SMSFUNC_CORP_SEE: case SMSFUNC_CORP_SEE2: case SMSFUNC_CORP_MODIFY: case SMSFUNC_CORP_ADD: case SMSFUNC_CORP_DEL: case SMSFUNC_CORP_PAY: case SMSFUNC_CORP_PAYMODIFY: case SMSFUNC_YWY_NAME: m_pUserView->m_dlgUser.ProcessSocket(pHead); break; case SMSFUNC_CORP_LXR: case SMSFUNC_CORP_LXRMODIFY: if (m_lCurFunc == FUNC_USER2) m_pUserView->m_dlgUser2.ProcessSocket(pHead); if (m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) m_pUserView->m_dlgUser.ProcessSocket(pHead); if ( m_lCurFunc == FUNC_AGENT) m_pUserView->m_dlgAgent.ProcessSocket(pHead); break; case SMSFUNC_CORP_USER: case SMSFUNC_CORP_USERMODIFY: if ( m_lCurFunc == FUNC_USER2 ) m_pUserView->m_dlgUser2.ProcessSocket(pHead); if ( m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) m_pUserView->m_dlgUser.ProcessSocket(pHead); break; case SMSFUNC_BILL2: m_pUserView->m_dlgUser2.ProcessSocket(pHead); break; case SMSFUNC_USER_PAY: case SMSFUNC_USER_PAYMODIFY: m_pUserView->m_dlgUser2.ProcessSocket(pHead); break; case SMSFUNC_FILT_SEE: case SMSFUNC_FILT_ADD: case SMSFUNC_FILT_MODIFY: case SMSFUNC_FILT2_SEE: case SMSFUNC_FILT2_ADD: case SMSFUNC_FILT2_MODIFY: case SMSFUNC_FILT_DEL: m_pUserView->m_dlgFilt.ProcessSocket(pHead); break; case SMSFUNC_CHECKUP_SEE: case SMSFUNC_CHECKUP: m_pUserView->m_dlgCheckup.ProcessSocket(pHead); case SMSFUNC_CORP_NAME: if ( m_lCurFunc == FUNC_USER2) { m_pUserView->m_dlgUser2.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_TAB) { m_pUserView->m_dlgTab.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_PAY) { m_pUserView->m_dlgPay.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_JCB) { m_pUserView->m_dlgJCB.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_LIST) { m_pUserView->m_dlgList.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_HZB) { m_pUserView->m_dlgHZB.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_OTHER) { m_pUserView->m_dlgOther.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_BACK) { m_pUserView->m_dlgBack.ProcessSocket(pHead); } if (m_lCurFunc == FUNC_FPQUERY) { m_pUserView->m_dlgSFQuery.ProcessSocket(pHead); } if (m_lCurFunc == FUNC_FPQUERY) { m_pUserView->m_dlgSFQuery.ProcessSocket(pHead); } break; case SMSFUNC_AGENT_NAME: if ( m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) { m_pUserView->m_dlgUser.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_KHCARD) { m_pUserView->m_dlgKHCard.ProcessSocket(pHead); } if ( m_lCurFunc == FUNC_CJCARD) { m_pUserView->m_dlgCJCard.ProcessSocket(pHead); } break; case SMSFUNC_TAB: m_pUserView->m_dlgTab.ProcessSocket(pHead); break; case SMSFUNC_PAY_SEE: m_pUserView->m_dlgPay.ProcessSocket(pHead); break; case SMSFUNC_JCB_SEE: m_pUserView->m_dlgJCB.ProcessSocket(pHead); break; case SMSFUNC_LIST: m_pUserView->m_dlgList.ProcessSocket(pHead); break; case SMSFUNC_BACK: case SMSFUNC_BACK_ADD: case SMSFUNC_BACK_DEL: m_pUserView->m_dlgBack.ProcessSocket(pHead); break; case SMSFUNC_SUCCEED: case SMSFUNC_SMSLOG: case SMSFUNC_REPORTNUM_SEE: case SMSFUNC_REPORTNUM_ADD: case SMSFUNC_REPORTNUM_MODIFY: case SMSFUNC_REPORTNUM_DEL: case SMSFUNC_OTHERTEXT_SEE: case SMSFUNC_OTHERTEXT: case SMSFUNC_OTHERGIF_SEE: case SMSFUNC_OTHERGIF: case SMSFUNC_OTHEROVER_SEE: case SMSFUNC_OTHEROVER: m_pUserView->m_dlgOther.ProcessSocket(pHead); break; case SMSFUNC_SP_SEE: case SMSFUNC_SP_ADD: case SMSFUNC_SP_MODIFY: case SMSFUNC_SP_DEL: m_pUserView->m_dlgSP.ProcessSocket(pHead); break; case SMSFUNC_TSCMD_SEE: case SMSFUNC_TSCMD_ADD: case SMSFUNC_TSCMD_MODIFY: case SMSFUNC_TSCMD_DEL: m_pUserView->m_dlgTSCmd.ProcessSocket(pHead); break; case SMSFUNC_AGENT_SEE: case SMSFUNC_AGENT_SEE3: case SMSFUNC_AGENT_ADD: case SMSFUNC_AGENT_MODIFY: case SMSFUNC_AGENT_DEL: case SMSFUNC_AGENT_PAY: case SMSFUNC_AGENT_PAYMODIFY: if ( m_lCurFunc == FUNC_MYPAY ) m_pUserView->m_dlgMyPay.ProcessSocket(pHead); else m_pUserView->m_dlgAgent.ProcessSocket(pHead); break; case SMSFUNC_KHCARD_ADD: case SMSFUNC_KHCARD_SEE: case SMSFUNC_KHCARD_AGENT: case SMSFUNC_KHCARD_PRO: m_pUserView->m_dlgKHCard.ProcessSocket(pHead); break; case SMSFUNC_CJCARD_ADD: case SMSFUNC_CJCARD_SEE: case SMSFUNC_CJCARD_AGENT: m_pUserView->m_dlgCJCard.ProcessSocket(pHead); break; case SMSFUNC_SWT_SEE: case SMSFUNC_SWT_MODIFY: m_pUserView->m_dlgSWTSQ.ProcessSocket(pHead); break; case SMSFUNC_MSG_SEE: case SMSFUNC_BBS_SEND: case SMSFUNC_BBS_DEL: if ( m_lCurFunc == FUNC_BBS ) m_pUserView->m_dlgBBS.ProcessSocket(pHead); if ( m_lCurFunc == FUNC_BBSU ) m_pUserView->m_dlgBBSU.ProcessSocket(pHead); break; case SMSFUNC_HZB: m_pUserView->m_dlgHZB.ProcessSocket(pHead); break; case SMSFUNC_CORP_BZ_SEE: case SMSFUNC_CORP_OPER_SEE: if (m_lCurFunc == FUNC_USER2) m_pUserView->m_dlgUser2.ProcessSocket(pHead); if ( m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) m_pUserView->m_dlgUser.ProcessSocket(pHead); if ( m_lCurFunc == FUNC_AGENT ) m_pUserView->m_dlgAgent.ProcessSocket(pHead); break; case SMSFUNC_YWMSG: m_pUserView->m_dlgYWMsg.ProcessSocket(pHead); break; case SMSFUNC_GZMSG: m_pUserView->m_dlgGZMsg.ProcessSocket(pHead); break; case SMSFUNC_CORP_FILE: if (m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) { m_pUserView->m_dlgUser.ProcessSocket(pHead); } if (m_lCurFunc == FUNC_USER2) { m_pUserView->m_dlgUser2.ProcessSocket(pHead); } if (m_lCurFunc == FUNC_AGENT) m_pUserView->m_dlgAgent.ProcessSocket(pHead); break; case SMSFUNC_KF_NAME: if (m_lCurFunc == FUNC_USER2) m_pUserView->m_dlgUser2.ProcessSocket(pHead); if (m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) m_pUserView->m_dlgUser.ProcessSocket(pHead); if (m_lCurFunc == FUNC_AGENT) m_pUserView->m_dlgAgent.ProcessSocket(pHead); if (m_lCurFunc == FUNC_YWMSG) { m_pUserView->m_dlgYWMsg.ProcessSocket(pHead); } break; case SMSFUNC_EX: default: #ifdef _UNICODE unsigned int lFuncType2 = pHead->lFuncType; //以下为了兼容原来>256的程序 Socket_Head_Add HeadAdd={0}; HeadAdd.lFuncType = lFuncType2; HeadAdd.lFrameLen = pHead->lFrameLen; Socket_Head_Add * pHeadAdd = &HeadAdd; long lSizeOfHeadAdd = 0; #else Socket_Head_Add * pHeadAdd = (Socket_Head_Add *)(pHead->pFrame); unsigned int lFuncType2 = pHeadAdd->lFuncType; long lSizeOfHeadAdd = sizeof(Socket_Head_Add); #endif switch(lFuncType2) { case SMSFUNC_COMMEND_TJVIPINT: //m_pUserView->m_dlgPartner.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_MMS_PAY: case SMSFUNC_MMS_PAYMODIFY: case SMSFUNC_CORP_HF_FREQUENCY: m_pUserView->m_dlgUser.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_BILL4: if ( m_lCurFunc == FUNC_TAB) m_pUserView->m_dlgTab.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); if ( m_lCurFunc == FUNC_USER2) m_pUserView->m_dlgUser2.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_AGENT_MMSPAY: case SMSFUNC_AGENT_MMSPAYMODIFY: if ( m_lCurFunc == FUNC_MYPAY ) m_pUserView->m_dlgMyPay.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); else m_pUserView->m_dlgAgent.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_MMSPAY_SEE: m_pUserView->m_dlgPay.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_CORP_HLH: m_pUserView->m_dlgUser.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_CORP_FP: case SMSFUNC_CORP_FPMODIFY: if (m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) m_pUserView->m_dlgUser.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); if (m_lCurFunc == FUNC_AGENT) m_pUserView->m_dlgAgent.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_CORP_SF_ADD: case SMSFUNC_CORP_SF_CANCEL: case SMSFUNC_CORP_SF_ROUTE: case SMSFUNC_CORP_SF_SEE: case SMSFUNC_CORP_ANALYSE: if (m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) m_pUserView->m_dlgUser.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); if (m_lCurFunc == FUNC_AGENT) m_pUserView->m_dlgAgent.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); if (m_lCurFunc == FUNC_SFQUERY) m_pUserView->m_dlgSFQuery.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_YWY_ANALYSE: m_pUserView->m_dlgGZMsg.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_GZMSG_JL: case SMSFUNC_GZMSG_JL_PARA: m_pUserView->m_dlgGZMsg.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_FPQUERY: m_pUserView->m_dlgFPQuery.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_SIGNNAME_ADD: if (m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) { m_pUserView->m_dlgUser.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); } if (m_lCurFunc == FUNC_USER2) { m_pUserView->m_dlgUser2.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); } break; case SMSFUNC_ALLQUERY_REPORT_SEE: case SMSFUNC_ALLQUERY_REPORT_GET: case SMSFUNC_PAY_OPER_ADD: m_pUserView->m_dlgAllQuery_Report.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_PARTNER_NAME: if (m_lCurFunc == FUNC_USER2) m_pUserView->m_dlgUser2.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); if (m_lCurFunc == FUNC_USER || m_lCurFunc == FUNC_CORP_N || m_lCurFunc == FUNC_CORP_1 || m_lCurFunc == FUNC_CORP_2 || m_lCurFunc == FUNC_CORP_C || m_lCurFunc == FUNC_CORP_A || m_lCurFunc == FUNC_CORP_H || m_lCurFunc == FUNC_CORP_H2 || m_lCurFunc == FUNC_CORP_QXT || m_lCurFunc == FUNC_CORP_MAS || m_lCurFunc == FUNC_CORP_HNEW || m_lCurFunc == FUNC_CORP_HNEW2 || m_lCurFunc == FUNC_CORP_HNEED) m_pUserView->m_dlgUser.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); if (m_lCurFunc == FUNC_AGENT) m_pUserView->m_dlgAgent.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_MMSPRO: case SMSFUNC_CORP_CUSTOMSETTINGS_GET: if (m_lCurFunc == FUNC_USER2) m_pUserView->m_dlgUser2.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); else m_pUserView->m_dlgUser.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; } } //需要删除 delete pHead->pFrame; delete pHead; return 1; } void CMainFrame::OnTimer(UINT nIDEvent) { CFrameWnd::OnTimer(nIDEvent); //登录 if ( nIDEvent == 1 ) { KillTimer( 1 ); DLG_Login dlg(this); dlg.m_Setup = m_Setup; dlg.m_pSocket = &m_Socket; if ( dlg.DoModal() == IDOK ) { m_Setup = dlg.m_Setup; SaveSetup(); m_Socket.SetParent( this ); //改变通知窗口 m_ulPurview = dlg.m_ulPurview; m_lUserID = dlg.m_lUserID; m_lType = dlg.m_lType; //代理商类型 m_bYJ = dlg.m_bYJ; m_strAgentName = dlg.m_strAgentName; if ( dlg.m_bSOS ) m_bSOS = true; #if !defined(MANAGER_VER_YWY) && !defined(MANAGER_VER_HF) if ( !m_bYJ ) { m_wndBar.RemoveItem(6); } switch ( m_lType ) { case 1: //应用代理 //m_wndBar.RemoveItem(1); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_SS1)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_SS2)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_SS3)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_SS4)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_SS5)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_SS6)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_USED)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_TOTAL)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_CREATETIME)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_ADDCORPCOUNT)->ShowWindow(SW_HIDE); //m_pUserView->m_dlgInfo.GetDlgItem(IDC_INFO_ADDEDCORP)->ShowWindow(SW_HIDE); break; case 0: //短信易代理 case 2: //超级代理商 case 3: //短信通代理 default: m_wndBar.RemoveItem(2); break; } #endif #ifdef MANAGER_VER_YWY if ( m_bYJ & AGENT_YWYMANAGER ) //属于代理商的业务员 { m_wndBar.RemoveItem(13); m_wndBar.RemoveItem(12); m_wndBar.RemoveItem(11); m_wndBar.RemoveItem(10); //m_wndBar.RemoveItem(9); m_wndBar.RemoveItem(8); m_wndBar.RemoveItem(7); m_wndBar.RemoveItem(6); m_wndBar.RemoveItem(5); m_wndBar.RemoveItem(4); m_wndBar.RemoveItem(3); m_wndBar.RemoveItem(2); m_wndBar.RemoveItem(1); } if ( m_bSOS ) { CString str; this->GetWindowText(str); str = str+ _T(" !!!"); this->SetWindowText(str); m_wndBar.RemoveItem(13); m_wndBar.RemoveItem(12); m_wndBar.RemoveItem(11); m_wndBar.RemoveItem(10); } #endif m_pUserView->m_dlgInfo.RefreshInfo(); //刷新信息 Sleep(200); m_pUserView->m_dlgBBS.RefreshInfo(); //刷新BBS GetGGMsg(); this->SetTimer( 2 , RECVREFRESH_TIMEOUT , NULL ); } else { this->OnClose(); } return ; } if ( nIDEvent == 2 ) { /* REQ_Test * pTest = new REQ_Test; pTest->lTemp = ::GetTickCount(); SendFrame( SMSFUNC_TEST , (BYTE*)pTest , sizeof(REQ_Test) ); */ m_pUserView->m_dlgInfo.RefreshInfo(); //刷新信息 return ; } //超时检测 if ( nIDEvent == 3 ) { KillTimer( 3 ); SetStatMsg( _T("网络超时,正在重连...") ); m_Socket.Close(); m_Socket.ConnectToServer( m_Setup , true ); //发送测试指令 REQ_Test * pTest = new REQ_Test; pTest->lTemp = ::GetTickCount(); SendFrame( SMSFUNC_TEST , (BYTE*)pTest , sizeof(REQ_Test) ); return ; } //滚动字屏幕 if ( nIDEvent == 10 ) { GDText(); return ; } } void CMainFrame::ReadSetup() { TCHAR szName[512]={0}; SM_Setup setup={0}; GetCurrentPath(szName); CString strAddName = _T("SmsManager.dat"); #ifdef SMSCENTER_TWO strAddName = _T("SmsManager2.dat"); #endif #ifdef SMSCENTER_THREE strAddName = _T("SmsManager3.dat"); #endif #ifdef SMSCENTER_ADC strAddName = _T("SmsManagerA.dat") #endif _tcscat( szName , strAddName ); CFile file; if (!file.Open(szName , CFile::modeRead) ) { CreateNullSetup(); return ; } if (file.Read(&setup,sizeof(setup)) != sizeof(setup)) { CreateNullSetup(); file.Close(); return ; } //解密码 //解密码 m_Setup = setup; char szUser[32]={0}; char szPasswd[64]={0}; char szPasswd2[64]={0}; #ifdef _UNICODE strcpy(szUser , CW2A(m_Setup.szUser) ); strcpy(szPasswd , CW2A(setup.szProxyPasswd)); #else strcpy(szUser , m_Setup.szUser ); strcpy(szPasswd , setup.szProxyPasswd); #endif CDes des; long lOut=sizeof(szPasswd2); des.Decrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lOut , szUser , 8 ); #ifdef _UNICODE _tcscpy(m_Setup.szProxyPasswd , CA2W(szPasswd2)); #else strcpy(m_Setup.szProxyPasswd , szPasswd2); #endif memset( m_Setup.szPasswd , 0 , sizeof(m_Setup.szPasswd) ); file.Close(); return ; } void CMainFrame::SaveSetup() { TCHAR szName[512]={0}; GetCurrentPath(szName); CString strAddName = _T("SmsManager.dat"); #ifdef SMSCENTER_TWO strAddName = _T("SmsManager2.dat"); #endif #ifdef SMSCENTER_THREE strAddName = _T("SmsManager3.dat"); #endif #ifdef SMSCENTER_ADC strAddName = _T("SmsManagerA.dat") #endif _tcscat( szName , strAddName ); CFile file; if (!file.Open(szName , CFile::modeCreate|CFile::modeWrite) ) { return ; } //加密码 //加密码 SM_Setup setup = m_Setup; char szUser[32]={0}; char szPasswd[64]={0}; char szPasswd2[64]={0}; long lOut = sizeof(szPasswd2); CDes des; #ifdef _UNICODE strcpy(szUser , CW2A(m_Setup.szUser)); strcpy(szPasswd , CW2A(m_Setup.szPasswd)); #else strcpy(szUser , m_Setup.szUser); strcpy(szPasswd , m_Setup.szPasswd); #endif des.Encrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lOut , szUser , 8 ); #ifdef _UNICODE _tcscpy(setup.szPasswd , CA2W(szPasswd2)); #else strcpy(setup.szPasswd , szPasswd2); #endif lOut = sizeof(szPasswd2); memset(szPasswd2 , 0 , sizeof(szPasswd2)); #ifdef _UNICODE strcpy(szPasswd , CW2A(m_Setup.szProxyPasswd)); #else strcpy(szPasswd , m_Setup.szProxyPasswd); #endif des.Encrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lOut , szUser , 8 ); #ifdef _UNICODE _tcscpy(setup.szProxyPasswd , CA2W(szPasswd2)); #else strcpy(setup.szProxyPasswd , szPasswd2); #endif memset( setup.szPasswd , 0 , sizeof(setup.szPasswd) ); //不保存密码 file.Write(&setup , sizeof(setup) ); file.Close(); } void CMainFrame::CreateNullSetup() { memset(&m_Setup,0,sizeof(m_Setup)); _tcscpy(m_Setup.szIP,DEFAULT_SERVER); #ifdef SMSCENTER_THREE _tcscpy(m_Setup.szIP,DEFAULT_SERVER3); #endif #ifdef SMSCENTER_TWO _tcscpy(m_Setup.szIP,DEFAULT_SERVER2); #endif #ifdef SMSCENTER_ADC _tcscpy(m_Setup.szIP,DEFAULT_SERVERA); #endif #ifdef SMSCENTER_GDDX _tcscpy(m_Setup.szIP,DEFAULT_GDDX); #endif _tcscpy(m_Setup.szUser,_T("Admin")); m_Setup.lProxyType = 2; //类型为2,表示Sock5代理 _tcscpy(m_Setup.szProxyIP,_T("192.168.0.1")); m_Setup.lProxyPort = 8000; } void CMainFrame::GetCurrentPath(TCHAR *pPath) { ::GetModuleFileName( NULL , pPath , 512); for ( int j=_tcslen(pPath) ; j>0 ; j-- ) { if (pPath[j]=='\\' ) break; } pPath[j+1]=0; } BOOL CMainFrame::ChangeView(long lIndex) { /* CCreateContext context; CView * pActiveView= GetActiveView(); CDocument * pDoc = NULL; if ( pActiveView ) pDoc = pActiveView->GetDocument(); context.m_pNewViewClass= m_pClass[lIndex]; context.m_pCurrentDoc=pDoc; context.m_pNewDocTemplate=NULL; context.m_pLastView=NULL; context.m_pCurrentFrame=NULL; m_wndSplitter.DeleteView( 0 ,1 ); m_wndSplitter.CreateView(0,1,context.m_pNewViewClass,CSize(200,0),&context); SetActiveView((CView*)m_wndSplitter.GetPane(0,1)); CView * pView = (CView *)m_wndSplitter.GetPane( 0 ,1 ); pView->OnInitialUpdate(); m_wndSplitter.RecalcLayout(); */ return true; } BOOL CMainFrame::ShowFuncDlg(long lIndex) { m_lCurFunc = lIndex; return m_pUserView->ShowFuncDlg( lIndex ); } BOOL CMainFrame::SendFrame(DWORD lFuncType, unsigned char *pFrame, unsigned long lFrameLen) { KillTimer( 2 ); //重新计时 SetTimer( 2 , RECVREFRESH_TIMEOUT , NULL ); //启时超时发送刷新指令 SetTimer( 3 , SOCKETRECV_TIMEOUT , NULL ); //启发超时检测 SetStatMsg( _T("正在向服务器发出请求...") ); if ( lFuncType < 256 ) return m_Socket.SendFrame( (unsigned char)lFuncType , pFrame , lFrameLen ); else return m_Socket.SendFrameEx( lFuncType , pFrame , lFrameLen ); } BOOL CMainFrame::GetUserPurview(ULONG ulPurview,BOOL bShowWarning) { BOOL b=m_ulPurview & ulPurview; if ( !b && bShowWarning ) { MessageBox( _T("对不起,你没有进行此项操作的权限,请与管理员联系!") , _T("权限不足") , MB_ICONINFORMATION ); } return b; } void CMainFrame::OnModifyPasswd() { DLG_Passwd dlg(this); dlg.SetParam( m_Setup ); if ( dlg.DoModal() == IDOK ) { //发送,修改密码 SM_Setup setup = dlg.GetParam(); REQ_Passwd * pPasswd = new REQ_Passwd; memset( pPasswd , 0 , sizeof(REQ_Passwd) ); pPasswd->lUserID = m_lUserID; #ifdef MANAGER_VER_YWY pPasswd->ucUserType = LOGINTYPE_YWY; #else #ifdef MANAGER_VER_HF pPasswd->ucUserType = LOGINTYPE_HF; #else pPasswd->ucUserType = LOGINTYPE_AGENT; #endif #endif _tcscpy( pPasswd->szUserName , setup.szUser ); CDes des; char szUser[32]={0}; char szPasswd[64]={0}; char szPasswd2[64]={0}; #ifdef _UNICODE strcpy(szUser , CW2A(pPasswd->szUserName)); strcpy(szPasswd , CW2A(setup.szPasswd)); #else strcpy(szUser , pPasswd->szUserName); strcpy(szPasswd , setup.szPasswd); #endif long lLen=sizeof(szPasswd2); des.Encrypt(szPasswd ,strlen(szPasswd) , szPasswd2 , lLen , szUser , 8 ); #ifdef _UNICODE _tcscpy( pPasswd->szPasswd , CA2W(szPasswd2)); #else strcpy( pPasswd->szPasswd , szPasswd2); #endif SendFrame( SMSFUNC_PASSWD , (BYTE*)pPasswd , sizeof(REQ_Passwd) ); } } BOOL CMainFrame::ProcessSocket(Socket_Head *pHead) { if ( pHead->lFuncType == SMSFUNC_PASSWD) //正在取用户信息 { ANS_Passwd * pPasswd = (ANS_Passwd *)pHead->pFrame; if ( pPasswd->ucState == SMS_PASSWD_OK) { MessageBox( _T("修改密码成功,请记住新的密码!") , _T("信息") , MB_ICONWARNING ); } else { MessageBox( _T("修改密码失败,请检测!") , _T("错误") , MB_ICONWARNING ); } return true; } if ( pHead->lFuncType == SMSFUNC_DATABACK) { ANS_DataBack * pBack = (ANS_DataBack *)pHead->pFrame; if ( pBack->bOK ) { MessageBox( _T("备份数据库成功!") , _T("信息") , MB_ICONWARNING ); } else { CString str; str.Format( _T("备份数据库失败:%s!") , pBack->szMsg ); MessageBox( str , _T("错误") , MB_ICONWARNING ); } return true; } if ( pHead->lFuncType == SMSFUNC_REBOOT) { ANS_Reboot * pReboot = (ANS_Reboot *)pHead->pFrame; if ( pReboot->bOK ) { MessageBox( _T("强制重启服务器成功!") , _T("信息") , MB_ICONINFORMATION ); } else { MessageBox( _T("强制重启服务器失败!") , _T("错误") , MB_ICONWARNING ); } return true; } if ( pHead->lFuncType == SMSFUNC_YJ || pHead->lFuncType == SMSFUNC_YJ2) { ANS_YJ * pYJ = (ANS_YJ *)pHead->pFrame; if ( pYJ->bOK ) { MessageBox( _T("你的意见提交成功,非常感谢!"),_T("信息"),MB_ICONINFORMATION ); } else { MessageBox( _T("你的意见提交失败,请与管理员联系!"),_T("信息"),MB_ICONWARNING ); } return true; } if ( pHead->lFuncType == SMSFUNC_GETGG3) //取广告信息 { ANS_GetGG3 * pGG = (ANS_GetGG3 *)pHead->pFrame; BYTE * pData = pHead->pFrame+sizeof(ANS_GetGG3); m_pUserView->m_dlgGG.SetHtmlData(pGG); /* m_strTEXT = pGG->szText; m_strHTML = pGG->szHTML; if ( pGG->lLen > 0 ) { } if ( m_strTEXT.GetLength() > 0 ) { m_pUserView->m_dlgGG.SetHtmlData(pGG); m_strTEXT = _T("                               ")+m_strTEXT; m_lGDText = 0; SetTimer(10 , 350 , NULL ); //UINT uStyle = m_B_CJ.GetButtonStyle(); //uStyle = (uStyle & ~BS_CENTER) | BS_LEFT; //m_B_CJ.SetButtonStyle(uStyle); //m_B_CJ.SendMessage(BM_SETSTYLE , BS_LEFT , 0 ); } */ return true; } if ( pHead->lFuncType == SMSFUNC_CORP_BZ_ADD) //添加备注 { ANS_Corp_BZ_Add * pAdd = (ANS_Corp_BZ_Add *)pHead->pFrame; if ( pAdd->bOK ) { MessageBox( _T("添加备注/回访成功!") , _T("消息") , MB_ICONINFORMATION|MB_OK ); } else { MessageBox( _T("添加备注/回访失败,请先排除是否已超每天最大值!") , _T("错误") , MB_ICONWARNING|MB_OK ); } return true; } if ( pHead->lFuncType == SMSFUNC_CORP_OPER_ADD) //添加备注 { ANS_Corp_Oper_Add * pAdd = (ANS_Corp_Oper_Add *)pHead->pFrame; if ( pAdd->bOK ) { MessageBox( _T("添加操作成功!") , _T("消息") , MB_ICONINFORMATION|MB_OK ); } else { if ( pAdd->data.lOperType == 13 || pAdd->data.lOperType == 15 ) { MessageBox( _T("所输入的合同号不存在或已分配,请检查!") , _T("错误") , MB_ICONWARNING|MB_OK ); } else { MessageBox( _T("添加操作失败,请检查!") , _T("错误") , MB_ICONWARNING|MB_OK ); } } return true; } if ( pHead->lFuncType == SMSFUNC_CLOSECLIENT2) //正在取用户信息 { ANS_CloseClient * pClose = (ANS_CloseClient *)pHead->pFrame; if ( pClose->lUserID == this->m_lUserID ) { this->PostMessage( WM_CLOSE ); } return true; } return false; } void CMainFrame::SetStatMsg(const TCHAR *pMsg) { m_wndStatusBar.SetPaneText( 0 , pMsg , true ); } void CMainFrame::OnBackData() { DLG_Data_Back dlg(this); if ( dlg.DoModal() == IDOK ) { //发送,修改密码 REQ_DataBack * pBack = new REQ_DataBack; memset( pBack , 0 , sizeof(REQ_DataBack) ); dlg.m_tBegin.GetAsSystemTime(pBack->tBegin); SendFrame( SMSFUNC_DATABACK , (BYTE*)pBack , sizeof(REQ_DataBack) ); } } void CMainFrame::OnUpdateBackData(CCmdUI* pCmdUI) { if ( !_tcscmp(m_Setup.szUser,_T("Admin")) ) pCmdUI->Enable(true); else pCmdUI->Enable(false); } void CMainFrame::OnReboot() { int iRet = MessageBox(_T("将强制重新启动服务器,是否继续?"),_T("问题"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2); if (iRet == IDYES ) { //发送,修改密码 REQ_Reboot * pReboot = new REQ_Reboot; memset( pReboot , 0 , sizeof(REQ_Reboot) ); _tcscpy( pReboot->szPasswd , _T("SMSMANAGER_876") ); SendFrame( SMSFUNC_REBOOT , (BYTE*)pReboot , sizeof(REQ_Reboot) ); } } void CMainFrame::OnUpdateReboot(CCmdUI* pCmdUI) { if ( !_tcscmp(m_Setup.szUser,_T("Admin")) ) pCmdUI->Enable(true); else pCmdUI->Enable(false); } void CMainFrame::OnSmshelp() { TCHAR szPath[512]; GetCurrentPath(szPath); _tcscat( szPath , _T("AgentManager.doc") ); ShellExecute(NULL,_T("open"),szPath,NULL,NULL,SW_SHOWNORMAL); } void CMainFrame::OnSize(UINT nType, int cx, int cy) { CFrameWnd::OnSize(nType, cx, cy); if ( !m_bInit ) return ; /* //显示广告条 long index = 0; CRect rect; this->m_wndToolBar.GetWindowRect(&rect); long lWidth = rect.Width(); lWidth = cx-20; while(m_wndToolBar.GetItemID(index)!=ID_T_GG) index++; m_wndToolBar.SetButtonInfo(index, ID_T_GG, TBBS_SEPARATOR, lWidth); m_wndToolBar.GetItemRect(index, &rect); //rect.top+=1;rect.bottom -= 1; m_B_CJ.MoveWindow(rect); m_B_CJ.ShowWindow(SW_SHOW); // TODO: Delete these three lines if you don't want the toolbar to // be dockable m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); */ } void CMainFrame::OnTGg() { /* if ( m_strHTML.GetLength() >0 ) ShellExecute(NULL,_T("open"),m_strHTML,NULL,NULL,SW_SHOWNORMAL); */ } void CMainFrame::GetGGMsg() { REQ_GetGG3 * pGetGG = new REQ_GetGG3; memset(pGetGG , 0 , sizeof(REQ_GetGG3)); #ifdef MANAGER_VER_YWY pGetGG->lGetType = 3; #else pGetGG->lGetType = 2; #endif SendFrame( SMSFUNC_GETGG3 , (BYTE*)pGetGG , sizeof(REQ_GetGG3) ); //发送取资料的请求 } void CMainFrame::GDText() { /* CString strMsg; strMsg = m_strTEXT.Right(m_strTEXT.GetLength()-m_lGDText); if ( m_lGDText < m_strTEXT.GetLength() ) { UCHAR c= m_strTEXT.GetAt(m_lGDText); if ( c>128 ) m_lGDText+=2; else m_lGDText++; } else { m_lGDText = 0; } m_B_CJ.SetWindowText(strMsg); */ } void CMainFrame::OnTjvipint() { DLG_TJVipInt dlg(this); m_pTJVipInt = &dlg; dlg.DoModal(); m_pTJVipInt =NULL; }