// MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "CorpSms.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 "DLG_Passwd.h" #include "DLG_MsgSetup.h" #include "DLG_FindSR.h" #include "DLG_CompDB.h" #include "DLG_SYSSetup.h" #include "DLG_SendSetup.h" #include "DLG_MsgSetup2.h" #include "DLG_YJ.h" #include "DLG_Setup_SZGJ.h" #include "DLG_FindNS.h" #include "FSmsLog.h" #include "DLG_HDQuery.h" #include "DLG_ChangeTD.h" #include "DLG_MasSetup.h" #include "DLG_Commend_My.h" #include "DLG_Commend_DH.h" #include "..\public\md53\MD5_L.h" #include "FUBoxLog.h" #include "..\public\Excel\LuExcel.h" #include "DLG_UBox_CallType.h" #include "DLG_White2.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_MSGSETUP, OnMsgsetup) ON_COMMAND(ID_T_SHOWSMSLIST, OnTShowsmslist) ON_COMMAND(ID_T_SHOWMMSLIST, OnTShowmmslist) ON_COMMAND(ID_T_MSGSETUP, OnTMsgsetup) ON_COMMAND(ID_T_ADDUSER, OnTAdduser) ON_UPDATE_COMMAND_UI(ID_T_ADDUSER, OnUpdateTAdduser) ON_COMMAND(ID_T_ADDGROUP, OnTAddgroup) ON_UPDATE_COMMAND_UI(ID_T_ADDGROUP, OnUpdateTAddgroup) ON_COMMAND(ID_T_SMSVIEW, OnTSmsview) ON_UPDATE_COMMAND_UI(ID_T_SMSVIEW, OnUpdateTSmsview) ON_COMMAND(ID_T_SMSNEW, OnTSmsnew) ON_UPDATE_COMMAND_UI(ID_T_SMSNEW, OnUpdateTSmsnew) ON_UPDATE_COMMAND_UI(ID_T_SHOWSMSLIST, OnUpdateTShowsmslist) ON_UPDATE_COMMAND_UI(ID_T_SHOWMMSLIST, OnUpdateTShowmmslist) ON_WM_CLOSE() ON_COMMAND(ID_FINDSR, OnFindsr) ON_COMMAND(ID_COMPDB, OnCompdb) ON_COMMAND(ID_HELP2, OnHelp2) ON_COMMAND(ID_SYSTEMSETUP, OnSystemsetup) ON_UPDATE_COMMAND_UI(ID_SYSTEMSETUP, OnUpdateSystemsetup) ON_COMMAND(ID_T_CJ, OnTCj) ON_COMMAND(ID_SENDSETUP, OnSendsetup) ON_COMMAND(ID_T_LOGO, OnTLogo) ON_COMMAND(ID_T_BILL, OnTBill) ON_UPDATE_COMMAND_UI(ID_T_BILL, OnUpdateTBill) ON_UPDATE_COMMAND_UI(ID_HELP2, OnUpdateHelp2) ON_COMMAND(ID_SETUP_SZGJ, OnSetupSzgj) ON_COMMAND(ID_NSTS, OnNsts) ON_WM_SIZE() ON_COMMAND(ID_BXTS, OnBxts) ON_COMMAND(ID_HD, OnHd) ON_COMMAND(ID_SETUP_TD, OnSetupTd) ON_COMMAND(ID_T_LOGO2, OnTLogo2) ON_COMMAND(ID_SETUP_IM_MAS, OnSetupImMas) ON_COMMAND(ID_APP_COMMEND, OnAppCommend) ON_COMMAND(ID_T_GG, OnTGg) ON_COMMAND(ID_OPER_SENDSMS, OnOperSendsms) ON_COMMAND(ID_OPER_SENDFAX, OnOperSendfax) ON_COMMAND(ID_OPER_SENDMMS, OnOperSendmms) ON_COMMAND(ID_CHECKUPDATE, OnCheckupdate) ON_COMMAND(ID_T_CORPWORK, OnTCorpwork) ON_COMMAND(ID_T_UBOX, OnTUbox) ON_COMMAND(ID_T_YJ, OnTYj) ON_MESSAGE( UBOX_EVENT , UBox_Event ) ON_WM_SYSCOMMAND() //}}AFX_MSG_MAP ON_MESSAGE( PROCESSSOCKET_ERROR , ProcessSocket_Error ) ON_MESSAGE( PROCESSSOCKET_FRAME , ProcessSocket_Frame ) ON_MESSAGE( WM_PICTURE_CLICK , On_Picture_Click) ON_MESSAGE( WM_COPYDATA , On_ExcelAddin_Data ) ON_REGISTERED_MESSAGE( CORPSMSADDIN_MSG_OPEN , On_ExcelAddin_Open ) ON_MESSAGE(CORPSMSADDIN_MSG_GETGROUP , On_ExcelAddin_GetGroup) ON_MESSAGE( SHELL_ICON_MESS , OnShellIconMess ) //定义任务栏消息的处理 ON_COMMAND(ID_APP_CALLTYPE, &CMainFrame::OnAppCalltype) ON_UPDATE_COMMAND_UI(ID_APP_CALLTYPE, &CMainFrame::OnUpdateAppCalltype) ON_COMMAND( CORPSMS_ICON_R_SHOW , OnShellIcon_Show ) ON_COMMAND( CORPSMS_ICON_R_SMS , OnShellIcon_Sms ) ON_COMMAND( CORPSMS_ICON_R_MMS , OnShellIcon_Mms ) ON_COMMAND( CORPSMS_ICON_R_QUIT , OnShellIcon_Exit ) ON_COMMAND(ID_APP_WHITE2, &CMainFrame::OnAppWhite2) ON_UPDATE_COMMAND_UI(ID_APP_WHITE2, &CMainFrame::OnUpdateAppWhite2) END_MESSAGE_MAP() static UINT indicators[] = { ID_SEPARATOR, // status line indicator IDS_GGTEXT, ID_INDICATOR_CAPS, ID_INDICATOR_NUM, ID_INDICATOR_SCRL, }; ///////////////////////////////////////////////////////////////////////////// // CMainFrame construction/destruction CMainFrame *g_MainFrame = NULL; CMainFrame::CMainFrame() { m_pFuncView = NULL; m_pBaseView = NULL; CreateNullSetup(); m_pCurUser = NULL; m_lCurFunc = 0; m_ulPurview = 0; m_lUserID = 0; m_lCorpID = 0; m_bShowProcess = false; memset(&m_Ans_Login,0,sizeof(m_Ans_Login)); memset(&m_Ans_Login2,0,sizeof(m_Ans_Login2)); m_Ans_Login2.bCMFirst = false; m_Ans_Login2.lMaxSmsLen = MSG_MAXSENDLEN; m_lFiltCount = 0; m_pFilt = NULL; m_lBackCount = 0; m_pBack = NULL; m_lGDText = 0; m_pCJCard = NULL; m_dwEndTYjTime = 0; m_bChangeGAddress = false; m_bReadGAddressError=false; m_strMainGroupID = _T(""); m_lMainGroupID = -1; m_bLoginOK = false; m_hExcelAddinWnd=NULL; m_lAddinType=0; //1-Open,2-SendSms,3-Address m_lNoSupperWordCount = 0; m_pNoSupperWord = NULL; m_pCommendDlg = NULL; m_pHDQuery = NULL; m_CliSmsTD_Req = false; //用于判断通道设置请求是哪发出的 m_bCheckUpdateManual = false; //用于判断是否为手动更新 memset(&m_Setup,0,sizeof(m_Setup)); #ifdef SUPPER_UBOX //来电显示盒子 m_ubox_Status=0; m_ubox_Lib=NULL; m_ubox_Open=NULL; m_ubox_close=NULL; m_ubox_get_work_mode=NULL; m_ubox_send_dtmf = NULL; m_ubox_record_stream = NULL; m_ubox_stop_record = NULL; m_ubox_record_file = NULL; m_ubox_endHandle = NULL; g_MainFrame = this; m_ubox_bPhoneUp = false; m_ubox_Phoneing = false; m_ubox_NowPop = NULL; m_RecordUpload_UBoxLogID = 0; m_RecordUpload_EndSendFrame = 0; m_RecordUpload_AllSize = 0; m_RecordUpload_UpSize = 0; #endif m_bLogin = false; m_pWhie2 = NULL; } CMainFrame::~CMainFrame() { // SaveSetup(); //清除队列中的内容 while (!m_User.IsEmpty()) { SM_User * pUser = m_User.GetHead(); m_User.RemoveHead(); delete pUser; } //删除过滤语 if ( m_pFilt ) {delete m_pFilt;m_pFilt=NULL;} //删除黑名单 if ( m_pBack ) {delete m_pBack;m_pBack=NULL;} //删除不支持字符 if ( m_pNoSupperWord ) {delete m_pNoSupperWord;m_pNoSupperWord=NULL;} #ifdef SUPPER_UBOX ubox_Close(); #endif; } int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { /* CStringArray abc; abc.Add(_T("A")); abc.Add(_T("B")); abc.InsertAt(0,_T("C")); CStringSort sort; sort.Add(_T("13922455100"),true); sort.Add(_T("13922455102"),true); sort.Add(_T("13922455103"),true); sort.Add(_T("13922455104"),true); sort.Add(_T("13922455105"),true); sort.Add(_T("13922455106"),true); sort.Add(_T("13922455107"),true); sort.Add(_T("13922455108"),true); sort.Add(_T("13922455109"),true); sort.Add(_T("13922455110"),true); sort.Add(_T("13922455111"),true); for ( int i=0 ; iGetDeviceCaps(LOGPIXELSX); fRatio = (float)nDPI / 96.0f ; ReleaseDC(pDC); if (fRatio < 0.2f || fRatio>3.0f) fRatio = 1.0f; if (fRatio > 1.2f) fRatio = fRatio * 0.85f; if (fRatio > 1.5f) fRatio = fRatio * 0.9f; int iDefaultWidth = 90; int iDefaultHeight = 48; //fRatio = 1.0f; if (fRatio != 1.0f) { iDefaultWidth = (int)((float)iDefaultWidth * fRatio); iDefaultHeight = (int)((float)iDefaultHeight * fRatio); } SIZE size1 = { iDefaultWidth + (int)(6.0f * fRatio),iDefaultHeight + (int)(12.0f * fRatio) }; SIZE size2 = { iDefaultWidth,iDefaultHeight }; m_wndToolBar.SetSizes(size1, size2); //m_wndToolBar.SetHeight(iDefaultHeight); m_Image.Create(iDefaultWidth, iDefaultHeight,ILC_COLOR32|ILC_MASK,15,15); /* #ifdef SMSCENTER_ADC m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_LOGO_ADC)); #else m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_LOGO)); #endif */ m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_SHOWSMS)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_SHOWMMS)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_MSGSETUP)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_BILL)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_YJ)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_CJ)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_CORPWORK)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_UBOX_DISABLE)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_UBOX_ENABLE)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_UBOX_RING)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_UBOX_PHONE)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_SMSVIEW)); m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_SMSNEW)); m_Iocn_UBox_KT = m_Image.Add( AfxGetApp()->LoadIcon(IDI_T_UBOX_KT)); m_wndToolBar.GetToolBarCtrl().SetImageList(&m_Image); m_wndToolBar.GetToolBarCtrl().ModifyStyle( 0, TBSTYLE_TRANSPARENT|TBSTYLE_AUTOSIZE); m_wndToolBar.SetWindowText( _T("短信工具条") ); CToolBarCtrl & bc = m_wndToolBar.GetToolBarCtrl(); long index = 0; CRect rect; /* index=0; while(m_wndToolBar.GetItemID(index)!=ID_T_LOGO2) index++; //#ifdef SMSCENTER_ADC // m_wndToolBar.SetButtonInfo( index,ID_T_LOGO2,TBBS_SEPARATOR,125); //#else m_wndToolBar.SetButtonInfo( index,ID_T_LOGO2,TBBS_SEPARATOR,0); //#endif */ /* #ifdef MOBSET_CARD_VER index=0; while(m_wndToolBar.GetItemID(index)!=ID_T_ADDUSER) index++; m_wndToolBar.SetButtonInfo( index,ID_T_ADDUSER,TBBS_SEPARATOR,0); index=0; while(m_wndToolBar.GetItemID(index)!=ID_T_ADDGROUP) index++; m_wndToolBar.SetButtonInfo( index,ID_T_ADDGROUP,TBBS_SEPARATOR,0); #endif */ #ifndef SUPPER_UBOX index = 0; while(m_wndToolBar.GetItemID(index)!=ID_T_UBOX) index++; bc.DeleteButton(index); #else // index = 0; // while(m_wndToolBar.GetItemID(index)!=ID_T_UBOX) index++; // m_wndToolBar.SetButtonInfo(index,ID_T_UBOX,TBBS_BUTTON,1); #endif #if defined(MOBSET_OEM) && !defined(MOBSET_OEM_DLXS) //oem版本,删除管理易按扭 index = 0; while(m_wndToolBar.GetItemID(index)!=ID_T_CORPWORK) index++; bc.DeleteButton(index); #endif #ifdef SMSCENTER_NX //农信版本,删除管理易按扭 for ( int i=0 ; i< m_wndToolBar.GetCount() ; i++ ) { if ( m_wndToolBar.GetItemID(index)==ID_T_CORPWORK ) { bc.DeleteButton(index); break; } } //删除帐单功能 for ( i=0 ; i< m_wndToolBar.GetCount() ; i++ ) { if ( m_wndToolBar.GetItemID(index)==ID_T_BILL ) { bc.DeleteButton(index); break; } } #endif #define Cj_WIDTH 90 //显示意见按扭 /* while(m_wndToolBar.GetItemID(index)!=ID_T_YJ) index++; m_wndToolBar.SetButtonInfo(index, ID_T_YJ, TBBS_SEPARATOR, Cj_WIDTH); m_wndToolBar.GetItemRect(index, &rect); rect.top+=2;rect.bottom -= 2; if (!m_B_YJ.CreateEx(WS_EX_STATICEDGE,_T("Button"),_T("我有建议"),WS_CHILD|WS_VISIBLE,rect, &m_wndToolBar, ID_T_YJ)) { TRACE0("Failed to create combo-box\n"); return FALSE; } m_B_YJ.ShowWindow(SW_SHOW); */ #if defined(MOBSET_CARD_VER ) || defined(MOBSET_ALLOW_CJ ) /* //显示充值按扭 while(m_wndToolBar.GetItemID(index)!=ID_T_CJ) index++; m_wndToolBar.SetButtonInfo(index, ID_T_CJ, TBBS_SEPARATOR, Cj_WIDTH); m_wndToolBar.GetItemRect(index, &rect); rect.top+=2;rect.bottom -= 2; if (!m_B_CJ.CreateEx(WS_EX_STATICEDGE,_T("Button"),_T("我要充值"),WS_CHILD|WS_VISIBLE,rect, &m_wndToolBar, ID_T_CJ)) { TRACE0(_T("Failed to create combo-box\n")); return FALSE; } m_B_CJ.ShowWindow(SW_SHOW); // m_B_CJ.SetFont(&m_Font,true); */ #else index=0; while(m_wndToolBar.GetItemID(index)!=ID_T_CJ) index++; bc.DeleteButton(index); //m_wndToolBar.SetButtonInfo( index,ID_T_CJ,TBBS_SEPARATOR,0); #endif //显示广告条 int iToolBarGGWidth = 420; iToolBarGGWidth = (long)((float)iToolBarGGWidth * fRatio); //加上DPI参数 index = 0; while(m_wndToolBar.GetItemID(index)!=ID_T_GG) index++; m_wndToolBar.SetButtonInfo(index, ID_T_GG, TBBS_SEPARATOR, iToolBarGGWidth); m_wndToolBar.GetItemRect(index, &rect); //rect.bottom += 50; //rect.right += 50; //m_wndToolBar.MoveWindow(&rect); //rect.top+=2;rect.bottom -= 2; m_B_Gif.SetMainWnd(this); m_B_Gif.SetStaticRect(rect.Width(),rect.Height()); m_B_Gif.SetBkColor( RGB(128,128,128)); //初始化GIF显示图像 if (!m_B_Gif.CreateEx(WS_EX_STATICEDGE,_T("static"),_T(""),WS_CHILD|WS_VISIBLE,rect, &m_wndToolBar, ID_T_GG)) { TRACE(_T("Failed to create combo-box\n")); return FALSE; } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("Failed to create status bar\n"); return -1; // fail to create } #ifdef MOBSET_DXT m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef SMSCENTER_TWO m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM //oem版本,删除广告按扭 m_B_Gif.ShowWindow(SW_HIDE); index = 0; while(m_wndToolBar.GetItemID(index)!=ID_T_GG) index++; bc.DeleteButton(index); bc.DeleteButton(index-1); //删除竖条 #if defined(MOBSET_OEM_SZSHJ) || defined(MOBSET_OEM_CRM) //oem版本,删除意见建议 index = 0; while(m_wndToolBar.GetItemID(index)!=ID_T_YJ) index++; bc.DeleteButton(index); //bc.DeleteButton(index-1); //删除竖条 #endif m_wndStatusBar.SetPaneText(1,_T(" 短信易 V4.08")); #ifdef MOBSET_OEM_XASW m_wndStatusBar.SetPaneText(1,_T(" 西安圣威养生馆专用短信服务系统 V3.10")); #endif #ifdef MOBSET_OEM_SUNPO m_wndStatusBar.SetPaneText(1,_T(" 善普E信通 V3.10")); #endif #ifdef MOBSET_OEM_MANI m_wndStatusBar.SetPaneText(1,_T(" 麻呢网络信天游 V3.10")); #endif #ifdef MOBSET_OEM_NJYS m_wndStatusBar.SetPaneText(1,_T(" 企信通 V4.08")); #endif #ifdef MOBSET_OEM_LJJ m_wndStatusBar.SetPaneText(1,_T(" 李锦记企业短信 V3.10")); #endif #ifdef MOBSET_OEM_LONGZX m_wndStatusBar.SetPaneText(1,_T(" 龙之行短信王 V3.10")); #endif #ifdef MOBSET_OEM_WFCTT m_wndStatusBar.SetPaneText(1,_T(" 短信呼叫中心 V3.10")); #endif #ifdef MOBSET_OEM_KMSR m_wndStatusBar.SetPaneText(1,_T(" 思锐短信通 V3.10")); #endif #ifdef MOBSET_OEM_JMHL m_wndStatusBar.SetPaneText(1,_T(" 汇联短信通 V3.10")); #endif #ifdef MOBSET_OEM_AUYOU m_wndStatusBar.SetPaneText(1,_T(" 遨游短信通 V3.10")); #endif #ifdef MOBSET_OEM_MDT m_wndStatusBar.SetPaneText(1,_T(" 名店通 V3.10")); #endif #ifdef MOBSET_OEM_SZMDT m_wndStatusBar.SetPaneText(1,_T(" “幻通”移动商务企业服务平台 V3.10")); #endif #ifdef MOBSET_OEM_SHQX m_wndStatusBar.SetPaneText(1,_T(" 短信通 V3.10")); #endif #ifdef MOBSET_OEM_1798 m_wndStatusBar.SetPaneText(1,_T(" 1798短信通 V3.10")); #endif #ifdef MOBSET_OEM_NJLH m_wndStatusBar.SetPaneText(1,_T(" 企业短信e V3.10")); #endif #ifdef MOBSET_OEM_JSXAT m_wndStatusBar.SetPaneText(1,_T(" 短信应用平台 V3.10")); #endif #ifdef MOBSET_OEM_NDBD m_wndStatusBar.SetPaneText(1,_T(" 短信平台 V3.10")); #endif #ifdef MOBSET_OEM_TYF m_wndStatusBar.SetPaneText(1,_T(" 同一发短信平台 V4.08")); #endif #ifdef MOBSET_OEM_TYF_LZT m_wndStatusBar.SetPaneText(1,_T(" 留住通 V4.08")); #endif #ifdef MOBSET_OEM_TYF_ZXT m_wndStatusBar.SetPaneText(1,_T(" 直效通 V4.08")); #endif #ifdef MOBSET_OEM_TYF_FG m_wndStatusBar.SetPaneText(1,_T(" 飞鸽短信 V4.08")); #endif #ifdef MOBSET_OEM_TYF_LLL m_wndStatusBar.SetPaneText(1,_T(" 飞鸽短信 V4.08")); #endif #ifdef MOBSET_OEM_HYBL m_wndStatusBar.SetPaneText(1,_T(" 短信通 V3.10")); #endif #ifdef MOBSET_OEM_SDRW m_wndStatusBar.SetPaneText(1,_T(" 短信通 V1.0 顺德人网络传播工作站")); #endif #ifdef MOBSET_OEM_HKLC m_wndStatusBar.SetPaneText(1,_T(" 短信专家 V4.08")); #endif #ifdef MOBSET_OEM_ZYTX #ifdef SMSCENTER_ADC m_wndStatusBar.SetPaneText(1,_T("ADC企信通B11.10") ); #else m_wndStatusBar.SetPaneText(1,_T(" IE短信通1208S")); #endif #endif #ifdef MOBSET_OEM_GZWY m_wndStatusBar.SetPaneText(1,_T(" 万容短信易")); #endif #ifdef MOBSET_OEM_TCKJ m_wndStatusBar.SetPaneText(1,_T(" 信易通")); #endif #ifdef MOBSET_OEM_CQZX m_wndStatusBar.SetPaneText(1,_T(" 企业通")); #endif #ifdef MOBSET_OEM_WHPGY m_wndStatusBar.SetPaneText(1,_T(" 武汉市蒲公英软件有限公司 http://www.pgysoft.com pgycindy@hotmail.com")); #endif #ifdef MOBSET_OEM_FSRRX m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_FSFB m_wndStatusBar.SetPaneText(1,_T(" 商信通")); #endif #ifdef MOBSET_OEM_JMSB m_wndStatusBar.SetPaneText(1,_T(" 思博短信通")); #endif #ifdef MOBSET_OEM_BJZX m_wndStatusBar.SetPaneText(1,_T(" 知新短信")); #endif #ifdef MOBSET_OEM_NJJML m_wndStatusBar.SetPaneText(1,_T(" PCTroop 易通精灵")); #endif #ifdef MOBSET_OEM_ZSWE m_wndStatusBar.SetPaneText(1,_T(" WELL短信通")); #endif #ifdef MOBSET_OEM_AHMPDK m_wndStatusBar.SetPaneText(1,_T(" 快信通")); #endif #ifdef MOBSET_OEM_NJBG m_wndStatusBar.SetPaneText(1,_T(" 短信点点通")); #endif #ifdef MOBSET_OEM_TLQP m_wndStatusBar.SetPaneText(1,_T(" 天龙短信")); #endif #ifdef MOBSET_OEM_NJJT m_wndStatusBar.SetPaneText(1,_T(" 短信平台")); #endif #ifdef MOBSET_OEM_JHXXG m_wndStatusBar.SetPaneText(1,_T(" 集团短信VIP版")); #endif #ifdef MOBSET_OEM_SGLX m_wndStatusBar.SetPaneText(1,_T(" 凌迅通")); #endif #ifdef MOBSET_OEM_SWHX m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_AHXL m_wndStatusBar.SetPaneText(1,_T(" 捷信通")); #endif #ifdef MOBSET_OEM_SZGF m_wndStatusBar.SetPaneText(1,_T(" 深贸通")); #endif #ifdef MOBSET_OEM_GZQT m_wndStatusBar.SetPaneText(1,_T(" 乾腾网络短信")); #endif #ifdef MOBSET_OEM_HZDZ m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_WAZH m_wndStatusBar.SetPaneText(1,_T(" 纵横企业短信平台")); #endif #ifdef MOBSET_OEM_GZTM m_wndStatusBar.SetPaneText(1,_T(" 天码短信易")); #endif #ifdef MOBSET_OEM_NBBX m_wndStatusBar.SetPaneText(1,_T(" 博贤短信商务助手")); #endif #ifdef MOBSET_OEM_DGZR m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_SZJS m_wndStatusBar.SetPaneText(1,_T(" 盛世互联企业短信通")); #endif #ifdef MOBSET_OEM_LSZH m_wndStatusBar.SetPaneText(1,_T(" 中禾短信")); #endif #ifdef MOBSET_OEM_SYTC m_wndStatusBar.SetPaneText(1,_T(" 信易达")); #endif #ifdef MOBSET_OEM_CSXN #ifdef MOBSET_DXT m_wndStatusBar.SetPaneText(1,_T(" 365短信通")); #else m_wndStatusBar.SetPaneText(1,_T(" 易信商务通")); #endif #endif #ifdef MOBSET_OEM_NFTC m_wndStatusBar.SetPaneText(1,_T(" 南方短信")); #endif #ifdef MOBSET_OEM_CDWL m_wndStatusBar.SetPaneText(1,_T(" 爱可聆短信商务通")); #endif #ifdef MOBSET_OEM_XMZX m_wndStatusBar.SetPaneText(1,_T(" 零距离短信邮局")); #endif #ifdef MOBSET_OEM_WZTX m_wndStatusBar.SetPaneText(1,_T(" 天翔短信平台")); #endif #ifdef MOBSET_OEM_WHLW m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_HNCX m_wndStatusBar.SetPaneText(1,_T(" 晨曦短信通")); #endif #ifdef MOBSET_OEM_CQBX m_wndStatusBar.SetPaneText(1,_T(" 必讯企业短信")); #endif #ifdef MOBSET_OEM_BJBM m_wndStatusBar.SetPaneText(1,_T(" 环球通短信平台集团版")); #endif #ifdef MOBSET_OEM_NJTD m_wndStatusBar.SetPaneText(1,_T(" 德托集团短信")); #endif #ifdef MOBSET_OEM_SJZZR m_wndStatusBar.SetPaneText(1,_T(" 速易通")); #endif #ifdef MOBSET_OEM_GZTGB m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_NJPB m_wndStatusBar.SetPaneText(1,_T(" 庞贝短信易")); #endif #ifdef MOBSET_OEM_GSZWT m_wndStatusBar.SetPaneText(1,_T(" 工商政务通")); #endif #ifdef MOBSET_OEM_ZSSWT m_wndStatusBar.SetPaneText(1,_T(" 税务通")); #endif #ifdef MOBSET_OEM_ZSZWT m_wndStatusBar.SetPaneText(1,_T(" 政务通")); #endif #ifdef MOBSET_OEM_YKHX m_wndStatusBar.SetPaneText(1,_T(" 环讯短信通")); #endif #ifdef MOBSET_OEM_CQYC m_wndStatusBar.SetPaneText(1,_T(" 云短信")); #endif #ifdef MOBSET_OEM_FSYX m_wndStatusBar.SetPaneText(1,_T(" 一讯通")); #endif #ifdef MOBSET_OEM_BJXW m_wndStatusBar.SetPaneText(1,_T(" 中华医药招商网短信平台")); #endif #ifdef MOBSET_OEM_NJWE m_wndStatusBar.SetPaneText(1,_T(" 企信通")); #endif #ifdef MOBSET_OEM_DGLH m_wndStatusBar.SetPaneText(1,_T(" 东莞短信")); #endif #ifdef MOBSET_OEM_DLXS m_wndStatusBar.SetPaneText(1,_T(" 先搜企信通")); #endif #ifdef MOBSET_OEM_XADFSJ m_wndStatusBar.SetPaneText(1,_T(" 信易通")); #endif #ifdef MOBSET_OEM_CSRC m_wndStatusBar.SetPaneText(1,_T(" 长沙高新企业短信运营终端")); #endif #ifdef MOBSET_OEM_SDHL m_wndStatusBar.SetPaneText(1,_T(" 企信通")); #endif #ifdef MOBSET_OEM_QZXXG m_wndStatusBar.SetPaneText(1,_T(" 易网短信通")); #endif #ifdef MOBSET_OEM_DGCW m_wndStatusBar.SetPaneText(1,_T(" 成功我信")); #endif #ifdef MOBSET_OEM_SZSJHL m_wndStatusBar.SetPaneText(1,_T(" 航信通")); #endif #ifdef MOBSET_OEM_WHDB m_wndStatusBar.SetPaneText(1,_T(" 博信通")); #endif #ifdef MOBSET_OEM_JMYD m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_ZHYX #ifdef SMSCENTER_ADC m_wndStatusBar.SetPaneText(1,_T(" ADC移信通")); #else m_wndStatusBar.SetPaneText(1,_T(" 移信通")); #endif #endif #ifdef MOBSET_OEM_NJHW m_wndStatusBar.SetPaneText(1,_T(" 商讯通")); #endif #ifdef MOBSET_OEM_LZBX m_wndStatusBar.SetPaneText(1,_T(" 宝信2008")); #endif #ifdef MOBSET_OEM_NXBX #ifdef SMSCENTER_ADC m_wndStatusBar.SetPaneText(1,_T(" ADC杞美满意通")); #else m_wndStatusBar.SetPaneText(1,_T(" 杞美满意通")); #endif #endif #ifdef MOBSET_OEM_BJMCT m_wndStatusBar.SetPaneText(1,_T(" Mytong短信易")); #endif #ifdef MOBSET_OEM_SZYF #ifdef SMSCENTER_ADC m_wndStatusBar.SetPaneText(1,_T(" ADC飞信通")); #else m_wndStatusBar.SetPaneText(1,_T(" 短信快车")); #endif #endif #ifdef MOBSET_OEM_WHFS m_wndStatusBar.SetPaneText(1,_T(" 风神安康短信王")); #endif #ifdef MOBSET_OEM_TYJY m_wndStatusBar.SetPaneText(1,_T(" 短信天使")); #endif #ifdef MOBSET_OEM_SHWZ m_wndStatusBar.SetPaneText(1,_T(" 短信e路通")); #endif #ifdef MOBSET_OEM_AHXT m_wndStatusBar.SetPaneText(1,_T(" 短信办公助理")); #endif #ifdef MOBSET_OEM_GZHK m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_SZZL m_wndStatusBar.SetPaneText(1,_T(" 真蓝短信通")); #endif #ifdef MOBSET_OEM_SZYY m_wndStatusBar.SetPaneText(1,_T(" 集团短信")); #endif #ifdef MOBSET_OEM_YCZW m_wndStatusBar.SetPaneText(1,_T(" 点信通")); #endif #ifdef MOBSET_OEM_SZBC m_wndStatusBar.SetPaneText(1,_T(" 百辰短信")); #endif #ifdef MOBSET_OEM_YHWL m_wndStatusBar.SetPaneText(1,_T(" 亿海短信通")); #endif #ifdef MOBSET_OEM_NJFB m_wndStatusBar.SetPaneText(1,_T(" 孚邦飞信")); #endif #ifdef MOBSET_OEM_GDLL m_wndStatusBar.SetPaneText(1,_T(" 广东蓝凌科技有限公司")); #endif #ifdef MOBSET_OEM_HEBXLT m_wndStatusBar.SetPaneText(1,_T(" 信立通")); #endif #ifdef MOBSET_OEM_SZJXM m_wndStatusBar.SetPaneText(1,_T(" 盈客通")); #endif #ifdef MOBSET_OEM_SHYY m_wndStatusBar.SetPaneText(1,_T(" 易迅通")); #endif #ifdef MOBSET_OEM_DGKST m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_SZSDW m_wndStatusBar.SetPaneText(1,_T(" 在线通")); #endif #ifdef MOBSET_OEM_SZUU m_wndStatusBar.SetPaneText(1,_T(" 优信通")); #endif #ifdef MOBSET_OEM_GZJX m_wndStatusBar.SetPaneText(1,_T(" TraceAnyWhere SMS")); #endif #ifdef MOBSET_OEM_BJJSY m_wndStatusBar.SetPaneText(1,_T(" 一键通")); #endif #ifdef MOBSET_OEM_SALN m_wndStatusBar.SetPaneText(1,_T(" RTX短信")); #endif #ifdef MOBSET_OEM_FSKJT m_wndStatusBar.SetPaneText(1,_T(" 短信王")); #endif #ifdef MOBSET_OEM_SYBY m_wndStatusBar.SetPaneText(1,_T(" 智能商务通")); #endif #ifdef MOBSET_OEM_HZDS m_wndStatusBar.SetPaneText(1,_T(" 鼎盛企信通")); #endif #ifdef MOBSET_OEM_GZJZ m_wndStatusBar.SetPaneText(1,_T(" 君智短信助手")); #endif #ifdef MOBSET_OEM_TYHSY m_wndStatusBar.SetPaneText(1,_T(" 超音速")); #endif #ifdef MOBSET_OEM_CSJX m_wndStatusBar.SetPaneText(1,_T(" 讯灵通短信系统")); #endif #ifdef MOBSET_OEM_GZCYDN m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_YWKC m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_WLMQYMK m_wndStatusBar.SetPaneText(1,_T(" 即时通")); #endif #ifdef MOBSET_OEM_CSCL m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_GZYZ m_wndStatusBar.SetPaneText(1,_T(" 用泽通短信系统")); #endif #ifdef MOBSET_OEM_PXAYZX m_wndStatusBar.SetPaneText(1,_T(" 短信发")); #endif #ifdef MOBSET_OEM_DLYQL m_wndStatusBar.SetPaneText(1,_T(" 即时通")); #endif #ifdef MOBSET_OEM_GZSY m_wndStatusBar.SetPaneText(1,_T(" 企信通")); #endif #ifdef MOBSET_OEM_KMWH m_wndStatusBar.SetPaneText(1,_T(" 昆明威豪短信通")); #endif #ifdef MOBSET_OEM_DGJN m_wndStatusBar.SetPaneText(1,_T(" 东信易")); #endif #ifdef MOBSET_OEM_SZZS m_wndStatusBar.SetPaneText(1,_T(" IP5G企信通")); #endif #ifdef MOBSET_OEM_LSLT m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_CQZB #ifdef SMSCENTER_ADC m_wndStatusBar.SetPaneText(1,_T(" ADC 兆博通")); #else m_wndStatusBar.SetPaneText(1,_T(" 兆博通")); #endif #endif #ifdef MOBSET_OEM_SZLR m_wndStatusBar.SetPaneText(1,_T(" 一枫企业短信")); #endif #ifdef MOBSET_OEM_KMRX m_wndStatusBar.SetPaneText(1,_T(" 企讯通")); #endif #ifdef MOBSET_OEM_HFXBM m_wndStatusBar.SetPaneText(1,_T(" 新柏美短信易")); #endif #ifdef MOBSET_OEM_KMJR m_wndStatusBar.SetPaneText(1,_T(" 企信通")); #endif #ifdef MOBSET_OEM_HEBWLY m_wndStatusBar.SetPaneText(1,_T(" 信易通")); #endif #ifdef MOBSET_OEM_GZTJ m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_WHBS m_wndStatusBar.SetPaneText(1,_T(" 快易通")); #endif #ifdef MOBSET_OEM_SZCGWX m_wndStatusBar.SetPaneText(1,_T(" 彩告通")); #endif #ifdef MOBSET_OEM_YTLE m_wndStatusBar.SetPaneText(1,_T(" 行业通")); #endif #ifdef MOBSET_OEM_FSSL m_wndStatusBar.SetPaneText(1,_T(" 商信通")); #endif #ifdef MOBSET_OEM_GSYLX m_wndStatusBar.SetPaneText(1,_T(" 易信通")); #endif #ifdef MOBSET_OEM_GZXY m_wndStatusBar.SetPaneText(1,_T(" 讯联“一指通” 短信系统")); #endif #ifdef MOBSET_OEM_DGSM m_wndStatusBar.SetPaneText(1,_T(" 斯玛短信易")); #endif #ifdef MOBSET_OEM_GZRZX m_wndStatusBar.SetPaneText(1,_T(" 客服通")); #endif #ifdef MOBSET_OEM_ZHOK m_wndStatusBar.SetPaneText(1,_T(" E点通集团短信系统企业版")); #endif #ifdef MOBSET_OEM_GZWYZS m_wndStatusBar.SetPaneText(1,_T(" 维盈短信通")); #endif #ifdef MOBSET_OEM_ZHST m_wndStatusBar.SetPaneText(1,_T(" 网信通企业版")); #endif #ifdef MOBSET_OEM_ZZKJ m_wndStatusBar.SetPaneText(1,_T(" 致泽即时通")); #endif #ifdef MOBSET_OEM_DXKC m_wndStatusBar.SetPaneText(1,_T(" 短信快车")); #endif #ifdef MOBSET_OEM_DXQXT m_wndStatusBar.SetPaneText(1,_T(" 企信通")); #endif #ifdef MOBSET_OEM_GZJT m_wndStatusBar.SetPaneText(1,_T(" 信易达")); #endif #ifdef MOBSET_OEM_AHLY m_wndStatusBar.SetPaneText(1,_T(" 狼烟短信通")); #endif #ifdef MOBSET_OEM_ZJLT m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_SHSS m_wndStatusBar.SetPaneText(1,_T(" 梦信通")); #endif #ifdef MOBSET_OEM_BFCB m_wndStatusBar.SetPaneText(1,_T(" 八方企信通")); #endif #ifdef MOBSET_OEM_ZQLT m_wndStatusBar.SetPaneText(1,_T(" 集团短信通")); #endif #ifdef MOBSET_OEM_CCKD m_wndStatusBar.SetPaneText(1,_T(" 长宽百宝箱")); #endif #ifdef MOBSET_OEM_SZSHJ m_wndStatusBar.SetPaneText(1,_T(" MixSMS")); #endif #ifdef MOBSET_OEM_NJZZD m_wndStatusBar.SetPaneText(1,_T(" 来电宝")); #endif #ifdef MOBSET_OEM_CQRT m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_HZYJD m_wndStatusBar.SetPaneText(1,_T(" 短信宝")); #endif #ifdef MOBSET_OEM_GZHH m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_GZNX m_wndStatusBar.SetPaneText(1,_T(" 短信易")); #endif #ifdef MOBSET_OEM_HYLT m_wndStatusBar.SetPaneText(1,_T(" 联通企业短信易")); #endif #ifdef MOBSET_OEM_SZZBW m_wndStatusBar.SetPaneText(1,_T(" 智百威企信通")); #endif #ifdef MOBSET_OEM_TJTH m_wndStatusBar.SetPaneText(1,_T(" 天合企信通")); #endif #ifdef MOBSET_OEM_NJTDJSJ m_wndStatusBar.SetPaneText(1,_T(" 天信通")); #endif #ifdef MOBSET_OEM_LZYLX m_wndStatusBar.SetPaneText(1,_T(" 易短信")); #endif #ifdef MOBSET_OEM_MMDX m_wndStatusBar.SetPaneText(1,_T(" 企信通")); #endif #ifdef MOBSET_OEM_GDDX m_wndStatusBar.SetPaneText(1,_T(" 企信通")); #endif #ifdef MOBSET_OEM_GZXY m_wndStatusBar.SetPaneText(1,_T(" 行运短信 二代")); #endif #ifdef MOBSET_OEM_LHSK m_wndStatusBar.SetPaneText(1,_T(" 贵州六和短信通")); #endif #ifdef MOBSET_OEM_ZYWD m_wndStatusBar.SetPaneText(1,_T(" 企信通")); #endif #ifdef MOBSET_OEM_GZJYKX m_wndStatusBar.SetPaneText(1,_T(" 短信系统")); #endif #ifdef MOBSET_OEM_ZHJB m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_PYAJJZ m_wndStatusBar.SetPaneText(1,_T(" 爱佳家政")); #endif #ifdef MOBSET_OEM_TJJJ m_wndStatusBar.SetPaneText(1,_T(" 天翼短信")); #endif #ifdef MOBSET_OEM_LWXX m_wndStatusBar.SetPaneText(1,_T(" 短信派")); #endif #ifdef MOBSET_OEM_NJYC m_wndStatusBar.SetPaneText(1,_T(" 易车短信通")); #endif #ifdef MOBSET_OEM_SHHWT m_wndStatusBar.SetPaneText(1,_T(" 行业通")); #endif #ifdef MOBSET_OEM_XMKJ m_wndStatusBar.SetPaneText(1,_T(" 互信台")); #endif #ifdef MOBSET_OEM_GZHFXX m_wndStatusBar.SetPaneText(1,_T(" 短信通")); #endif #ifdef MOBSET_OEM_DYDFKJ m_wndStatusBar.SetPaneText(1,_T(" 短信通 D2")); #endif #ifdef MOBSET_OEM_QXKD m_wndStatusBar.SetPaneText(1,_T(" 中迈企讯快递")); #endif #ifdef MOBSET_OEM_DGKF m_wndStatusBar.SetPaneText(1,_T(" 信易通")); #endif #ifdef MOBSET_OEM_CRM m_wndStatusBar.SetPaneText(1,_T(" CRM助手")); #endif #ifdef MOBSET_OEM_GDYK m_wndStatusBar.SetPaneText(1,_T(" 凤凰佳影短信平台")); #endif #ifdef MOBSET_OEM_SZMY m_wndStatusBar.SetPaneText(1,_T(" 明源地产云客短信平台")); #endif #ifdef MOBSET_OEM_SHCD m_wndStatusBar.SetPaneText(1,_T(" CD短信通")); #endif #ifdef MOBSET_OEM_TJYS m_wndStatusBar.SetPaneText(1,_T(" 优斯企信通")); #endif #ifdef MOBSET_OEM_YLCQ m_wndStatusBar.SetPaneText(1,_T(" 粤亮信息")); #endif #ifdef MOBSET_OEM_SZTJ m_wndStatusBar.SetPaneText(1, _T(" 云信通")); #endif #ifdef MOBSET_OEM_GZXDL m_wndStatusBar.SetPaneText(1, _T(" 企信通")); #endif #ifdef MOBSET_OEM_GZBYK m_wndStatusBar.SetPaneText(1, _T(" 铂铱柯短信系统")); #endif #ifdef MOBSET_OEM_SGYD m_wndStatusBar.SetPaneText(1, _T(" 韶关移动短信系统")); #endif #ifdef MOBSET_OEM_HBSYL m_wndStatusBar.SetPaneText(1, _T(" 书信通")); #endif #endif #ifdef MOBSET_OEM_MASSDK TCHAR szFile2[512]; GetModuleFileName(NULL,szFile2,sizeof(szFile2)); long lLen=_tcslen(szFile2); for ( int i=lLen-1 ; i>0 ; i-- ) { if ( szFile2[i] == '.' ) { szFile2[i]=0; break; } } _tcscat(szFile2 , _T(".oem") ); TCHAR szBuf[256]={0}; CFile file; if ( file.Open(szFile2 , CFile::modeRead) ) { long lReadLen=64; if ( file.GetLength()<64 ) lReadLen=file.GetLength(); file.Read(szBuf , lReadLen); m_strMasTitle = szBuf ; } #endif if ( m_strMasTitle.GetLength()>0 ) { m_wndStatusBar.SetPaneText(1,m_strMasTitle); } #ifdef MOBSET_OEM CMenu* mmenutz = GetMenu(); if ( mmenutz ) { CMenu* submenu = mmenutz->GetSubMenu(2); if ( submenu ) { submenu->DeleteMenu(ID_APP_COMMEND, MF_BYCOMMAND); submenu->DeleteMenu(5, MF_BYPOSITION); } #ifdef MOBSET_OEM_CCKD CMenu* submenu2 = mmenutz->GetSubMenu(0); if ( submenu2 ) { submenu2->DeleteMenu(ID_MODIFY_PASSWD, MF_BYCOMMAND); submenu2->DeleteMenu(0, MF_BYPOSITION); } #endif } #endif #ifdef SMSCENTER_NX CMenu* mmenutza = GetMenu(); if ( mmenutza ) { CMenu* submenu = mmenutza->GetSubMenu(2); if ( submenu ) { submenu->DeleteMenu(ID_APP_COMMEND, MF_BYCOMMAND); submenu->DeleteMenu(5, MF_BYPOSITION); } } #endif #ifndef MOBSET_SZGJ //如果不是深圳公交专用版,则取消此设置 CMenu* mmenu = GetMenu(); if ( mmenu ) { CMenu* submenu = mmenu->GetSubMenu(0); if ( submenu ) { submenu->DeleteMenu(ID_SETUP_SZGJ, MF_BYCOMMAND); } } #endif #ifndef CAR_VER //如果不是汽车专版,则取消此菜单 CMenu* mmenu2 = GetMenu(); if ( mmenu2 ) { CMenu* submenu2 = mmenu2->GetSubMenu(2); if ( submenu2 ) { submenu2->DeleteMenu(ID_NSTS, MF_BYCOMMAND); submenu2->DeleteMenu(ID_BXTS, MF_BYCOMMAND); } } #endif #ifndef SUPPER_IM_MAS //如果不支持 MAS 则取消此菜单 CMenu* mmenu3 = GetMenu(); if ( mmenu3 ) { CMenu* submenu3 = mmenu3->GetSubMenu(0); if ( submenu3 ) { submenu3->DeleteMenu(ID_SETUP_IM_MAS, MF_BYCOMMAND); } } #endif #ifndef SUPPERGSM //如果不支持 MAS 则取消此菜单 CMenu* mmenu31 = GetMenu(); if ( mmenu31 ) { CMenu* submenu31 = mmenu31->GetSubMenu(0); if ( submenu31 ) { submenu31->DeleteMenu(ID_SYSTEMSETUP, MF_BYCOMMAND); } } #endif #ifndef SUPPER_FUNC_FAX //如果没有传真 CMenu* mmenu4 = GetMenu(); if ( mmenu4 ) { CMenu* submenu4 = mmenu4->GetSubMenu(1); if ( submenu4 ) { submenu4->DeleteMenu(ID_OPER_SENDFAX, MF_BYCOMMAND); } } #endif #ifndef SUPPER_FUNC_MMS //如果没有彩信 CMenu* mmenu5 = GetMenu(); if ( mmenu5 ) { CMenu* submenu5 = mmenu5->GetSubMenu(1); if ( submenu5 ) { submenu5->DeleteMenu(ID_OPER_SENDMMS, MF_BYCOMMAND); } } #endif #ifndef SUPPER_UBOX CMenu* mmenu6 = GetMenu(); if ( mmenu6 ) { CMenu* submenu6 = mmenu6->GetSubMenu(2); if ( submenu6 ) { submenu6->DeleteMenu(ID_APP_CALLTYPE, MF_BYCOMMAND); //submenu6->DeleteMenu(0, MF_BYPOSITION); } } #endif // 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); //取得UserView m_pFuncView = (CFuncView*)m_wndSplitter.GetPane( 0,0 ); m_pBaseView = (CBaseView*)m_wndSplitter.GetPane( 0,1 ); //读入参数 ReadSetup(); #ifdef SUPPER_IM_MAS Mas_ProcessSendCount();//处理mas计数 #endif //将图标加入到任务栏 CString strName=GetSoftSName(); NOTIFYICONDATA niData; #ifdef MOBSET_OEM niData.hIcon = AfxGetApp()->LoadIcon( IDR_MAINFRAME ); #else niData.hIcon = AfxGetApp()->LoadIcon(IDI_CORPSMS_MINI); #endif niData.cbSize = sizeof( NOTIFYICONDATA ); niData.hWnd = this->m_hWnd; niData.uID = 125; niData.uFlags = NIF_ICON|NIF_TIP|NIF_MESSAGE; niData.uCallbackMessage = SHELL_ICON_MESS; _stprintf( niData.szTip,strName ); Shell_NotifyIcon( NIM_ADD,&niData ); //登录 SetTimer( 1 , 10 , NULL ); 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, 0, pContext->m_pNewViewClass, CSize(200,0), pContext)) return false; if (!m_wndSplitter.CreateView(0, 0, pContext->m_pNewViewClass, CSize(0,0), pContext)) return false; if (!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CBaseView), CSize(0,0), pContext)) return false; #ifdef SUPPER_UBOX //来电显示盒子 //初始化UBOX窗口 //m_DlgUBoxDial.SetMainFrame( pFrame ); m_DlgUBoxDial.Create(IDD_UBOX_DIAL , GetDesktopWindow()); m_DlgUBoxDial.CenterWindow(); m_DlgUBoxDial.SetMainFrame(this); //m_DlgUBoxDial.ShowWindow(SW_SHOWNORMAL); #endif return true; //return CFrameWnd::OnCreateClient(lpcs, pContext); } void CMainFrame::CreateNullSetup() { memset(&m_Setup,0,sizeof(m_Setup)); _tcscpy(m_Setup.szIP,DEFAULT_AUTO_SERVER); m_Setup.bGateWay=false; m_Setup.lProxyType = 2; //类型为2,表示Sock5代理 _tcscpy(m_Setup.szProxyIP,_T("192.168.0.1")); m_Setup.lProxyPort = 8000; _tcscpy(m_Setup.szSZGJPath , _T("d:\\Bus") ); //深圳公交默认数据库位置 //清除队列中的内容 while (!m_User.IsEmpty()) { SM_User * pUser = m_User.GetHead(); m_User.RemoveHead(); delete pUser; } m_Setup.lPort = 1; m_Setup.bAutoDelete = true; m_Setup.lAutoClearCount = 15; m_Setup.lSendSpeed = 2; //短信提交速度 m_Setup.bAutoReSend = false; m_Setup.bAutoGetName = false; m_Setup.lJG = 0; m_Setup.bYF = true; m_Setup.bLog= true; m_Setup.bSound = true; m_Setup.bAutoUpdate = true; _tcscpy( m_Setup.szSQLIP , _T(".") ); _tcscpy( m_Setup.szSQLDB , _T("smsdata") ); _tcscpy( m_Setup.szSQLUser, _T("sa") ); m_Setup.lDelUpDate = 15; //默认为15天 m_Setup.lTopRecord = 1000; //默认仅显示前1000条记录 m_Setup.UBox_Used = true; m_Setup.UBox_bEnable = true; m_Setup.UBox_bUpWindowOpen = true; m_Setup.UBox_bDownWindowClose = true; m_Setup.UBox_bPhoneInPop=true; m_Setup.UBox_bPhoneOutPop=true; m_Setup.UBox_bAutoRecord = true; m_Setup.UBox_lReocrdDel = 8; m_Setup.UBox_lPhoneOutDelay = 7; _tcscpy(m_Setup.UBox_strAreaCode , _T("")); } void CMainFrame::ReadSetup() { try { TCHAR szName[512]={0}; SM_Setup setup={0}; GetCurrentPath(szName); #ifdef _UNICODE _tcscat( szName , _T("CorpSmsW.dat") ); #else _tcscat( szName , _T("CorpSms.dat") ); #endif CFile file; if (!file.Open(szName , CFile::modeRead) ) { CreateNullSetup(); return ; } file.Read(&setup,sizeof(setup)); //if (file.Read(&setup,sizeof(setup)) != sizeof(setup)) if ( setup.lVer!=2 ) { setup.lTopRecord = 1000; } //解密码 m_Setup = setup; CDes des; #ifdef UNICODE char szSrc[64]={0}; char szTag[64]={0}; char szUser[64]={0}; long lOut=sizeof(szTag); strcpy(szSrc , CW2A(setup.szProxyPasswd)); strcpy(szTag , CW2A(setup.szProxyUser)); des.Decrypt( szSrc , strlen(szSrc) , szTag , lOut , szUser , 8 ); _tcscpy(m_Setup.szProxyPasswd,CA2W(szTag)); #else long lOut=sizeof(m_Setup.szProxyPasswd); des.Decrypt( setup.szProxyPasswd , _tcslen(setup.szProxyPasswd) , m_Setup.szProxyPasswd , lOut , m_Setup.szProxyUser , 8 ); #endif #ifdef UNICODE memset(szSrc,0,sizeof(szSrc)); memset(szTag,0,sizeof(szTag)); memset(szUser,0,sizeof(szUser)); lOut=sizeof(szTag); strcpy(szSrc , CW2A(setup.szSQLPasswd)); strcpy(szTag , CW2A(setup.szSQLUser)); des.Decrypt( szSrc , strlen(szSrc) , szTag , lOut , szUser , 8 ); _tcscpy(m_Setup.szSQLPasswd,CA2W(szTag)); #else lOut=sizeof(m_Setup.szSQLPasswd); des.Decrypt( setup.szSQLPasswd , _tcslen(setup.szSQLPasswd) , m_Setup.szSQLPasswd , lOut , m_Setup.szSQLUser , 8 ); #endif for ( int i = 0 ; i< m_Setup.lUserCount ; i++ ) { SM_User * pUser = new SM_User; if ( file.Read(pUser , sizeof(SM_User)) != sizeof(SM_User) ) { delete pUser; break; } //解密码 #ifdef UNICODE memset(szSrc,0,sizeof(szSrc)); memset(szTag,0,sizeof(szTag)); memset(szUser,0,sizeof(szUser)); lOut=sizeof(szTag); strcpy(szSrc , CW2A(pUser->szPasswd)); strcpy(szUser , CW2A(pUser->szUser)); des.Decrypt( szSrc , strlen(szSrc) , szTag , lOut , szUser , 8 ); _tcscpy(pUser->szPasswd,CA2W(szTag)); #else char szPasswd[128]; memset( szPasswd , 0 , sizeof( szPasswd ) ); _tcscpy( szPasswd , pUser->szPasswd ); lOut=sizeof(pUser->szPasswd); des.Decrypt( szPasswd , _tcslen(szPasswd) , pUser->szPasswd , lOut , pUser->szUser , 8 ); #endif m_User.AddTail( pUser ); } file.Close(); if ( m_Setup.lDelUpDate<0 || m_Setup.lDelUpDate>1000 ) m_Setup.lDelUpDate = 15; long bNull = true; for ( BYTE * p=(BYTE *)&m_Setup.UBox_bEnable; p < (BYTE *)&m_Setup.szAutoRecv ; p++ ) { if ( *p!=NULL ) bNull = false; } if ( bNull ) { m_Setup.UBox_bEnable = true; m_Setup.UBox_bUpWindowOpen = true; m_Setup.UBox_bDownWindowClose = true; m_Setup.UBox_bPhoneInPop=true; m_Setup.UBox_bPhoneOutPop=true; m_Setup.UBox_bAutoRecord = true; m_Setup.UBox_lReocrdDel = 8; m_Setup.UBox_lPhoneOutDelay = 7; _tcscpy(m_Setup.UBox_strAreaCode , _T("")); } m_Setup.UBox_Used = true; //ubox曾使用过 } catch(...) { CreateNullSetup(); //读取配置失败,创建空配置。 } return ; } void CMainFrame::SaveSetup() { TCHAR szName[512]={0}; GetCurrentPath(szName); #ifdef _UNICODE _tcscat( szName , _T("CorpSmsW.dat") ); #else _tcscat( szName , _T("CorpSms.dat") ); #endif CFile file; if (!file.Open(szName , CFile::modeCreate|CFile::modeWrite) ) { return ; } m_Setup.lUserCount = m_User.GetCount(); //用户总量 m_Setup.lVer = 2; //第二版本的配置文件 //加密码 SM_Setup setup=m_Setup; CDes des; #ifdef _UNICODE char szSrc[64]={0}; char szTag[64]={0}; char szUser[64]={0}; long lOut=sizeof(szTag); strcpy(szSrc , CW2A(m_Setup.szProxyPasswd)); strcpy(szTag , CW2A(m_Setup.szProxyUser)); des.Encrypt( szSrc , strlen(szSrc) , szTag , lOut , szUser , 8 ); _tcscpy(setup.szProxyPasswd,CA2W(szTag)); memset(szSrc,0,sizeof(szSrc)); memset(szTag,0,sizeof(szTag)); memset(szUser,0,sizeof(szUser)); lOut=sizeof(szTag); strcpy(szSrc , CW2A(m_Setup.szSQLPasswd)); strcpy(szTag , CW2A(m_Setup.szSQLUser)); des.Encrypt( szSrc , strlen(szSrc) , szTag , lOut , szUser , 8 ); _tcscpy(setup.szSQLPasswd,CA2W(szTag)); #else long lOut = sizeof(setup.szProxyPasswd); des.Encrypt( m_Setup.szProxyPasswd , strlen(m_Setup.szProxyPasswd) , setup.szProxyPasswd , lOut , m_Setup.szProxyUser , 8 ); lOut = sizeof(setup.szSQLPasswd); des.Encrypt( m_Setup.szSQLPasswd , strlen(m_Setup.szSQLPasswd) , setup.szSQLPasswd , lOut , m_Setup.szSQLUser , 8 ); #endif file.Write(&setup , sizeof(setup) ); SM_User * pUser; POSITION pos = m_User.GetHeadPosition(); while (pos) { pUser = m_User.GetNext( pos ); SM_User tUser = *pUser; #ifdef _UNICODE memset(szSrc,0,sizeof(szSrc)); memset(szTag,0,sizeof(szTag)); memset(szUser,0,sizeof(szUser)); lOut=sizeof(szTag); strcpy(szSrc , CW2A(pUser->szPasswd)); strcpy(szUser , CW2A(pUser->szUser)); des.Encrypt( szSrc , strlen(szSrc) , szTag , lOut , szUser , 8 ); _tcscpy(tUser.szPasswd,CA2W(szTag)); #else lOut = sizeof(tUser.szPasswd); CDes des; des.Encrypt( pUser->szPasswd , strlen(pUser->szPasswd) , tUser.szPasswd , lOut , pUser->szUser , 8 ); #endif file.Write( &tUser , sizeof(SM_User) ); } file.Close(); } 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; } void CMainFrame::OnTimer(UINT_PTR nIDEvent) { CFrameWnd::OnTimer(nIDEvent); //登录 if ( nIDEvent == 1 ) { KillTimer( 1 ); #ifdef SMSCORP_SIZE TCHAR szFile[512]; GetModuleFileName(NULL,szFile,sizeof(szFile)); HANDLE hFile; hFile = CreateFile( szFile , 0 , FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_ARCHIVE ,NULL); if ( hFile != INVALID_HANDLE_VALUE ) { DWORD dw2 = 0; DWORD dw = GetFileSize( hFile , &dw2 ); CloseHandle( hFile ); if ( dw > SMSCORP_MAXSIZE || dw<100000) //文件超大,肯定是被破坏 { this->OnClose(); return ; } } else { this->OnClose(); return ; } #endif //设置状态栏 CRect rect; m_wndStatusBar.GetWindowRect(&rect); long lWidth=rect.Width()-360; if ( lWidth<0 ) lWidth = 200; m_wndStatusBar.SetPaneInfo(1, IDS_GGTEXT, SBPS_POPOUT, lWidth); //判断是否为ExcelAddin要求的自动登录 TCHAR szCmd[ 256 ]={0}; _stprintf( szCmd , ::AfxGetApp()->m_lpCmdLine ); if (szCmd[0]!=0 && !_tcsncmp(szCmd,_T("EXCELADDIN_OPEN"),_tcslen(_T("EXCELADDIN_OPEN")) ) ) { TCHAR szWnd[256]={0}; _tcsncpy(szWnd , szCmd+_tcslen(_T("EXCELADDIN_OPEN")) , 12 ); m_hExcelAddinWnd =(HWND)(DWORD)_ttol(szWnd); m_lAddinType = 1; //CString str; //str.Format( "wnd=%d , Type=%d" , (DWORD)m_hExcelAddinWnd , m_lAddinType ); //this->ShowWindow(SW_HIDE); } DLG_Login dlg(this); dlg.m_Setup = m_Setup; dlg.m_pUser = &m_User; dlg.m_pSocket = &m_Socket; dlg.m_strMasTitle = m_strMasTitle; if ( dlg.DoModal() == IDOK ) { ShowWindow(SW_SHOWMAXIMIZED); //登录成功后,显示主界面 m_strLoginIP = dlg.m_strLoginIP; m_Setup = dlg.m_Setup; m_Socket.SetParent( this ); //改变通知窗口 m_ulPurviewType = dlg.m_ulPurviewType; m_ulPurview = dlg.m_ulPurview; m_lUserID = dlg.m_lUserID; m_lCorpID = dlg.m_User.lCorpID; //企业ID m_Ans_Login = dlg.m_Ans_Login; //取得登录后返回的信息 m_strPasswdEnc = dlg.m_strPasswdEnc; if ( dlg.m_bAnsLogin2 ) //取得Login2 { m_Ans_Login2 = dlg.m_Ans_Login2; m_strMobile = m_Ans_Login2.szMobile; //取客户端设置,新版本不再从服务器读取,本地自由设置 //m_Setup.bAutoReSend = m_Ans_Login2.bAutoReSend; //m_Setup.lSendSpeed = m_Ans_Login2.lSendSpeed; #ifdef _UNICODE _tcscpy(m_Setup.szBIP1 , m_Ans_Login2.szIP1 ); _tcscpy(m_Setup.szBIP2 , m_Ans_Login2.szIP3 ); #endif } //登录成功,改变窗口显示标题 CString strTitle; GetWindowText(strTitle); strTitle += _T(" "); //#ifndef MOBSET_OEM strTitle += m_Ans_Login.szCorpName; //#endif //#ifndef MOBSET_OEM strTitle += _T(" "); switch ( m_Ans_Login.lUserNumLen ) { case 2: strTitle += _T("[黄金版]"); break; case 3: strTitle += _T("[钻石版]"); break; case 1: default: strTitle += _T("[标准版]"); break; } //#endif SetWindowText( strTitle ); //登录成功,要将当前的登录用户记录下来 BOOL bFound=false; SM_User * pUser; POSITION pos = m_User.GetHeadPosition(); BOOL bUpdate = true; while (pos) { pUser = m_User.GetNext( pos ); if ( pUser->lCorpID == dlg.m_User.lCorpID && //与登录的用户相同 !_tcscmp( pUser->szUser , dlg.m_User.szUser) ) { pUser->bLast = true; m_pCurUser = pUser; //记录当前用户 _tcscpy( pUser->szPasswd , dlg.m_User.szPasswd ); //记录密码 bFound = true; } else { pUser->bLast = false; } } if ( !bFound ) //没有在队列里找到相同的,新增&保存 { pUser = new SM_User; m_pCurUser = pUser; //记录当前用户 *pUser = dlg.m_User; pUser->bLast = true; m_User.AddHead( pUser ); } SaveSetup(); //保存当前参数 //判断是否有更改通道的权限 BOOL bChangeTD = m_Setup.bSDK & SDK_ALLOWCHANGETD ? true:false; if ( !bChangeTD ) { CMenu* mmenu = GetMenu(); if ( mmenu ) { CMenu* submenu = mmenu->GetSubMenu(0); if ( submenu ) { submenu->DeleteMenu(ID_SETUP_TD, MF_BYCOMMAND); } } } m_pFuncView->InitItem(this,false); Sleep(200); if ( !ReadGAddress() ) //从服务器读取公用地址本及可用短信量等信息 { this->OnClose(); return ; } if ( !ReadGAddress2() ) //从服务器读取公用地址本及可用短信量等信息 { this->OnClose(); return ; } //显示树状菜单 this->m_wndSplitter.SetColumnInfo(0,200,0); this->m_wndSplitter.RecalcLayout(); //登录成功,取过滤语 SendFrame( SMSFUNC_FILT2_SEEU , NULL , 0 ); //发送取过滤语的请求 //登录成功,取黑名单 GetBack(); #ifndef MOBSET_OEM GetGGMsg(); //取广告信息 #endif GetUpdateMsg(); //自动更新 GetCenterTime(); //取服务器时间 BOOL bAutoReg = m_Setup.bSDK & SDK_AUTOREG ? true:false; if ( m_Setup.bUseMobile && bAutoReg ) //有2次接口的权限才能使用手机辅助接收 { m_pBaseView->m_dlgSmsJS.ConnectMobile(); } else { m_pBaseView->m_dlgSmsJS.ReadSetup(); } if ( !bAutoReg ) //没有自动注册权限,删除此菜单 //if ( false ) { CMenu* mmenu = GetMenu(); if ( mmenu ) { CMenu* submenu = mmenu->GetSubMenu(0); if ( submenu ) { submenu->DeleteMenu(ID_SYSTEMSETUP, MF_BYCOMMAND); } } } //如果没有客服易权限,更改客户易图标 #ifdef SUPPER_UBOX BOOL bUBox = m_Setup.bSDK & SDK_UBOX ? true:false; if ( !bUBox ) //更改图标 { long index = 0; while(m_wndToolBar.GetItemID(index)!=ID_T_UBOX) index++; m_wndToolBar.SetButtonInfo(index,ID_T_UBOX,TBBS_BUTTON,m_Iocn_UBox_KT); } #endif m_pBaseView->m_dlgSmsJS.RefreshInfo(); //刷新接收信息 m_pBaseView->m_dlgMsg.RefreshInfo(); //刷新BBS m_pBaseView->m_dlgQuery.RefreshInfo(); //刷新查询Log m_bLoginOK = true; //至此已表示登录成功了。 if ( m_hExcelAddinWnd != NULL && m_lAddinType>0 ) { ::SendMessage(m_hExcelAddinWnd,CORPSMSADDIN_MSG_OPEN2_LOGIN,(WPARAM)this->GetSafeHwnd(),(LPARAM)GetExcelAddinErrorNum()); ShowWindow(SW_SHOWMAXIMIZED); //登录成功,最大化窗口 SetForegroundWindow(); SetFocus(); } this->SetTimer( 2 , RECVREFRESH_TIMEOUT , NULL ); this->SetTimer( 4 , 2000 , NULL ); //查找生日用户 //启用自动备份通讯录线程 m_bLogin = true; AfxBeginThread((AFX_THREADPROC)AutoBackAddress_T,(LPVOID)this,THREAD_PRIORITY_BELOW_NORMAL); } else { if ( m_hExcelAddinWnd != NULL && m_lAddinType>0 ) { ::SendMessage(m_hExcelAddinWnd,CORPSMSADDIN_MSG_OPEN2_FAIL,(WPARAM)this->GetSafeHwnd(),0); SetForegroundWindow(); SetFocus(); } this->OnClose(); } return ; } //Test检测 if ( nIDEvent == 2 ) { REQ_Test * pTest = new REQ_Test; pTest->lTemp = ::GetTickCount(); SendFrame( SMSFUNC_TEST , (BYTE*)pTest , sizeof(REQ_Test) ); return ; } //超时检测 if ( nIDEvent == 3 ) { KillTimer( 3 ); SetStatMsg( _T("网络超时,正在重连...") ); m_Socket.Close(); SM_Setup setup = m_Setup; _tcscpy(setup.szIP,m_strLoginIP); //使用能正常登录的IP,防止“自动”引起的无法重连问题 m_Socket.ConnectToServer( setup , true ); //发送测试指令 REQ_Test * pTest = new REQ_Test; pTest->lTemp = ::GetTickCount(); SendFrame( SMSFUNC_TEST , (BYTE*)pTest , sizeof(REQ_Test) ); return ; } //检查今天生日 if ( nIDEvent == 4 ) { KillTimer( 4 ); //顺便初始化UBox #ifdef SUPPER_UBOX if ( !ubox_Init() ) { //MessageBox(_T("客户易外置设备初始化错误,请检查!"),_T("错误") , MB_ICONWARNING ); } #endif BOOL bGAddress = GetUserPurview( PURVIEW_GADDRESS_SEE ,false); BOOL bPAddress = GetUserPurview( PURVIEW_PADDRESS ,false); if ( !bGAddress || !bPAddress ) { return; } SYSTEMTIME t;::GetLocalTime(&t); long lCount = this->FindSR(t.wMonth,t.wDay,t.wMonth,t.wDay,bGAddress,bPAddress,NULL); if ( lCount > 0 ) { MessageBox( _T("提示:今天你有客户生日!\r\n如需要查看详情,请在查看菜单里执行\"查找生日用户\"操作。"),_T("提示") , MB_ICONINFORMATION ); } return ; } //滚动字屏幕 if ( nIDEvent == 10 ) { GDText(); } //上传录音文件 if ( nIDEvent == 12 ) { UBox_Upload_Record(); } } BOOL CMainFrame::GetUserPurview(ULONG ulPurview, BOOL bShowWarning) { BOOL b=m_ulPurview & ulPurview; if ( !b && bShowWarning ) { MessageBox( _T("对不起,你没有进行此项操作的权限,请与管理员联系!") , _T("权限不足") , MB_ICONINFORMATION ); } return b; } BOOL CMainFrame::GetUserPurview_HideNum() { if ( (m_ulPurview & PURVIEW_HIDENUM )&& !(m_ulPurview &PURVIEW_GADDRESS_MODIFY) ) //有隐藏号码权限,并且没有通讯录修改权限 { return true; } else { return false; } return false; } BOOL CMainFrame::SendFrame(DWORD lFuncType, unsigned char *pFrame, unsigned long lFrameLen) { KillTimer( 2 ); //重新计时 SetTimer( 2 , RECVREFRESH_TIMEOUT , NULL ); //启时test刷新指令 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 ); } LONG_PTR CMainFrame::On_Picture_Click( WPARAM wParam , LPARAM lParam ) { OnAppCommend(); return 1; } LONG_PTR CMainFrame::ProcessSocket_Error( WPARAM wParam , LPARAM lParam ) { return 1; } LONG_PTR 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_GADDRESS_SEE: case SMSFUNC_GADDRESS2_SEE: case SMSFUNC_GADDRESS22_SEE: case SMSFUNC_MSGSETUP_SEE: case SMSFUNC_MSGSETUP: case SMSFUNC_MSGSETUP3_SEE: case SMSFUNC_MSGSETUP3: case SMSFUNC_FILT_SEEU: case SMSFUNC_FILT2_SEEU: case SMSFUNC_BACK_SEE: case SMSFUNC_GETGG: case SMSFUNC_GETGG2: case SMSFUNC_SENDMSG: case SMSFUNC_SENDMOBILE: case SMSFUNC_CJCARD: case SMSFUNC_YJ: case SMSFUNC_UPDATE_SEE: case SMSFUNC_UPDATE_SEE2: case SMSFUNC_UPDATE: case SMSFUNC_LOGIN2: case SMSFUNC_CLOSECLIENT2: case SMSFUNC_CENTERTIME: case SMSFUNC_CLISMSTD: if ( m_pBaseView->m_lCurFunc == DLGFUNC_TDSET && !m_CliSmsTD_Req ) { m_pBaseView->m_dlgTDSet.ProcessSocket(pHead); } else { ProcessSocket(pHead); } m_CliSmsTD_Req = false; break; case SMSFUNC_SMSDS_SEE: case SMSFUNC_SMSDS_DEL: m_pBaseView->m_dlgSmsDS.ProcessSocket(pHead); break; case SMSFUNC_GADDRESS_MODIFY: case SMSFUNC_GADDRESS_ADD: case SMSFUNC_GADDRESS_DEL: case SMSFUNC_GADDRESS_GROUP_ADD: case SMSFUNC_GADDRESS_USER_MOVE: m_pBaseView->m_dlgGAddress.ProcessSocket(pHead); break; case SMSFUNC_GADDRESS2_MODIFY: case SMSFUNC_GADDRESS22_MODIFY: case SMSFUNC_GADDRESS2_ADD: case SMSFUNC_GADDRESS22_ADD: case SMSFUNC_GADDRESS2_DEL: case SMSFUNC_GADDRESS2_GROUP_ADD: case SMSFUNC_GADDRESS2_USER_MOVE: m_pBaseView->m_dlgGAddress2.ProcessSocket(pHead); break; case SMSFUNC_GADDRESS_GROUP_MODIFY: case SMSFUNC_GADDRESS_GROUP_DEL: m_pFuncView->ProcessSocket(pHead); break; case SMSFUNC_GADDRESS2_GROUP_MODIFY: case SMSFUNC_GADDRESS2_GROUP_DEL: m_pFuncView->ProcessSocket(pHead); break; case SMSFUNC_SEND2: m_pFuncView->m_DLGSend.ProcessSocket(pHead); break; case SMSFUNC_RECV: case SMSFUNC_RECV2: m_pBaseView->m_dlgSmsJS.ProcessSocket(pHead); break; case SMSFUNC_SENDSTATUS: if ( m_pBaseView->m_lCurFunc == DLGFUNC_SMSLOG_TODAY || m_pBaseView->m_lCurFunc == DLGFUNC_SMSLOG_ALL ) m_pBaseView->m_dlgSmsLog.ProcessSocket(pHead); if ( m_pBaseView->m_lCurFunc == DLGFUNC_QUERYLOG_TODAY || m_pBaseView->m_lCurFunc == DLGFUNC_QUERYLOG_ALL ) m_pBaseView->m_dlgQueryLog.ProcessSocket(pHead); break; case SMSFUNC_BILL: case SMSFUNC_BILL2: case SMSFUNC_BILL3: m_pBaseView->m_dlgBill.ProcessSocket(pHead); break; case SMSFUNC_EMAIL_SEE: case SMSFUNC_EMAIL_ADD: case SMSFUNC_EMAIL_MODIFY: case SMSFUNC_EMAIL_DEL: case SMSFUNC_EMAILFILT_SEE: case SMSFUNC_EMAILFILT_ADD: case SMSFUNC_EMAILFILT_MODIFY: case SMSFUNC_EMAILFILT_DEL: m_pBaseView->m_dlgSmsEmail.ProcessSocket(pHead); break; case SMSFUNC_CALENDAR_SEE: case SMSFUNC_CALENDAR_ADD: case SMSFUNC_CALENDAR_MODIFY: case SMSFUNC_CALENDAR_DEL: m_pBaseView->m_dlgCalendar.ProcessSocket(pHead); break; case SMSFUNC_SWTMOBILE_SEE: case SMSFUNC_SWTMOBILE_ADD: case SMSFUNC_SWTMOBILE_MODIFY: case SMSFUNC_SWTMOBILE_DEL: m_pBaseView->m_dlgSWTMobile.ProcessSocket(pHead); break; case SMSFUNC_DZ_SEE: case SMSFUNC_DZ2_SEE: case SMSFUNC_DZ_ADD: case SMSFUNC_DZ_ADD2: case SMSFUNC_DZ_DEL: case SMSFUNC_DZ_TEST: m_pBaseView->m_dlgSP.ProcessSocket(pHead); break; case SMSFUNC_SWT: switch (m_pBaseView->m_lCurFunc ) { case DLGFUNC_SMSQUERY_SQ: m_pBaseView->m_dlgSmsQuery_SQ.ProcessSocket(pHead); break; case DLGFUNC_SMSAWORD_SQ: m_pBaseView->m_dlgSmsAword_SQ.ProcessSocket(pHead); break; case DLGFUNC_SMSREGISTER_SQ: m_pBaseView->m_dlgSmsRegister_SQ.ProcessSocket(pHead); break; default: m_pBaseView->m_dlgSWT.ProcessSocket(pHead); break; } break; case SMSFUNC_CJLOG_SEE: m_pBaseView->m_dlgCJLog.ProcessSocket(pHead); break; case SMSFUNC_MSG_SEE: m_pBaseView->m_dlgMsg.ProcessSocket(pHead); break; case SMSFUNC_QUERY_SEE: case SMSFUNC_QUERY_ADD: case SMSFUNC_QUERY_MODIFY: case SMSFUNC_QUERY_DEL: m_pBaseView->m_dlgQuery.ProcessSocket(pHead); break; case SMSFUNC_QUERYFILT_SEE: case SMSFUNC_QUERYFILT_ADD: case SMSFUNC_QUERYFILT_MODIFY: case SMSFUNC_QUERYFILT_DEL: m_pBaseView->m_dlgQueryFilt.ProcessSocket(pHead); break; case SMSFUNC_QUERYLOG_SEE: m_pBaseView->m_dlgQueryLog.ProcessSocket(pHead); break; case SMSFUNC_LIST: m_pBaseView->m_dlgSmsLog.ProcessSocket(pHead); break; case SMSFUNC_TEST: //m_pUserView->m_dlgInfo.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_GETCOMMEND: case SMSFUNC_GETCOMMEND_LP: case SMSFUNC_COMMEND_ADD: case SMSFUNC_COMMEND_GETMY: case SMSFUNC_GETHD: case SMSFUNC_GADDRESS22_SEE: case SMSFUNC_WHITE2_GET: case SMSFUNC_WHITE2_OPER: case SMSFUNC_WHITE2_UPLOAD: ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; /* case SMSFUNC_GADDRESS22_SEE: { Socket_Head Head={0}; Head.lFuncType = lFuncType2; Head.lFrameLen = pHeadAdd->lFrameLen; Head.pFrame = (BYTE*)(pHead->pFrame+lSizeOfHeadAdd); ProcessSocket(&Head); } break; */ case SMSFUNC_TDSET_GET: case SMSFUNC_TDSET_INS: case SMSFUNC_TDSET_MODIFY: case SMSFUNC_TDSET_DEL: this->m_pBaseView->m_dlgTDSet.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_FAXSEND_ID: case SMSFUNC_FAXSEND_UP: case SMSFUNC_FAXSEND: this->m_pFuncView->m_DLGSendFax.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_MMSSEND_ID: case SMSFUNC_MMSSEND_UP: case SMSFUNC_MMSSEND: this->m_pFuncView->m_DLGSendMms.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_MMSDS_SEE: case SMSFUNC_MMSDS_DEL: m_pBaseView->m_dlgMmsDS.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_FAXSTATUS: m_pBaseView->m_dlgFaxLog.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_MMSSTATUS: m_pBaseView->m_dlgMmsLog.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_CALENDAR_SEE2: case SMSFUNC_CALENDAR_ADD2: case SMSFUNC_CALENDAR_MODIFY2: m_pBaseView->m_dlgCalendar.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_PLFILE_SEE: case SMSFUNC_PLFILE_DEL: case SMSFUNC_PLFILE_UP: case SMSFUNC_PLFILE_ID: m_pBaseView->m_dlgPLFile.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_PLTASKSMS_ADD: m_pFuncView->m_DLGSend.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_PLTASKSMS_SEE: case SMSFUNC_PLTASKSMS_MODIFY: case SMSFUNC_PLTASKSMS_DEL: m_pBaseView->m_dlgSmsTask.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_PLTASKMMS_ADD: m_pFuncView->m_DLGSendMms.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_PLTASKMMS_SEE: case SMSFUNC_PLTASKMMS_MODIFY: case SMSFUNC_PLTASKMMS_DEL: m_pBaseView->m_dlgMmsTask.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_UBOX_GETURL: case SMSFUNC_UBOX_GETPRO: case SMSFUNC_UBOX_UPLOAD: case SMSFUNC_UBOX_GETLOG2: case SMSFUNC_UBOX_TYPE_UPLOAD: case SMSFUNC_UBOX_GETTYPE2: case SMSFUNC_UBOX_RECORD_UP: ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_UBOX_GETLOG: case SMSFUNC_UBOX_GETTYPE: case SMSFUNC_UBOX_LOGDEL: case SMSFUNC_UBOX_UPLOAD2: case SMSFUNC_UBOX_RECORD_DOWN: m_pBaseView->m_dlgUBoxLog.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_BILL4: m_pBaseView->m_dlgBill.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_QXBOX_GROUP_ADD: case SMSFUNC_QXBOX_GROUP_DEL: case SMSFUNC_QXBOX_GROUP_SEE: case SMSFUNC_QXBOX_GROUP_MODIFY: case SMSFUNC_QXBOX_GROUP_MOBILE: case SMSFUNC_QXBOX_GROUP_SEND: case SMSFUNC_QXBOX_GROUP_SENDIMAGE: m_pBaseView->m_dlgQXBoxGroup.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_QQTSTATUS: case SMSFUNC_QQTLOGMOBILE: case SMSFUNC_QQTRECV: m_pBaseView->m_dlgQXBoxLog.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_SEND3: m_pFuncView->m_DLGSend.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_GADDRESS22_MODIFY: case SMSFUNC_GADDRESS22_ADD: m_pBaseView->m_dlgGAddress2.ProcessSocket(pHeadAdd,(BYTE*)(pHead->pFrame+lSizeOfHeadAdd)); break; case SMSFUNC_SMSDS_SEE2: m_pBaseView->m_dlgSmsDS.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_GADDRESS_PLACE: m_pBaseView->m_dlgPAddress.ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; case SMSFUNC_GADDRESS_GROUP_MODIFYUSED: m_pFuncView->ProcessSocket(pHeadAdd, (BYTE*)(pHead->pFrame + lSizeOfHeadAdd)); break; } break; } //需要删除 delete pHead->pFrame; delete pHead; return 1; } 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_ICONASTERISK ); } else { MessageBox( _T("修改密码失败,请检测!") , _T("错误") , MB_ICONWARNING ); } return true; } if ( pHead->lFuncType == SMSFUNC_GADDRESS_SEE && m_bShowProcess) //正在取用户信息 { ANS_GAddress_See * pSee = (ANS_GAddress_See *)pHead->pFrame; ANS_GAddress_SeeData * pSeeData = (ANS_GAddress_SeeData *)(pHead->pFrame+sizeof(ANS_GAddress_See)); BOOL b = m_AdoRS.Open( _T("users") , adCmdTable ); for ( int i = 0 ; i< pSee->lCount ; i++ ) { m_AdoRS.AddNew(); m_AdoRS.PutCollect(_T("UserID") ,pSeeData->lUserID); m_AdoRS.PutCollect(_T("CorpID") ,pSeeData->lCorpID); m_AdoRS.PutCollect(_T("UserType") ,pSeeData->szUserType); m_AdoRS.PutCollect(_T("GroupID") ,pSeeData->szGroupID); m_AdoRS.PutCollect(_T("Name") ,pSeeData->szName ); m_AdoRS.PutCollect(_T("NickName") ,pSeeData->szNickName ); m_AdoRS.PutCollect(_T("Sex") ,pSeeData->szSex ); m_AdoRS.PutCollect(_T("Birthday") ,pSeeData->tBirthday ); m_AdoRS.PutCollect(_T("Job") ,pSeeData->szJob ); m_AdoRS.PutCollect(_T("Tel") ,pSeeData->szTel ); m_AdoRS.PutCollect(_T("Fax") ,pSeeData->szFax ); m_AdoRS.PutCollect(_T("Mobile") ,pSeeData->szMobile ); m_AdoRS.PutCollect(_T("Email") ,pSeeData->szEmail ); m_AdoRS.PutCollect(_T("QQ") ,pSeeData->szQQ ); m_AdoRS.PutCollect(_T("LoginName") ,pSeeData->szLoginName ); m_AdoRS.PutCollect(_T("Passwd") ,pSeeData->szPasswd ); m_AdoRS.PutCollect(_T("PurviewType") ,pSeeData->ulPurviewType ); m_AdoRS.PutCollect(_T("Purview") ,pSeeData->ulPurview ); m_AdoRS.PutCollect(_T("SMSNum") ,pSeeData->szSMSNum ); m_AdoRS.PutCollect(_T("SMSUsed") ,pSeeData->lSMSUsed ); m_AdoRS.PutCollect(_T("SMSSendAll") ,pSeeData->lSMSSendAll); m_AdoRS.PutCollect(_T("MmsUsed") ,pSeeData->lMmsUsed ); m_AdoRS.PutCollect(_T("MmsSendAll") ,pSeeData->lMmsSendAll); //m_AdoRS.PutCollect(_T("OvrTime") ,pSeeData->tOvrTime); m_AdoRS.PutCollect(_T("LoginCount") ,pSeeData->lLoginCount); m_AdoRS.PutCollect(_T("LoginTime") ,pSeeData->tLoginTime); m_AdoRS.PutCollect(_T("CreateUser") ,pSeeData->szCreateUser); m_AdoRS.PutCollect(_T("CreateTime") ,pSeeData->tCreateTime); m_AdoRS.PutCollect(_T("BZ") ,pSeeData->szBZ); m_AdoRS.PutCollect( _T("AccessGroup"),pSeeData->lAccessGroupID); m_AdoRS.Update(); pSeeData++; } m_AdoRS.Update(); m_AdoRS.Close(); if ( pSee->lPageAll == pSee->lPageCount ) //两者相同,证明已接收完毕 { this->SaveSetup(); //保存设置 } m_DlgProcess.SetProcess( pSee->lPageAll , pSee->lPageCount ); if ( this->m_Setup.bGateWay ) //发一条测试数据激活下行 { REQ_Test * pTest = new REQ_Test; pTest->lTemp = ::GetTickCount(); SendFrame( SMSFUNC_TEST , (BYTE*)pTest , sizeof(REQ_Test) ); } return true; } if ( pHead->lFuncType == SMSFUNC_GADDRESS22_SEE && m_bShowProcess) //正在取用户信息 { ANS_GAddress22_See * pSee = (ANS_GAddress22_See *)pHead->pFrame; ANS_GAddress22_SeeData * pSeeData = (ANS_GAddress22_SeeData *)(pHead->pFrame+sizeof(ANS_GAddress22_See)); if ( pSee->lCount == -100 ) //需要进行通讯录转移工作 { m_DlgProcess.SetProcess( 5 , 5 ); m_bChangeGAddress = true; //需要进行通讯录转移工作 return true; } if ( pSee->lCount == -101 ) //转移通讯录成功 { MessageBox( _T("转移通讯录成功,请退出后重新登录!") , _T("信息"),MB_ICONINFORMATION); m_DlgProcess.SetProcess( 5 , 5 ); return true; } if ( pSee->lCount == -200 ) //通迅录已被转移 { m_DlgProcess.SetProcess( 5 , 5 ); m_bReadGAddressError = true; return true; } m_strMainGroupID = pSee->szMainGroupID; m_lMainGroupID = pSee->lMainGroupID; BOOL b = m_AdoRS.Open( _T("GAddress") , adCmdTable ); for ( int i = 0 ; i< pSee->lCount ; i++ ) { if ( pSeeData->lUserID == m_lMainGroupID ) { m_strMainGroupName = pSeeData->szName; //记录限制组名 } m_AdoRS.AddNew(); m_AdoRS.PutCollect(_T("UserID") ,pSeeData->lUserID); m_AdoRS.PutCollect(_T("UserType") ,pSeeData->szUserType); m_AdoRS.PutCollect(_T("GroupID") ,pSeeData->szGroupID); m_AdoRS.PutCollect(_T("Name") ,pSeeData->szName ); m_AdoRS.PutCollect(_T("NickName") ,pSeeData->szNickName ); m_AdoRS.PutCollect(_T("Sex") ,pSeeData->szSex ); m_AdoRS.PutCollect(_T("Birthday") ,pSeeData->tBirthday ); m_AdoRS.PutCollect(_T("LTD") ,pSeeData->szLTD ); m_AdoRS.PutCollect(_T("Job") ,pSeeData->szJob ); m_AdoRS.PutCollect(_T("Addr") ,pSeeData->szAddr ); m_AdoRS.PutCollect(_T("Tel") ,pSeeData->szTel ); m_AdoRS.PutCollect(_T("Fax") ,pSeeData->szFax ); m_AdoRS.PutCollect(_T("Mobile") ,pSeeData->szMobile ); m_AdoRS.PutCollect(_T("Email") ,pSeeData->szEmail ); m_AdoRS.PutCollect(_T("QQ") ,pSeeData->szQQ ); m_AdoRS.PutCollect(_T("CreateTime") ,pSeeData->tCreateTime); m_AdoRS.PutCollect(_T("BZ") ,pSeeData->szBZ); m_AdoRS.Update(); pSeeData++; } m_AdoRS.Update(); m_AdoRS.Close(); if ( pSee->lPageAll == pSee->lPageCount ) //两者相同,证明已接收完毕 { this->SaveSetup(); //保存设置 } m_DlgProcess.SetProcess( pSee->lPageAll , pSee->lPageCount ); if ( this->m_Setup.bGateWay ) //发一条测试数据激活下行 { REQ_Test * pTest = new REQ_Test; pTest->lTemp = ::GetTickCount(); SendFrame( SMSFUNC_TEST , (BYTE*)pTest , sizeof(REQ_Test) ); } return true; } if ( pHead->lFuncType == SMSFUNC_MSGSETUP_SEE) //取设置信息 { ANS_MsgSetup_See * pSee = (ANS_MsgSetup_See *)pHead->pFrame; ANS_MsgSetupData * pSeeData = (ANS_MsgSetupData *)(pHead->pFrame+sizeof(ANS_MsgSetup_See)); DLG_MsgSetup dlg(this); dlg.SetParam( pSee , pSeeData ); if ( sizeof(ANS_MsgSetup_See)+sizeof(ANS_MsgSetupData)*(pSee->lCorpZF + pSee->lUserZF) < pHead->lFrameLen ) { ANS_MsgSetup_SeeAdd * pSeeAdd = (ANS_MsgSetup_SeeAdd *)(pHead->pFrame+sizeof(ANS_MsgSetup_See)+sizeof(ANS_MsgSetupData)*(pSee->lCorpZF + pSee->lUserZF)); dlg.SetParam2(pSeeAdd); } if ( dlg.DoModal() == IDOK ) { REQ_MsgSetup setup=dlg.GetParam(); long lSize = sizeof(REQ_MsgSetup)+sizeof(ANS_MsgSetupData)*(setup.lCorpZF+setup.lUserZF); BYTE * pData = new BYTE[lSize];memset(pData,0,lSize); REQ_MsgSetup * pSetup = (REQ_MsgSetup *)pData; ANS_MsgSetupData * pSetupData = (ANS_MsgSetupData *)(pData+sizeof(REQ_MsgSetup)); *pSetup = setup; memcpy( pSetupData , dlg.m_pNewData , sizeof(ANS_MsgSetupData)*(setup.lCorpZF+setup.lUserZF) ); delete dlg.m_pNewData; SendFrame( SMSFUNC_MSGSETUP , pData , lSize ); } return true; } if ( pHead->lFuncType == SMSFUNC_MSGSETUP) //设置信息 { ANS_MsgSetup * pSetup = (ANS_MsgSetup *)pHead->pFrame; if ( pSetup->lStatus == 1 ) //修改成功 { m_Ans_Login.bCM = pSetup->bCM; _tcscpy( m_Ans_Login.szCM , pSetup->szCM ); } return true; } if ( pHead->lFuncType == SMSFUNC_MSGSETUP3_SEE) //取设置信息 { ANS_MsgSetup3_See * pSee = (ANS_MsgSetup3_See *)pHead->pFrame; ANS_MsgSetupData * pSeeData = (ANS_MsgSetupData *)(pHead->pFrame+sizeof(ANS_MsgSetup3_See)); DLG_MsgSetup2 dlg(this); dlg.SetParam( pSee,pSeeData ); if ( dlg.DoModal() == IDOK ) { REQ_MsgSetup3 setup=dlg.GetParam(); long lSize = sizeof(REQ_MsgSetup3)+sizeof(ANS_MsgSetupData)*(setup.lUserZF); BYTE * pData = new BYTE[lSize];memset(pData,0,lSize); REQ_MsgSetup3 * pSetup = (REQ_MsgSetup3 *)pData; ANS_MsgSetupData * pSetupData = (ANS_MsgSetupData *)(pData+sizeof(REQ_MsgSetup3)); *pSetup = setup; memcpy( pSetupData , dlg.m_pNewData , sizeof(ANS_MsgSetupData)*(setup.lUserZF) ); delete dlg.m_pNewData; SendFrame( SMSFUNC_MSGSETUP3 , pData , lSize ); } return true; } if ( pHead->lFuncType == SMSFUNC_MSGSETUP3) //设置信息 { ANS_MsgSetup2 * pSetup = (ANS_MsgSetup2 *)pHead->pFrame; if ( pSetup->lStatus == 1 ) //修改成功 { m_Ans_Login.bCM = pSetup->bCM; _tcscpy( m_Ans_Login.szCM , pSetup->szCM ); if ( m_strMobile != pSetup->szMobile ) { m_strMobile = pSetup->szMobile; //记录此用户的手机号码 m_pBaseView->m_dlgCalendar.RefreshInfo(); m_pBaseView->m_dlgSmsEmail.RefreshInfo(); m_pBaseView->m_dlgSP.RefreshInfo(); } } return true; } if ( pHead->lFuncType == SMSFUNC_FILT2_SEEU) //过滤语 { ANS_Filt2_SeeU * pSee = (ANS_Filt2_SeeU *)pHead->pFrame; ANS_Filt2_SeeDataU * pSeeData = (ANS_Filt2_SeeDataU *)(pHead->pFrame+sizeof(ANS_Filt2_SeeU)); //将取到的过滤语复制到内存 m_lFiltCount = pSee->lCount; if ( m_pFilt ) delete m_pFilt; m_pFilt = new ANS_Filt2_SeeDataU[m_lFiltCount]; memcpy( m_pFilt , pSeeData , sizeof(ANS_Filt2_SeeDataU)*m_lFiltCount); return true; } if ( pHead->lFuncType == SMSFUNC_BACK_SEE) //黑名单 { ANS_Back_See * pSee = (ANS_Back_See *)pHead->pFrame; ANS_Back_SeeData * pSeeData = (ANS_Back_SeeData *)(pHead->pFrame+sizeof(ANS_Back_See)); //将取到的过滤语复制到内存 m_lBackCount = pSee->lCount; if ( m_pBack ) delete m_pBack; m_pBack = new ANS_Back_SeeData[m_lBackCount]; memcpy( m_pBack , pSeeData , sizeof(ANS_Back_SeeData)*m_lBackCount); return true; } if ( pHead->lFuncType == SMSFUNC_GETGG|| pHead->lFuncType == SMSFUNC_GETGG2) //过滤语 { ANS_GetGG * pGG = (ANS_GetGG *)pHead->pFrame; BYTE * pData = pHead->pFrame+sizeof(ANS_GetGG); m_strTEXT = pGG->szText; if ( pGG->lLen > 0 ) { m_B_Gif.SetLinkCursor( AfxGetApp()->LoadCursor( IDC_C_HAND ) ); m_B_Gif.SetLinkURL(pGG->szHTML ); //m_B_Gif.SetStaticRect( rect.right-rect.left , rect.bottom-rect.top-1 ); if (m_B_Gif.Load2(pData, pGG->lLen)) { m_B_Gif.Draw(); //m_B_Gif.Draw(m_wndToolBar.GetDC(), CRect(700, 0, 400, 70)); } m_B_Gif.ShowWindow(SW_SHOW); } if ( m_strTEXT.GetLength() > 0 ) { m_strTEXT = "                              "+m_strTEXT; m_lGDText = 0; SetTimer(10 , 350 , NULL ); } m_strCorpWorkUrl = pGG->szCorpWork; return true; } if ( pHead->lFuncType == SMSFUNC_SENDMSG ) //服务器发送信息过来 { ANS_SendMsg * pMsg = (ANS_SendMsg *)pHead->pFrame; MessageBox( pMsg->szMsg , _T("服务器信息") , MB_ICONINFORMATION ); return true; } if ( pHead->lFuncType == SMSFUNC_SENDMOBILE ) //服务器发送信息过来 { ANS_SendMobile * pSend = (ANS_SendMobile *)pHead->pFrame; m_strMobile = pSend->szMobile; return true; } if ( pHead->lFuncType == SMSFUNC_CJCARD ) //充值卡 { ANS_CJCard * pCJ = (ANS_CJCard *)pHead->pFrame; if ( m_pCJCard ) { m_pCJCard->ProcessRet(pCJ); } return true; } if ( pHead->lFuncType == SMSFUNC_YJ ) { 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_UPDATE_SEE || pHead->lFuncType == SMSFUNC_UPDATE_SEE2) //升级信息 { ANS_Update_See * pSee = (ANS_Update_See *)pHead->pFrame; ANS_Update_Data * pSeeData = (ANS_Update_Data *)(pHead->pFrame+sizeof(ANS_Update_See)); //生成申请升级文件名 #define UPDATE_MAX_FILE 100 REQ_Update Update={0}; ANS_Update_Data SData[UPDATE_MAX_FILE]={0}; //最多处理20个文件 Update.lCorpID = m_lCorpID; Update.lUserID = m_lUserID; TCHAR szPath[512]={0}; GetCurrentPath(szPath); CString strFileName; long lLen=0; TCHAR szFileName[256]={0}; _tcscpy(szFileName , pSeeData->szFileName ); lLen = _tcslen(pSeeData->szFileName); for ( int i=lLen ; i>=0 ; i-- ) { if ( pSeeData->szFileName[i] == '\\' ) { _tcscpy(szFileName , pSeeData->szFileName+i+1 ); break; } } for ( int i=0 ; ilCount ; i++ ) { strFileName.Format( _T("%s%s") , szPath ,szFileName ); TRACE(strFileName); CFileFind find; if ( find.FindFile(strFileName)) { find.FindNextFile(); CTime t; DWORD lFileSize=0; lFileSize = (DWORD)find.GetLength(); find.GetLastWriteTime(t); //文件不同,需要添加到升级文件之中 //if ( lFileSize != pSeeData->lFileSize || // t < CTime(pSeeData->tLastTime) ) if ( ttLastTime) ) { SData[Update.lFileCount] = *pSeeData; Update.lFileCount++; } find.Close(); } else { //文件还没找到,需要更新 SData[Update.lFileCount] = *pSeeData; Update.lFileCount++; } pSeeData++; } if ( Update.lFileCount >0 ) { long lRet = MessageBox( _T("短信易检测到有更新的版本,是否升级?"),_T("提问"),MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON1); if ( lRet != IDYES ) return true; TCHAR szPath[512]={0}; GetCurrentPath(szPath); _tcscat(szPath , _T("Update\\") ); ::CreateDirectory(szPath,NULL); //有理没理,先创建升级目录 CString strFile; for ( int i=0 ; i=0 ; j-- ) { if ( SData[i].szFileName[j] == '\\' ) { _tcscpy(szFileName , SData[i].szFileName+j+1 ); break; } } strFile.Format( _T("%s%s") , szPath , szFileName ); ::DeleteFile(strFile); TRACE(strFile); } long lSizeRet = sizeof(REQ_Update)+sizeof(ANS_Update_Data)*Update.lFileCount; BYTE * pData = new BYTE[lSizeRet]; memset( pData , 0 , lSizeRet ); memcpy( pData , &Update , sizeof(REQ_Update) ); memcpy( pData+sizeof(REQ_Update),SData,sizeof(ANS_Update_Data)*Update.lFileCount ); SendFrame( SMSFUNC_UPDATE , (BYTE*)pData , lSizeRet ); //发送返回 m_bShowProcess = true; try { if ( m_DlgProcess.DoModal() != IDOK ) //显示进度栏 { m_bShowProcess = false; //取资料不成功 return true; } } catch(...) { } m_bShowProcess = false; } else { if ( m_bCheckUpdateManual ) { MessageBox( _T("已是最新版本,无需升级!") , _T("信息") , MB_ICONINFORMATION ); } } return true; } if ( pHead->lFuncType == SMSFUNC_UPDATE && m_bShowProcess) //正在取用户信息 { ANS_Update * pUpdate = (ANS_Update *)pHead->pFrame; BYTE * pData = (BYTE *)(pHead->pFrame+sizeof(ANS_Update)); CSingleLock cl(&m_Update_Lock,true); if ( !pUpdate->bOK ) { m_DlgProcess.SetProcess( pUpdate->lFileAll*300 , pUpdate->lFileAll*300 ); //已完成 CString str; str.Format( _T("服务器打开文件:%s错误,升级失败!"),pUpdate->szFileName); MessageBox(str,_T("失败") ,MB_ICONWARNING ); return true; } //写到文件中去 TCHAR szPath[512]={0}; GetCurrentPath(szPath); //_tcscat(szPath , _T("Update\\") ); long lLen=0; TCHAR szFileName[256]={0}; _tcscpy(szFileName , pUpdate->szFileName ); lLen = _tcslen(pUpdate->szFileName); for ( int i=lLen ; i>=0 ; i-- ) { if ( pUpdate->szFileName[i] == '\\' ) { _tcscpy(szFileName , pUpdate->szFileName+i+1 ); break; } } CString str,str2; str2.Format( _T("%sUpdate\\%s"),szPath,szFileName); DWORD len=0; //打开文件 HANDLE hFile = INVALID_HANDLE_VALUE; for ( int i=0; i<20 ; i++ ) { hFile = CreateFile( str2 , GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL ); if ( hFile != INVALID_HANDLE_VALUE ) break; Sleep(50); } if ( hFile != INVALID_HANDLE_VALUE ) { SetFilePointer( hFile, 0 , NULL , FILE_END ); WriteFile( hFile ,pData,pUpdate->lSizeNow,&len,NULL ); if ( len!= pUpdate->lSizeNow ) { m_DlgProcess.SetProcess( pUpdate->lFileAll*100 , pUpdate->lFileAll*100 ); //已完成 CString str; str.Format( _T("写入文件:%s错误,升级失败!"),str2); MessageBox(str,_T("失败") ,MB_ICONWARNING ); CloseHandle(hFile); return true; } if ( pUpdate->lSize >= pUpdate->lAllSize ) //写文件时间 { FILETIME t1; if ( SystemTimeToFileTime(&pUpdate->tFileTime , &t1) ) { BOOL b = SetFileTime(hFile , &t1,&t1,&t1); } } CloseHandle(hFile); } else { TRACE(_T("%d %s\r\n") , GetLastError(), str2 ); if ( pUpdate->lSize == pUpdate->lSizeNow ) //只第一次提示 { m_DlgProcess.SetProcess( pUpdate->lFileAll*100 , pUpdate->lFileAll*100 ); //已完成 CString str; str.Format( _T("创建文件:%s错误,升级失败!\r\n请以管理员员身份重新运行。"),str2); MessageBox(str,_T("失败") ,MB_ICONWARNING ); } return true; } cl.Unlock(); str.Format( _T("正在下载:%s,%.2f%%"),pUpdate->szFileName,((float)pUpdate->lSize/(float)pUpdate->lAllSize)*100.0f ); m_DlgProcess.SetWindowText( str ); if ( pUpdate->lFileIndex>=pUpdate->lFileAll && pUpdate->lSize >= pUpdate->lAllSize ) { m_DlgProcess.SetProcess( pUpdate->lFileAll*100 , pUpdate->lFileAll*100 ); //已完成 MessageBox( _T("确定后将启动更新程序,之后会重新启动短信易!") , _T("信息") , MB_ICONINFORMATION ); this->PostMessage( WM_CLOSE ); //this->PostMessage( WM_QUIT ); //this->OnClose(); //启动升级程序 //取exe文件名 CString strParam; TCHAR szPath2[512]={0}; ::GetModuleFileName( NULL , szPath2 , 512); for ( int j=_tcslen(szPath2) ; j>0 ; j-- ) { if (szPath2[j]=='\\' ) { strParam = szPath2+j+1; break; } } str.Format( _T("%sAUpdate.exe") , szPath ); //WinExec(str,SW_HIDE); ShellExecute(NULL,_T("open"),str,strParam,szPath,SW_SHOWNORMAL); //this->PostMessage( WM_QUIT ); return true; } else { m_DlgProcess.SetProcess( pUpdate->lFileAll*100 , ((pUpdate->lFileIndex-1)*100)+(long)(((float)pUpdate->lSize/(float)pUpdate->lAllSize)*100.0f) ); } return true; } if ( pHead->lFuncType == SMSFUNC_LOGIN2) //登录2信息 { ANS_Login2 * pLogin = (ANS_Login2 *)pHead->pFrame; if ( pLogin->lMaxSmsLen >=30 && pLogin->lMaxSmsLen<=MSG_MAXSENDLEN) { m_Ans_Login2 =*pLogin; } return true; } if ( pHead->lFuncType == SMSFUNC_CLOSECLIENT2) //正在取用户信息 { ANS_CloseClient * pClose = (ANS_CloseClient *)pHead->pFrame; if ( pClose->lUserID == this->m_lUserID ) { this->PostMessage( WM_CLOSE ); } else { if ( pClose->lCloseType ==1 && pClose->lUserID2 == this->m_lUserID) //刷新bbs { m_pBaseView->m_dlgMsg.RefreshInfo(); } } return true; } if ( pHead->lFuncType == SMSFUNC_CENTERTIME ) { ANS_CenterTime * pTime = (ANS_CenterTime*)pHead->pFrame; if ( pTime->lNoSupperWordCount>0 ) { ANS_Login3_NoSupperData * pTemp= (ANS_Login3_NoSupperData *)(pHead->pFrame + sizeof(ANS_CenterTime)); //如果是mas,无需检测不支持字符 #ifndef SUPPER_IM_MAS m_lNoSupperWordCount = pTime->lNoSupperWordCount; if ( m_pNoSupperWord ) { delete m_pNoSupperWord ; m_pNoSupperWord=NULL; } m_pNoSupperWord = new ANS_Login3_NoSupperData[m_lNoSupperWordCount]; memset(m_pNoSupperWord , 0 , sizeof(ANS_Login3_NoSupperData)*m_lNoSupperWordCount); memcpy(m_pNoSupperWord , pTemp , sizeof(ANS_Login3_NoSupperData)*m_lNoSupperWordCount); #endif } if ( pTime->lType == 1 ) //设置时间 { if ( ::SetLocalTime(&pTime->tNow) ) { CString str; str.Format( _T("设置本地时间成功,现在时间为:%04d.%02d.%02d %02d:%02d") , pTime->tNow.wYear,pTime->tNow.wMonth,pTime->tNow.wDay,pTime->tNow.wHour,pTime->tNow.wMinute ); MessageBox(str , _T("信息"),MB_ICONWARNING ); } else { MessageBox(_T("设置本地时间失败,请检查系统设置!"), _T("错误"),MB_ICONWARNING ); } } else { //查看时间 if ( COleDateTime(pTime->tNow) - COleDateTime::GetCurrentTime() > COleDateTimeSpan(0,10,0,0) || COleDateTime::GetCurrentTime()-COleDateTime(pTime->tNow) > COleDateTimeSpan(0,10,0,0)) { CString str=_T("你本机时间与短信服务器时间差别过大,是否同步服务器时间?\r\n") \ _T("现服务器时间是:%04d.%02d.%02d %02d:%02d,本机时间是:%04d.%02d.%02d %02d:%02d") \ _T("如不同步,可能会有以下情况出现:\r\n") \ _T("1、短信收发时间错乱。\r\n") \ _T("2、定时短信、日程提醒时间错乱。\r\n") \ _T("3、生日提醒短信时间出错,可能立即发送。\r\n") \ _T("4、其它未知异常。\r\n"); CString str2; SYSTEMTIME t; ::GetLocalTime(&t); str2.Format( str , pTime->tNow.wYear,pTime->tNow.wMonth,pTime->tNow.wDay,pTime->tNow.wHour,pTime->tNow.wMinute , t.wYear,t.wMonth,t.wDay,t.wHour,t.wMinute); int iRet = MessageBox( str2 , _T("提示") , MB_ICONWARNING|MB_YESNO ); if ( iRet == IDYES ) { REQ_CenterTime * pTime = new REQ_CenterTime; memset(pTime , 0 , sizeof(REQ_CenterTime)); pTime->lType = 1; SendFrame( SMSFUNC_CENTERTIME , (BYTE*)pTime , sizeof(REQ_CenterTime) ); //发送取资料的请求 } } } return true; } if ( pHead->lFuncType == SMSFUNC_CLISMSTD ) { ANS_CliSmsTD * pTD = (ANS_CliSmsTD *)pHead->pFrame; if ( pTD->lType == 0 ) { //取通道 DLG_ChangeTD dlg(this); dlg.SetParam(pTD); if ( dlg.DoModal()== IDOK ) { if ( dlg.m_TD.bCW!= pTD->bCW || //判断有更改过内容才进行请求 dlg.m_TD.cCmcc!= pTD->cCmcc || dlg.m_TD.cUnicom!= pTD->cUnicom || dlg.m_TD.cPhs!= pTD->cPhs || dlg.m_TD.cTelcom!= pTD->cTelcom) { REQ_CliSmsTD * pReq = new REQ_CliSmsTD; *pReq = dlg.m_TD; pReq->lCorpID = m_lCorpID; //发送请求查看 SendFrame( SMSFUNC_CLISMSTD , (BYTE*)pReq , sizeof(REQ_CliSmsTD) ); } } } else { //设通道 if ( pTD->bOK ) { MessageBox( _T("设置新的通道成功,发送短信将会采用另一端口号!\r\n\r\n使用前请测试新通道签名是否对应!!") , _T("成功") , MB_ICONINFORMATION ); } else { MessageBox( _T("设置新的通道失败!") , _T("失败") , MB_ICONWARNING ); } } } return false; } void CMainFrame::OnModifyPasswd() { USES_CONVERSION; DLG_Passwd dlg(this); dlg.SetParam( *m_pCurUser ); if ( dlg.DoModal() == IDOK ) { //发送,修改密码 SM_User user = dlg.GetParam(); REQ_Passwd * pPasswd = new REQ_Passwd; memset( pPasswd , 0 , sizeof(REQ_Passwd) ); pPasswd->lUserID = m_lUserID; pPasswd->ucUserType = LOGINTYPE_USER; _tcscpy( pPasswd->szUserName , user.szUser ); CDes des; #ifdef UNICODE char szPasswd[64]={0}; char szPasswd2[64]={0}; char szUser[64]={0}; strcpy( szPasswd , W2A(user.szPasswd) ); strcpy( szUser , W2A(pPasswd->szUserName) ); long lLen=sizeof(szPasswd2); des.Encrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lLen , szUser , 8 ); _tcscpy(pPasswd->szPasswd,A2W(szPasswd2)); #else long lLen=sizeof(pPasswd->szPasswd); des.Encrypt( user.szPasswd , _tcslen(user.szPasswd) , pPasswd->szPasswd , lLen , pPasswd->szUserName , 8 ); #endif SendFrame( SMSFUNC_PASSWD , (BYTE*)pPasswd , sizeof(REQ_Passwd) ); } } void CMainFrame::OnMsgsetup() { #ifdef MOBSET_CARD_VER //发送,取设置信息 REQ_MsgSetup2_See * pSee = new REQ_MsgSetup2_See; memset( pSee , 0 , sizeof(REQ_MsgSetup2_See) ); pSee->lCorpID = m_lCorpID; pSee->lUserID = m_lUserID; SendFrame( SMSFUNC_MSGSETUP3_SEE , (BYTE*)pSee , sizeof(REQ_MsgSetup2_See) ); #else //发送,取设置信息 REQ_MsgSetup_See * pSee = new REQ_MsgSetup_See; memset( pSee , 0 , sizeof(REQ_MsgSetup_See) ); pSee->lCorpID = m_lCorpID; pSee->lUserID = m_lUserID; SendFrame( SMSFUNC_MSGSETUP_SEE , (BYTE*)pSee , sizeof(REQ_MsgSetup_See) ); #endif } void CMainFrame::OnTShowsmslist() { //显示发送列表 m_pFuncView->m_DLGSend.ShowWindow( SW_SHOWNORMAL ); m_pFuncView->m_DLGSend.List_New(); } void CMainFrame::OnTShowmmslist() { //显示发送列表 m_pFuncView->m_DLGSendMms.ShowWindow( SW_SHOWNORMAL ); m_pFuncView->m_DLGSendMms.List_New(); } void CMainFrame::OnTMsgsetup() { //信息设置 OnMsgsetup(); } void CMainFrame::OnTAdduser() { //添加用户 m_pBaseView->m_dlgGAddress.On_User_Add(); } void CMainFrame::OnUpdateTAdduser(CCmdUI* pCmdUI) { BOOL b = m_pBaseView->m_lCurFunc == DLGFUNC_GADDRESS; pCmdUI->Enable( b ); } void CMainFrame::OnTAddgroup() { //添加用户组 m_pBaseView->m_dlgGAddress.On_User_AddGroup(); } void CMainFrame::OnUpdateTAddgroup(CCmdUI* pCmdUI) { BOOL b = m_pBaseView->m_lCurFunc == DLGFUNC_GADDRESS; pCmdUI->Enable( b ); } void CMainFrame::OnTSmsview() { //查看短信列表 if (m_pBaseView->m_lCurFunc == DLGFUNC_SMSDF ) { m_pBaseView->m_dlgSmsDF.On_User_Modify(); return ; } if (m_pBaseView->m_lCurFunc == DLGFUNC_SMSYF ) { m_pBaseView->m_dlgSmsYF.On_User_See(); return ; } } void CMainFrame::OnUpdateTSmsview(CCmdUI* pCmdUI) { if (m_pBaseView->m_lCurFunc == DLGFUNC_SMSDF ) { if ( m_pBaseView->m_dlgSmsDF.GetCurrentSelected() >= 0 ) { pCmdUI->Enable( true ); return ; } } if (m_pBaseView->m_lCurFunc == DLGFUNC_SMSYF ) { if ( m_pBaseView->m_dlgSmsYF.GetCurrentSelected() >= 0 ) { pCmdUI->Enable( true ); return ; } } pCmdUI->Enable( false ); } void CMainFrame::OnTSmsnew() { //新建短信列表 m_pFuncView->On_User_List_Add(); } void CMainFrame::OnUpdateTSmsnew(CCmdUI* pCmdUI) { // BOOL b = m_pBaseView->m_lCurFunc == DLGFUNC_SMSDF || m_pBaseView->m_lCurFunc == DLGFUNC_SMSYF; // pCmdUI->Enable( b ); if ( !GetUserPurview(PURVIEW_SENDG,false) && !GetUserPurview(PURVIEW_SENDP,false) ) { pCmdUI->Enable( false ); } else { pCmdUI->Enable( true ); } } void CMainFrame::SetStatMsg(TCHAR *pMsg) { m_wndStatusBar.SetPaneText( 0 , pMsg , true ); } void CMainFrame::OnUpdateTShowsmslist(CCmdUI* pCmdUI) { if (m_lUserID>0 && !GetUserPurview(PURVIEW_SENDG,false) && !GetUserPurview(PURVIEW_SENDP,false) ) { pCmdUI->Enable( false ); } else { pCmdUI->Enable( true ); } } void CMainFrame::OnUpdateTShowmmslist(CCmdUI* pCmdUI) { if (m_lUserID>0 && !GetUserPurview(PURVIEW_SENDG,false) && !GetUserPurview(PURVIEW_SENDP,false) ) { pCmdUI->Enable( false ); } else { pCmdUI->Enable( true ); } } void CMainFrame::OnClose() { BOOL b=true; if ( !m_pFuncView->m_DLGSend.CloseList() ) //关闭发送列表 b=false; if ( !m_pFuncView->m_DLGSendMms.CloseList() ) //关闭发送列表 b=false; if ( !m_pFuncView->m_DLGSendFax.CloseList() ) //关闭发送列表 b=false; if ( !b ) return ; //关闭自动保存日志选项 m_pFuncView->m_DLGSend.CloseAutoSave(); m_pFuncView->m_DLGSendMms.CloseAutoSave(); m_pFuncView->m_DLGSendFax.CloseAutoSave(); //m_pFuncView->m_pBaseView->m_dlgUBoxLog.Close(); //关闭子窗口的资源 #ifdef SUPPER_UBOX //来电显示盒子 //关闭弹出窗口 this->m_DlgUBoxDial.DestroyWindow(); CSingleLock cl(&m_ubox_Lock,true); long lCount = m_ubox_Pop.GetCount(); for ( int i=0 ; iSendMessage(WM_CLOSE); //delete pDlg; pDlg->DestroyWindow(); } } m_ubox_Pop.RemoveAll(); cl.Unlock(); #endif m_bLogin = false; //取消图标 CString strName=GetSoftSName(); NOTIFYICONDATA niData; #ifdef MOBSET_OEM niData.hIcon = AfxGetApp()->LoadIcon( IDR_MAINFRAME ); #else niData.hIcon = AfxGetApp()->LoadIcon(IDI_CORPSMS_MINI); #endif niData.cbSize = sizeof( NOTIFYICONDATA ); niData.hWnd = this->m_hWnd; niData.uID = 125; niData.uFlags = NIF_ICON|NIF_TIP|NIF_MESSAGE; niData.uCallbackMessage = SHELL_ICON_MESS; _stprintf( niData.szTip,strName ); Shell_NotifyIcon( NIM_DELETE,&niData ); if ( b ) CFrameWnd::OnClose(); } BOOL CMainFrame::ReadGAddress(BOOL bRefresh) { if ( !m_Setup.bSQLUse ) //不使用SQL数据库,默认使用Access数据库 { //读入数据库 TCHAR szPath[512]={0}; this->GetCurrentPath( szPath ); TCHAR szDB[64]={0}; CString strUserName = m_pCurUser->szUser; strUserName.Replace(_T("/"), _T("_")); strUserName.Replace(_T("\\"), _T("_")); _stprintf( szDB , _T("%d_%s.dat") , m_lCorpID, strUserName.GetBuffer()); _tcscat( szPath , szDB ); //数据库文件名 //解密码 char szPasswd[64]={0};strcpy(szPasswd , ACCESS_PASSWD ); char szKey[64]={0};strcpy( szKey , ACCESS_KEY ); char szNew2[64]={0};long lOut=sizeof(szNew2); TCHAR szNew[64]={0}; CDes des; des.Decrypt( szPasswd , strlen(szPasswd),szNew2,lOut,szKey,8); #ifdef UNICODE _tcscpy(szNew,CA2W(szNew2)); #else strcpy(szNew,szNew2); #endif if ( m_Setup.bCompDB) //if ( true ) //每在都做压缩数据库动作 { if ( CAdoConnection::CompDB(szPath,szNew) ) { m_Setup.bCompDB = false; SaveSetup(); } else { MessageBox( _T("压缩文件错误,可以继续!") , _T("错误") , MB_ICONWARNING ); } } if ( !m_adoConnection.ConnectAccess(szPath,szNew ) ) //连接数据库错误,需要重新创建 { TCHAR szSrc[512]={0}; this->GetCurrentPath( szSrc ); _tcscat( szSrc , ACCESS_SOURCE ); //升级一次源数据库 if (m_adoConnection.ConnectAccess(szSrc, szNew)) { m_AdoRS.SetAdoConnection(&m_adoConnection); //设置连接 UpdateDB(m_adoConnection, m_AdoRS); m_AdoRS.Close(); m_adoConnection.Close(); } if ( !CopyFile( szSrc , szPath , false ) ) //copy文件失败 { MessageBox( _T("系统文件丢失4,请重新安装!") , _T("致命错误") , MB_ICONWARNING ); return false; } if ( !m_adoConnection.ConnectAccess( szPath , szNew ) ) //再次连接 { MessageBox( _T("系统文件丢失5,请重新安装!") , _T("致命错误") , MB_ICONWARNING ); return false; } } m_AdoRS.SetAdoConnection( &m_adoConnection ); //设置连接 m_AdoRS2.SetAdoConnection( &m_adoConnection ); //设置连接 //检测数据库是否需要升级 UpdateDB(m_adoConnection,m_AdoRS); //优化数据库 YWDB(false); //自动备份发送日志 AutoBak_SendLog(); } else { //连接SQL数据库 if ( !m_adoConnection.ConnectSQLServer(m_Setup.szSQLIP,m_Setup.szSQLDB,m_Setup.szSQLUser,m_Setup.szSQLPasswd ) ) //连接数据库错误,需要重新创建 { //试试连接master数据库看成功不成功 if ( !m_adoConnection.ConnectSQLServer(m_Setup.szSQLIP,"master",m_Setup.szSQLUser,m_Setup.szSQLPasswd ) ) //连接数据库错误,需要重新创建 { CString strTemp = m_adoConnection.GetLastErrorText(); CString str; str.Format( _T("连接SQL数据库(%s)失败:%s"),m_Setup.szSQLIP,strTemp); MessageBox( str , _T("致命错误") , MB_ICONWARNING ); return false; } else { //连接成功,附加数据库 TCHAR szPath[512]={0}; this->GetCurrentPath(szPath); CString str; str.Format( _T("sp_attach_db 'smsdata','%ssmsdata_data.mdf','%ssmsdata_log.ldf'"),szPath,szPath); long lTemp=0; if ( m_adoConnection.Execute(str,lTemp) == NULL ) { CString strTemp = m_adoConnection.GetLastErrorText(); CString str; str.Format( _T("附加数据库数据库失败:%s!"),strTemp); MessageBox( str , _T("致命错误") , MB_ICONWARNING ); return false; } else { m_adoConnection.Close(); //附加数据库成功后,再次连接数据库 if ( !m_adoConnection.ConnectSQLServer(m_Setup.szSQLIP,m_Setup.szSQLDB,m_Setup.szSQLUser,m_Setup.szSQLPasswd ) ) //连接数据库错误,需要重新创建 { CString strTemp = m_adoConnection.GetLastErrorText(); CString str; str.Format( _T("连接SQL数据库(%s)失败:%s"),m_Setup.szSQLIP,strTemp); MessageBox( str , _T("致命错误") , MB_ICONWARNING ); return false; } } } } m_AdoRS.SetAdoConnection( &m_adoConnection ); //设置连接 } //登录成功,取公用电话本 if ( GetUserPurview( PURVIEW_USER_MANAGER , false ) ) { //因为要重新取数据,清空数据库 m_AdoRS.Open( _T("delete from users") ); REQ_GAddress_See * pSee = new REQ_GAddress_See; pSee->lCorpID = m_lCorpID; SendFrame( SMSFUNC_GADDRESS_SEE , (BYTE*)pSee , sizeof( REQ_GAddress_See ) ); //发送取资料的请求 m_bShowProcess = true; if ( m_DlgProcess.DoModal() != IDOK ) //显示进度栏 { //取资料不成功 return false; } m_bShowProcess = false; if ( bRefresh ) m_pFuncView->On_User_Refresh2(); } return true; } void CMainFrame::OnFindsr() { GetCenterTime(); //在设置生日之前,先同步一下时间,防止出错 BOOL bGAddress = GetUserPurview( PURVIEW_GADDRESS_SEE ,false); BOOL bPAddress = GetUserPurview( PURVIEW_PADDRESS ,false); if ( !bGAddress && !bPAddress ) { MessageBox( _T("对不起,你没有公用通讯录与私人通讯录的权限,不能进行查找!"),_T("错误"),MB_ICONWARNING ); return; } DLG_FindSR dlg(this); dlg.SetParam(bGAddress,bPAddress); dlg.DoModal(); } long CMainFrame::FindSR(long lMon, long lDay,long lMon2, long lDay2,BOOL bGAddress,BOOL bPAddress, CReportCtrl *pList) { long lSRCount = 0; long lCount = 0; if ( pList ) lCount = pList->GetItemCount(); long lDayBegin=lMon*100+lDay; long lDayEnd =lMon2*100+lDay2; COleDateTime t; CString strTemp; if ( bGAddress ) { m_AdoRS.Open( _T("gaddress"),adCmdTable); m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { m_AdoRS.GetCollect(_T("Birthday"),t); if ( t.GetStatus() == COleDateTime::valid && t.GetMonth()*100+t.GetDay() >= lDayBegin && t.GetMonth()*100+t.GetDay() <= lDayEnd ) { lSRCount ++; if ( pList ) { m_AdoRS.GetCollect( _T("Name") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("NickName") ,strTemp ); pList->SetItemText(lCount,1,strTemp); m_AdoRS.GetCollect( _T("Mobile") ,strTemp ); pList->SetItemText(lCount,2,strTemp); strTemp.Format( _T("%02d.%02d") , t.GetMonth() , t.GetDay() ); pList->SetItemText(lCount,3,strTemp); m_AdoRS.GetCollect( _T("BZ") ,strTemp ); pList->SetItemText(lCount,4,strTemp); lCount ++; } } m_AdoRS.MoveNext(); } m_AdoRS.Close(); } if ( bPAddress ) { m_AdoRS.Open( _T("paddress"),adCmdTable); m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { m_AdoRS.GetCollect(_T("Birthday"),t); if ( t.GetStatus() == COleDateTime::valid && t.GetMonth()*100+t.GetDay() >= lDayBegin && t.GetMonth()*100+t.GetDay() <= lDayEnd ) { lSRCount ++; if ( pList ) { m_AdoRS.GetCollect( _T("Name") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("NickName") ,strTemp ); pList->SetItemText(lCount,1,strTemp); m_AdoRS.GetCollect( _T("Mobile") ,strTemp ); pList->SetItemText(lCount,2,strTemp); strTemp.Format( _T("%02d.%02d") , t.GetMonth() , t.GetDay() ); pList->SetItemText(lCount,3,strTemp); m_AdoRS.GetCollect( _T("BZ") ,strTemp ); pList->SetItemText(lCount,4,strTemp); lCount ++; } } m_AdoRS.MoveNext(); } m_AdoRS.Close(); #ifdef YQ_VER //一汽专版 #ifndef YQ_VER_JL //一汽吉林专版 m_AdoRS.Open( _T("kaddress"),adCmdTable); m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { m_AdoRS.GetCollect(_T("Birthday"),t); if ( t.GetStatus() == COleDateTime::valid && t.GetMonth()*100+t.GetDay() >= lDayBegin && t.GetMonth()*100+t.GetDay() <= lDayEnd ) { lSRCount ++; if ( pList ) { m_AdoRS.GetCollect( _T("Name") ,strTemp ); pList->InsertItem(lCount,strTemp,0); //m_AdoRS.GetCollect( _T("NickName") ,strTemp ); //pList->SetItemText(lCount,1,strTemp); m_AdoRS.GetCollect( _T("Mobile") ,strTemp ); pList->SetItemText(lCount,2,strTemp); strTemp.Format( _T("%02d.%02d") , t.GetMonth() , t.GetDay() ); pList->SetItemText(lCount,3,strTemp); m_AdoRS.GetCollect( _T("BZ") ,strTemp ); pList->SetItemText(lCount,4,strTemp); lCount ++; } } m_AdoRS.MoveNext(); } m_AdoRS.Close(); #endif #endif #ifdef CAR_VER //汽车专版 m_AdoRS.Open( _T("caddress"),adCmdTable); m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { m_AdoRS.GetCollect(_T("Birthday"),t); if ( t.GetStatus() == COleDateTime::valid && t.GetMonth()*100+t.GetDay() >= lDayBegin && t.GetMonth()*100+t.GetDay() <= lDayEnd ) { lSRCount ++; if ( pList ) { m_AdoRS.GetCollect( _T("LXR") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("Mobile") ,strTemp ); pList->SetItemText(lCount,2,strTemp); strTemp.Format( _T("%02d.%02d") , t.GetMonth() , t.GetDay() ); pList->SetItemText(lCount,3,strTemp); m_AdoRS.GetCollect( _T("BZ") ,strTemp ); pList->SetItemText(lCount,4,strTemp); lCount ++; } } m_AdoRS.GetCollect(_T("Birthday2"),t); if ( t.GetStatus() == COleDateTime::valid && t.GetMonth()*100+t.GetDay() >= lDayBegin && t.GetMonth()*100+t.GetDay() <= lDayEnd ) { lSRCount ++; if ( pList ) { m_AdoRS.GetCollect( _T("LXR2") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("Mobile2") ,strTemp ); pList->SetItemText(lCount,2,strTemp); strTemp.Format( _T("%02d.%02d") , t.GetMonth() , t.GetDay() ); pList->SetItemText(lCount,3,strTemp); m_AdoRS.GetCollect( _T("BZ") ,strTemp ); pList->SetItemText(lCount,4,strTemp); lCount ++; } } m_AdoRS.MoveNext(); } m_AdoRS.Close(); #endif #ifdef STOCK_VER m_AdoRS.Open( _T("saddress"),adCmdTable); m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { m_AdoRS.GetCollect(_T("Birthday"),t); if ( t.GetStatus() == COleDateTime::valid && t.GetMonth()*100+t.GetDay() >= lDayBegin && t.GetMonth()*100+t.GetDay() <= lDayEnd ) { lSRCount ++; if ( pList ) { m_AdoRS.GetCollect( _T("Name") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("NickName") ,strTemp ); pList->SetItemText(lCount,1,strTemp); m_AdoRS.GetCollect( _T("Mobile") ,strTemp ); pList->SetItemText(lCount,2,strTemp); strTemp.Format( _T("%02d.%02d") , t.GetMonth() , t.GetDay() ); pList->SetItemText(lCount,3,strTemp); m_AdoRS.GetCollect( _T("BZ") ,strTemp ); pList->SetItemText(lCount,4,strTemp); lCount ++; } } m_AdoRS.MoveNext(); } m_AdoRS.Close(); #endif } return lSRCount; } void CMainFrame::GetGGMsg() { #ifdef MOBSET_CARD_VER SendFrame( SMSFUNC_GETGG2 , NULL , 0 ); //发送取资料的请求 #else SendFrame( SMSFUNC_GETGG , NULL , 0 ); //发送取资料的请求 #endif } void CMainFrame::GDText() { CString strMsg; strMsg = m_strTEXT.Right(m_strTEXT.GetLength()-m_lGDText); if ( m_lGDText < m_strTEXT.GetLength() ) { WCHAR c= m_strTEXT.GetAt(m_lGDText); if ( c>128 ) m_lGDText+=2; else m_lGDText++; } else { m_lGDText = 0; } m_wndStatusBar.SetPaneText( 1 , strMsg , true ); } void CMainFrame::OnCompdb() { DLG_CompDB dlg(this); if ( dlg.DoModal() == IDOK ) { m_Setup.bCompDB = true; SaveSetup(); CString str; str = _T("delete from smslog"); m_AdoRS.Open( str ); m_AdoRS.Close(); #ifdef SUPPER_FUNC_MMS str = _T("delete from mmslog"); m_AdoRS.Open( str ); m_AdoRS.Close(); #endif #ifdef SUPPER_FUNC_FAX str = _T("delete from faxlog"); m_AdoRS.Open( str ); m_AdoRS.Close(); #endif MessageBox( _T("数据维护成功完成,现将退出本软件,请手工重新启动!") , _T("信息") , MB_ICONINFORMATION ); this->OnClose(); } } void CMainFrame::OnHelp2() { TCHAR szPath[512]; GetCurrentPath(szPath); _tcscat( szPath , _T("CorpSms.chm") ); ShellExecute(NULL,_T("open"),szPath,NULL,NULL,SW_SHOWNORMAL); } void CMainFrame::OnSystemsetup() { DLG_SYSSetup dlg(this); dlg.SetParam( m_Setup ); if ( dlg.DoModal() == IDOK ) { m_Setup = dlg.GetParam(); SaveSetup(); m_pBaseView->m_dlgSmsJS.ReadSetup(); } } void CMainFrame::OnUpdateSystemsetup(CCmdUI* pCmdUI) { BOOL bAutoReg = m_Setup.bSDK & SDK_AUTOREG ? true:false; pCmdUI->Enable( bAutoReg ); } void CMainFrame::OnTCj() { DLG_CJCard dlg(this); m_pCJCard = &dlg; dlg.DoModal(); m_pCJCard = NULL; } void CMainFrame::OnTYj() { OnTYj2( _T("意见建议") ); } void CMainFrame::OnTYj2(const TCHAR *pType) { if ( ::GetTickCount() - m_dwEndTYjTime > 5*60*1000 ) { DLG_YJ dlg(this,pType); if ( dlg.DoModal()==IDOK ) { REQ_YJ * pYJ = new REQ_YJ; memset(pYJ,0,sizeof(REQ_YJ)); pYJ->lCorpID = m_lCorpID; pYJ->lUserID = m_lUserID; _tcscpy(pYJ->szCorpName , m_Ans_Login.szCorpName ); _tcscpy(pYJ->szLoginName, m_pCurUser->szUser ); _tcscpy(pYJ->szType , dlg.m_strType ); _tcscpy(pYJ->szName , dlg.m_strName ); _tcscpy(pYJ->szTel , dlg.m_strTel ); _tcscpy(pYJ->szEmail , dlg.m_strEmail ); _tcscpy(pYJ->szBZ , dlg.m_strBZ ); m_dwEndTYjTime = ::GetTickCount(); SendFrame( SMSFUNC_YJ , (BYTE*)pYJ , sizeof(REQ_YJ) ); } } else { MessageBox( _T("意见/建议的提交时间过于频繁,请稍后再试!"),_T("信息") , MB_ICONINFORMATION ); } } void CMainFrame::OnSendsetup() { DLG_SendSetup dlg(this); dlg.SetParam( m_Setup,m_Ans_Login2 ); if ( dlg.DoModal() == IDOK ) { m_Setup = dlg.GetParam(); if (m_Setup.tYWLast.wYear == 0 ) GetLocalTime(&m_Setup.tYWLast); SaveSetup(); if ( dlg.m_bYWNow ) { YWDB(true); MessageBox( _T("数据维护成功完成,现将退出本软件,请手工重新启动!") , _T("信息") , MB_ICONINFORMATION ); this->OnClose(); } //需要先注册atl CString strAtl=_T("atl.dll /S"); ShellExecute(NULL,_T("open"),_T("regsvr32"),strAtl,NULL,SW_SHOWNORMAL); TCHAR szPath[512]={0}; this->GetCurrentPath(szPath); if ( !m_Setup.bExcelAddin ) { _tcscat(szPath , _T("CorpSmsAddin.dll /S") ); } else { _tcscat(szPath , _T("CorpSmsAddin.dll /U /S") ); } ShellExecute(NULL,_T("open"),_T("regsvr32"),szPath,NULL,SW_SHOWNORMAL); } } void CMainFrame::GetBack() { REQ_Back_See * pSee = new REQ_Back_See; pSee->lCorpID = this->m_lCorpID; pSee->lUserID = this->m_lUserID; SendFrame( SMSFUNC_BACK_SEE , (BYTE*)pSee , sizeof(REQ_Back_See) ); //发送取过滤语的请求 } void CMainFrame::OnTLogo() { } void CMainFrame::OnTBill() { //m_pBaseView->ShowFuncDlg( DLGFUNC_BILL ); m_pFuncView->SelectFuncItem( DLGFUNC_BILL ); } void CMainFrame::OnUpdateTBill(CCmdUI* pCmdUI) { } BOOL CMainFrame::UpdateDB(CAdoConnection & m_adoConnection,CAdoRecordSet & m_AdoRS) { USES_CONVERSION; //参考:http://hi.baidu.com/iamcay/blog/item/27980cd76071d6dfa144df91.html //更改pgaddress的Ltd为允许空字符串 adox::_CatalogPtr pCP=NULL; pCP.CreateInstance(_T("ADOX.Catalog") ); if (pCP != NULL) { pCP->PutActiveConnection(_variant_t((IDispatch*)m_adoConnection.GetConnection(), true)); adox::TablesPtr tab=pCP->GetTables(); int iCount = tab->GetCount(); for ( int i=0 ; iGetItem((_variant_t)(short)i); pTable->get_Name(&tmpBStr); strTable = tmpBStr; if(strTable == CString(_T("paddress")) ) { adox::ColumnsPtr pCols =pTable->Columns; int iCount2 = pCols->GetCount(); for ( int j=0 ; jGetItem((_variant_t)(short)j); pCol->get_Name(&tmpBStr); strTable = tmpBStr; if(strTable == CString(_T("Ltd")) ) { //BOOL b= pCol->Properties->Item[_T("Jet OLEDB:Allow Zero Length")]->Value; if ( pCol->Properties->Item[_T("Jet OLEDB:Allow Zero Length")]->Value == _variant_t(false) ) pCol->Properties->Item[_T("Jet OLEDB:Allow Zero Length")]->Value = true; } if(strTable == CString(_T("Job")) ) { //BOOL b= pCol->Properties->Item[_T("Jet OLEDB:Allow Zero Length")]->Value; if ( pCol->Properties->Item[_T("Jet OLEDB:Allow Zero Length")]->Value == _variant_t(false) ) pCol->Properties->Item[_T("Jet OLEDB:Allow Zero Length")]->Value = true; } } break; } } pCP.Release(); } _bstr_t Value; CAdoRecordSet rset; //创建smsdytype表 rset = m_adoConnection.OpenSchema(adSchemaColumns); BOOL bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("smsdytype") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { //创建表 CString str = _T("CREATE TABLE smsdytype ( ") \ _T("DYID AUTOINCREMENT(100, 1) , ") \ _T("Title VARCHAR(32) NULL )"); m_AdoRS.Open(str); m_AdoRS.Open( _T("insert into smsdytype (title) values( '常用短语' )") ); m_AdoRS.Open( _T("update smsdy set type='100'") ); } //创建QueryLog表 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("QueryLog") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { //创建表 CString str = _T("CREATE TABLE QueryLog ( ") \ _T("QueryLogID INT NULL , ") \ _T("QueryID INT NULL , ") \ _T("CorpID INT NULL , ") \ _T("UserID INT NULL , ") \ _T("SendID INT NULL , ") \ _T("Reader INT NULL , ") \ _T("Status INT NULL , ") \ _T("Sender VARCHAR(25) NULL , ") \ _T("SendNum VARCHAR(25) NULL , ") \ _T("RecvMsg VARCHAR(180) NULL , ") \ _T("RetMsg VARCHAR(255) NULL , ") \ _T("SendTime DateTime NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iSendTime ON QueryLog (SendTime);"); m_AdoRS.Open(str); } //创建gaddress表 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("gaddress") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { //创建表 CString str = _T("select * into gaddress from paddress where 1=2"); m_AdoRS.Open(str); //UserID不要自动增长 str = _T("ALTER TABLE gaddress ALTER COLUMN UserID int"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index igaddress_UserID ON gaddress(UserID);"); m_AdoRS.Open(str); str = _T("Create Index igaddress_UserType ON gaddress(UserType);"); m_AdoRS.Open(str); str = _T("Create Index igaddress_GroupID ON gaddress(GroupID);"); m_AdoRS.Open(str); str = _T("Create Index igaddress_Mobile ON gaddress(Mobile);"); m_AdoRS.Open(str); str = _T("Create Index igaddress_CreateTime ON gaddress(CreateTime);"); m_AdoRS.Open(str); str = _T("Create Index iusers_CreateTime ON users(CreateTime);"); m_AdoRS.Open(str); str = _T("Create Index ipaddress_CreateTime ON paddress(CreateTime);"); m_AdoRS.Open(str); #ifdef CAR_VER //汽车专版 str = _T("Create Index icaddress_CreateTime ON caddress(CreateTime);"); m_AdoRS.Open(str); #endif #ifdef STOCK_VER //证券专版 str = _T("Create Index isaddress_CreateTime ON saddress(CreateTime);"); m_AdoRS.Open(str); #endif #ifdef YQ_VER //一汽专版 #ifndef YQ_VER_JL //一汽吉林专版 str = _T("Create Index ikaddress_CreateTime ON kaddress(CreateTime);"); m_AdoRS.Open(str); #endif #endif //增加accessGroup字段 str=_T("ALTER TABLE Users ADD COLUMN AccessGroup int"); m_AdoRS.Open(str); m_AdoRS.Close(); } //创建Back表 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("Back") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { //创建表 CString str = _T("CREATE TABLE Back ( ") \ _T("BackID AUTOINCREMENT(100, 1), ") \ _T("Status INT NULL Default 1 , ") \ _T("Mobile VARCHAR(25) NULL , ") \ _T("BZ VARCHAR(64) NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iMobile ON Back (Mobile);"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iStatus ON Back (Status);"); m_AdoRS.Open(str); } //改变字段大小 CString str1,str2,str3,str4,str5,str6,str7,str8,str9,str10,str11; BOOL bInsertSmsRecv=false; if ( m_AdoRS.Open( _T("smsrecv") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("RecvNum")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<25 ) { str1 = _T("ALTER TABLE smsrecv ALTER COLUMN RecvNum VARCHAR(25)"); } } field = m_AdoRS.GetField(_T("SendNum")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<25 ) { str2 = _T("ALTER TABLE smsrecv ALTER COLUMN SendNum VARCHAR(25)"); } } field = m_AdoRS.GetField(_T("Sender")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<25 ) { str3 = _T("ALTER TABLE smsrecv ALTER COLUMN Sender VARCHAR(25)"); } } field = m_AdoRS.GetField(_T("Recver")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<25 ) { str4 = _T("ALTER TABLE smsrecv ALTER COLUMN Recver VARCHAR(25)"); } } #ifdef MOBSET_OEM_SNLD //仙妮雷德专版 if ( m_AdoRS.GetFieldsCount() < 19 ) { bInsertSmsRecv = true; } #endif m_AdoRS.Close(); } if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } if ( str2.GetLength()>0 ) { m_AdoRS.Open(str2); m_AdoRS.Close(); } if ( str3.GetLength()>0 ) { m_AdoRS.Open(str3); m_AdoRS.Close(); } if ( str4.GetLength()>0 ) { m_AdoRS.Open(str4); m_AdoRS.Close(); } #ifdef MOBSET_OEM_SNLD //仙妮雷德专版 if ( bInsertSmsRecv ) { str1=_T("ALTER TABLE SmsRecv ADD COLUMN NickName VARCHAR(25)"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN Sex VARCHAR(2)"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN Birthday DateTime"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN Ltd VARCHAR(50)"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN Job VARCHAR(20)"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN Tel VARCHAR(20)"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN Fax VARCHAR(20)"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN Email VARCHAR(30)"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN QQ VARCHAR(16)"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1=_T("ALTER TABLE SmsRecv ADD COLUMN BZ VARCHAR(50)"); m_AdoRS.Open(str1); m_AdoRS.Close(); } #endif str1=_T("");str2=_T("");str3=_T("");str4=_T(""); if ( m_AdoRS.Open( _T("smslog") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("RecvNum")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<25 ) { str1 = _T("ALTER TABLE smslog ALTER COLUMN RecvNum VARCHAR(25)"); } } field = m_AdoRS.GetField(_T("SendNum")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<25 ) { str2 = _T("ALTER TABLE smslog ALTER COLUMN SendNum VARCHAR(25)"); } } field = m_AdoRS.GetField(_T("Sender")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<25 ) { str3 = _T("ALTER TABLE smslog ALTER COLUMN Sender VARCHAR(25)"); } } field = m_AdoRS.GetField(_T("Recver")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<25 ) { str4 = _T("ALTER TABLE smslog ALTER COLUMN Recver VARCHAR(25)"); } } m_AdoRS.Close(); } if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } if ( str2.GetLength()>0 ) { m_AdoRS.Open(str2); m_AdoRS.Close(); } if ( str3.GetLength()>0 ) { m_AdoRS.Open(str3); m_AdoRS.Close(); } if ( str4.GetLength()>0 ) { m_AdoRS.Open(str4); m_AdoRS.Close(); } //改变字段大小3 str1=_T("");str2=_T("");str3=_T("");str4=_T(""); if ( m_AdoRS.Open( _T("QueryLog") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("RecvMsg")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<180 ) { str1 = _T("ALTER TABLE QueryLog ALTER COLUMN RecvMsg VARCHAR(180)"); } } field = m_AdoRS.GetField(_T("RetMsg")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<255 ) { str2 = _T("ALTER TABLE QueryLog ALTER COLUMN RetMsg VARCHAR(255)"); } } m_AdoRS.Close(); } if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } if ( str2.GetLength()>0 ) { m_AdoRS.Open(str2); m_AdoRS.Close(); } //改变字段大小,sendtemp2 str1=_T("");str2=_T("");str3=_T("");str4=_T(""); if ( m_AdoRS.Open( _T("sendtemp2") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Mobile")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize!=25 ) { str1 = _T("ALTER TABLE sendtemp2 ALTER COLUMN Mobile VARCHAR(25)"); } } m_AdoRS.Close(); } if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } //为私人通讯录增加地址字段 str1=_T("");str2=_T("");str3=_T("");str4=_T("");str5=_T("");str6=_T("");str7=_T("");str8=_T("");str9=_T("");str10=_T(""); str11 = _T(""); if ( m_AdoRS.Open( _T("paddress") , adCmdTable ) ) { long lFieldCount = m_AdoRS.GetFieldsCount(); for ( int i=0 ; iGetName()); #else _stprintf( szFieldName,W2A(field->GetName())); #endif if ( !_tcscmp(szFieldName , _T("Addr") ) ) { break; } } if ( i>=lFieldCount ) //需要添加Addr字段 { str1=_T("ALTER TABLE paddress ADD COLUMN Addr VARCHAR(64)"); } //改变Tel的字段大小 long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Tel")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str2 = _T("ALTER TABLE paddress ALTER COLUMN Tel VARCHAR(32)"); } } field = m_AdoRS.GetField(_T("Fax")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str3 = _T("ALTER TABLE paddress ALTER COLUMN Fax VARCHAR(32)"); } } field = m_AdoRS.GetField(_T("BZ")); if ( field ) { field->get_DefinedSize(&lSize); #ifdef SHMZ_VER_GROUPSEND if ( lSize<250 ) { str4 = _T("ALTER TABLE paddress ALTER COLUMN BZ VARCHAR(250)"); } #else if ( lSize<160 ) { str4 = _T("ALTER TABLE paddress ALTER COLUMN BZ VARCHAR(160)"); } #endif } field = m_AdoRS.GetField(_T("Name")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<24 ) { str5 = _T("ALTER TABLE paddress ALTER COLUMN Name VARCHAR(24)"); } } field = m_AdoRS.GetField(_T("NickName")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<24 ) { str6 = _T("ALTER TABLE paddress ALTER COLUMN NickName VARCHAR(24)"); } } field = m_AdoRS.GetField(_T("job")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str7 = _T("ALTER TABLE paddress ALTER COLUMN job VARCHAR(32)"); } } field = m_AdoRS.GetField(_T("Email")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<64 ) { str8 = _T("ALTER TABLE paddress ALTER COLUMN Email VARCHAR(64)"); } } field = m_AdoRS.GetField(_T("Mobile")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str9 = _T("ALTER TABLE paddress ALTER COLUMN Mobile VARCHAR(32)"); } } field = m_AdoRS.GetField(_T("QQ")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str10 = _T("ALTER TABLE paddress ALTER COLUMN QQ VARCHAR(32)"); } } #ifdef GZTJJ_VER field = m_AdoRS.GetField(_T("Place")); if (!field) { str11 = _T("ALTER TABLE paddress ADD COLUMN Place VARCHAR(16)"); } #endif } m_AdoRS.Close(); if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } if ( str2.GetLength()>0 ) { m_AdoRS.Open(str2); m_AdoRS.Close(); } if ( str3.GetLength()>0 ) { m_AdoRS.Open(str3); m_AdoRS.Close(); } if ( str4.GetLength()>0 ) { m_AdoRS.Open(str4); m_AdoRS.Close(); } if ( str5.GetLength()>0 ) { m_AdoRS.Open(str5); m_AdoRS.Close(); } if ( str6.GetLength()>0 ) { m_AdoRS.Open(str6); m_AdoRS.Close(); } if ( str7.GetLength()>0 ) { m_AdoRS.Open(str7); m_AdoRS.Close(); } if ( str8.GetLength()>0 ) { m_AdoRS.Open(str8); m_AdoRS.Close(); } if ( str9.GetLength()>0 ) { m_AdoRS.Open(str9); m_AdoRS.Close(); } if ( str10.GetLength()>0 ) { m_AdoRS.Open(str10); m_AdoRS.Close(); } if (str11.GetLength() > 0) { m_AdoRS.Open(str11); m_AdoRS.Close(); } //为公用通讯录增加地址字段 str1=_T("");str2=_T("");str3=_T("");str4=_T("");str5=_T("");str6=_T("");str7=_T("");str8=_T("");str9=_T("");str10=_T(""); if ( m_AdoRS.Open( _T("gaddress") , adCmdTable ) ) { long lFieldCount = m_AdoRS.GetFieldsCount(); for ( int i=0 ; iGetName()); #else _stprintf( szFieldName,W2A(field->GetName())); #endif if ( !_tcscmp(szFieldName , _T("Addr") ) ) { break; } } if ( i>=lFieldCount ) //需要添加Addr字段 { str1=_T("ALTER TABLE gaddress ADD COLUMN Addr VARCHAR(64)"); } //改变Tel的字段大小 long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Tel")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str2 = _T("ALTER TABLE gaddress ALTER COLUMN Tel VARCHAR(32)"); } } field = m_AdoRS.GetField(_T("Fax")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str3 = _T("ALTER TABLE gaddress ALTER COLUMN Fax VARCHAR(32)"); } } field = m_AdoRS.GetField(_T("BZ")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<160 ) { str4 = _T("ALTER TABLE gaddress ALTER COLUMN BZ VARCHAR(160)"); } } field = m_AdoRS.GetField(_T("Name")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<24 ) { str5 = _T("ALTER TABLE gaddress ALTER COLUMN Name VARCHAR(24)"); } } field = m_AdoRS.GetField(_T("NickName")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<24 ) { str6 = _T("ALTER TABLE gaddress ALTER COLUMN NickName VARCHAR(24)"); } } field = m_AdoRS.GetField(_T("job")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str7 = _T("ALTER TABLE gaddress ALTER COLUMN job VARCHAR(32)"); } } field = m_AdoRS.GetField(_T("Email")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<64 ) { str8 = _T("ALTER TABLE gaddress ALTER COLUMN Email VARCHAR(64)"); } } field = m_AdoRS.GetField(_T("Mobile")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str9 = _T("ALTER TABLE gaddress ALTER COLUMN Mobile VARCHAR(32)"); } } field = m_AdoRS.GetField(_T("QQ")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<32 ) { str10 = _T("ALTER TABLE gaddress ALTER COLUMN QQ VARCHAR(32)"); } } } m_AdoRS.Close(); if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } if ( str2.GetLength()>0 ) { m_AdoRS.Open(str2); m_AdoRS.Close(); } if ( str3.GetLength()>0 ) { m_AdoRS.Open(str3); m_AdoRS.Close(); } if ( str4.GetLength()>0 ) { m_AdoRS.Open(str4); m_AdoRS.Close(); } if ( str5.GetLength()>0 ) { m_AdoRS.Open(str5); m_AdoRS.Close(); } if ( str6.GetLength()>0 ) { m_AdoRS.Open(str6); m_AdoRS.Close(); } if ( str7.GetLength()>0 ) { m_AdoRS.Open(str7); m_AdoRS.Close(); } if ( str8.GetLength()>0 ) { m_AdoRS.Open(str8); m_AdoRS.Close(); } if ( str9.GetLength()>0 ) { m_AdoRS.Open(str9); m_AdoRS.Close(); } if ( str10.GetLength()>0 ) { m_AdoRS.Open(str10); m_AdoRS.Close(); } /* //更改私人通讯录的LTD字段允许为空 if ( m_AdoRS.Open( _T("paddress") , adCmdTable ) ) { long lFieldCount = m_AdoRS.GetFieldsCount(); for ( int i=0 ; iGetName()); #else _stprintf( szFieldName,W2A(field->GetName())); #endif if ( !_tcscmp(szFieldName , _T("Ltd") ) ) { long lProCount = field->GetProperties()->GetCount(); for ( int j=0 ; jGetProperties()->GetItem(j1)->GetName()); #else _stprintf( szProName,field->GetProperties()->GetItem(j1)->GetName()); #endif TRACE("\r\n%s\r\n" , szProName ); } long lAttributes = field->GetAttributes(); long lTemp=(lAttributes & adFldIsNullable); //if ( !(lAttributes & adFldIsNullable) ) //{ str1.Format(_T("ALTER TABLE paddress ALTER COLUMN Ltd VARCHAR(%d) NULL") , field->GetDefinedSize()); m_AdoRS.Close(); m_AdoRS.Open(str1); //} break; } } } */ #ifdef CAR_VER //为汽车通讯录增加保险日期字段 if ( m_AdoRS.Open( _T("caddress") , adCmdTable ) ) { long lFieldCount = m_AdoRS.GetFieldsCount(); for ( int i=0 ; iGetName()); #else _stprintf( szFieldName,W2A(field->GetName())); #endif if ( !_tcscmp(szFieldName , _T("BXDate") ) ) { break; } } m_AdoRS.Close(); if ( i>=lFieldCount ) //需要添加BXDate字段 { str1=_T("ALTER TABLE caddress ADD COLUMN BXDate DateTime"); m_AdoRS.Open(str1); m_AdoRS.Close(); } } #endif //创建QueryLog表 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("sendtemp") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { //创建表 CString str = _T("CREATE TABLE sendtemp ( ") \ _T("ItemID AUTOINCREMENT(100, 1) , ") \ _T("GroupID VARCHAR(16) NULL , ") \ _T("Name VARCHAR(20) NULL , ") \ _T("NikeName VARCHAR(20) NULL , ") \ _T("Mobile VARCHAR(16) NULL , ") \ _T("BZ VARCHAR(180) NULL , ") \ _T("Status VARCHAR(1) NULL , ") \ _T("SendID INT NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index isendtemp_ItemID ON sendtemp (ItemID);"); str = _T("Create Index isendtemp_Mobile ON sendtemp (Mobile);"); m_AdoRS.Open(str); //创建其它索引_users str = _T("Create Index iusers_UserID ON users(UserID);"); m_AdoRS.Open(str); str = _T("Create Index iusers_UserType ON users(UserType);"); m_AdoRS.Open(str); str = _T("Create Index iusers_GroupID ON users(GroupID);"); m_AdoRS.Open(str); str = _T("Create Index iusers_Mobile ON users(Mobile);"); m_AdoRS.Open(str); //创建其它索引_smsrecv str = _T("Create Index ismsrecv_RecvID ON smsrecv(RecvID);"); m_AdoRS.Open(str); str = _T("Create Index ismsrecv_SendNum ON smsrecv(SendNum);"); m_AdoRS.Open(str); str = _T("Create Index ismsrecv_RecvNum ON smsrecv(RecvNum);"); m_AdoRS.Open(str); str = _T("Create Index ismsrecv_RecvTime ON smsrecv(RecvTime);"); m_AdoRS.Open(str); //创建其它索引_smslog str = _T("Create Index ismslog_SmsID ON smslog(SmsID);"); m_AdoRS.Open(str); str = _T("Create Index ismslog_SendID ON smslog(SendID);"); m_AdoRS.Open(str); str = _T("Create Index ismslog_SendNum ON smslog(SendNum);"); m_AdoRS.Open(str); str = _T("Create Index ismslog_RecvNum ON smslog(RecvNum);"); m_AdoRS.Open(str); str = _T("Create Index ismslog_SubTime ON smslog(SubTime);"); m_AdoRS.Open(str); //创建其它索引_smsitem str = _T("Create Index ismsitem_ItemID ON smsitem(ItemID);"); m_AdoRS.Open(str); str = _T("Create Index ismsitem_BoxID ON smsitem(BoxID);"); m_AdoRS.Open(str); //创建其它索引_smsbox str = _T("Create Index ismsbox_BoxID ON smsbox(BoxID);"); m_AdoRS.Open(str); str = _T("Create Index ismsbox_BoxType ON smsbox(BoxType);"); m_AdoRS.Open(str); str = _T("Create Index ismsbox_CreateTime ON smsbox(CreateTime);"); m_AdoRS.Open(str); //创建其它索引_QueryLog str = _T("Create Index iQueryLog_QueryLogID ON QueryLog(QueryLogID);"); m_AdoRS.Open(str); str = _T("Create Index iQueryLog_SendID ON QueryLog(SendID);"); m_AdoRS.Open(str); //创建其它索引_paddress str = _T("Create Index ipaddress_UserID ON paddress(UserID);"); m_AdoRS.Open(str); str = _T("Create Index ipaddress_UserType ON paddress(UserType);"); m_AdoRS.Open(str); str = _T("Create Index ipaddress_GroupID ON paddress(GroupID);"); m_AdoRS.Open(str); str = _T("Create Index ipaddress_Mobile ON paddress(Mobile);"); m_AdoRS.Open(str); //创建其它索引_kaddress str = _T("Create Index ikaddress_UserID ON kaddress(UserID);"); m_AdoRS.Open(str); str = _T("Create Index ikaddress_UserType ON kaddress(UserType);"); m_AdoRS.Open(str); str = _T("Create Index ikaddress_GroupID ON kaddress(GroupID);"); m_AdoRS.Open(str); str = _T("Create Index ikaddress_Mobile ON kaddress(Mobile);"); m_AdoRS.Open(str); //创建其它索引_caddress str = _T("Create Index icaddress_UserID ON caddress(UserID);"); m_AdoRS.Open(str); str = _T("Create Index icaddress_UserType ON caddress(UserType);"); m_AdoRS.Open(str); str = _T("Create Index icaddress_GroupID ON caddress(GroupID);"); m_AdoRS.Open(str); str = _T("Create Index icaddress_Mobile ON caddress(Mobile);"); m_AdoRS.Open(str); } //创建sendtemp2表 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("sendtemp2") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { /* //创建表 CString str = _T("CREATE TABLE sendtemp2 ( ") \ _T("ItemID AUTOINCREMENT(100, 1) , ") \ _T("GroupID VARCHAR(16) NULL , ") \ _T("Name VARCHAR(20) NULL , ") \ _T("NikeName VARCHAR(20) NULL , ") \ _T("Mobile VARCHAR(16) NULL , ") \ _T("BZ VARCHAR(180) NULL , ") \ _T("Status VARCHAR(1) NULL , ") \ _T("SendID INT NULL , " ) \ _T("CreateTime DateTime NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index isendtemp_ItemID ON sendtemp2 (ItemID);"); m_AdoRS.Open(str); str = _T("Create Index isendtemp_Mobile ON sendtemp2 (Mobile);"); m_AdoRS.Open(str); str = _T("Create Index isendtemp_CreateTime ON sendtemp2 (CreateTime);"); m_AdoRS.Open(str); */ //创建表 CString str = _T("CREATE TABLE sendtemp2 ( ") \ _T("ItemID AUTOINCREMENT(100, 1) , ") \ _T("Mobile VARCHAR(180) NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index isendtemp_ItemID ON sendtemp2 (ItemID);"); m_AdoRS.Open(str); str = _T("Create Index isendtemp_Mobile ON sendtemp2 (Mobile);"); m_AdoRS.Open(str); } //为日程提醒创建"AddMobile"字段 if ( m_AdoRS.Open( _T("calendar") , adCmdTable ) ) { long lFieldCount = m_AdoRS.GetFieldsCount(); for ( int i=0 ; iGetName()); #else _stprintf( szFieldName,W2A(field->GetName())); #endif if ( !_tcscmp(szFieldName , _T("AddMobile") ) ) { break; } } m_AdoRS.Close(); if ( i>=lFieldCount ) //需要添加Addr字段 { str1=_T("ALTER TABLE calendar ADD COLUMN AddMobile VARCHAR(32)"); m_AdoRS.Open(str1); m_AdoRS.Close(); } } //为日程提醒增辊Msg字段 //改变字段大小 str1=_T(""); if ( m_AdoRS.Open( _T("calendar") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Msg")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<200 ) { //str1 = _T("ALTER TABLE calendar ALTER COLUMN Msg VARCHAR(250)"); str1 = _T("ALTER TABLE calendar ALTER COLUMN Msg memo"); } } m_AdoRS.Close(); } if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } #ifdef CHINABANK_VER //改变字段大小 if ( m_AdoRS.Open( _T("smsitem") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("BZ")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<200 ) { str1 = _T("ALTER TABLE smsitem ALTER COLUMN BZ memo"); m_AdoRS.Open(str1); m_AdoRS.Close(); } } } //改变字段大小 if ( m_AdoRS.Open( _T("smslog") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Msg")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<250 ) { str1 = _T("ALTER TABLE smslog ALTER COLUMN Msg memo"); m_AdoRS.Open(str1); str1 = _T("ALTER TABLE smslog ADD COLUMN KF int default 1"); m_AdoRS.Open(str1); m_AdoRS.Close(); } } } #endif #ifdef MOBSET_OEM_BYSZY //为白云山中药增加Local字段 if ( m_AdoRS.Open( _T("SmsRecv") , adCmdTable ) ) { long lFieldCount = m_AdoRS.GetFieldsCount(); for ( int i=0 ; iGetName()); #else _stprintf( szFieldName,W2A(field->GetName())); #endif if ( !_tcscmp(szFieldName , _T("LocalGroup") ) ) { break; } } m_AdoRS.Close(); if ( i>=lFieldCount ) //需要添加Addr字段 { str1=_T("ALTER TABLE SmsRecv ADD COLUMN LocalGroup VARCHAR(64)"); m_AdoRS.Open(str1); m_AdoRS.Close(); } } #endif #ifdef SUPPER_FUNC_FAX //传真 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("faxbox") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { //创建表 CString str = _T("CREATE TABLE faxbox ( ") \ _T("BoxID AUTOINCREMENT(100, 1) , ") \ _T("BoxType VARCHAR(1) NULL DEFAULT 0, ") \ _T("FaxUpID INT NULL DEFAULT 0, ") \ _T("Title VARCHAR(64) NULL , ") \ _T("FileName1 VARCHAR(64) NULL , ") \ _T("FileName2 VARCHAR(64) NULL , ") \ _T("FileName3 VARCHAR(64) NULL , ") \ _T("FileName4 VARCHAR(64) NULL , ") \ _T("FileName5 VARCHAR(64) NULL , ") \ _T("Timer DateTime NULL , ") \ _T("CreateTime DateTime NULL DEFAULT now() )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iBoxID ON faxbox (BoxID);"); m_AdoRS.Open(str); str = _T("Create Index iBoxType ON faxbox (BoxType);"); m_AdoRS.Open(str); str = _T("Create Index iCreateTime ON faxbox (CreateTime);"); m_AdoRS.Open(str); str = _T("Create Index iTitle ON faxbox (Title);"); m_AdoRS.Open(str); //创建表 str = _T("CREATE TABLE faxitem ( ") \ _T("ItemID AUTOINCREMENT(100, 1) , ") \ _T("BoxID INT NULL DEFAULT 0, ") \ _T("GroupID VARCHAR(16) NULL , ") \ _T("Name VARCHAR(20) NULL , ") \ _T("FaxNum VARCHAR(16) NULL , ") \ _T("Status VARCHAR(1) NULL DEFAULT 0, ") \ _T("SendID INT NULL DEFAULT 0 )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iItemID ON faxitem (ItemID);"); m_AdoRS.Open(str); str = _T("Create Index iBoxID ON faxitem (BoxID);"); m_AdoRS.Open(str); str = _T("Create Index iName ON faxitem (Name);"); m_AdoRS.Open(str); str = _T("Create Index iStatus ON faxitem (Status);"); m_AdoRS.Open(str); str = _T("Create Index iSendID ON faxitem (SendID);"); m_AdoRS.Open(str); //创建表 str = _T("CREATE TABLE faxlog ( ") \ _T("SmsID AUTOINCREMENT(100, 1) , ") \ _T("SendID INT NULL DEFAULT 0, ") \ _T("FaxFileID INT NULL DEFAULT 0, ") \ _T("SendNum VARCHAR(25) NULL, ") \ _T("Recver VARCHAR(25) NULL , ") \ _T("RecvNum VARCHAR(25) NULL , ") \ _T("Title VARCHAR(64) NULL , ") \ _T("Status INT NULL DEFAULT 0, ") \ _T("StatusMsg VARCHAR(128) NULL , ") \ _T("times INT NULL DEFAULT 0, ") \ _T("SubTime DateTime NULL , ") \ _T("SendTime DateTime NULL , ") \ _T("RecvTime DateTime NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iSmsID ON faxlog (SmsID);"); m_AdoRS.Open(str); str = _T("Create Index iSendID ON faxlog (SendID);"); m_AdoRS.Open(str); str = _T("Create Index iRecvNum ON faxlog (RecvNum);"); m_AdoRS.Open(str); str = _T("Create Index iStatus ON faxlog (Status);"); m_AdoRS.Open(str); str = _T("Create Index iSubTime ON faxlog (SubTime);"); m_AdoRS.Open(str); //创建表 str = _T("CREATE TABLE faxsendtemp ( ") \ _T("ItemID AUTOINCREMENT(100, 1) , ") \ _T("Mobile VARCHAR(25) NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iItemID ON faxsendtemp (ItemID);"); m_AdoRS.Open(str); str = _T("Create Index iMobile ON faxsendtemp (Mobile);"); m_AdoRS.Open(str); } #endif #ifdef SUPPER_FUNC_MMS //彩信 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("mmsbox") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { //创建表 CString str = _T("CREATE TABLE mmsbox ( ") \ _T("BoxID AUTOINCREMENT(100, 1) , ") \ _T("BoxType VARCHAR(1) NULL DEFAULT 0, ") \ _T("MmsUpID INT NULL DEFAULT 0, ") \ _T("Title VARCHAR(250) NULL , ") \ _T("mmSize INT NULL DEFAULT 0, ") \ _T("mm image , ") \ _T("Timer DateTime NULL , ") \ _T("CreateTime DateTime NULL DEFAULT now() )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iBoxID ON mmsbox (BoxID);"); m_AdoRS.Open(str); str = _T("Create Index iBoxType ON mmsbox (BoxType);"); m_AdoRS.Open(str); str = _T("Create Index iCreateTime ON mmsbox (CreateTime);"); m_AdoRS.Open(str); str = _T("Create Index iTitle ON mmsbox (Title);"); m_AdoRS.Open(str); //创建表 str = _T("CREATE TABLE mmsitem ( ") \ _T("ItemID AUTOINCREMENT(100, 1) , ") \ _T("BoxID INT NULL DEFAULT 0, ") \ _T("GroupID VARCHAR(16) NULL , ") \ _T("Name VARCHAR(20) NULL , ") \ _T("mmsNum VARCHAR(16) NULL , ") \ _T("Status VARCHAR(1) NULL DEFAULT 0, ") \ _T("SendID INT NULL DEFAULT 0 )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iItemID ON mmsitem (ItemID);"); m_AdoRS.Open(str); str = _T("Create Index iBoxID ON mmsitem (BoxID);"); m_AdoRS.Open(str); str = _T("Create Index iName ON mmsitem (Name);"); m_AdoRS.Open(str); str = _T("Create Index iStatus ON mmsitem (Status);"); m_AdoRS.Open(str); str = _T("Create Index iSendID ON mmsitem (SendID);"); m_AdoRS.Open(str); //创建表 str = _T("CREATE TABLE mmslog ( ") \ _T("SmsID AUTOINCREMENT(100, 1) , ") \ _T("SendID INT NULL DEFAULT 0, ") \ _T("MmsFileID INT NULL DEFAULT 0, ") \ _T("SendNum VARCHAR(25) NULL, ") \ _T("Recver VARCHAR(25) NULL , ") \ _T("RecvNum VARCHAR(25) NULL , ") \ _T("Title VARCHAR(64) NULL , ") \ _T("mmSize INT NULL DEFAULT 0, ") \ _T("Status INT NULL DEFAULT 0, ") \ _T("StatusMsg VARCHAR(128) NULL , ") \ _T("times INT NULL DEFAULT 0, ") \ _T("SubTime DateTime NULL , ") \ _T("SendTime DateTime NULL , ") \ _T("RecvTime DateTime NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iSmsID ON mmslog (SmsID);"); m_AdoRS.Open(str); str = _T("Create Index iSendID ON mmslog (SendID);"); m_AdoRS.Open(str); str = _T("Create Index iRecvNum ON mmslog (RecvNum);"); m_AdoRS.Open(str); str = _T("Create Index iStatus ON mmslog (Status);"); m_AdoRS.Open(str); str = _T("Create Index iSubTime ON mmslog (SubTime);"); m_AdoRS.Open(str); //创建表 str = _T("CREATE TABLE mmssendtemp ( ") \ _T("ItemID AUTOINCREMENT(100, 1) , ") \ _T("Mobile VARCHAR(25) NULL )"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iItemID ON mmssendtemp (ItemID);"); m_AdoRS.Open(str); str = _T("Create Index iMobile ON mmssendtemp (Mobile);"); m_AdoRS.Open(str); } //为Users增加彩信字段 str1=_T("");str2=_T("");str3=_T("");str4=_T(""); if ( m_AdoRS.Open( _T("Users") , adCmdTable ) ) { long lFieldCount = m_AdoRS.GetFieldsCount(); for ( int i=0 ; iGetName()); #else _stprintf( szFieldName,W2A(field->GetName())); #endif if ( !_tcscmp(szFieldName , _T("MmsUsed") ) ) { break; } } if ( i>=lFieldCount ) //需要添加Addr字段 { str1=_T("ALTER TABLE Users ADD COLUMN MmsUsed int default 0"); str2=_T("ALTER TABLE Users ADD COLUMN MmsSendAll int default 0"); } } m_AdoRS.Close(); if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } if ( str2.GetLength()>0 ) { m_AdoRS.Open(str2); m_AdoRS.Close(); } #endif #ifdef SUPPER_UBOX //电话小管家功能 //彩信 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("uboxlog") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { //创建表 CString str = _T("CREATE TABLE uboxlog ( ") \ _T("UboxID AUTOINCREMENT(100, 1) , ") \ _T("Status INT NULL DEFAULT 0, ") \ _T("CallNum VARCHAR(32) NULL, ") \ _T("CallTime DateTime NULL DEFAULT now(), ") \ _T("KHAddID INT NULL DEFAULT 0, ") \ _T("YWYAddID INT NULL DEFAULT 0, ") \ _T("SendSms VARCHAR(250) NULL , ") \ _T("BZ VARCHAR(250) NULL)"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iUboxID ON uboxlog (UboxID);"); m_AdoRS.Open(str); str = _T("Create Index iStatus ON uboxlog (Status);"); m_AdoRS.Open(str); str = _T("Create Index iCallNum ON uboxlog (CallNum);"); m_AdoRS.Open(str); str = _T("Create Index iCallTime ON uboxlog (CallTime);"); m_AdoRS.Open(str); str = _T("Create Index iKHAddID ON uboxlog (KHAddID);"); m_AdoRS.Open(str); str = _T("Create Index iYWYAddID ON uboxlog (YWYAddID);"); m_AdoRS.Open(str); } #endif #ifdef MOBSET_VIPINT //增加会员积分功能 //为私人通讯录增加地址字段 str1=_T("");str2=_T("");str3=_T("");str4=_T(""); if ( m_AdoRS.Open( _T("paddress") , adCmdTable ) ) { long lFieldCount = m_AdoRS.GetFieldsCount(); for ( int i=0 ; iGetName()); #else _stprintf( szFieldName,W2A(field->GetName())); #endif if ( !_tcscmp(szFieldName , _T("VipInt") ) ) { break; } } m_AdoRS.Close(); if ( i>=lFieldCount ) //需要添加Addr字段 { str1=_T("ALTER TABLE paddress ADD COLUMN VipInt INT NULL DEFAULT 0"); str2=_T("Update paddress set VipInt=0"); if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } if ( str2.GetLength()>0 ) { m_AdoRS.Open(str2); m_AdoRS.Close(); } if ( str3.GetLength()>0 ) { m_AdoRS.Open(str3); m_AdoRS.Close(); } //创建积分表 str1 = _T("CREATE TABLE paddress_VipInt ( ") \ _T("VipIntID AUTOINCREMENT(100, 1) , ") \ _T("UserID INT NULL DEFAULT 0, ") \ _T("VipInt INT NULL DEFAULT 0, ") \ _T("BZ VARCHAR(64) NULL )"); m_AdoRS.Open(str1); //创建索引 str1 = _T("Create Index ipaddress_UserID ON paddress_VipInt (UserID);"); m_AdoRS.Open(str1); } } #endif #ifdef DGZD_VER //改变字段大小 str1=_T(""); str2=_T(""); if ( m_AdoRS.Open( _T("paddress") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Name")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<60 ) { str1 = _T("ALTER TABLE paddress ALTER COLUMN Name VARCHAR(60)"); } } m_AdoRS.Close(); } if ( str1.GetLength()>0 ) { m_AdoRS.Open(str1); m_AdoRS.Close(); } #endif //增加SmsBox字段 if ( m_AdoRS.Open( _T("smsbox") , adCmdTable ) ) { BOOL bField=false; try { FieldPtr field = m_AdoRS.GetField(_T("Task")); if ( field ) { bField=true; } } catch(...) { } if ( !bField ) { str1=_T("ALTER TABLE smsbox ADD COLUMN Task INT NULL DEFAULT 0"); m_AdoRS.Open(str1); str1=_T("ALTER TABLE smsbox ADD COLUMN LongSms INT NULL DEFAULT 0"); m_AdoRS.Open(str1); str1=_T("ALTER TABLE smsbox ADD COLUMN FD INT NULL DEFAULT 0"); m_AdoRS.Open(str1); } m_AdoRS.Close(); } //增加MmsBox字段 if ( m_AdoRS.Open( _T("mmsbox") , adCmdTable ) ) { BOOL bField=false; try { FieldPtr field = m_AdoRS.GetField(_T("Task")); if ( field ) { bField=true; } } catch(...) { } if ( !bField ) { str1=_T("ALTER TABLE mmsbox ADD COLUMN Task INT NULL DEFAULT 0"); m_AdoRS.Open(str1); str1=_T("ALTER TABLE mmsbox ADD COLUMN FD INT NULL DEFAULT 0"); m_AdoRS.Open(str1); } m_AdoRS.Close(); } //增加MmsItem字段 if ( m_AdoRS.Open( _T("mmsitem") , adCmdTable ) ) { BOOL bField=false; try { FieldPtr field = m_AdoRS.GetField(_T("NikeName")); if ( field ) { bField=true; } } catch(...) { } if ( !bField ) { str1=_T("ALTER TABLE mmsitem ADD COLUMN NikeName VARCHAR(20)"); m_AdoRS.Open(str1); str1=_T("ALTER TABLE mmsitem ADD COLUMN BZ VARCHAR(60)"); m_AdoRS.Open(str1); } m_AdoRS.Close(); } //常用短语升级字数 //改变字段大小 str1=_T(""); if ( m_AdoRS.Open( _T("smsdy") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Msg")); if ( field ) { field->get_DefinedSize(&lSize); if ( lSize<250 ) { m_AdoRS.Close(); //str1 = _T("ALTER TABLE calendar ALTER COLUMN Msg VARCHAR(250)"); str1 = _T("ALTER TABLE smsdy ALTER COLUMN Msg memo"); m_AdoRS.Open(str1); m_AdoRS.Close(); str1 = _T("ALTER TABLE smsdytype ALTER COLUMN Title VARCHAR(128)"); m_AdoRS.Open(str1); m_AdoRS.Close(); } } } #ifdef SUPPER_FUNC_QX //QQ通讯 rset = m_adoConnection.OpenSchema(adSchemaColumns); bFindTable=false; rset.MoveFirst(); while (!rset.IsEOF()) { CString strValue; rset.GetCollect( _T("TABLE_NAME") , strValue ); if ( strValue == _T("QXLog") ) { bFindTable = true; break; } rset.MoveNext(); } if (!bFindTable) { CString str; //创建表 str = _T("CREATE TABLE QXLog ( ") \ _T("QXLogID AUTOINCREMENT(100, 1) , ") \ _T("Rtx_GroupTaskID INT NULL DEFAULT 0, ") \ _T("Sender VARCHAR(25) NULL, ") \ _T("Rtx_GroupID int NULL, ") \ _T("GroupID VARCHAR(25) NULL, ") \ _T("GroupName VARCHAR(65) NULL , ") \ _T("Status int NULL, ") \ _T("Timer DateTime NULL , ") \ _T("MsgType int NULL, ") \ _T("MsgDataType int NULL, ") \ _T("MobileAll int NULL, ") \ _T("MobileSent int NULL, ") \ _T("SubTime DateTime NULL , ") \ _T("MsgData memo NULL ,") \ _T("Reader int NULL DEFAULT 0)"); m_AdoRS.Open(str); //创建索引 str = _T("Create Index iQXLogID ON QXLog (QXLogID);"); m_AdoRS.Open(str); str = _T("Create Index iRtx_GroupTaskID ON QXLog (Rtx_GroupTaskID);"); m_AdoRS.Open(str); str = _T("Create Index iStatus ON QXLog (Status);"); m_AdoRS.Open(str); str = _T("Create Index iSubTime ON QXLog (SubTime);"); m_AdoRS.Open(str); } //增加字段 if ( m_AdoRS.Open( _T("QXLog") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Reader")); if ( !field ) { str1 = _T("ALTER TABLE QXLog ADD Reader int NULL DEFAULT 0"); m_AdoRS.Open(str1); m_AdoRS.Close(); } } //增加字段 if ( m_AdoRS.Open( _T("QXLog") , adCmdTable ) ) { long lSize=0; FieldPtr field = m_AdoRS.GetField(_T("Mobile")); if ( !field ) { str1 = _T("ALTER TABLE QXLog ADD Mobile VARCHAR(25) NULL"); m_AdoRS.Open(str1); m_AdoRS.Close(); } } #endif return true; } void CMainFrame::OnUpdateHelp2(CCmdUI* pCmdUI) { /* #ifdef MOBSET_OEM #ifndef MOBSET_OEM_SHXH pCmdUI->Enable(false); #endif #endif */ } void CMainFrame::OnSetupSzgj() { DLG_Setup_SZGJ dlg(this); dlg.SetParam( m_Setup ); if ( dlg.DoModal() == IDOK ) { m_Setup = dlg.GetParam(); SaveSetup(); } } void CMainFrame::OnNsts() { GetCenterTime(); //在设置生日之前,先同步一下时间,防止出错 DLG_FindNS dlg(this,0); //查找年审 dlg.DoModal(); } long CMainFrame::FindNS(long lMon, long lMon2, CReportCtrl *pList) { long lSRCount = 0; long lCount = 0; if ( pList ) lCount = pList->GetItemCount(); long lDayBegin=lMon; long lDayEnd =lMon2; COleDateTime t; CString strTemp; TCHAR szCarNum[64]; m_AdoRS.Open( _T("caddress"),adCmdTable); m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { memset(szCarNum,0,sizeof(szCarNum)); m_AdoRS.GetCollect(_T("CarNum"),szCarNum); long lNS = szCarNum[7]-'0'; if ( lNS == 0 ) lNS = 10; if ( lNS == 1 ) lNS = 11; if ( lNS == 2 ) lNS = 12; if ( lNS >= lDayBegin && lNS <= lDayEnd ) { CString strMobile; m_AdoRS.GetCollect( _T("Mobile") ,strMobile ); if ( pList && strMobile.GetLength()>=10 ) { lSRCount ++; m_AdoRS.GetCollect( _T("LXR") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("CarNum") ,strTemp ); pList->SetItemText(lCount,1,strTemp); pList->SetItemText(lCount,2,strMobile); strTemp.Format( _T("%02d.%02d") , lNS , 1 ); pList->SetItemText(lCount,3,strTemp); m_AdoRS.GetCollect( _T("BZ") ,strTemp ); pList->SetItemText(lCount,4,strTemp); lCount ++; } m_AdoRS.GetCollect( _T("Mobile2") ,strMobile ); if ( pList && strMobile.GetLength()>=10 ) { lSRCount ++; m_AdoRS.GetCollect( _T("LXR2") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("CarNum") ,strTemp ); pList->SetItemText(lCount,1,strTemp); pList->SetItemText(lCount,2,strMobile); strTemp.Format( _T("%02d.%02d") , lNS , 1 ); pList->SetItemText(lCount,3,strTemp); m_AdoRS.GetCollect( _T("BZ") ,strTemp ); pList->SetItemText(lCount,4,strTemp); lCount ++; } } m_AdoRS.MoveNext(); } m_AdoRS.Close(); return lCount; } void CMainFrame::OnSize(UINT nType, int cx, int cy) { CFrameWnd::OnSize(nType, cx, cy); if ( nType == 1 ) //为最小化 { //将它缩到右下角 //ShowWindow(SW_HIDE); } } LONG_PTR CMainFrame::OnShellIconMess(WPARAM wParam, LPARAM lParam) { switch(lParam) //检查信息类型 { case WM_LBUTTONUP: //双击鼠标左键 case WM_LBUTTONDBLCLK: //双击鼠标左键 OnShellIcon_Show2(true); break; case WM_RBUTTONDOWN: //击了鼠标右键 { CMenu menu; menu.CreatePopupMenu(); if ( m_bLogin ) { menu.AppendMenu(MF_STRING , CORPSMS_ICON_R_SHOW , _T(" 显示主界面(&A) ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , CORPSMS_ICON_R_SMS , _T(" 发送短信(&S) ") ); menu.AppendMenu(MF_STRING , CORPSMS_ICON_R_MMS , _T(" 发送彩信(&M) ") ); } else { menu.AppendMenu(MF_STRING , CORPSMS_ICON_R_SHOW , _T(" 显示登录界面(&A) ") ); //menu.AppendMenu(MF_SEPARATOR ); //menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , CORPSMS_ICON_R_SMS , _T(" 发送短信(&S) ") ); //menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , CORPSMS_ICON_R_MMS , _T(" 发送彩信(&M) ") ); } menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , CORPSMS_ICON_R_QUIT, _T(" 退出(&X) ") ); //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } break; } return 1; } void CMainFrame::YWDB(BOOL bYW) { //删除临时数据库 CString str; m_AdoRS.Open(_T("delete from sendtemp2") ); #ifdef SUPPER_FUNC_FAX m_AdoRS.Open(_T("delete from faxsendtemp") ); #endif #ifdef SUPPER_FUNC_MMS m_AdoRS.Open(_T("delete from mmssendtemp") ); #endif if ( !bYW && m_Setup.lJG <= 0 ) return ; COleDateTime t = m_Setup.tYWLast; if (!bYW && t.GetStatus() != COleDateTime::valid ) return ; //到日期了 if ( bYW || COleDateTime::GetCurrentTime()-t >= COleDateTimeSpan(m_Setup.lJG,0,0,0) ) { //计算日期 COleDateTimeSpan tTemp(m_Setup.lDelUpDate-1,0,0,0); COleDateTime tDel = COleDateTime::GetCurrentTime()-tTemp; CString strTime; strTime.Format( _T("#%04d-%02d-%02d#"),tDel.GetYear(),tDel.GetMonth(),tDel.GetDay()); CString str; if ( m_Setup.bWF ) { str.Format( _T("select * from smsbox where BoxType='0' and CreateTime<%s"),strTime) ; if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 ) { m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { long lBoxID = 0; m_AdoRS.GetCollect( _T("BoxID") , lBoxID ); str.Format( _T("delete from smsitem where BoxID=%d") , lBoxID );//再删除BoxItem m_AdoRS2.Open( str ); m_AdoRS.MoveNext(); } } str.Format(_T("delete from smsbox where BoxType='0' and CreateTime<%s"),strTime) ; m_AdoRS.Open( str ); m_AdoRS.Close(); } if ( m_Setup.bYF ) { str.Format( _T("select * from smsbox where BoxType='1' and CreateTime<%s"),strTime) ; if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 ) { m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { long lBoxID = 0; m_AdoRS.GetCollect( _T("BoxID") , lBoxID ); str.Format( _T("delete from smsitem where BoxID=%d") , lBoxID );//再删除BoxItem m_AdoRS2.Open( str ); m_AdoRS.MoveNext(); } } str.Format(_T("delete from smsbox where BoxType='1' and CreateTime<%s"),strTime); m_AdoRS.Open( str ); m_AdoRS.Close(); } if ( m_Setup.bJS ) { str.Format(_T("delete from smsRecv where RecvTime<%s"),strTime) ; m_AdoRS.Open( str ); m_AdoRS.Close(); } if ( m_Setup.bLog ) { str.Format(_T("delete from smslog where SubTime<%s"),strTime) ; m_AdoRS.Open( str ); m_AdoRS.Close(); } m_Setup.bCompDB = true; //下次需要压缩数据库 GetLocalTime(&m_Setup.tYWLast); SaveSetup(); } } void CMainFrame::GetUpdateMsg(BOOL bManual) { CString strAgentName; #if defined(MOBSET_OEM) && defined(MOBSET_OEM_AGENTNAME) //Oem版本不支持自动升级 strAgentName = MOBSET_OEM_AGENTNAME; #endif #ifdef MOBSET_CARD_VER if ( strAgentName.GetLength()>0 ) strAgentName = strAgentName+_T("_CARD"); else strAgentName = _T("CARD"); #endif #ifdef CAR_VER if ( strAgentName.GetLength()>0 ) strAgentName = strAgentName+_T("_CAR"); else strAgentName = _T("CAR"); #endif #ifdef STOCK_VER if ( strAgentName.GetLength()>0 ) strAgentName = strAgentName+_T("_STOCK"); else strAgentName = _T("STOCK"); #endif #ifdef SUPPER_IM_MAS if ( strAgentName.GetLength()>0 ) strAgentName = strAgentName+_T("_MAS"); else strAgentName = _T("MAS"); #endif #ifdef FSLT_VER if ( strAgentName.GetLength()>0 ) strAgentName = strAgentName+_T("_FSLT"); else strAgentName = _T("FSLT"); #endif #ifdef BGY_VER if (strAgentName.GetLength()>0) strAgentName = strAgentName + _T("_BGY"); else strAgentName = _T("BGY"); #endif /* #ifdef SUPPER_UBOX if ( strAgentName.GetLength()>0 ) strAgentName = strAgentName+_T("_UBOX"); else strAgentName = _T("UBOX"); #endif */ #ifdef DGZD_VER if ( strAgentName.GetLength()>0 ) strAgentName = strAgentName+_T("_DGZD"); else strAgentName = _T("DGZD"); #endif if ( bManual ) strAgentName+=CString(_T("MM")); m_bCheckUpdateManual = bManual; if ( bManual || m_Setup.bAutoUpdate ) { REQ_Update_See2 * pSee = new REQ_Update_See2; pSee->lCorpID = m_lCorpID; pSee->lUserID = m_lUserID; _tcscpy(pSee->szAgentName , strAgentName ); SendFrame( SMSFUNC_UPDATE_SEE2 , (BYTE*)pSee , sizeof(REQ_Update_See2) ); //发送取资料的请求 } } CString CMainFrame::GetSoftSName() { CString strName = _T("短信易"); #ifdef MOBSET_DXT strName = _T("短信通"); #endif #ifdef MOBSET_OEM_XASW strName = _T("西安圣威养生馆专用短信服务系统"); #endif #ifdef MOBSET_OEM_SUNPO strName = _T("善普E信通"); #endif #ifdef MOBSET_OEM_MANI strName = _T("麻呢网络信天游"); #endif #ifdef MOBSET_OEM_NJYS strName = _T("企信通"); #endif #ifdef MOBSET_OEM_LJJ strName = _T("李锦记企业短信"); #endif #ifdef MOBSET_OEM_SNLD strName = _T("短信易(仙妮蕾德专版)"); #endif #ifdef MOBSET_OEM_LONGZX strName = _T("龙之行短信王"); #endif #ifdef MOBSET_OEM_WFCTT strName = _T("短信呼叫中心"); #endif #ifdef MOBSET_OEM_KMSR strName = _T("思锐短信通"); #endif #ifdef MOBSET_OEM_JMHL strName = _T("汇联短信通"); #endif #ifdef MOBSET_OEM_AUYOU strName = _T("遨游短信通"); #endif #ifdef MOBSET_OEM_MDT strName = _T("名店通"); #endif #ifdef MOBSET_OEM_SZMDT strName = _T("“幻通”移动商务企业服务平台"); #endif #ifdef MOBSET_OEM_SHQX strName = _T("短信通"); #endif #ifdef MOBSET_OEM_1798 strName = _T("1798短信通"); #endif #ifdef MOBSET_OEM_NJLH strName = _T("企业短信e"); #endif #ifdef MOBSET_OEM_JSXAT strName = _T("短信应用平台"); #endif #ifdef MOBSET_OEM_NDBD strName = _T("短信平台"); #endif #ifdef MOBSET_OEM_TYF strName = _T("同一发短信平台"); #endif #ifdef MOBSET_OEM_TYF_LZT strName = _T("留住通"); #endif #ifdef MOBSET_OEM_TYF_ZXT strName = _T("直效通"); #endif #ifdef MOBSET_OEM_TYF_FG strName = _T("飞鸽短信"); #endif #ifdef MOBSET_OEM_TYF_LLL strName = _T("飞鸽短信"); #endif #ifdef MOBSET_OEM_HYBL strName = _T("短信通"); #endif #ifdef MOBSET_OEM_SDRW strName = _T("顺德人短信通"); #endif #ifdef MOBSET_OEM_HKLC strName = _T("短信专家 V4.08"); #endif #ifdef MOBSET_OEM_ZYTX #ifdef SMSCENTER_ADC strName =_T("ADC企信通B11.10"); #else strName = _T("IE短信通1208S"); #endif #endif #ifdef MOBSET_OEM_GZWY strName = _T("万容短信易"); #endif #ifdef MOBSET_OEM_TCKJ strName = _T("信易通"); #endif #ifdef MOBSET_OEM_CQZX strName = _T("企业通"); #endif #ifdef MOBSET_OEM_WHPGY strName = _T("蒲公英企业短信通"); #endif #ifdef MOBSET_OEM_FSRRX strName = _T("短信通"); #endif #ifdef MOBSET_OEM_FSFB strName = _T("商信通"); #endif #ifdef MOBSET_OEM_JMSB strName = _T("思博短信通"); #endif #ifdef MOBSET_OEM_BJZX strName = _T("知新短信"); #endif #ifdef MOBSET_OEM_NJJML strName = _T("PCTroop 易通精灵"); #endif #ifdef MOBSET_OEM_ZSWE strName = _T("WELL短信通"); #endif #ifdef MOBSET_OEM_AHMPDK strName = _T("快信通"); #endif #ifdef MOBSET_OEM_NJBG strName = _T("短信点点通"); #endif #ifdef MOBSET_OEM_TLQP strName = _T("天龙短信"); #endif #ifdef MOBSET_OEM_NJJT strName = _T("短信平台"); #endif #ifdef MOBSET_OEM_JHXXG strName = _T("集团短信VIP版"); #endif #ifdef MOBSET_OEM_SGLX strName = _T("凌迅通"); #endif #ifdef MOBSET_OEM_SWHX strName = _T("短信易"); #endif #ifdef MOBSET_OEM_AHXL strName = _T("捷信通"); #endif #ifdef MOBSET_OEM_SZGF strName = _T("深贸通"); #endif #ifdef MOBSET_OEM_GZQT strName = _T("乾腾网络短信"); #endif #ifdef MOBSET_OEM_HZDZ strName = _T("短信通"); #endif #ifdef MOBSET_OEM_WAZH strName = _T("纵横企业短信平台"); #endif #ifdef MOBSET_OEM_GZTM strName = _T("天码短信易"); #endif #ifdef MOBSET_OEM_NBBX strName = _T("博贤短信商务助手"); #endif #ifdef MOBSET_OEM_DGZR strName = _T("短信通"); #endif #ifdef MOBSET_OEM_SZJS strName = _T("盛世互联企业短信通"); #endif #ifdef MOBSET_OEM_LSZH strName = _T("中禾短信"); #endif #ifdef MOBSET_OEM_SYTC strName = _T("信易达"); #endif #ifdef MOBSET_OEM_CSXN #ifdef MOBSET_DXT strName = _T("365短信通"); #else strName = _T("易信商务通"); #endif #endif #ifdef MOBSET_OEM_NFTC strName = _T("南方短信"); #endif #ifdef MOBSET_OEM_CDWL strName = _T("爱可聆短信商务通"); #endif #ifdef MOBSET_OEM_XMZX strName = _T("零距离短信邮局"); #endif #ifdef MOBSET_OEM_WZTX strName = _T("天翔短信平台"); #endif #ifdef MOBSET_OEM_WHLW strName = _T("短信易"); #endif #ifdef MOBSET_OEM_HNCX strName = _T("晨曦短信通"); #endif #ifdef MOBSET_OEM_CQBX strName = _T("必讯企业短信"); #endif #ifdef MOBSET_OEM_BJBM strName = _T("环球通短信平台集团版"); #endif #ifdef MOBSET_OEM_NJTD strName = _T("德托集团短信"); #endif #ifdef MOBSET_OEM_SJZZR strName = _T("速易通"); #endif #ifdef MOBSET_OEM_GZTGB strName = _T("短信通"); #endif #ifdef MOBSET_OEM_NJPB strName = _T("庞贝短信易"); #endif #ifdef MOBSET_OEM_GSZWT strName = _T("工商政务通"); #endif #ifdef MOBSET_OEM_ZSSWT strName = _T("税务通"); #endif #ifdef MOBSET_OEM_ZSZWT strName = _T("政务通"); #endif #ifdef MOBSET_OEM_YKHX strName = _T("环讯短信通"); #endif #ifdef MOBSET_OEM_CQYC strName = _T("云短信"); #endif #ifdef MOBSET_OEM_FSYX strName = _T("一讯通"); #endif #ifdef MOBSET_OEM_BJXW strName = _T("中华医药招商网短信平台"); #endif #ifdef MOBSET_OEM_NJWE strName = _T("企信通"); #endif #ifdef MOBSET_OEM_DGLH strName = _T("东莞短信"); #endif #ifdef MOBSET_OEM_DLXS strName = _T("先搜企信通"); #endif #ifdef MOBSET_OEM_XADFSJ strName = _T("信易通"); #endif #ifdef MOBSET_OEM_CSRC strName = _T("长沙高新企业短信运营终端"); #endif #ifdef MOBSET_OEM_SDHL strName = _T("企信通"); #endif #ifdef MOBSET_OEM_QZXXG strName = _T("易网短信通"); #endif #ifdef MOBSET_OEM_DGCW strName = _T("成功我信"); #endif #ifdef MOBSET_OEM_SZSJHL strName = _T("航信通"); #endif #ifdef MOBSET_OEM_WHDB strName = _T("博信通"); #endif #ifdef MOBSET_OEM_JMYD strName = _T("短信易"); #endif #ifdef MOBSET_OEM_ZHYX strName = _T("移信通"); #endif #ifdef MOBSET_OEM_NJHW strName = _T("商讯通"); #endif #ifdef MOBSET_OEM_LZBX strName = _T("商讯通"); #endif #ifdef MOBSET_OEM_NXBX #ifdef SMSCENTER_ADC strName = _T("ADC杞美满意通"); #else strName = _T("杞美满意通"); #endif #endif #ifdef MOBSET_OEM_BJMCT strName = _T("Mytong短信易"); #endif #ifdef MOBSET_OEM_SZYF #ifdef SMSCENTER_ADC strName = _T("ADC飞信通"); #else strName = _T("短信快车"); #endif #endif #ifdef MOBSET_OEM_WHFS strName = _T("短信快车"); #endif #ifdef MOBSET_OEM_TYJY strName = _T("短信天使"); #endif #ifdef MOBSET_OEM_SHWZ strName = _T("短信e路通"); #endif #ifdef MOBSET_OEM_AHXT strName = _T("短信办公助理"); #endif #ifdef MOBSET_OEM_GZHK strName = _T("短信通"); #endif #ifdef MOBSET_OEM_SZZL strName = _T("真蓝短信通"); #endif #ifdef MOBSET_OEM_SZYY strName = _T("集团短信"); #endif #ifdef MOBSET_OEM_YCZW strName = _T("点信通"); #endif #ifdef MOBSET_OEM_SZBC strName = _T("百辰短信"); #endif #ifdef MOBSET_OEM_YHWL strName = _T("亿海短信通"); #endif #ifdef MOBSET_OEM_NJFB strName = _T("孚邦飞信"); #endif #ifdef MOBSET_OEM_GDLL strName = _T("广东蓝凌科技有限公司"); #endif #ifdef MOBSET_OEM_HEBXLT strName = _T("信立通"); #endif #ifdef MOBSET_OEM_SZJXM strName = _T("盈客通"); #endif #ifdef MOBSET_OEM_SHYY strName = _T("易迅通"); #endif #ifdef MOBSET_OEM_DGKST strName = _T("短信通"); #endif #ifdef MOBSET_OEM_SZSDW strName = _T("在线通"); #endif #ifdef MOBSET_OEM_SZUU strName = _T("优信通"); #endif #ifdef MOBSET_OEM_GZJX strName = _T("TraceAnyWhere SMS"); #endif #ifdef MOBSET_OEM_BJJSY strName = _T("一键通"); #endif #ifdef MOBSET_OEM_SALN strName = _T("RTX短信"); #endif #ifdef MOBSET_OEM_FSKJT strName = _T("短信王"); #endif #ifdef MOBSET_OEM_SYBY strName = _T("智能商务通"); #endif #ifdef MOBSET_OEM_HZDS strName = _T("鼎盛企信通"); #endif #ifdef MOBSET_OEM_GZJZ strName = _T("君智短信助手"); #endif #ifdef MOBSET_OEM_TYHSY strName = _T("超音速"); #endif #ifdef MOBSET_OEM_CSJX strName = _T("讯灵通短信系统"); #endif #ifdef MOBSET_OEM_GZCYDN strName = _T("短信易"); #endif #ifdef MOBSET_OEM_YWKC strName = _T("短信通"); #endif #ifdef MOBSET_OEM_WLMQYMK strName = _T("即时通"); #endif #ifdef MOBSET_OEM_CSCL strName = _T("短信易"); #endif #ifdef MOBSET_OEM_GZYZ strName = _T("用泽通短信系统"); #endif #ifdef MOBSET_OEM_PXAYZX strName = _T("短信发"); #endif #ifdef MOBSET_OEM_DLYQL strName = _T("即时通"); #endif #ifdef MOBSET_OEM_GZSY strName = _T("企信通"); #endif #ifdef MOBSET_OEM_KMWH strName = _T("昆明威豪短信通"); #endif #ifdef MOBSET_OEM_DGJN strName = _T("东信易"); #endif #ifdef MOBSET_OEM_SZZS strName = _T("IP5G企信通"); #endif #ifdef MOBSET_OEM_LSLT strName = _T("短信易"); #endif #ifdef MOBSET_OEM_CQZB #ifdef SMSCENTER_ADC strName = _T("ADC 兆博通"); #else strName = _T("兆博通"); #endif #endif #ifdef MOBSET_OEM_SZLR strName = _T("一枫企业短信"); #endif #ifdef MOBSET_OEM_KMRX strName = _T("企讯通"); #endif #ifdef MOBSET_OEM_HFXBM strName = _T("新柏美短信易"); #endif #ifdef MOBSET_OEM_KMJR strName = _T("企信通"); #endif #ifdef MOBSET_OEM_HEBWLY strName = _T("信易通"); #endif #ifdef MOBSET_OEM_GZTJ strName = _T("短信易"); #endif #ifdef MOBSET_OEM_WHBS strName = _T("快易通"); #endif #ifdef MOBSET_OEM_SZCGWX strName = _T("彩告通"); #endif #ifdef MOBSET_OEM_YTLE strName = _T("行业通"); #endif #ifdef MOBSET_OEM_FSSL strName = _T("商信通"); #endif #ifdef MOBSET_OEM_GSYLX strName = _T("易信通"); #endif #ifdef MOBSET_OEM_GZXY strName = _T("讯联“一指通” 短信系统"); #endif #ifdef MOBSET_OEM_DGSM strName = _T("斯玛短信易"); #endif #ifdef MOBSET_OEM_GZRZX strName = _T("客服通"); #endif #ifdef MOBSET_OEM_ZHOK strName = _T("E点通集团短信系统企业版"); #endif #ifdef MOBSET_OEM_GZWYZS strName = _T("维盈短信通"); #endif #ifdef MOBSET_OEM_ZHST strName = _T("网信通企业版"); #endif #ifdef MOBSET_OEM_ZZKJ strName = _T("致泽即时通"); #endif #ifdef MOBSET_OEM_DXKC strName = _T("短信快车"); #endif #ifdef MOBSET_OEM_DXQXT strName = _T("企信通"); #endif #ifdef MOBSET_OEM_GZJT strName = _T("信易达"); #endif #ifdef MOBSET_OEM_AHLY strName = _T("狼烟短信通"); #endif #ifdef MOBSET_OEM_ZJLT strName = _T("短信易"); #endif #ifdef MOBSET_OEM_SHSS strName = _T("梦信通"); #endif #ifdef MOBSET_OEM_BFCB strName = _T("八方企信通"); #endif #ifdef MOBSET_OEM_ZQLT strName = _T("集团短信通"); #endif #ifdef MOBSET_OEM_CCKD strName = _T("长宽百宝箱"); #endif #ifdef MOBSET_OEM_SZSHJ strName = _T("MixSMS"); #endif #ifdef MOBSET_OEM_NJZZD strName = _T("来电宝"); #endif #ifdef MOBSET_OEM_CQRT strName = _T("短信通"); #endif #ifdef MOBSET_OEM_HZYJD strName = _T("短信宝"); #endif #ifdef MOBSET_OEM_GZHH strName = _T("短信通"); #endif #ifdef MOBSET_OEM_GZNX strName = _T("短信易"); #endif #ifdef MOBSET_OEM_HYLT strName = _T("联通企业短信易"); #endif #ifdef MOBSET_OEM_SZZBW strName = _T("智百威企信通"); #endif #ifdef MOBSET_OEM_TJTH strName = _T("天合企信通"); #endif #ifdef MOBSET_OEM_NJTDJSJ strName = _T("天信通"); #endif #ifdef MOBSET_OEM_LZYLX strName = _T("易短信"); #endif #ifdef MOBSET_OEM_MMDX strName = _T("企信通"); #endif #ifdef MOBSET_OEM_GDDX strName = _T("企信通"); #endif #ifdef MOBSET_OEM_GZXY strName = _T("行运短信 二代"); #endif #ifdef MOBSET_OEM_LHSK strName = _T("贵州六和短信通"); #endif #ifdef MOBSET_OEM_ZYWD strName = _T("企信通"); #endif #ifdef MOBSET_OEM_GZJYKX strName = _T("短信系统"); #endif #ifdef MOBSET_OEM_ZHJB strName = _T("短信通"); #endif #ifdef MOBSET_OEM_PYAJJZ strName = _T("爱佳家政"); #endif #ifdef MOBSET_OEM_TJJJ strName = _T("天翼短信"); #endif #ifdef MOBSET_OEM_LWXX strName = _T("短信派"); #endif #ifdef MOBSET_OEM_NJYC strName = _T("易车短信通"); #endif #ifdef MOBSET_OEM_SHHWT strName = _T("行业通"); #endif #ifdef MOBSET_OEM_XMKJ strName = _T("互信台"); #endif #ifdef MOBSET_OEM_GZHFXX strName = _T("短信通"); #endif #ifdef MOBSET_OEM_DYDFKJ strName = _T("短信通 D2"); #endif #ifdef MOBSET_OEM_QXKD strName = _T("中迈企讯快递"); #endif #ifdef MOBSET_OEM_DGKF strName = _T("信易通"); #endif #ifdef MOBSET_OEM_CRM strName = _T("CRM助手"); #endif #ifdef MOBSET_OEM_GDYK strName = _T("凤凰佳影短信平台"); #endif #ifdef MOBSET_OEM_SZMY strName = _T("明源地产云客短信平台"); #endif #ifdef MOBSET_OEM_SHCD strName = _T("CD短信通"); #endif #ifdef MOBSET_OEM_TJYS strName = _T("优斯企信通"); #endif #ifdef MOBSET_OEM_YLCQ strName = _T("粤亮信息"); #endif #ifdef MOBSET_OEM_SZTJ strName = _T("云信通"); #endif #ifdef MOBSET_OEM_GZXDL strName = _T("企信通"); #endif #ifdef MOBSET_OEM_GZBYK strName = _T("铂铱柯短信系统"); #endif #ifdef MOBSET_OEM_SGYD strName = _T("韶关移动短信系统"); #endif #ifdef MOBSET_OEM_HBSYL strName = _T("书信通"); #endif if ( m_strMasTitle.GetLength()>0 ) { strName = m_strMasTitle; } return strName; } long CMainFrame::GetMaxSendMsgLen() { if ( m_Ans_Login2.lMaxSmsLen>= 30 && m_Ans_Login2.lMaxSmsLen<=MSG_MAXSENDLEN ) return m_Ans_Login2.lMaxSmsLen; return MSG_MAXSENDLEN; } long CMainFrame::GetQJCM(CString &strCM) { strCM = m_Ans_Login2.szQJCM; //暂时取消用户自设签名功能 #ifdef UNICODE if ( m_Ans_Login2.bCMFirstChange ) { switch ( m_Setup.lCMType ) //用户设置的强制签名类型 { case 1: return true; break; case 2: return false; break; } } #endif return m_Ans_Login2.bCMFirst; } void CMainFrame::OnBxts() { GetCenterTime(); //在设置生日之前,先同步一下时间,防止出错 DLG_FindNS dlg(this,1); //查找保险到期 dlg.DoModal(); } long CMainFrame::FindBX(long lMon, long lMon2, long lDay, CReportCtrl *pList) { long lSRCount = 0; long lCount = 0; if ( pList ) lCount = pList->GetItemCount(); long lDayBegin=lMon; long lDayEnd =lMon2; COleDateTime t; COleDateTime tBXDate; CString strTemp; TCHAR szCarNum[64]; m_AdoRS.Open( _T("caddress"),adCmdTable); m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { memset(szCarNum,0,sizeof(szCarNum)); m_AdoRS.GetCollect(_T("BXDate"),tBXDate); if ( tBXDate.GetStatus()==COleDateTime::valid ) { if ( tBXDate.GetMonth() >= lDayBegin && tBXDate.GetMonth() <= lDayEnd ) { t = tBXDate - COleDateTimeSpan(lDay,0,0,0); CString strMobile; m_AdoRS.GetCollect( _T("Mobile") ,strMobile ); if ( pList && strMobile.GetLength()>=10 ) { lSRCount ++; m_AdoRS.GetCollect( _T("LXR") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("CarNum") ,strTemp ); pList->SetItemText(lCount,1,strTemp); pList->SetItemText(lCount,2,strMobile); strTemp.Format( _T("%02d.%02d") , t.GetMonth() , t.GetDay() ); pList->SetItemText(lCount,3,strTemp); //m_AdoRS.GetCollect( _T("BZ" ,strTemp ); strTemp.Format( _T("%02d.%02d") , tBXDate.GetMonth() , tBXDate.GetDay() ); pList->SetItemText(lCount,4,strTemp); lCount ++; } m_AdoRS.GetCollect( _T("Mobile2") ,strMobile ); if ( pList && strMobile.GetLength()>=10 ) { lSRCount ++; m_AdoRS.GetCollect( _T("LXR2") ,strTemp ); pList->InsertItem(lCount,strTemp,0); m_AdoRS.GetCollect( _T("CarNum") ,strTemp ); pList->SetItemText(lCount,1,strTemp); pList->SetItemText(lCount,2,strMobile); strTemp.Format( _T("%02d.%02d") , t.GetMonth() , t.GetDay() ); pList->SetItemText(lCount,3,strTemp); //m_AdoRS.GetCollect( _T("BZ") ,strTemp ); strTemp.Format( _T("%02d.%02d") , tBXDate.GetMonth() , tBXDate.GetDay() ); pList->SetItemText(lCount,4,strTemp); lCount ++; } } } m_AdoRS.MoveNext(); } m_AdoRS.Close(); return lCount; } long CMainFrame::GetMaxAddressCount() { if ( m_Ans_Login2.lAddressCount>=0) return m_Ans_Login2.lAddressCount; return DEFAULT_ADDRESS_COUNT; } BOOL CMainFrame::isSupportPhs() { TCHAR szTemp[32]={0}; _stprintf(szTemp ,_T("%d"),m_Ans_Login2.lCorpSmsSendType); _tcscat(szTemp , _T("00000000") ); if ( szTemp[2] == '2' ) //等于2,不支持 return false; return true; } void CMainFrame::AutoBak_SendLog() { USES_CONVERSION; #define MAX_SMSLOG_BAK_COUNT 15000 //最多的发送日志记录数 #define MAX_SMSLOG_BAK_COUNT2 50000 //最多的发送日志记录数 CString strTemp; strTemp.Format( _T("select * from SmsLog order by subtime desc") ); m_AdoRS.Open( strTemp ); long lCount = m_AdoRS.GetRecordCount(); if (lCount> MAX_SMSLOG_BAK_COUNT ) //大于10000条的时候需要自动备份 { CString str; int iRet = IDYES; if ( lCountszUser); _tcscat(szPath,szBakPath); ::CreateDirectory(szPath,NULL); //不管有理没理,先创建再说 _stprintf(szNewDB , _T("%s\\SmsLog_自动备份%04d%02d%02d %02d_%02d.bak"),szPath,tNow.GetYear(),tNow.GetMonth(),tNow.GetDay(),tNow.GetHour(),tNow.GetMinute()); if ( !CopyFile( szOldDB , szNewDB , false ) ) //copy文件失败 { MessageBox( _T("系统文件丢失1,请重新安装!") , _T("致命错误") , MB_ICONWARNING ); return ; } //打开新的备份数据库 CAdoConnection bakadoConnection; CAdoRecordSet bakAdoRS; //解密码 char szPasswd[64]={0};strcpy(szPasswd , ACCESS_PASSWD ); char szKey[64]={0};strcpy( szKey , ACCESS_KEY ); char szNew2[64]={0};long lOut=sizeof(szNew2); TCHAR szNew[64]={0}; CDes des; des.Decrypt( szPasswd , strlen(szPasswd),szNew2,lOut,szKey,8); #ifdef UNICODE _tcscpy(szNew , A2W(szNew2)); #else _tcscpy(szNew , szNew2); #endif if ( !bakadoConnection.ConnectAccess(szNewDB,szNew ) ) //连接数据库错误,需要重新创建 { MessageBox( _T("系统文件丢失2,请重新安装!") , _T("致命错误") , MB_ICONWARNING ); return; } bakAdoRS.SetAdoConnection( &bakadoConnection ); //设置连接 if ( !bakAdoRS.Open(_T("smslog"),adCmdTable) ) { MessageBox( _T("系统文件丢失3,请重新安装!") , _T("致命错误") , MB_ICONWARNING ); return; } CAdoSmsLog adoSms; m_AdoRS.RecordBinding( adoSms ); m_AdoRS.Move(MAX_SMSLOG_BAK_COUNT/2); long lCount = m_AdoRS.GetRecordCount()-MAX_SMSLOG_BAK_COUNT/2; long *lDel = new long[lCount+10]; int lDelCount=0; while ( !m_AdoRS.IsEOF() ) { lDel[lDelCount] = adoSms.m_SendID; //插入到另一个表 BOOL b = bakAdoRS.RecordBinding( adoSms ); b = bakAdoRS.AddNew(adoSms); b = bakAdoRS.Update(); m_AdoRS.MoveNext(); lDelCount ++; } for ( int i=lDelCount-1 ; i>=0 ; i-- ) { long lSendID = lDel[i]; strTemp.Format(_T("delete from smslog where SendID=%d ") , lSendID ); BOOL b = m_AdoRS.Open( strTemp ); } delete lDel; strTemp.Format( _T("自动备份发送日志成功,此次备份数量为:%d!") ,lDelCount ); MessageBox(strTemp , _T("信息") , MB_ICONINFORMATION ); m_Setup.bCompDB = true; SaveSetup(); } } /* //到日期了 if ( bYW || COleDateTime::GetCurrentTime()-t >= COleDateTimeSpan(m_Setup.lJG,0,0,0) ) { //计算日期 COleDateTimeSpan tTemp(m_Setup.lDelUpDate-1,0,0,0); COleDateTime tDel = COleDateTime::GetCurrentTime()-tTemp; CString strTime; strTime.Format( "#%04d-%02d-%02d#",tDel.GetYear(),tDel.GetMonth(),tDel.GetDay()); CString str; if ( m_Setup.bWF ) { str.Format( "select * from smsbox where BoxType='0' and CreateTime<%s",strTime) ; if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 ) { m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { long lBoxID = 0; m_AdoRS.GetCollect( "BoxID" , lBoxID ); str.Format( "delete from smsitem where BoxID=%d" , lBoxID );//再删除BoxItem m_AdoRS2.Open( str ); m_AdoRS.MoveNext(); } } str.Format("delete from smsbox where BoxType='0' and CreateTime<%s",strTime) ; m_AdoRS.Open( str ); m_AdoRS.Close(); } if ( m_Setup.bYF ) { str.Format( "select * from smsbox where BoxType='1' and CreateTime<%s",strTime) ; if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 ) { m_AdoRS.MoveFirst(); while(!m_AdoRS.IsEOF()) { long lBoxID = 0; m_AdoRS.GetCollect( "BoxID" , lBoxID ); str.Format( "delete from smsitem where BoxID=%d" , lBoxID );//再删除BoxItem m_AdoRS2.Open( str ); m_AdoRS.MoveNext(); } } str.Format("delete from smsbox where BoxType='1' and CreateTime<%s",strTime); m_AdoRS.Open( str ); m_AdoRS.Close(); } if ( m_Setup.bJS ) { str.Format("delete from smsRecv where RecvTime<%s",strTime) ; m_AdoRS.Open( str ); m_AdoRS.Close(); } if ( m_Setup.bLog ) { str.Format("delete from smslog where SubTime<%s",strTime) ; m_AdoRS.Open( str ); m_AdoRS.Close(); } m_Setup.bCompDB = true; //下次需要压缩数据库 GetLocalTime(&m_Setup.tYWLast); SaveSetup(); } */ } long CMainFrame::GetMaxSendMsgLen_longSms(long & lCMLen) { long lLen = GetMaxSendMsgLen(); CString strCM; GetQJCM(strCM); #ifdef UNICODE lCMLen = strCM.GetLength(); #else TCHAR szMsg[512];memset(szMsg , 0 , sizeof(szMsg) ); TCHAR szHex[512];memset(szHex , 0 , sizeof(szHex) ); _tcscpy(szMsg , strCM ); AsciiToUCS2(szMsg , szHex ); lCMLen = _tcslen(szHex)/4; #endif lLen = lLen+lCMLen-3; #if defined(SMSCENTER_NX) && !defined(SMSCENTER_GDDX) lLen = 67; #endif return lLen; } BOOL CMainFrame::ReadGAddress2(BOOL bRefresh) { //登录成功,取公用电话本 if ( GetUserPurview( PURVIEW_GADDRESS_SEE , false ) ) { //因为要重新取数据,清空数据库 m_AdoRS.Open( _T("delete from gaddress") ); REQ_GAddress22_See * pSee = new REQ_GAddress22_See; pSee->lCorpID = m_lCorpID; pSee->bMoveGAddress = false; //取公用通讯录 SendFrame( SMSFUNC_GADDRESS22_SEE , (BYTE*)pSee , sizeof( REQ_GAddress22_See ) ); //发送取资料的请求 m_bShowProcess = true; if ( m_DlgProcess.DoModal() != IDOK ) //显示进度栏 { //取资料不成功 return false; } m_bShowProcess = false; if ( m_bChangeGAddress ) { if ( m_ulPurviewType==PURVIEWTYPE_ADMIN ) //管理员才能进行数据转移工作 { int iRet =MessageBox( _T("首次使用新版本登录,是否需要进行通讯录转移?\r\n\r\n通迅录转移不会丢失原有的数据。\r\n转移后只能使用新的版本登录。"),_T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2); if ( iRet == IDYES ) { REQ_GAddress22_See * pSee = new REQ_GAddress22_See; pSee->lCorpID = m_lCorpID; pSee->bMoveGAddress = true; //转移公用通讯录 SendFrame( SMSFUNC_GADDRESS22_SEE , (BYTE*)pSee , sizeof( REQ_GAddress22_See ) ); //发送取资料的请求 m_bShowProcess = true; if ( m_DlgProcess.DoModal() != IDOK ) //显示进度栏 { //取资料不成功 return false; } m_bShowProcess = false; } return false; } else { MessageBox( _T("需要使用管理员帐号登录进行通迅录转移后才能登录!"),_T("错误") , MB_ICONWARNING|MB_OK); return false; } } if ( m_bReadGAddressError ) { MessageBox( _T("允许操作的公用通讯录组已被删除,请与管理员联系!") , _T("错误"),MB_ICONWARNING); return false; } if ( bRefresh ) m_pFuncView->On_User2_Refresh2(); } if ( !bRefresh ) { m_pFuncView->InitItem2(); //初始化功能列表 //判断可用短信量是否很少 TCHAR szBuf[64]={0}; #ifdef SMSCENTER_ADC if ( m_ulPurviewType==PURVIEWTYPE_ADMIN && (m_Ans_Login.lCorpSmsUsed < 1000 || m_Ans_Login.lCorpAdcSmsUsed < 1000 ) ) #else if ( m_ulPurviewType==PURVIEWTYPE_ADMIN && m_Ans_Login.lCorpSmsUsed < 1000 ) #endif { #ifdef SMSCENTER_ADC _stprintf( szBuf , _T("现在贵企业可用的短信量不多(ADC:%d 短信易:%d)!\r\n请尽快联系管理员进行充值!" ) , m_Ans_Login.lCorpAdcSmsUsed,m_Ans_Login.lCorpSmsUsed ); #else _stprintf( szBuf , _T("现在贵企业可用的短信量仅剩%d条了!\r\n请尽快联系管理员进行充值!" ) , m_Ans_Login.lCorpSmsUsed ); #endif MessageBox( szBuf , _T("提示") , MB_ICONASTERISK ); } else { if ( m_Ans_Login.lUserSmsUsed < 200 && m_Ans_Login.lUserSmsUsed >= 0) { _stprintf( szBuf , _T("现在你可用的短信量仅剩%d条了!\r\n请尽快联系管理员进行充值!" ) , m_Ans_Login.lUserSmsUsed ); MessageBox( szBuf , _T("提示" ) , MB_ICONASTERISK ); } #ifdef _UNICODE COleDateTime tOvrDate(m_Ans_Login2.tOvrDate); if ( tOvrDate.GetStatus() == COleDateTime::valid ) { if ((tOvrDate-COleDateTime::GetCurrentTime())<=COleDateTimeSpan(30,0,0,0) && (tOvrDate-COleDateTime::GetCurrentTime())>COleDateTimeSpan(0,0,0,0) ) { _stprintf( szBuf , _T("你的帐号将于%04d年%02d月%02d日过期,请尽快续期!" ) , tOvrDate.GetYear(),tOvrDate.GetMonth(),tOvrDate.GetDay() ); MessageBox( szBuf , _T("提示" ) , MB_ICONASTERISK ); } else { if ((tOvrDate-COleDateTime::GetCurrentTime())<=COleDateTimeSpan(0,0,0,0) ) { _stprintf( szBuf , _T("你的帐号已于%04d年%02d月%02d日过期,需要续期后才能使用!" ) , tOvrDate.GetYear(),tOvrDate.GetMonth(),tOvrDate.GetDay() ); MessageBox( szBuf , _T("提示" ) , MB_ICONASTERISK ); } } } #endif } } return true; } long CMainFrame::GetMaxUsersCount() { long lMax=10; switch( m_Ans_Login.lUserNumLen ) { case 1: lMax = 350; break; case 2: lMax = 550; break; case 3: lMax = 1050; #ifdef BGY_VER lMax = 5050; #endif break; } return lMax; } void CMainFrame::OnHd() { DLG_HDQuery dlg(this); dlg.SetParam(&m_pBaseView->m_dlgSmsJS.m_HDAdoRS); m_pHDQuery = &dlg; dlg.DoModal(); m_pHDQuery = NULL; } void CMainFrame::GetCenterTime() { REQ_CenterTime * pTime = new REQ_CenterTime; memset(pTime , 0 , sizeof(REQ_CenterTime)); pTime->lType = 0; SendFrame( SMSFUNC_CENTERTIME , (BYTE*)pTime , sizeof(REQ_CenterTime) ); //发送取资料的请求 } LONG_PTR CMainFrame::On_ExcelAddin_Data( WPARAM wParam , LPARAM lParam ) { COPYDATASTRUCT * cpd =(COPYDATASTRUCT *)lParam; if ( cpd->dwData != 11110 && cpd->dwData != 11112) return 0; if ( cpd->dwData == 11110 ) //发送短信 { this->SetForegroundWindow(); this->m_pFuncView->m_DLGSend.SetForegroundWindow(); this->m_pFuncView->m_DLGSend.SetFocus(); m_pFuncView->On_User_List_AddUser( (DWORD)wParam , (Send_User * )cpd->lpData ); return 0; } if ( cpd->dwData == 11112 ) //添加通讯录 { PAddress_Head * pAddressHead = (PAddress_Head*)(cpd->lpData); PAddress * pAddress = (PAddress *)((BYTE*)cpd->lpData+sizeof(PAddress_Head)); if ( (DWORD)wParam != pAddressHead->lCount ) { return 0; } //先检测用户组ID CString str; CString strGroupID; if ( pAddressHead->lUserID != -1 ) //-1表示根目录 { str.Format( _T("select * from paddress where userid=%d") , pAddressHead->lUserID ); if ( m_AdoRS2.Open(str) && !m_AdoRS2.IsEOF() ) { m_AdoRS2.GetCollect( _T("GroupID") , strGroupID ); } else { return 0; } } long lAddCount=0; for ( int i=0 ; ilCount ; i++ ) { //先判断是否重复 if ( pAddressHead->bReMobile ) { if ( strGroupID.GetLength()<=0) str.Format( _T("select * from paddress where Mobile='%s' and (GroupID is null or len(GroupID)=0)") , pAddress[i].szMobile ); else str.Format( _T("select * from paddress where Mobile='%s' and GroupID='%s'") , pAddress[i].szMobile,strGroupID ); if ( m_AdoRS2.Open(str) && !m_AdoRS2.IsEOF() ) { m_AdoRS2.Close(); continue; //有重复的记录,继续下一条。 } } //添加到数据库中 if ( m_AdoRS2.Open( _T("paddress") , adCmdTable ) ) { m_AdoRS2.AddNew(); pAddress[i].szUserType[0]='1'; //用户类型 m_AdoRS2.PutCollect(_T("UserType") ,pAddress[i].szUserType); m_AdoRS2.PutCollect(_T("GroupID") ,strGroupID); m_AdoRS2.PutCollect(_T("Name") ,pAddress[i].szName ); m_AdoRS2.PutCollect(_T("NickName") ,pAddress[i].szNickName ); m_AdoRS2.PutCollect(_T("Sex") ,pAddress[i].szSex ); m_AdoRS2.PutCollect(_T("Birthday") ,pAddress[i].tBirthday ); m_AdoRS2.PutCollect(_T("Ltd") ,pAddress[i].szLtd ); m_AdoRS2.PutCollect(_T("Addr") ,pAddress[i].szAddress ); m_AdoRS2.PutCollect(_T("Job") ,pAddress[i].szJob ); m_AdoRS2.PutCollect(_T("Tel") ,pAddress[i].szTel ); m_AdoRS2.PutCollect(_T("Fax") ,pAddress[i].szFax ); m_AdoRS2.PutCollect(_T("Mobile") ,pAddress[i].szMobile ); m_AdoRS2.PutCollect(_T("Email") ,pAddress[i].szEmail ); m_AdoRS2.PutCollect(_T("QQ") ,pAddress[i].szQQ ); m_AdoRS2.PutCollect(_T("BZ") ,pAddress[i].szBZ); m_AdoRS2.PutCollect(_T("CreateTime") ,COleDateTime::GetCurrentTime() ); m_AdoRS2.Update(); m_AdoRS2.Close(); lAddCount ++; } } return lAddCount; } return 0; } LONG_PTR CMainFrame::On_ExcelAddin_Open( WPARAM wParam , LPARAM lParam ) { HWND hAddinWnd = (HWND)wParam; if ( !hAddinWnd ) { return 0; } m_hExcelAddinWnd = hAddinWnd; if ( m_bLoginOK ) { ::SendMessage(hAddinWnd,CORPSMSADDIN_MSG_OPEN2_LOGIN,(WPARAM)this->GetSafeHwnd(),(LPARAM)GetExcelAddinErrorNum()); if ( !IsWindowVisible() ) { ShowWindow( SW_SHOW ); ShowWindow( SW_RESTORE ); } SetForegroundWindow(); SetFocus(); } else { m_lAddinType = 1; //Open ::SendMessage(hAddinWnd,CORPSMSADDIN_MSG_OPEN2_NOLOGIN,(WPARAM)this->GetSafeHwnd(),0); SetForegroundWindow(); SetFocus(); } return 1; } LONG_PTR CMainFrame::On_ExcelAddin_GetGroup( WPARAM wParam , LPARAM lParam ) { HWND hRecvWnd = (HWND)wParam; long lCount=0; long lAllCount=0; ExcelAddin_GetGroup * pGroup = m_pFuncView->ExcelAddin_GetGroup2(lAllCount,lCount); //发送信息 COPYDATASTRUCT cpd={0}; cpd.dwData = 11111; //取用户组 cpd.cbData = sizeof(ExcelAddin_GetGroup)*lAllCount; cpd.lpData = (PVOID)pGroup; ::SendMessage(hRecvWnd,WM_COPYDATA,(WPARAM)(DWORD)lCount,(LPARAM)&cpd); if ( pGroup ) delete pGroup; return 1; } DWORD CMainFrame::GetExcelAddinErrorNum() { DWORD dwErrorNum=0; if (!GetUserPurview(PURVIEW_SENDP,false)) //是否有发送到私人通讯录权限 dwErrorNum &= CORPSMSADDIN_ERR_NOSENDP; if (m_pFuncView->m_DLGSend.isSendingSms() ) //是否正在发送 dwErrorNum &= CORPSMSADDIN_ERR_SENDING; if (!GetUserPurview(PURVIEW_PADDRESS,false)) //是否有私人通讯录权限 dwErrorNum &= CORPSMSADDIN_ERR_NOPADDRESS; return dwErrorNum; } void CMainFrame::OnSetupTd() { m_CliSmsTD_Req = true; //发送请求查看 REQ_CliSmsTD * pSee = new REQ_CliSmsTD; memset( pSee , 0 , sizeof(REQ_CliSmsTD) ); pSee->lType = 0; //取通道 pSee->lCorpID = m_lCorpID; SendFrame( SMSFUNC_CLISMSTD , (BYTE*)pSee , sizeof(REQ_CliSmsTD) ); } void CMainFrame::OnTLogo2() { // TODO: Add your command handler code here } void CMainFrame::OnSetupImMas() { DLG_MasSetup dlg(this); dlg.SetParam( m_Setup ); if ( dlg.DoModal() == IDOK ) { m_Setup = dlg.GetParam(); SaveSetup(); } } void CMainFrame::OnAppCommend() { REQ_Commend_GetMy * pCommend = new REQ_Commend_GetMy; memset(pCommend , 0 , sizeof(REQ_Commend_GetMy)); pCommend->lUserID = m_lUserID; pCommend->bGetURL = true; SendFrame( SMSFUNC_COMMEND_GETMY , (BYTE*)pCommend , sizeof(REQ_Commend_GetMy) ); } BOOL CMainFrame::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame) { //取推荐信息 if (pHead->lFuncType == SMSFUNC_GETCOMMEND) { ANS_GetCommend * pPartner = (ANS_GetCommend *)pFrame; ANS_GetCommendData * pData = (ANS_GetCommendData *)(pFrame+sizeof(ANS_GetCommend)); DLG_Commend_My dlg(this); dlg.SetParam(pPartner , pData); dlg.DoModal(); return true; } if ( pHead->lFuncType == SMSFUNC_COMMEND_GETMY ) { ANS_Commend_GetMy * pGetMy = (ANS_Commend_GetMy *)pFrame; if ( pGetMy->bGetURL ) { CString strUrl =pGetMy->szURL; if ( strUrl.GetLength()>0 ) { SYSTEMTIME t;GetLocalTime(&t); CString timestamp; timestamp.Format(_T("%04d%02d%02d%02d%02d%02d"),t.wYear,t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond); CString strKey=_T("qazEDC12@"); CString strCorpID; CString strUserID; strCorpID.Format(_T("%d") , m_lCorpID); strUserID.Format(_T("%d") , m_lUserID); CString strMD5 = strCorpID+strUserID+timestamp+strKey; CString strMD52 = GetMD5(strMD5,true); strKey.Format(_T("?UserID=%d&CorpID=%d&key=%s×tamp=%s"),m_lUserID,m_lCorpID,strMD52,timestamp); strUrl = strUrl+strKey; ShellExecute(NULL,_T("open"),strUrl,NULL,NULL,SW_SHOWNORMAL); } } else { DLG_Commend dlg(this); dlg.SetParam(*pGetMy); m_pCommendDlg = &dlg; if ( dlg.DoModal() == IDOK ) { } m_pCommendDlg = NULL; } } //取兑换礼品信息 if (pHead->lFuncType == SMSFUNC_GETCOMMEND_LP) { ANS_GetCommend_LP * pPartner = (ANS_GetCommend_LP *)pFrame; ANS_GetCommend_LPData * pData = (ANS_GetCommend_LPData *)(pFrame+sizeof(ANS_GetCommend_LP)); DLG_Commend_DH dlg(this); dlg.SetParam(pPartner , pData); if ( dlg.DoModal() == IDOK ) { //添加兑换信息 long lSize = sizeof(REQ_Commend_Add)+sizeof(ANS_GetCommendData); BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize); REQ_Commend_Add * pAdd = (REQ_Commend_Add *)pAddData; //头 ANS_GetCommendData * pCommendData = (ANS_GetCommendData *)(pAddData+sizeof(REQ_Commend_Add)); pCommendData->lCorpID = m_lCorpID; pCommendData->lUserID = m_lUserID; pCommendData->lCommendType = 1; //类型0,推荐客户;1兑换积分 _tcscpy(pCommendData->szTJ_CorpName , dlg.m_RetData.szName); pCommendData->lVipInt = -dlg.m_RetData.lVipInt; ::GetLocalTime(&pCommendData->tCreateTime); pAdd->lCount = 1; SendFrame( SMSFUNC_COMMEND_ADD , pAddData , lSize ); } return true; } //添加 if (pHead->lFuncType == SMSFUNC_COMMEND_ADD) { ANS_Commend_Add * pAdd = (ANS_Commend_Add *)pFrame; ANS_GetCommendData * pData = (ANS_GetCommendData *)(pFrame+sizeof(ANS_Commend_Add)); if ( m_pCommendDlg ) { return m_pCommendDlg->ProcessSocket( pHead , pFrame ); } else { if ( pData->lCommendType == 1 ) { if ( pAdd->lCount == 1 ) //等于1时表示修改成功 { MessageBox(_T("你的兑换礼品已成功登记,稍后会有专人与你联系。非常感谢你对短信易的支持!") , _T("成功") , MB_ICONINFORMATION ); } else { MessageBox(_T("你的兑换礼品登记失败,请与管理员联系!") , _T("失败") , MB_ICONWARNING ); } } else { if ( pAdd->lCount == 1 ) //等于1时表示修改成功 { MessageBox(_T("你的推荐客户已成功登记,非常感谢你对短信易的支持!") , _T("成功") , MB_ICONINFORMATION ); } else { MessageBox(_T("你的推荐客户登记失败,请与管理员联系!") , _T("失败") , MB_ICONWARNING ); } } } return true; } if (pHead->lFuncType == SMSFUNC_GETHD) { ANS_GetHD * pHD = (ANS_GetHD *)pFrame; if ( this->m_pHDQuery ) m_pHDQuery->SetHDMsg(pHD->szMsg); return true; } if (pHead->lFuncType == SMSFUNC_UBOX_GETURL) { ANS_UBox_GetUrl * pGetUrl = (ANS_UBox_GetUrl *)pFrame; CString strUrl = pGetUrl->szUrl; if (strUrl.GetLength()>0 ) { ShellExecute(NULL,_T("open"),strUrl,NULL,NULL,SW_SHOWNORMAL); //打开管理易 } return true; } if (pHead->lFuncType == SMSFUNC_UBOX_GETPRO) { #ifdef SUPPER_UBOX try { if ( m_ubox_NowPop ) { m_ubox_NowPop->ProcessSocket(pHead,pFrame); } } catch(...) { } #endif return true; } if ( pHead->lFuncType == SMSFUNC_UBOX_UPLOAD ) { #ifdef SUPPER_UBOX ANS_UBox_UpLoad * pUpload = (ANS_UBox_UpLoad *)pFrame; long lTickCount = pUpload->req.lTickCount; CSingleLock cl(&m_ubox_Lock,true); long lCount = m_ubox_Pop.GetCount(); for ( int i=0 ; im_lTickCount == lTickCount ) //号码相同 { pDlg->ProcessSocket(pHead,pFrame); break; } } #endif return true; } if ( pHead->lFuncType == SMSFUNC_UBOX_GETLOG2 ) { ANS_UBox_GetLog2 * pGetLog = (ANS_UBox_GetLog2 *)pFrame; ANS_UBox_CallLog * pData = (ANS_UBox_CallLog *)(pFrame+sizeof(ANS_UBox_GetLog2)); DLG_UBox_UserLog dlg(this); dlg.SetParam(pGetLog,pData); dlg.DoModal(); return true; } if ( pHead->lFuncType == SMSFUNC_UBOX_GETTYPE2 ) { ANS_UBox_GetType * pGetLog = (ANS_UBox_GetType *)pFrame; ANS_UBox_GetTypeData * pData = (ANS_UBox_GetTypeData *)(pFrame+sizeof(ANS_UBox_GetType)); DLG_UBox_CallType dlg(this); dlg.SetParam(pGetLog,pData); if ( dlg.DoModal() == IDOK ) { if ( dlg.m_CallType.GetSize()>0 ) { long lSize = sizeof(REQ_UBox_Type_Upload) + sizeof(ANS_UBox_GetTypeData)*dlg.m_CallType.GetSize(); BYTE * pData = new BYTE[lSize]; memset(pData , 0 , lSize); REQ_UBox_Type_Upload * pUpload = (REQ_UBox_Type_Upload * )pData; ANS_UBox_GetTypeData * pTypeData = (ANS_UBox_GetTypeData * )(pData + sizeof(REQ_UBox_Type_Upload)); pUpload->lCorpID = this->m_lCorpID; pUpload->lUserID = m_lUserID; pUpload->lCount = dlg.m_CallType.GetSize(); for ( int i=0 ; i< dlg.m_CallType.GetSize() ; i++ ) { pTypeData[i].lTypeIndex = i; _tcscpy(pTypeData[i].szType , dlg.m_CallType.GetAt(i)); } SendFrame(SMSFUNC_UBOX_TYPE_UPLOAD , pData , lSize ); } } return true; } if ( pHead->lFuncType ==SMSFUNC_UBOX_TYPE_UPLOAD) { ANS_UBox_Type_Upload * pUpload = (ANS_UBox_Type_Upload *)pFrame; CString str; str.Format(_T("共更新%d个通话类型!") ,pUpload->lCount ); MessageBox(str, _T("信息") , MB_ICONINFORMATION ); return true; } if ( pHead->lFuncType == SMSFUNC_UBOX_RECORD_UP ) { #ifdef SUPPER_UBOX ANS_UBox_Record_Up * pUp = (ANS_UBox_Record_Up *)pFrame; //判断所返回的是否当前传送的数据 if ( pUp->lUBoxLogID == m_RecordUpload_UBoxLogID ) { if ( !pUp->bOK ) //发送失败 { //重发下一文件 m_RecordUpload_UBoxLogID = 0; //上传失败,本文件不再上传 if ( m_RecordUpload.GetCount()>0 ) m_RecordUpload.RemoveHead(); } if ( m_RecordUpload_UpSize == pUp->lUpLen - pUp->lDataLen ) { m_RecordUpload_UpSize = pUp->lUpLen; if ( UBox_Upload_Record_SendNextFrame() <0 ) { m_RecordUpload_UBoxLogID = 0; //上传成功了,本文件不再上传 if ( m_RecordUpload.GetCount()>0 ) m_RecordUpload.RemoveHead(); if ( m_RecordFile.m_hFile != INVALID_HANDLE_VALUE ) m_RecordFile.Close(); } } } #endif return true; } if ( pHead->lFuncType == SMSFUNC_GADDRESS22_SEE && m_bShowProcess) //正在取用户信息 { ANS_GAddress22_See * pSee = (ANS_GAddress22_See *)pFrame; ANS_GAddress22_SeeData * pSeeData = (ANS_GAddress22_SeeData *)(pFrame+sizeof(ANS_GAddress22_See)); if ( pSee->lCount == -100 ) //需要进行通讯录转移工作 { m_DlgProcess.SetProcess( 5 , 5 ); m_bChangeGAddress = true; //需要进行通讯录转移工作 return true; } if ( pSee->lCount == -101 ) //转移通讯录成功 { MessageBox( _T("转移通讯录成功,请退出后重新登录!") , _T("信息"),MB_ICONINFORMATION); m_DlgProcess.SetProcess( 5 , 5 ); return true; } if ( pSee->lCount == -200 ) //通迅录已被转移 { m_DlgProcess.SetProcess( 5 , 5 ); m_bReadGAddressError = true; return true; } m_strMainGroupID = pSee->szMainGroupID; m_lMainGroupID = pSee->lMainGroupID; BOOL b = m_AdoRS.Open( _T("GAddress") , adCmdTable ); for ( int i = 0 ; i< pSee->lCount ; i++ ) { if ( pSeeData->lUserID == m_lMainGroupID ) { m_strMainGroupName = pSeeData->szName; //记录限制组名 } m_AdoRS.AddNew(); m_AdoRS.PutCollect(_T("UserID") ,pSeeData->lUserID); m_AdoRS.PutCollect(_T("UserType") ,pSeeData->szUserType); m_AdoRS.PutCollect(_T("GroupID") ,pSeeData->szGroupID); m_AdoRS.PutCollect(_T("Name") ,pSeeData->szName ); m_AdoRS.PutCollect(_T("NickName") ,pSeeData->szNickName ); m_AdoRS.PutCollect(_T("Sex") ,pSeeData->szSex ); m_AdoRS.PutCollect(_T("Birthday") ,pSeeData->tBirthday ); m_AdoRS.PutCollect(_T("LTD") ,pSeeData->szLTD ); m_AdoRS.PutCollect(_T("Job") ,pSeeData->szJob ); m_AdoRS.PutCollect(_T("Addr") ,pSeeData->szAddr ); m_AdoRS.PutCollect(_T("Tel") ,pSeeData->szTel ); m_AdoRS.PutCollect(_T("Fax") ,pSeeData->szFax ); m_AdoRS.PutCollect(_T("Mobile") ,pSeeData->szMobile ); m_AdoRS.PutCollect(_T("Email") ,pSeeData->szEmail ); m_AdoRS.PutCollect(_T("QQ") ,pSeeData->szQQ ); m_AdoRS.PutCollect(_T("CreateTime") ,pSeeData->tCreateTime); m_AdoRS.PutCollect(_T("BZ") ,pSeeData->szBZ); m_AdoRS.Update(); pSeeData++; } m_AdoRS.Update(); m_AdoRS.Close(); if ( pSee->lPageAll == pSee->lPageCount ) //两者相同,证明已接收完毕 { this->SaveSetup(); //保存设置 } m_DlgProcess.SetProcess( pSee->lPageAll , pSee->lPageCount ); if ( this->m_Setup.bGateWay ) //发一条测试数据激活下行 { REQ_Test * pTest = new REQ_Test; pTest->lTemp = ::GetTickCount(); SendFrame( SMSFUNC_TEST , (BYTE*)pTest , sizeof(REQ_Test) ); } return true; } if ( pHead->lFuncType == SMSFUNC_WHITE2_GET ) { ANS_White2_Get * pGet = (ANS_White2_Get *)pFrame; if (pGet->lStatus==1 ) { if ( this->m_pWhie2 ) { m_pWhie2->ProcessSocket(pHead,pFrame); } else { DLG_White2 dlg(this); m_pWhie2 = &dlg; dlg.Setparam(*pGet); dlg.DoModal(); m_pWhie2 = NULL; } } else { MessageBox(_T("查询异常,请检查。"),_T("错误") , MB_ICONWARNING); } return true; } if ( pHead->lFuncType == SMSFUNC_WHITE2_OPER || pHead->lFuncType == SMSFUNC_WHITE2_UPLOAD) { m_pWhie2->ProcessSocket(pHead,pFrame); return true; } return false; } void CMainFrame::OnTGg() { //MessageBox(_T("gg")); } void CMainFrame::Mas_ProcessSendCount() { if (m_Setup.Mas_MaxSend>0 ) { COleDateTime t2=COleDateTime::GetCurrentTime(); long lEnd=t2.GetYear()*100+t2.GetMonth(); if ( m_Setup.Mas_LastTime<=0 || m_Setup.Mas_LastTime>205000 ) { m_Setup.Mas_LastTime = lEnd; SaveSetup(); } if ( lEnd != m_Setup.Mas_LastTime ) { m_Setup.Mas_LastTime = lEnd; m_Setup.Mas_Count=0; SaveSetup(); } } } void CMainFrame::OnOperSendsms() { //显示发送列表 m_pFuncView->m_DLGSend.ShowWindow( SW_SHOWNORMAL ); } void CMainFrame::OnOperSendfax() { //显示发送传真列表 m_pFuncView->m_DLGSendFax.ShowWindow( SW_SHOWNORMAL ); } void CMainFrame::OnOperSendmms() { //显示发送彩信列表 m_pFuncView->m_DLGSendMms.ShowWindow( SW_SHOWNORMAL ); } void CMainFrame::OnCheckupdate() { GetUpdateMsg(true); } void CMainFrame::OnTCorpwork() { if ( m_strCorpWorkUrl.GetLength()<=0 ) return ; CString strReq; CString strTimeStamp; CString strMd5; SYSTEMTIME t; GetLocalTime(&t); strTimeStamp.Format(_T("%02d%02d%02d%02d%02d") , t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond); strReq.Format(_T("%s?CorpID=%d&LoginName=%s&TimeStamp=%s&Passwd=%s") , m_strCorpWorkUrl,m_lCorpID , m_pCurUser->szUser , strTimeStamp , GetMD5(CString(m_pCurUser->szUser)+strTimeStamp+m_strPasswdEnc ) ); // TRACE(strReq); ShellExecute(NULL,_T("open"),strReq,NULL,NULL,SW_SHOWNORMAL); //打开管理易 } CString CMainFrame::GetMD5(CString str, BOOL bLower) { #ifdef _UNICODE USES_CONVERSION; #endif CString strRet; char szPasswd[2048]={0}; #ifdef _UNICODE sprintf(szPasswd , "%s" , W2A(str) ); #else sprintf(szPasswd , "%s" , str ); #endif MD5_L md5; char szMd5[64]={0}; strcpy(szMd5 , md5.MD5String(szPasswd)); #ifdef _UNICODE strRet = A2W(szMd5); #else strRet = szMd5; #endif if (bLower ) strRet.MakeLower(); return strRet; } BOOL CMainFrame::ubox_Enable() { if ( m_Setup.UBox_bEnable ) return true; else return false; } BOOL CMainFrame::ubox_Init() { BOOL bUBox = m_Setup.bSDK & SDK_UBOX ? true:false; if ( !bUBox ) return false; if ( !ubox_Enable() ) return false; #ifdef SUPPER_UBOX ubox_Close(); //先关闭 try { //装入函数 m_ubox_Lib=LoadLibrary( _T("phonic_ubox.dll") ); if (!m_ubox_Lib) { MessageBox(_T("客户易外置设备初始化错误1,请检查!"),_T("错误") , MB_ICONWARNING ); return false; } m_ubox_Open = (Mubox_open)GetProcAddress( m_ubox_Lib , "ubox_open" ); m_ubox_close = (Mubox_close)GetProcAddress( m_ubox_Lib , "ubox_close" ); m_ubox_get_work_mode= (Mubox_get_work_mode)GetProcAddress( m_ubox_Lib , "ubox_get_work_mode" ); m_ubox_send_dtmf= (Mubox_send_dtmf)GetProcAddress( m_ubox_Lib , "ubox_send_dtmf" ); m_ubox_record_stream= (Mubox_record_stream)GetProcAddress( m_ubox_Lib , "ubox_record_stream" ); m_ubox_stop_record= (Mubox_stop_record)GetProcAddress( m_ubox_Lib , "ubox_stop_record" ); m_ubox_record_file= (Mubox_record_file)GetProcAddress( m_ubox_Lib , "ubox_record_file" ); if ( m_ubox_Open && m_ubox_close && m_ubox_get_work_mode && m_ubox_send_dtmf && m_ubox_record_stream && m_ubox_stop_record && m_ubox_record_file) m_ubox_Status = 1; else { MessageBox(_T("客户易外置设备初始化错误2,请检查!"),_T("错误") , MB_ICONWARNING ); return false; } //开始初始化 ENUM_UBOX_WORK_MODE ubox_mode = UBOX_MODE_RECORD; int iRet = m_ubox_Open(ubox_NotifyProc,ubox_mode); if ( iRet !=0 ) { MessageBox(_T("客户易外置设备初始化错误3,请检查!"),_T("错误") , MB_ICONWARNING ); ubox_Close(); } } catch(...) { MessageBox(_T("客户易外置设备初始化错误4,请检查!"),_T("错误") , MB_ICONWARNING ); ubox_Close(); } SetTimer( 12 , 2000 , NULL ); //上传录音操作。 return m_ubox_Status; #endif return true; } BOOL CMainFrame::ubox_Close() { #ifdef SUPPER_UBOX try { if ( m_ubox_Status == 0 ) return true; if ( m_ubox_close ) m_ubox_close(); if ( m_ubox_Lib ) { FreeLibrary(m_ubox_Lib); m_ubox_Lib = NULL; } m_ubox_Status = 0; m_ubox_Open = NULL; m_ubox_close = NULL; m_ubox_get_work_mode = NULL; } catch(...) { return false; } #endif return true; } BOOL CMainFrame::ubox_SetStatus(long lStatus) { #ifdef SUPPER_UBOX m_ubox_Status = lStatus; long index = 0; while(m_wndToolBar.GetItemID(index)!=ID_T_UBOX) index++; m_wndToolBar.SetButtonInfo(index,ID_T_UBOX,TBBS_BUTTON,6+lStatus); #endif return true; } void CMainFrame::ubox_NotifyProc(UBOX_HANDLE uboxHnd, int eventID, unsigned long param1, unsigned long param2, unsigned long param3, unsigned long param4) { #ifdef SUPPER_UBOX if ( !g_MainFrame ) return ; int i = eventID; g_MainFrame->m_ubox_endHandle = uboxHnd; //最后电话句柄 //TRACE("%d\r\n", i ); if ( i==UBOX_EVENT_DEVICE_PLUG_IN ) //插入 { //0-dllerror,1-disable,2-enable,3-ring,4-phone g_MainFrame->ubox_SetStatus(2); g_MainFrame->m_ubox_bPhoneUp = false; //是否摘机 g_MainFrame->m_ubox_Phoneing = false; //是否通话中 g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP,NULL); //相当于挂机 } if ( i==UBOX_EVENT_DEVICE_PLUG_OUT ) //拨出 { //0-dllerror,1-disable,2-enable,3-ring,4-phone g_MainFrame->ubox_SetStatus(1); g_MainFrame->m_pBaseView->m_dlgUBoxLog.PostMessage(UBOX_EVENT,UBOX_EVENT_WJ,0); //未接 g_MainFrame->m_ubox_bPhoneUp = false; //是否摘机 g_MainFrame->m_ubox_Phoneing = false; //是否通话中 g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP,NULL); //相当于挂机 } if ( i==UBOX_EVENT_ALARM ) //出错 { //0-dllerror,1-disable,2-enable,3-ring,4-phone g_MainFrame->ubox_SetStatus(1); g_MainFrame->m_ubox_bPhoneUp = false; //是否摘机 g_MainFrame->m_ubox_Phoneing = false; //是否通话中 g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP,NULL); //相当于挂机 g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_ERROR,NULL); //相当于挂机 } if ( i==UBOX_EVENT_DEVICE_ERROR ) //设备错误 { g_MainFrame->ubox_SetStatus(1); g_MainFrame->m_pBaseView->m_dlgUBoxLog.PostMessage(UBOX_EVENT,UBOX_EVENT_WJ,0); //未接 g_MainFrame->m_ubox_bPhoneUp = false; //是否摘机 g_MainFrame->m_ubox_Phoneing = false; //是否通话中 g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP,NULL); //相当于挂机 } if ( i==UBOX_EVENT_LINE_HOOK_UP ) //挂机 { g_MainFrame->ubox_SetStatus(2); g_MainFrame->m_ubox_bPhoneUp = false; //是否摘机 g_MainFrame->m_ubox_Phoneing = false; //是否通话中 //挂机,隐藏主窗口 if ( g_MainFrame->m_Setup.UBox_bDownWindowClose) g_MainFrame->m_DlgUBoxDial.ShowWindow(SW_HIDE); g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP,NULL); //挂机 } if ( i==UBOX_EVENT_LINE_RING_STOP ) //停振 { g_MainFrame->ubox_SetStatus(2); } if( i==UBOX_EVENT_LINE_RINGING ) //振铃 { g_MainFrame->ubox_SetStatus(3); g_MainFrame->m_ubox_bPhoneUp = false; //是否摘机 g_MainFrame->m_ubox_Phoneing = true; //是否通话中 } if ( i==UBOX_EVENT_RING_CANCEL) //振铃取消 { g_MainFrame->ubox_SetStatus(2); //g_MainFrame->m_pBaseView->m_dlgUBoxLog.PostMessage(UBOX_EVENT,UBOX_EVENT_WJ,0); //未接 g_MainFrame->m_ubox_bPhoneUp = false; //是否摘机 g_MainFrame->m_ubox_Phoneing = false; //是否通话中 g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_WJ,NULL); //未接 } if( i==UBOX_EVENT_LINE_HOOK_OFF ) //摘机 { g_MainFrame->ubox_SetStatus(4); //g_MainFrame->m_pBaseView->m_dlgUBoxLog.PostMessage(UBOX_EVENT,UBOX_EVENT_JT,0); //接听 //摘机,显示主窗口 if ( !g_MainFrame->m_ubox_bPhoneUp && !g_MainFrame->m_ubox_Phoneing && g_MainFrame->m_Setup.UBox_bUpWindowOpen) { g_MainFrame->m_DlgUBoxDial.ShowWindow(SW_SHOW); g_MainFrame->m_DlgUBoxDial.SetForegroundWindow(); } g_MainFrame->m_ubox_bPhoneUp = true; //是否摘机 g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_OFF,NULL); //通话 } if ( i==UBOX_EVENT_CALLER_ID ) //来电显示 { g_MainFrame->m_ubox_Phoneing = true; //是否通话中 //CString strNum((TCHAR*)param1); //CString strTime((TCHAR*)param2); //CString strName((TCHAR*)param3); CString * pNum = new CString((TCHAR*)param1); //g_MainFrame->m_pBaseView->m_dlgUBoxLog.PostMessage(UBOX_EVENT,UBOX_EVENT_DTMF,(WPARAM)pNum); g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_DTMF,(WPARAM)pNum); //CString strNumber((TCHAR*)param1); //生成新的弹出窗口 //g_MainFrame->uboxPop_New(strNumber); } if ( i==UBOX_EVENT_DEVICE_BUSY_TONE) //忙音 { //g_MainFrame->m_ubox_Phoneing = false; //是否通话中 //g_MainFrame->ubox_SetStatus(2); g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP,NULL); //相当于挂机 } if ( i== UBOX_EVENT_CALLOUTFINISH ) //拨号完成 { g_MainFrame->PostMessage(UBOX_EVENT,UBOX_EVENT_CALLOUT,NULL); } if ( i== UBOX_EVENT_DTMF_DOWN ) //用户按键 { TCHAR dtmf = (TCHAR)param1; g_MainFrame->m_DlgUBoxDial.PostMessage(UBOX_EVENT,UBOX_EVENT_CHAR,dtmf); } #endif } void CMainFrame::OnTUbox() { BOOL bUBox = m_Setup.bSDK & SDK_UBOX ? true:false; if ( bUBox ) //支持UBox功能,打开UBox设置界面与拨号界面 { #ifdef SUPPER_UBOX //来电显示盒子 m_DlgUBoxDial.ShowWindow(SW_SHOW); m_DlgUBoxDial.SetForegroundWindow(); //生成新的弹出窗口 //g_MainFrame->uboxPop_New(_T("13922455688"),1); //模拟上传数据 //g_MainFrame->UBox_AddUploadRecordFile(95,_T("D:\\works\\Corpsms_2010\\CorpSms\\Debug\\Record\\95.mp3")); #endif } else { #ifdef MOBSET_OEM MessageBox(_T("尚未开通客服易权限!\r\n客服易模块具备来电管理、去电管理、录音管理等功能!"),_T("提示"),MB_ICONINFORMATION); #else //没有Ubox功能,向服务器请求UBox的介绍连接 REQ_UBox_GetUrl * pGetUrl = new REQ_UBox_GetUrl; memset(pGetUrl , 0 , sizeof(REQ_UBox_GetUrl)); pGetUrl->lCorpID = m_lCorpID; pGetUrl->lUserID = m_lUserID; SendFrame( SMSFUNC_UBOX_GETURL , (BYTE*)pGetUrl , sizeof(REQ_UBox_GetUrl) ); #endif } } void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) { // TODO: Add your message handler code here and/or call default CFrameWnd::OnSysCommand(nID, lParam); long lID=nID; if ( lID == SC_MINIMIZE ) { if ( lParam !=0 ) //点击了右上角的最小化 { //将它缩到右下角 ShowWindow(SW_HIDE); } else { //直接点击任务栏的最小化,不处理。 } } } void CMainFrame::uboxPop_New(CString strNumber,long lCallWay,long lBeginTime) { #ifdef SUPPER_UBOX try { if ( strNumber.GetLength()<3 ) //小于3位的号码不处理,防止误弹屏 { return ; } CSingleLock cl(&m_ubox_Lock,true); if ( lCallWay == 0 ) //呼入的才去除前缀 { ExMobileGZM(strNumber); long lNumLen = strNumber.GetLength(); BOOL bExAddNum=true; //判断是否为手机号码 if ( lNumLen>11 ) { CString str = strNumber.Left(2); if (str == CString(_T("12")) || str==CString(_T("13")) || str==CString(_T("14")) || str==CString(_T("15")) || str==CString(_T("16")) || str==CString(_T("17")) || str==CString(_T("18")) || str==CString(_T("19")) ) { bExAddNum = false; //是手机号码,不用再去除前缀了 } } if ( bExAddNum ) //需要去前缀 { //添加外呼前缀 CStringArray AddNum; DLG_UBox_Dial::SplitString(m_Setup.UBox_strPhoneInExNumber,_T(",") , AddNum ); for( int i=0 ; ilAddLen ) { if ( strNumber.Left(lAddLen) == strAddNum ) { strNumber = strNumber.Right(lNumLen-lAddLen); break; } } } } } ExMobileGZM(strNumber); //先判断此号码是否存在 long lCallCount=1; long lCount = m_ubox_Pop.GetCount(); for ( int i=0 ; im_strNumber == strNumber ) //号码相同 { lCallCount = pDlg->m_lCallingCount+1; //结束之前的窗口 try { m_ubox_NowPop->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP2,0); //先结束之前的通话,相当于挂机。 } catch(...) { } break; } } if ( m_ubox_NowPop ) //原已有弹出窗口,需要先结束之前的通话 { try { m_ubox_NowPop->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP,0); //先结束之前的通话,相当于挂机。 } catch(...) { } } DLG_UBoxPop * pDlg = new DLG_UBoxPop(this); pDlg->SetMainFrame(this); pDlg->SetNumber(strNumber); pDlg->SetCallCount(lCallCount); pDlg->SetCallWay(lCallWay); pDlg->SetCallBeginTime(lBeginTime); pDlg->Create(IDD_UBOXPOP , GetDesktopWindow()); BOOL bShow=true; if (lCallWay==0 && !this->m_Setup.UBox_bPhoneInPop) //呼入 bShow = false; if (lCallWay==1 && !this->m_Setup.UBox_bPhoneOutPop) //呼出 bShow = false; if ( bShow ) { pDlg->ShowWindow(SW_SHOW); pDlg->SetForegroundWindow(); pDlg->FlashWindow(0); } m_ubox_NowPop = pDlg; m_ubox_Pop.Add(pDlg); //加入队列 } catch(...) { } #endif } void CMainFrame::uboxPop_Del(DLG_UBoxPop * pPop) { #ifdef SUPPER_UBOX try { CSingleLock cl(&m_ubox_Lock,true); //先判断此号码是否存在 long lCount = m_ubox_Pop.GetCount(); for ( int i=0 ; iuboxPop_New(strNumber,0); //呼入弹屏s return true; } if ( lCmd == UBOX_EVENT_CALLOUT ) //拨号成功 { this->m_DlgUBoxDial.ClearCallOut(); //通知拨号界面正在拨号 CString strNumber = this->m_DlgUBoxDial.m_strNumber; g_MainFrame->uboxPop_New(strNumber,1); //呼出弹屏 } if ( lCmd == UBOX_EVENT_HOOK_OFF &&m_ubox_NowPop ) //摘机 { try { m_ubox_NowPop->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_OFF,0); //先结束之前的通话,相当于挂机。 } catch(...) { } return true; } if ( lCmd == UBOX_EVENT_HOOK_UP ) //挂机 { //挂机,拨号号码清零 this->m_DlgUBoxDial.ClearNumber(); if ( m_ubox_NowPop ) { try { m_ubox_NowPop->PostMessage(UBOX_EVENT,UBOX_EVENT_HOOK_UP,0); } catch(...) { } } return true; } if ( lCmd == UBOX_EVENT_WJ &&m_ubox_NowPop ) //未接 { try { m_ubox_NowPop->PostMessage(UBOX_EVENT,UBOX_EVENT_WJ,0); } catch(...) { } return true; } if ( lCmd == UBOX_EVENT_ERROR ) //出错 { MessageBox(_T("客服易硬件驱动出错,建议重新启动计算机后重试!") , _T("错误") , MB_ICONWARNING ); return true; } #endif return 0; } BOOL CMainFrame::SendSms(CString strMobile, CString strMsg) { //if ( !::isMobileNum(strMobile,strMobile.GetLength()) ) if ( !::isMmsNum(strMobile,strMobile.GetLength()) ) { return false; } if ( strMsg.GetLength()<=0 ) { return false; } /* #ifdef SUPPER_IM_MAS if ( this->m_pCFUBoxLog->m_pMainFrame->m_pFuncView->m_DLGSend.Mas_OK() && !_tcscmp(sms.szRecvNum,_T("Mas")) ) //MAS短信 { CString strMobile=m_strYWY_Mobile; CString strMsg=m_strSendSms; CString strSendTime; long lSmID=0; //日+时+分+序号 long lSrcID=0; int iRet = (*this->m_pCFUBoxLog->m_pMainFrame->m_pFuncView->m_DLGSend.m_Mas_sendSMAdvTime)(strMobile, strMsg,strSendTime, lSmID,lSrcID); } else #endif */ { //以下为发送短信而备 //先生成临时存贮空间 ANS_SendData2 * pTemp = new ANS_SendData2[10]; memset( pTemp , 0 , sizeof(ANS_SendData2)*10 ); long lSendCount=0; TCHAR szSendMsg[1024]={0}; TCHAR szSendMsg2[1024]={0}; //分隔信息 long lMaxMsgLen = GetMaxSendMsgLen(); //取允许的最大字符数 CString strCM; BOOL bCMFirst = GetQJCM(strCM); long lMsgAll=0; long lMsgIndex = 1; BOOL bGetMsg; _tcscpy( szSendMsg , strMsg ); //发送源信息 TCHAR szSendNum[32]={0}; _tcscpy( szSendNum , strMobile ); //发送目标号码 while ( true ) { memset( szSendMsg2 , 0 , sizeof(szSendMsg2) ); if (!_tcsncmp(szSendNum, _T("12"), 2) || !_tcsncmp( szSendNum , _T("13") , 2 ) || !_tcsncmp( szSendNum , _T("15") , 2 ) || !_tcsncmp( szSendNum , _T("14") , 2 ) || !_tcsncmp( szSendNum , _T("16") , 2 ) || !_tcsncmp( szSendNum , _T("17") , 2 ) || !_tcsncmp( szSendNum , _T("18") , 2 ) || !_tcsncmp( szSendNum , _T("19") , 2 )) { //手机号码可以支持70个汉字 //if ( isChinese( m_szSendMsg,_tcslen(szSendMsg) ) ) //{ bGetMsg = GetSpiltUnicodeMsg( szSendMsg , szSendMsg2 , lMsgIndex , lMaxMsgLen ,lMsgAll); //} //else //{ // bGetMsg = GetSpiltAsciiMsg( szSendMsg , szSendMsg2 , lMsgIndex , lMaxMsgLen*2+lMaxMsgLen*2/7 ,lMsgAll); //} } else { //小灵通手机号码可以支持58个汉字 //if ( isChinese( m_szSendMsg,_tcslen(szSendMsg) ) ) //{ bGetMsg = GetSpiltUnicodeMsg( szSendMsg , szSendMsg2 , lMsgIndex , lMaxMsgLen-12 ,lMsgAll); //} //else //{ // bGetMsg = GetSpiltAsciiMsg( szSendMsg , szSendMsg2 , lMsgIndex , MOBILE_TYPE_PHS_MAXLEN ,lMsgAll); //} } if ( bGetMsg ) //能取到信息,发送 { pTemp[lSendCount].lCorpID = m_lCorpID; pTemp[lSendCount].lUserID = m_lUserID; pTemp[lSendCount].lItem = -100; pTemp[lSendCount].lItemID = 0; //ItemID; if ( bCMFirst ) _stprintf( pTemp[lSendCount].szMsg ,_T("%s%s") , strCM.GetBuffer(), szSendMsg2); else _stprintf( pTemp[lSendCount].szMsg ,_T("%s%s") , szSendMsg2,strCM.GetBuffer()); _tcscpy( pTemp[lSendCount].szName , _T("") ); _tcscpy( pTemp[lSendCount].szMobile , szSendNum); lSendCount ++; //记录号加1 lMsgIndex ++; //分隔加1 } else { break; } } //发送信息 if ( lSendCount > 0 ) { //发出指令,发送 long lSize = sizeof(REQ_Send2)+sizeof(ANS_SendData2)*lSendCount; BYTE * pData = new BYTE[lSize]; REQ_Send2 * pSendSend = (REQ_Send2 *)pData; ANS_SendData2 * pDataSend = (ANS_SendData2 *)(pData + sizeof(REQ_Send2)); pSendSend->lCount = lSendCount; //内容 memcpy( pDataSend , pTemp , sizeof(ANS_SendData2)*lSendCount ); SendFrame( SMSFUNC_SEND2 , pData , lSize ); } delete pTemp; //删除临时变量 } return true; } void CMainFrame::OnAppCalltype() { REQ_UBox_GetType * pGetType = new REQ_UBox_GetType; memset(pGetType , 0 , sizeof(REQ_UBox_GetType)); pGetType->lCorpID = m_lCorpID; pGetType->lUserID = m_lUserID; SendFrame( SMSFUNC_UBOX_GETTYPE2 , (BYTE*)pGetType , sizeof( REQ_UBox_GetType ) ); //发送取资料的请求 } void CMainFrame::OnUpdateAppCalltype(CCmdUI *pCmdUI) { BOOL bUBox = m_Setup.bSDK & SDK_UBOX ? true:false; BOOL bPurview = m_ulPurviewType == PURVIEWTYPE_ADMIN && GetUserPurview( PURVIEW_USER_MANAGER , false ) ; pCmdUI->Enable(bUBox&&bPurview); } int CMainFrame::UBox_AddUploadRecordFile(long lUBoxLogID, CString strRecordName) { #ifdef SUPPER_UBOX RecordUpload upload; upload.lUBoxLogID = lUBoxLogID; upload.strRecordName = strRecordName; m_RecordUpload.AddTail(upload); #endif return 0; } void CMainFrame::UBox_Upload_Record(void) { #ifdef SUPPER_UBOX /* m_RecordUpload_UBoxLogID = 0; m_RecordUpload_EndSendFrame = 0; m_RecordUpload_AllSize = 0; m_RecordUpload_UpSize = 0; */ if ( m_RecordUpload_UBoxLogID>0 && m_RecordUpload_EndSendFrame >0 ) { if ( GetTickCount() - m_RecordUpload_EndSendFrame > 50*1000 ) //超时,重新上传 { m_RecordUpload_UBoxLogID = 0; } /* else { if ( UBox_Upload_Record_SendNextFrame()<0 ) //上传声音文件 { m_RecordUpload_UBoxLogID = 0; //上传失败,本文件不再上传 if ( m_RecordUpload.GetCount()>0 ) m_RecordUpload.RemoveHead(); } } */ return ; } if ( m_RecordUpload_UBoxLogID==0 && m_RecordUpload.GetCount()>0) { RecordUpload upload = m_RecordUpload.GetHead(); if ( upload.lUBoxLogID<=0 ) return ; //不管什么情况,先关闭文件 try { if ( m_RecordFile.m_hFile != INVALID_HANDLE_VALUE ) m_RecordFile.Close(); } catch(...) { } if ( !m_RecordFile.Open(upload.strRecordName,CFile::modeRead|CFile::shareDenyRead) ) { //文件打开失败,可能文件不存在,不再上传 if ( m_RecordUpload.GetCount()>0 ) m_RecordUpload.RemoveHead(); return ; } m_RecordUpload_AllSize = m_RecordFile.GetLength(); if (m_RecordUpload_AllSize>5*1024*1024 ) //文件大于5M,不上传 { m_RecordFile.Close(); m_RecordUpload_UBoxLogID = 0; //上传失败,本文件不再上传 if ( m_RecordUpload.GetCount()>0 ) m_RecordUpload.RemoveHead(); if ( m_RecordFile.m_hFile != INVALID_HANDLE_VALUE ) m_RecordFile.Close(); return ; } m_RecordUpload_UpSize = 0; m_RecordUpload_UBoxLogID= upload.lUBoxLogID; if ( UBox_Upload_Record_SendNextFrame()<0 ) //上传声音文件 { m_RecordUpload_UBoxLogID = 0; //上传失败,本文件不再上传 if ( m_RecordUpload.GetCount()>0 ) m_RecordUpload.RemoveHead(); if ( m_RecordFile.m_hFile != INVALID_HANDLE_VALUE ) m_RecordFile.Close(); return ; } } #endif } int CMainFrame::UBox_Upload_Record_SendNextFrame(void) { #ifdef SUPPER_UBOX if ( m_RecordUpload_UBoxLogID <=0 ) return -1; if ( m_RecordUpload_AllSize <=0 ) return -2; long lUpSize = UBOX_RECORD_ATTACH_UPLEN; if ( m_RecordUpload_AllSize - m_RecordUpload_UpSize < lUpSize ) { lUpSize = m_RecordUpload_AllSize - m_RecordUpload_UpSize; } if ( lUpSize<=0 ) //这个表示已经发送完成了 return -3; long lSize = sizeof(REQ_UBox_Record_Up)+lUpSize; BYTE * pData = new BYTE[lSize]; memset(pData , 0 , lSize); REQ_UBox_Record_Up * pUp = (REQ_UBox_Record_Up *)pData; BYTE * pFileData = pData + sizeof(REQ_UBox_Record_Up); pUp->lCorpID = m_lCorpID; pUp->lUserID = m_lUserID; pUp->lUBoxLogID = m_RecordUpload_UBoxLogID; pUp->lAllLen = m_RecordUpload_AllSize; pUp->lUpLen = m_RecordUpload_UpSize; pUp->lDataLen = lUpSize; long lReadLen=0; try { lReadLen = m_RecordFile.Read(pFileData,lUpSize); } catch (...) { } if ( lReadLen != lUpSize ) { return -4; } SendFrame(SMSFUNC_UBOX_RECORD_UP,pData,lSize); m_RecordUpload_EndSendFrame = GetTickCount(); #endif return 0; } UINT CMainFrame::AutoBackAddress_T(void *pParam) { CMainFrame * pFrame = (CMainFrame *)pParam; CString str; try { for ( int i=0 ; i<10 && pFrame->m_bLogin ; i++ ) //延时10秒再进行自动备份操作 { Sleep(1000); } if ( pFrame->m_bLogin ) AutoBackAddress_Save(pFrame,_T("GAddress")); if ( pFrame->m_bLogin ) AutoBackAddress_Save(pFrame,_T("PAddress")); return 0; } catch(...) { } return -1; } BOOL CMainFrame::AutoBackAddress_Save(CMainFrame * pFrame , CString strDBName) { try { //创建目标文件 TCHAR szSrc[512]={0}; pFrame->GetCurrentPath( szSrc ); CString strDir = CString(szSrc) + CString(_T("AutoBackAddress\\")); ::CreateDirectory(strDir,NULL); //有理没理,先创建文件夹 COleDateTime t = COleDateTime::GetCurrentTime(); CString strFileName; for ( int i=0 ; i<200 && pFrame->m_bLogin ; i++ ) //前行100天,删除过期的备份文件 { COleDateTime t2 = t; if ( i>0 ) { t2 = t-COleDateTimeSpan(i,0,0,0); //减日 } strFileName.Format(_T("%s%s_%04d%02d%02d.dat") , strDir,strDBName,t2.GetYear(),t2.GetMonth(),t2.GetDay() ); if ( i==0 || //当天的删除 (i>5 && t2.GetDay()!=1 ) || //5天后,非每月第1日的其它文件删除 i>100 ) //100天后的数据也删除 { ::DeleteFile(strFileName); } } //当前文件名 strFileName.Format(_T("%s%s_%04d%02d%02d.dat") , strDir,strDBName,t.GetYear(),t.GetMonth(),t.GetDay() ); //拷贝一份到目标文件 CString strTempName= CString(szSrc)+CString(ACCESS_SOURCE); if ( !CopyFile( strTempName , strFileName , false ) ) //copy文件失败 { return false; } //连接数据库,拷贝数据 //解密码 char szPasswd[64]={0};strcpy(szPasswd , ACCESS_PASSWD ); char szKey[64]={0};strcpy( szKey , ACCESS_KEY ); char szNew2[64]={0};long lOut=sizeof(szNew2); TCHAR szNew[64]={0}; CDes des; des.Decrypt( szPasswd , strlen(szPasswd),szNew2,lOut,szKey,8); #ifdef UNICODE _tcscpy(szNew , CA2W(szNew2)); #else strcpy(szNew , szNew2); #endif //连接目标文件 CAdoConnection adoConnection; CAdoRecordSet AdoRS; if ( !adoConnection.ConnectAccess(strFileName,szNew ) ) //连接数据库错误,需要重新创建 { return false; } AdoRS.SetAdoConnection( &adoConnection ); //设置连接 UpdateDB(adoConnection,AdoRS); //升级目标数据库 //连接源文件 CString strSrcName; strSrcName.Format(_T("%s%d_%s.dat") , szSrc,pFrame->m_lCorpID,pFrame->m_pCurUser->szUser ); CAdoConnection adoConnectionSrc; CAdoRecordSet AdoRSSrc; if ( !adoConnectionSrc.ConnectAccess(strSrcName,szNew ) ) //连接数据库错误,需要重新创建 { return false; } AdoRSSrc.SetAdoConnection( &adoConnectionSrc ); //设置连接 AdoRS.Open(_T("paddress") , adCmdTable); long lCount = 0; AdoRSSrc.Open(strDBName , adCmdTable); while ( !AdoRSSrc.IsEOF() && pFrame->m_bLogin ) { PAddress Address={0}; COleDateTime t; AdoRSSrc.GetCollect( _T("UserID") , Address.lUserID); AdoRSSrc.GetCollect( _T("UserType") , Address.szUserType); AdoRSSrc.GetCollect( _T("GroupID") , Address.szGroupID); AdoRSSrc.GetCollect( _T("Name") , Address.szName); AdoRSSrc.GetCollect( _T("NickName") , Address.szNickName); AdoRSSrc.GetCollect( _T("Sex") , Address.szSex); AdoRSSrc.GetCollect( _T("Birthday"), t); t.GetAsSystemTime(Address.tBirthday); AdoRSSrc.GetCollect( _T("Ltd") , Address.szLtd); AdoRSSrc.GetCollect( _T("Addr") , Address.szAddress); AdoRSSrc.GetCollect( _T("Job") , Address.szJob); AdoRSSrc.GetCollect( _T("Tel") , Address.szTel); AdoRSSrc.GetCollect( _T("Fax") , Address.szFax); AdoRSSrc.GetCollect( _T("Email") , Address.szEmail); AdoRSSrc.GetCollect( _T("Mobile") , Address.szMobile); AdoRSSrc.GetCollect( _T("QQ") , Address.szQQ); AdoRSSrc.GetCollect( _T("CreateTime"), t); t.GetAsSystemTime(Address.tCreateTime); AdoRSSrc.GetCollect( _T("BZ") , Address.szBZ); #ifdef MOBSET_VIPINT try { AdoRSSrc.GetCollect( _T("VipInt") , Address.lVipInt); } catch(...) { } #endif AdoRS.AddNew(); //AdoRS.PutCollect( _T("UserID") , Address.lUserID); AdoRS.PutCollect( _T("UserType") , Address.szUserType); AdoRS.PutCollect( _T("GroupID") , Address.szGroupID); AdoRS.PutCollect( _T("Name") , Address.szName); AdoRS.PutCollect( _T("NickName") , Address.szNickName); AdoRS.PutCollect( _T("Sex") , Address.szSex); AdoRS.PutCollect( _T("Birthday") , Address.tBirthday); AdoRS.PutCollect( _T("Ltd") , Address.szLtd); AdoRS.PutCollect( _T("Addr") , Address.szAddress); AdoRS.PutCollect( _T("Job") , Address.szJob); AdoRS.PutCollect( _T("Tel") , Address.szTel); AdoRS.PutCollect( _T("Fax") , Address.szFax); AdoRS.PutCollect( _T("Email") , Address.szEmail); AdoRS.PutCollect( _T("Mobile") , Address.szMobile); AdoRS.PutCollect( _T("QQ") , Address.szQQ); AdoRS.PutCollect( _T("CreateTime") , Address.tCreateTime); AdoRS.PutCollect( _T("BZ") , Address.szBZ); #ifdef MOBSET_VIPINT try { AdoRS.PutCollect( _T("VipInt") , Address.lVipInt); } catch(...) { } #endif AdoRS.Update(); AdoRSSrc.MoveNext(); lCount ++; } AdoRS.Close(); adoConnection.Close(); AdoRSSrc.Close(); AdoRSSrc.Close(); return true; } catch(...) { } return false; } void CMainFrame::OnShellIcon_Show() { OnShellIcon_Show2(false); } void CMainFrame::OnShellIcon_Show2(BOOL bShowRecever) { if ( m_bLogin ) //已登录 { if ( !IsWindowVisible() ) { ShowWindow( SW_SHOW ); ShowWindow( SW_RESTORE ); this->SetForegroundWindow(); //ShowWindow( SW_SHOWDEFAULT ); //显示主窗口 } else { //ShowWindow( SW_SHOW ); //ShowWindow( SW_RESTORE ); this->SetForegroundWindow(); } if ( bShowRecever ) { BOOL bShow = m_pBaseView->m_dlgSmsJS.ShowNoReaderMsg(); //显示已读短信 #ifdef SUPPER_FUNC_QX if ( !bShow ) bShow = m_pBaseView->m_dlgQXBoxLog.ShowNoReaderMsg(); //显示企Q通 #endif } } else { this->SetForegroundWindow(); } } void CMainFrame::OnShellIcon_Sms() { OnTShowsmslist(); } void CMainFrame::OnShellIcon_Mms() { OnTShowmmslist(); } void CMainFrame::OnShellIcon_Exit() { if ( m_bLogin ) PostMessage( WM_CLOSE ); else PostMessage( WM_QUIT ); } void CMainFrame::OnAppWhite2() { #ifdef _UNICODE if ( GetUserPurview( PURVIEW_USER_MANAGER , false ) && m_Ans_Login2.bUseWhite2 ) { REQ_White2_Get * pReq = new REQ_White2_Get; memset(pReq,0,sizeof(REQ_White2_Get)); pReq->lQueryType = 0; //仅查数量 pReq->lCorpID = m_lCorpID; pReq->lUserID = m_lUserID; //发送请求查看 SendFrame( SMSFUNC_WHITE2_GET , (BYTE*)pReq , sizeof(REQ_White2_Get) ); } #endif } void CMainFrame::OnUpdateAppWhite2(CCmdUI *pCmdUI) { #ifdef _UNICODE pCmdUI->Enable(GetUserPurview( PURVIEW_USER_MANAGER , false ) && m_Ans_Login2.bUseWhite2); #else pCmdUI->Enable(false); #endif }