1751 lines
48 KiB
C++
1751 lines
48 KiB
C++
// FSmsJS.cpp : implementation file
|
||
//
|
||
|
||
#include "stdafx.h"
|
||
#include "CorpSms.h"
|
||
#include "FSmsJS.h"
|
||
|
||
#ifdef _DEBUG
|
||
#define new DEBUG_NEW
|
||
#undef THIS_FILE
|
||
static char THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CFSmsJS dialog
|
||
#include "MainFrm.h"
|
||
#include "ProcessSocket.h"
|
||
#include "DLG_RecvSms.h"
|
||
#include "DLG_SmsLogSee.h"
|
||
#include "DLG_SMSJS_Export.h"
|
||
#include "DLG_TypeSetup.h"
|
||
|
||
#ifdef SUPPERGSM
|
||
#include "..\public\SendThread\SendThread.h"
|
||
#endif
|
||
|
||
#include "DLG_Find_RecvSms.h"
|
||
|
||
CFSmsJS::CFSmsJS(CWnd* pParent /*=NULL*/)
|
||
: CDialog(CFSmsJS::IDD, pParent)
|
||
{
|
||
//{{AFX_DATA_INIT(CFSmsJS)
|
||
// NOTE: the ClassWizard will add member initialization here
|
||
//}}AFX_DATA_INIT
|
||
|
||
m_bInit = false;
|
||
m_bRefresh = false;
|
||
|
||
memset(&m_Setup,0,sizeof(m_Setup));
|
||
#ifdef SUPPERGSM
|
||
m_pSendThread = NULL;
|
||
#endif
|
||
m_bOneGetSim = true;
|
||
m_lMobileRecvCount = 0;
|
||
m_pMenuType = NULL;
|
||
m_lMenuTypeCount = 0;
|
||
m_bShowToday = true;
|
||
m_bRecvFirst = true;
|
||
m_lIconCount = 0;
|
||
}
|
||
|
||
|
||
void CFSmsJS::DoDataExchange(CDataExchange* pDX)
|
||
{
|
||
CDialog::DoDataExchange(pDX);
|
||
//{{AFX_DATA_MAP(CFSmsJS)
|
||
DDX_Control(pDX, IDC_SMSJS_LIST, m_wndList);
|
||
//}}AFX_DATA_MAP
|
||
}
|
||
|
||
|
||
BEGIN_MESSAGE_MAP(CFSmsJS, CDialog)
|
||
//{{AFX_MSG_MAP(CFSmsJS)
|
||
ON_WM_SIZE()
|
||
ON_NOTIFY(LVN_KEYDOWN, IDC_SMSJS_LIST, OnKeydownSmsjsList)
|
||
ON_NOTIFY(NM_RCLICK, IDC_SMSJS_LIST, OnRclickSmsjsList)
|
||
ON_NOTIFY(NM_DBLCLK, IDC_SMSJS_LIST, OnDblclkSmsjsList)
|
||
ON_WM_TIMER()
|
||
ON_WM_DESTROY()
|
||
//}}AFX_MSG_MAP
|
||
ON_COMMAND( MENU_SMSJS_DEL , On_User_Del )
|
||
ON_COMMAND( MENU_SMSJS_SEE , On_User_See )
|
||
ON_COMMAND( MENU_SMSJS_SEND , On_User_Send )
|
||
ON_COMMAND( MENU_SMSJS_ZF , On_User_ZF )
|
||
ON_COMMAND( MENU_SMSJS_EXPORT , On_User_Export )
|
||
ON_COMMAND( MENU_SMSJS_REFRESH , On_User_Refresh )
|
||
ON_COMMAND( MENU_SMSJS_FIND , On_User_Find )
|
||
ON_COMMAND( MENU_SMSJS_TYPESETUP , On_User_TypeSetup )
|
||
ON_COMMAND(MENU_SMSJS_ALLREAD, On_User_AllRead)
|
||
#ifdef SUPPERGSM
|
||
ON_MESSAGE( TW_INIT , On_TW_Init ) //´®¿ÚÏ̷߳µ»ØµÄÏûÏ¢
|
||
ON_MESSAGE( TW_SEND , On_TW_Send )
|
||
ON_MESSAGE( TW_RECV , On_TW_Recv )
|
||
ON_MESSAGE( TW_GETSIM , On_TW_GetSim )
|
||
ON_MESSAGE( TW_CLEAR , On_TW_Clear )
|
||
ON_MESSAGE( TW_DELETE , On_TW_Delete )
|
||
#endif
|
||
|
||
END_MESSAGE_MAP()
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// CFSmsJS message handlers
|
||
|
||
BOOL CFSmsJS::OnInitDialog()
|
||
{
|
||
USES_CONVERSION;
|
||
CDialog::OnInitDialog();
|
||
|
||
//È¡µÃ¹²ÓòÎÊý
|
||
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
|
||
this->GetParent()->GetParentFrame();
|
||
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
|
||
m_pSocket = &m_pMainFrame->m_Socket;
|
||
m_AdoRS.SetAdoConnection( &m_pMainFrame->m_adoConnection );
|
||
m_AdoRS2.SetAdoConnection( &m_pMainFrame->m_adoConnection );
|
||
//Á¬½Óµ½ºÅ¶Î±í
|
||
TCHAR szPath[512]={0};
|
||
m_pMainFrame->GetCurrentPath( szPath );
|
||
_tcscat( szPath , _T("SMSData.dat") ); //Êý¾Ý¿âÎļþÃû
|
||
//½âÃÜÂë
|
||
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
|
||
strcpy(szNew,szNew2);
|
||
#endif
|
||
|
||
if ( !m_HDadoConnection.ConnectAccess(szPath,szNew ) ) //Á¬½ÓÊý¾Ý¿â´íÎó,ÐèÒªÖØÐ´´½¨
|
||
{
|
||
MessageBox( _T("ϵͳÎļþ¶ªÊ§6£¬ÇëÖØÐ°²×°!") , _T("ÖÂÃü´íÎó") , MB_ICONWARNING );
|
||
return false;
|
||
}
|
||
m_HDAdoRS.SetAdoConnection( &m_HDadoConnection ); //ÉèÖÃÁ¬½Ó
|
||
|
||
|
||
//³õʼ»¯List
|
||
m_Image.Create(16,16,ILC_COLOR32|ILC_MASK,5,5);
|
||
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SMS_UNREAD) );
|
||
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SMS_READ) );
|
||
m_wndList.SubClassWindow2();
|
||
#ifdef YQ_VER
|
||
m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,120;·¢ËÍÈË,100;½ÓÊÕºÅÂë,120; ¶ÌÐÅÄÚÈÝ,280;ÊÕÐÅʱ¼ä,130;¶ÌÐÅ·ÖÀà,100;ÊÖ»ú¹éÊôµØ,120;"));
|
||
#else
|
||
#ifdef MOBSET_OEM_SNLD
|
||
m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,120;·¢ËÍÈË,80;½ÓÊÕºÅÂë,120; ¶ÌÐÅÄÚÈÝ,200;ÊÕÐÅʱ¼ä,130;êdzÆ,80;ÐÔ±ð,50; ÉúÈÕ,90; ¹«Ë¾,80;Ö°Îñ,80;µç»°,80;´«Õæ,80;Email,80;QQ,80;±¸×¢,80;"));
|
||
#else
|
||
#ifdef MOBSET_OEM_BYSZY
|
||
m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,120;·¢ËÍÈË,100;½ÓÊÕºÅÂë,120; ¶ÌÐÅÄÚÈÝ,280;ÊÕÐÅʱ¼ä,130;ÊÖ»ú¹éÊôµØ,120;¹éÊôÓû§×é,120;"));
|
||
#else
|
||
m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,120;·¢ËÍÈË,100;½ÓÊÕºÅÂë,120; ¶ÌÐÅÄÚÈÝ,280;ÊÕÐÅʱ¼ä,130;ÊÖ»ú¹éÊôµØ,120;"));
|
||
#endif
|
||
#endif
|
||
|
||
#endif
|
||
m_wndList.SetGridLines(true);
|
||
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
|
||
//m_wndList.SetBkColor( RGB(237,191,175) );
|
||
//m_wndList.SetTextBkColor( RGB(237,191,175) );
|
||
|
||
m_bInit = true;
|
||
|
||
|
||
//SetTimer( 1 , 1000 , NULL ); //½øÐÐÁ¬½ÓÊÖ»ú²Ù×÷
|
||
|
||
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// EXCEPTION: OCX Property Pages should return FALSE
|
||
}
|
||
|
||
BOOL CFSmsJS::ReHide()
|
||
{
|
||
ShowWindow( SW_HIDE );
|
||
return true;
|
||
}
|
||
|
||
BOOL CFSmsJS::ReShow(BOOL bRefresh)
|
||
{
|
||
ShowWindow( SW_SHOW );
|
||
if ( bRefresh || !m_bRefresh )
|
||
{
|
||
RefreshInfo();
|
||
}
|
||
return true;
|
||
}
|
||
|
||
BOOL CFSmsJS::RefreshInfo()
|
||
{
|
||
m_wndList.ShowWindow( SW_HIDE ); //ΪÁ˼ӿìÏÔʾËÙ¶È
|
||
|
||
m_bRefresh = true;
|
||
m_wndList.DeleteAllItems();
|
||
TCHAR szSelect[512]={0};
|
||
if ( m_bShowToday )
|
||
{
|
||
//½ö²éѯµ±ÌìµÄ
|
||
SYSTEMTIME t;::GetLocalTime(&t);
|
||
if ( m_pMainFrame->m_Setup.bSQLUse )
|
||
_stprintf( szSelect , _T("select * from smsRecv where RecvTime>='%04d%02d%02d' %s order by RecvTime"),t.wYear,t.wMonth,t.wDay,m_strFindAdd ); //²éѯÒÑ·¢¶ÌÐÅ
|
||
else
|
||
_stprintf( szSelect , _T("select * from smsRecv where RecvTime>=#%04d-%02d-%02d# %s order by RecvTime"),t.wYear,t.wMonth,t.wDay,m_strFindAdd ); //²éѯÒÑ·¢¶ÌÐÅ
|
||
}
|
||
else
|
||
{
|
||
if ( m_strFindAdd.GetLength()>0 )
|
||
_stprintf( szSelect , _T("select * from smsRecv where 1 %s order by RecvTime"),m_strFindAdd ); //²éѯ½ÓÊռǼ
|
||
else
|
||
_stprintf( szSelect , _T("select * from smsRecv order by RecvTime") ); //²éѯ½ÓÊռǼ
|
||
}
|
||
//_stprintf( szSelect , _T("select * from smsRecv") ); //²éѯ½ÓÊռǼ
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
COleDateTime tRecv;
|
||
long lCount = m_AdoRS.GetRecordCount();
|
||
if ( b && lCount )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
long iItem = 0;
|
||
while( !m_AdoRS.IsEOF() )
|
||
{
|
||
long lRecvID;
|
||
BOOL bRead;
|
||
TCHAR szSendNum[128]={0};
|
||
TCHAR szSender[32]={0};
|
||
TCHAR szRecvNum[32]={0};
|
||
TCHAR szMsg[180]={0};
|
||
TCHAR szType1[64]={0};
|
||
TCHAR szType2[32]={0};
|
||
TCHAR szProvince[64]={0};
|
||
TCHAR szCity[32]={0};
|
||
|
||
m_AdoRS.GetCollect( _T("RecvID") , lRecvID );
|
||
m_AdoRS.GetCollect( _T("Reader") , bRead );
|
||
m_AdoRS.GetCollect( _T("SendNum") , szSendNum );
|
||
m_AdoRS.GetCollect( _T("Sender") , szSender );
|
||
m_AdoRS.GetCollect( _T("RecvNum") , szRecvNum );
|
||
m_AdoRS.GetCollect( _T("Msg") , szMsg );
|
||
m_AdoRS.GetCollect( _T("RecvTime"), tRecv );
|
||
m_AdoRS.GetCollect( _T("Province") , szProvince );
|
||
m_AdoRS.GetCollect( _T("City") , szCity );
|
||
|
||
#ifdef MOBSET_OEM_SNLD
|
||
CString NickName;
|
||
CString Sex;
|
||
COleDateTime Birthday;
|
||
CString Ltd;
|
||
CString Job;
|
||
CString Tel;
|
||
CString Fax;
|
||
CString Email;
|
||
CString QQ;
|
||
CString BZ;
|
||
m_AdoRS.GetCollect( _T("NickName") , NickName );
|
||
m_AdoRS.GetCollect( _T("Sex") , Sex );
|
||
m_AdoRS.GetCollect( _T("Birthday") , Birthday );
|
||
m_AdoRS.GetCollect( _T("Ltd") , Ltd );
|
||
m_AdoRS.GetCollect( _T("Job") , Job );
|
||
m_AdoRS.GetCollect( _T("Tel") , Tel );
|
||
m_AdoRS.GetCollect( _T("Fax") , Fax );
|
||
m_AdoRS.GetCollect( _T("Email") , Email );
|
||
m_AdoRS.GetCollect( _T("QQ") , QQ );
|
||
m_AdoRS.GetCollect( _T("BZ") , BZ );
|
||
#endif
|
||
#ifdef MOBSET_OEM_BYSZY
|
||
CString Local;
|
||
m_AdoRS.GetCollect( _T("LocalGroup") , Local );
|
||
#endif
|
||
//
|
||
//m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,100;½ÓÊÕºÅÂë,80; ¶ÌÐÅÄÚÈÝ,280;ÊÕÐÅʱ¼ä,120;"));
|
||
//m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,150;½ÓÊÕºÅÂë,120; ¶ÌÐÅÄÚÈÝ,280;ÊÕÐÅʱ¼ä,130;¶ÌÐÅ·ÖÀà,100;ÊÖ»ú¹éÊôµØ,120;"));
|
||
m_wndList.InsertItem( 0 , _itot( iItem+1,szSelect,10) , bRead ); //ÒѶÁÓëδ¶Áͼ±ê²»Ò»Ñù
|
||
m_wndList.SetItemData( 0,lRecvID );
|
||
#ifdef MOBSET_OEM_SNLD
|
||
//m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,120;·¢ËÍÈË,80;½ÓÊÕºÅÂë,120; ¶ÌÐÅÄÚÈÝ,200;ÊÕÐÅʱ¼ä,130;êdzÆ,80;ÐÔ±ð,50; ¹«Ë¾,80;Ö°Îñ,80;µç»°,80;´«Õæ,80;Email,80;QQ,80;±¸×¢,80;"));
|
||
m_wndList.SetItemText(0,1,szSendNum);
|
||
m_wndList.SetItemText(0,2,szSender);
|
||
m_wndList.SetItemText(0,3,szRecvNum);
|
||
m_wndList.SetItemText(0,4,szMsg);
|
||
if ( tRecv.GetStatus() == COleDateTime::valid )
|
||
{
|
||
_stprintf( szMsg , _T("%04d.%02d.%02d %02d:%02d") , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() );
|
||
m_wndList.SetItemText(0,5,szMsg);
|
||
}
|
||
m_wndList.SetItemText(0,6,NickName);
|
||
m_wndList.SetItemText(0,7,Sex);
|
||
if ( Birthday.GetStatus() == COleDateTime::valid )
|
||
{
|
||
_stprintf( szMsg , _T("%04d.%02d.%02d") ,Birthday.GetYear(), Birthday.GetMonth(),Birthday.GetDay() );
|
||
m_wndList.SetItemText(0,8,szMsg);
|
||
}
|
||
m_wndList.SetItemText(0,9,Ltd);
|
||
m_wndList.SetItemText(0,10,Job);
|
||
m_wndList.SetItemText(0,11,Tel);
|
||
m_wndList.SetItemText(0,12,Fax);
|
||
m_wndList.SetItemText(0,13,Email);
|
||
m_wndList.SetItemText(0,14,QQ);
|
||
m_wndList.SetItemText(0,15,BZ);
|
||
#else
|
||
m_wndList.SetItemText(0,1,szSendNum);
|
||
m_wndList.SetItemText(0,2,szSender);
|
||
m_wndList.SetItemText(0,3,szRecvNum);
|
||
m_wndList.SetItemText(0,4,szMsg);
|
||
if ( tRecv.GetStatus() == COleDateTime::valid )
|
||
{
|
||
_stprintf( szMsg , _T("%04d.%02d.%02d %02d:%02d") , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() );
|
||
m_wndList.SetItemText(0,5,szMsg);
|
||
}
|
||
|
||
if ( _tcslen(szCity)>0 )
|
||
{
|
||
_tcscat( szProvince , _T("-") );
|
||
_tcscat( szProvince , szCity );
|
||
}
|
||
#ifdef YQ_VER
|
||
m_AdoRS.GetCollect( _T("Type1") , szType1 );
|
||
m_AdoRS.GetCollect( _T("Type2") , szType2 );
|
||
if ( _tcslen(szType2)>0 )
|
||
{
|
||
_tcscat( szType1 , _T("-") );
|
||
_tcscat( szType1 , szType2 );
|
||
}
|
||
m_wndList.SetItemText(0,6,szType1);
|
||
m_wndList.SetItemText(0,7,szProvince);
|
||
#else
|
||
m_wndList.SetItemText(0,6,szProvince);
|
||
#endif
|
||
#ifdef MOBSET_OEM_BYSZY
|
||
m_wndList.SetItemText(0,7,Local);
|
||
#endif
|
||
#endif
|
||
|
||
iItem++;
|
||
m_AdoRS.MoveNext();
|
||
}
|
||
}
|
||
m_wndList.ShowWindow( SW_SHOW ); //ΪÁ˼ӿìÏÔʾËÙ¶È
|
||
RecvSms(); //ȡеĶÌÐÅÄÚÈÝ
|
||
FlashIcon(true,false); //ÉÁ¶¯Í¼±ê
|
||
return true;
|
||
}
|
||
|
||
void CFSmsJS::OnSize(UINT nType, int cx, int cy)
|
||
{
|
||
CDialog::OnSize(nType, cx, cy);
|
||
|
||
if ( m_bInit )
|
||
{
|
||
m_wndList.MoveWindow( 0 , 0 , cx,cy);
|
||
}
|
||
}
|
||
|
||
long CFSmsJS::GetCurrentSelected()
|
||
{
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
if ( pos )
|
||
{
|
||
return m_wndList.GetNextSelectedItem(pos);
|
||
}
|
||
return -1;
|
||
}
|
||
|
||
void CFSmsJS::OnKeydownSmsjsList(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
|
||
*pResult = 0;
|
||
|
||
if ( pLVKeyDow->wVKey == VK_DELETE )
|
||
{
|
||
On_User_Del();
|
||
}
|
||
if ( pLVKeyDow->wVKey == VK_SPACE)
|
||
{
|
||
On_User_See();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'S' || pLVKeyDow->wVKey == 's')
|
||
{
|
||
On_User_Send();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'Z' || pLVKeyDow->wVKey == 'z')
|
||
{
|
||
On_User_ZF();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'R' || pLVKeyDow->wVKey == 'r')
|
||
{
|
||
On_User_Refresh();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'F' || pLVKeyDow->wVKey == 'f')
|
||
{
|
||
On_User_Find();
|
||
}
|
||
if ( pLVKeyDow->wVKey == 'A' || pLVKeyDow->wVKey == 'a')
|
||
{
|
||
m_wndList.SelectAllItems();
|
||
}
|
||
}
|
||
|
||
void CFSmsJS::RecvSms()
|
||
{
|
||
//ûÓÐȨÏÞ
|
||
if ( !m_pMainFrame->GetUserPurview( PURVIEW_RECVG , false ) &&
|
||
!m_pMainFrame->GetUserPurview( PURVIEW_RECVP , false ) )
|
||
return ;
|
||
|
||
REQ_Recv2 * pRecv = new REQ_Recv2;
|
||
pRecv->lCorpID = m_pMainFrame->m_lCorpID;
|
||
pRecv->lUserID = m_pMainFrame->m_lUserID;
|
||
m_pMainFrame->SendFrame( SMSFUNC_RECV2 , (BYTE*)pRecv , sizeof(REQ_Recv2));
|
||
}
|
||
|
||
BOOL CFSmsJS::ProcessSocket(Socket_Head *pHead)
|
||
{
|
||
//ÊÕµ½¶ÌÐÅ
|
||
if (pHead->lFuncType == SMSFUNC_RECV)
|
||
{
|
||
ANS_Recv * pRecv = (ANS_Recv *)pHead->pFrame;
|
||
ANS_RecvData * pData = (ANS_RecvData *)(pHead->pFrame+sizeof(ANS_Recv));
|
||
m_wndList.ShowWindow( SW_HIDE ); //ΪÁ˼ӿìÏÔʾËÙ¶È
|
||
//Ìí¼Óµ½Êý¾Ý¿âÀï
|
||
for ( int i = 0;i<pRecv->lCount;i++)
|
||
{
|
||
ANS_RecvData2 sms={0};
|
||
sms.lLogID = pData->lLogID;
|
||
_tcscpy(sms.szRecvNum , pData->szRecvNum );
|
||
_tcscpy(sms.szSendNum , pData->szSendNum );
|
||
_tcscpy(sms.szMsg , pData->szMsg );
|
||
sms.tRecv = pData->tRecv;
|
||
RecvNewSms(sms,i<3?true:false);
|
||
pData++; //ÏÔʾÏÂÒ»Ìõ
|
||
}
|
||
m_wndList.ShowWindow( SW_SHOW ); //ΪÁ˼ӿìÏÔʾËÙ¶È
|
||
|
||
if ( m_bRecvFirst && pRecv->lCount <= 0 && !m_pMainFrame->m_Setup.bSmsNoTip) //ûÊÕµ½ÐµĶÌÐÅ
|
||
{
|
||
m_bRecvFirst = false;
|
||
CString str;
|
||
str = _T("select count(*) as abc from smsrecv where Reader=0 or Reader is NULL");
|
||
if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 )
|
||
{
|
||
long lRead=0;
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect(_T("abc"),lRead);
|
||
m_AdoRS.Close();
|
||
if ( lRead>0 )
|
||
{
|
||
SMS_Recv2 sms2={0};
|
||
//_stprintf( sms2.szMsg , _T("ÄãÓÐ%dÌõδ¶Á¶ÌÐÅ!"),lRead );
|
||
//_tcscpy( sms2.szSender , _T("¶ÌÐÅÒ×ÌáÐÑ") );
|
||
_stprintf( sms2.szTime , _T("ÄãÓÐ%dÌõδ¶Á¶ÌÐÅ!"),lRead );
|
||
DLG_RecvSms * dlg = new DLG_RecvSms;
|
||
dlg->Create(IDD_RECVSMS , this);
|
||
//dlg->SetPara( &sms2,_T("¶ÌÐÅÒ×ÌáÐÑ") );
|
||
dlg->SetPara( &sms2,_T("δ¶Á¶ÌÐÅÌáÐÑ") );
|
||
dlg->ShowWindow( SW_SHOW);
|
||
this->SetFocus();
|
||
}
|
||
}
|
||
}
|
||
|
||
return true;
|
||
}
|
||
//ÊÕµ½¶ÌÐÅ
|
||
if (pHead->lFuncType == SMSFUNC_RECV2)
|
||
{
|
||
ANS_Recv2 * pRecv = (ANS_Recv2 *)pHead->pFrame;
|
||
ANS_RecvData2 * pData = (ANS_RecvData2 *)(pHead->pFrame+sizeof(ANS_Recv2));
|
||
m_wndList.ShowWindow( SW_HIDE ); //ΪÁ˼ӿìÏÔʾËÙ¶È
|
||
//Ìí¼Óµ½Êý¾Ý¿âÀï
|
||
for ( int i = 0;i<pRecv->lCount;i++)
|
||
{
|
||
RecvNewSms(*pData,i<3?true:false);
|
||
pData++; //ÏÔʾÏÂÒ»Ìõ
|
||
}
|
||
m_wndList.ShowWindow( SW_SHOW ); //ΪÁ˼ӿìÏÔʾËÙ¶È
|
||
|
||
if ( m_bRecvFirst && pRecv->lCount <= 0 && !m_pMainFrame->m_Setup.bSmsNoTip) //ûÊÕµ½ÐµĶÌÐÅ
|
||
{
|
||
m_bRecvFirst = false;
|
||
CString str;
|
||
str = _T("select count(*) as abc from smsrecv where Reader=0 or Reader is NULL");
|
||
if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 )
|
||
{
|
||
long lRead=0;
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect(_T("abc"),lRead);
|
||
m_AdoRS.Close();
|
||
if ( lRead>0 )
|
||
{
|
||
SMS_Recv2 sms2={0};
|
||
//_stprintf( sms2.szMsg , _T("ÄãÓÐ%dÌõδ¶Á¶ÌÐÅ!"),lRead );
|
||
//_tcscpy( sms2.szSender , _T("¶ÌÐÅÒ×ÌáÐÑ") );
|
||
_stprintf( sms2.szTime , _T("ÄãÓÐ%dÌõδ¶Á¶ÌÐÅ!"),lRead );
|
||
DLG_RecvSms * dlg = new DLG_RecvSms;
|
||
dlg->Create(IDD_RECVSMS , this);
|
||
dlg->SetPara( &sms2,_T("δ¶Á¶ÌÐÅÌáÐÑ") );
|
||
//dlg->SetPara( &sms2,"¶ÌÐÅÒ×ÌáÐÑ" );
|
||
dlg->ShowWindow( SW_SHOW);
|
||
this->SetFocus();
|
||
}
|
||
}
|
||
}
|
||
|
||
return true;
|
||
}
|
||
return false;
|
||
}
|
||
|
||
|
||
void CFSmsJS::On_User_AllRead()
|
||
{
|
||
CString strSelect;
|
||
strSelect = _T("update smsrecv set Reader=1 where Reader<>1");
|
||
m_AdoRS.Open(strSelect);
|
||
On_User_Refresh();
|
||
}
|
||
|
||
void CFSmsJS::On_User_See()
|
||
{
|
||
long lItem = GetCurrentSelected();
|
||
if ( lItem <0 )
|
||
return ;
|
||
SMS_See sms = GetSms(lItem);
|
||
CString strSendNum = sms.szSender;
|
||
if ( _tcslen(sms.szSender2) )
|
||
{
|
||
_tcscat(sms.szSender,_T("-") );
|
||
_tcscat(sms.szSender,sms.szSender2);
|
||
}
|
||
ReadSms(lItem); //״̬±äΪÒѶÁ
|
||
DLG_SmsLogSee dlg(this);
|
||
sms.lType = SMS_SEE_TYPE_RECV;
|
||
dlg.SetParam(sms);
|
||
dlg.SetReadSms(true);
|
||
if ( dlg.DoModal() == 300 ) //°´ÁËÁ¢¼´»Ø¸´
|
||
{
|
||
if ( m_pMainFrame->m_pFuncView->On_User_List_Add() ) //н¨Áбí
|
||
{
|
||
//Ìí¼ÓÄÚÈÝ
|
||
m_pMainFrame->m_pFuncView->m_DLGSend.List_SetMsg( _T("") ); //ÄÚÈÝΪ¿Õ
|
||
//Ìí¼ÓºÅÂë
|
||
//·ÖÅäÊý¾Ý
|
||
long lCount = 1;
|
||
long lSize = sizeof(Send_User)*lCount;
|
||
BYTE *pS = new BYTE[lSize];
|
||
memset( pS , 0 , lSize );
|
||
Send_User * pUser = (Send_User * )pS;
|
||
_tcscpy(pUser->szName , sms.szSender2 );
|
||
_tcscpy(pUser->szMobile , strSendNum );
|
||
m_pMainFrame->m_pFuncView->On_User_List_AddUser(lCount,(Send_User*)pS);
|
||
delete pS;
|
||
}
|
||
}
|
||
}
|
||
void CFSmsJS::On_User_Send()
|
||
{
|
||
long lItem = GetCurrentSelected();
|
||
if ( lItem <0 )
|
||
return ;
|
||
|
||
ReadSms(lItem); //״̬±äΪÒѶÁ
|
||
|
||
if ( m_pMainFrame->m_pFuncView->On_User_List_Add() ) //н¨Áбí
|
||
{
|
||
//Ìí¼ÓºÅÂë
|
||
long lCount = m_wndList.GetSelectedCount();
|
||
if ( lCount <= 0 )
|
||
return ;
|
||
//·ÖÅäÊý¾Ý
|
||
long lSize = sizeof(Send_User)*lCount;
|
||
BYTE *pS = new BYTE[lSize];
|
||
memset( pS , 0 , lSize );
|
||
Send_User * pUser = (Send_User * )pS;
|
||
|
||
TCHAR szSelect[128]={0};
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
while ( pos )
|
||
{
|
||
long lItem = m_wndList.GetNextSelectedItem( pos );
|
||
long lRecvID = m_wndList.GetItemData( lItem );
|
||
if ( lRecvID > 0 )
|
||
{
|
||
_stprintf( szSelect , _T("select * from smsrecv where RecvID=%d"), lRecvID );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if ( b && m_AdoRS.GetRecordCount() )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect( _T("Sender") , pUser->szName);
|
||
m_AdoRS.GetCollect( _T("SendNum") , pUser->szMobile);
|
||
}
|
||
}
|
||
pUser ++;
|
||
}
|
||
m_pMainFrame->m_pFuncView->On_User_List_AddUser(lCount,(Send_User*)pS);
|
||
delete pS;
|
||
}
|
||
}
|
||
void CFSmsJS::On_User_ZF()
|
||
{
|
||
long lItem = GetCurrentSelected();
|
||
if ( lItem <0 )
|
||
return ;
|
||
|
||
ReadSms(lItem); //״̬±äΪÒѶÁ
|
||
|
||
SMS_See sms = GetSms(lItem);
|
||
|
||
if ( m_pMainFrame->m_pFuncView->On_User_List_Add() ) //н¨Áбí
|
||
{
|
||
//Ìí¼ÓÄÚÈÝ
|
||
m_pMainFrame->m_pFuncView->m_DLGSend.List_SetMsg( sms.szMsg ); //ÄÚÈÝΪ¿Õ
|
||
}
|
||
}
|
||
void CFSmsJS::On_User_Del()
|
||
{
|
||
long lCount = m_wndList.GetSelectedCount();
|
||
long *lDel = new long[lCount+2];
|
||
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
||
long i = 0;
|
||
while(pos)
|
||
{
|
||
lDel[i]= m_wndList.GetNextSelectedItem(pos);
|
||
i ++;
|
||
}
|
||
long lRecvID = 0;
|
||
TCHAR szSelect[128];
|
||
//µ¹×ªÉ¾³ý
|
||
m_wndList.ShowWindow( SW_HIDE ); //¼Ó¿ìÏÔʾµÄËÙ¶È
|
||
for ( i = lCount ; i>0 ; i-- )
|
||
{
|
||
lRecvID = m_wndList.GetItemData( lDel[i-1] );
|
||
_stprintf( szSelect , _T("delete from smsrecv where RecvID=%d ") , lRecvID );
|
||
BOOL b = m_AdoRS.Open( szSelect );
|
||
if ( b && m_AdoRS.GetRecordCount() )
|
||
{
|
||
m_wndList.DeleteItem(lDel[i-1]); //´ÓÁбíÖÐɾ³ý
|
||
}
|
||
}
|
||
m_wndList.ShowWindow( SW_SHOW ); //¼Ó¿ìÏÔʾµÄËÙ¶È
|
||
delete lDel;
|
||
}
|
||
void CFSmsJS::On_User_Export()
|
||
{
|
||
DLG_SMSJS_Export dlg(this);
|
||
dlg.SetParam(&m_AdoRS2,&m_wndList);
|
||
dlg.DoModal();
|
||
}
|
||
void CFSmsJS::On_User_Refresh()
|
||
{
|
||
RefreshInfo();
|
||
}
|
||
|
||
void CFSmsJS::On_User_Find()
|
||
{
|
||
CString strTemp;
|
||
DLG_Find_RecvSms dlg(this);
|
||
dlg.SetParam(!m_bShowToday);
|
||
if ( dlg.DoModal() == IDOK )
|
||
{
|
||
m_strFindAdd = _T("");
|
||
if ( !m_bShowToday )
|
||
{
|
||
strTemp.Format( _T(" AND RecvTime>=#%04d-%02d-%02d# AND RecvTime<=#%04d-%02d-%02d 23:59:59#"),dlg.m_TBegin.GetYear(),dlg.m_TBegin.GetMonth(),dlg.m_TBegin.GetDay(),dlg.m_TEnd.GetYear(),dlg.m_TEnd.GetMonth(),dlg.m_TEnd.GetDay());
|
||
m_strFindAdd = strTemp;
|
||
}
|
||
if ( dlg.m_strSendNum.GetLength()>0 )
|
||
{
|
||
strTemp.Format( _T(" AND SendNum like '%%%s%%'"),dlg.m_strSendNum );
|
||
m_strFindAdd += strTemp;
|
||
}
|
||
if ( dlg.m_strRecvNum.GetLength()>0 )
|
||
{
|
||
strTemp.Format( _T(" AND RecvNum like '%%%s%%'"),dlg.m_strRecvNum );
|
||
m_strFindAdd += strTemp;
|
||
}
|
||
if ( dlg.m_strMsg.GetLength()>0 )
|
||
{
|
||
strTemp.Format( _T(" AND Msg like '%%%s%%'"),dlg.m_strMsg );
|
||
m_strFindAdd += strTemp;
|
||
}
|
||
On_User_Refresh();
|
||
|
||
m_strFindAdd = _T(""); //ˢк󣬲éѯ½áÊø
|
||
}
|
||
}
|
||
|
||
void CFSmsJS::On_User_TypeSetup()
|
||
{
|
||
DLG_TypeSetup dlg(this);
|
||
dlg.SetParam( &m_AdoRS2 );
|
||
dlg.DoModal();
|
||
}
|
||
|
||
void CFSmsJS::OnRclickSmsjsList(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
*pResult = 0;
|
||
ShowRMenu();
|
||
}
|
||
|
||
void CFSmsJS::OnDblclkSmsjsList(NMHDR* pNMHDR, LRESULT* pResult)
|
||
{
|
||
*pResult = 0;
|
||
On_User_See();
|
||
}
|
||
|
||
void CFSmsJS::ShowRMenu()
|
||
{
|
||
CMenu menu;
|
||
menu.CreatePopupMenu();
|
||
BOOL bLock = false;
|
||
long lItem = this->GetCurrentSelected();
|
||
#ifdef YQ_VER
|
||
CMenu MenuType;
|
||
MenuType.CreatePopupMenu();
|
||
if ( lItem >= 0 )
|
||
{
|
||
//Éú³É´æÖü¿Õ¼ä
|
||
long lCount=0;
|
||
if ( m_AdoRS2.Open( _T("RecvType") , adCmdTable ) )
|
||
{
|
||
lCount = m_AdoRS2.GetRecordCount();
|
||
m_AdoRS2.Close();
|
||
}
|
||
if ( m_pMenuType )
|
||
delete m_pMenuType;
|
||
m_pMenuType = new Menu_Type[lCount];
|
||
memset(m_pMenuType , 0 , sizeof(Menu_Type)*lCount );
|
||
m_lMenuTypeCount = 0;
|
||
|
||
CMenu * pMenu = NULL;
|
||
|
||
//Éú³ÉMenu¸öÊý
|
||
|
||
if ( m_AdoRS2.Open( _T("select * from RecvType where Type=1") ) && m_AdoRS2.GetRecordCount()>0 )
|
||
{
|
||
long lMenuCount=m_AdoRS2.GetRecordCount();
|
||
pMenu = new CMenu[lMenuCount];
|
||
lMenuCount=0;
|
||
m_AdoRS2.MoveFirst();
|
||
while( !m_AdoRS2.IsEOF() )
|
||
{
|
||
long lID;
|
||
CString strName;
|
||
m_AdoRS2.GetCollect( _T("ID") , lID );
|
||
m_AdoRS2.GetCollect( _T("Name") , strName );
|
||
//Ïȼì²éÓÐûÓÐ×ÓÀà
|
||
CString str;
|
||
str.Format( _T("select * from RecvType Where Type=2 and ID2=%d") , lID );
|
||
if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 )
|
||
{
|
||
pMenu[lMenuCount].CreatePopupMenu();
|
||
MenuType.AppendMenu( MF_STRING|MF_POPUP,(UINT)pMenu[lMenuCount].GetSafeHmenu(), strName );
|
||
m_AdoRS.MoveFirst();
|
||
while(!m_AdoRS.IsEOF() )
|
||
{
|
||
CString strName2;
|
||
m_AdoRS.GetCollect( _T("Name") , strName2 );
|
||
pMenu[lMenuCount].AppendMenu( MF_STRING , MENU_SMSJS_TYPESETUP+m_lMenuTypeCount+1 , strName2 );
|
||
_tcscpy( m_pMenuType[m_lMenuTypeCount].szType1 , strName );
|
||
_tcscpy( m_pMenuType[m_lMenuTypeCount].szType2 , strName2 );
|
||
m_lMenuTypeCount ++;
|
||
m_AdoRS.MoveNext();
|
||
}
|
||
m_AdoRS.Close();
|
||
lMenuCount ++;
|
||
}
|
||
else
|
||
{
|
||
MenuType.AppendMenu( MF_STRING,MENU_SMSJS_TYPESETUP+m_lMenuTypeCount+1, strName );
|
||
_tcscpy( m_pMenuType[m_lMenuTypeCount].szType1 , strName );
|
||
m_lMenuTypeCount ++;
|
||
}
|
||
m_AdoRS2.MoveNext();
|
||
}
|
||
m_AdoRS2.Close();
|
||
}
|
||
MenuType.AppendMenu(MF_SEPARATOR );
|
||
}
|
||
MenuType.AppendMenu(MF_STRING , MENU_SMSJS_TYPESETUP , _T(" Àà±ðÉèÖà ") );
|
||
#endif
|
||
|
||
if ( lItem >= 0 )
|
||
{
|
||
menu.AppendMenu(MF_STRING , MENU_SMSJS_SEE , _T(" ²é ¿´ ") );
|
||
menu.AppendMenu(MF_STRING , MENU_SMSJS_SEND , _T(" »Ø ¸´ ") );
|
||
menu.AppendMenu(MF_STRING , MENU_SMSJS_ZF , _T(" ת ·¢ ") );
|
||
menu.AppendMenu(MF_STRING , MENU_SMSJS_DEL , _T(" ɾ ³ý ") );
|
||
}
|
||
else
|
||
{
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SMSJS_SEE , _T(" ²é ¿´ ") );
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SMSJS_SEND, _T(" »Ø ¸´ ") );
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SMSJS_ZF, _T(" ת ·¢ ") );
|
||
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_SMSJS_DEL , _T(" ɾ ³ý ") );
|
||
}
|
||
#ifdef YQ_VER
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
menu.AppendMenu(MF_STRING|MF_POPUP,(UINT)MenuType.GetSafeHmenu(), _T(" ·Ö Àà ") );
|
||
#endif
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
//Ë¢ÐÂ
|
||
menu.AppendMenu(MF_STRING , MENU_SMSJS_EXPORT, _T(" µ¼³ö... ") );
|
||
//Ë¢ÐÂ
|
||
menu.AppendMenu(MF_STRING , MENU_SMSJS_FIND , _T(" ²éÕÒ... ") );
|
||
menu.AppendMenu(MF_SEPARATOR );
|
||
menu.AppendMenu(MF_STRING, MENU_SMSJS_ALLREAD, _T(" È«²¿±êΪÒѶÁ "));
|
||
menu.AppendMenu(MF_SEPARATOR);
|
||
//Ë¢ÐÂ
|
||
menu.AppendMenu(MF_STRING , MENU_SMSJS_REFRESH, _T(" ˢ Р") );
|
||
//ÏÔʾ²Ëµ¥
|
||
POINT pt ;
|
||
::GetCursorPos( &pt );
|
||
//this->ClientToScreen( &pt);
|
||
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
|
||
menu.DestroyMenu();
|
||
}
|
||
|
||
SMS_See CFSmsJS::GetSms(long lItem,BOOL bID)
|
||
{
|
||
SMS_See sms={0};
|
||
|
||
long lRecvID = 0;
|
||
if ( bID )
|
||
lRecvID = lItem;
|
||
else
|
||
lRecvID = m_wndList.GetItemData(lItem);
|
||
CString strSelect;
|
||
COleDateTime t;
|
||
strSelect.Format( _T("select * from smsrecv where RecvID=%d") , lRecvID );
|
||
if ( m_AdoRS.Open( strSelect ) && m_AdoRS.GetRecordCount() )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect( _T("Sender") , sms.szSender2 );
|
||
m_AdoRS.GetCollect( _T("SendNum") , sms.szSender );
|
||
m_AdoRS.GetCollect( _T("RecvNum") , sms.szRecver );
|
||
m_AdoRS.GetCollect( _T("Msg") , sms.szMsg );
|
||
m_AdoRS.GetCollect( _T("RecvTime"), t );t.GetAsSystemTime(sms.tRecv);
|
||
sms.tSend = sms.tRecv;
|
||
_tcscpy( sms.szStatus , _T("½Ó ÊÕ") );
|
||
}
|
||
return sms;
|
||
}
|
||
|
||
void CFSmsJS::ReadSms(long lItem)
|
||
{
|
||
long lRecvID = m_wndList.GetItemData(lItem);
|
||
if ( lRecvID > 0 )
|
||
{
|
||
CString strSelect;
|
||
strSelect.Format( _T("update smsrecv set Reader=1 where RecvID=%d") , lRecvID );
|
||
if ( m_AdoRS.Open( strSelect ) && m_AdoRS.GetRecordCount() )
|
||
{
|
||
m_wndList.SetIconIndex( lItem , 1 ); //ÏÔʾÒѶÁͼ±ê
|
||
}
|
||
}
|
||
}
|
||
|
||
void CFSmsJS::OnTimer(UINT_PTR nIDEvent)
|
||
{
|
||
CDialog::OnTimer(nIDEvent);
|
||
#ifdef SUPPERGSM
|
||
if ( nIDEvent == 1 )
|
||
{
|
||
KillTimer(1);
|
||
if ( m_pSendThread )
|
||
{
|
||
m_pSendThread->Com_Exit();
|
||
SMS_Init * pSms = new SMS_Init;
|
||
if (m_Setup.lPort == 0)
|
||
pSms->lConnectType = CONNECT_IRDA;
|
||
else
|
||
pSms->lConnectType = CONNECT_CABLE;
|
||
pSms->lIndex = 0;
|
||
pSms->lMobType = m_Setup.lMobileType;
|
||
pSms->lPort = m_Setup.lPort;
|
||
pSms->lBuadrate = m_Setup.lBaudrate;
|
||
pSms->lTimeOut = COM_TIMOUT;
|
||
pSms->pWnd = (CWnd *)this;
|
||
m_pSendThread->PostThreadMessage( TH_INIT , (WPARAM)pSms , 0 );
|
||
m_pMainFrame->SetStatMsg( _T("ÕýÔÚ¼ì²âÊÖ»ú...") );
|
||
}
|
||
return ;
|
||
}
|
||
#endif
|
||
if ( nIDEvent == 3 )
|
||
{
|
||
KillTimer(nIDEvent);
|
||
|
||
//½«Í¼±ê¼ÓÈëµ½ÈÎÎñÀ¸
|
||
CString strName=m_pMainFrame->GetSoftSName();
|
||
NOTIFYICONDATA niData;
|
||
if ( m_lIconCount <= 0 )
|
||
{
|
||
niData.hIcon = AfxGetApp()->LoadIcon( IDR_MAINFRAME );
|
||
_stprintf( niData.szTip,strName );
|
||
}
|
||
else
|
||
{
|
||
m_lIconCount ++;
|
||
if ( m_lIconCount>888888 )
|
||
m_lIconCount = 1;
|
||
|
||
if ( m_lIconCount%2 == 0 )
|
||
niData.hIcon = AfxGetApp()->LoadIcon( IDR_MAINFRAME );
|
||
else
|
||
niData.hIcon = AfxGetApp()->LoadIcon( IDI_NULL );
|
||
|
||
strName += _T("-ÊÕµ½ÐÂÏûÏ¢");
|
||
_stprintf( niData.szTip,strName );
|
||
}
|
||
|
||
niData.cbSize = sizeof( NOTIFYICONDATA );
|
||
niData.hWnd = this->m_pMainFrame->m_hWnd;
|
||
niData.uID = 125;
|
||
niData.uFlags = NIF_ICON|NIF_TIP;
|
||
niData.uCallbackMessage = SHELL_ICON_MESS;
|
||
Shell_NotifyIcon( NIM_MODIFY,&niData );
|
||
|
||
if ( m_lIconCount>0 )
|
||
SetTimer(3 , 500 , NULL );
|
||
return ;
|
||
}
|
||
}
|
||
#ifdef SUPPERGSM
|
||
long CFSmsJS::On_TW_Init(WPARAM wParam , LPARAM lParam )
|
||
{
|
||
long lIndex = (long) wParam;
|
||
long lCode = (long) lParam;
|
||
if ( lIndex !=0 ) //ÏûÏ¢µÄ¿ÉÄÜÊÇ´íÎóµÄ
|
||
return false;
|
||
char Buf[64];
|
||
switch( lCode ) //Á¬½ÓÇé¿ö
|
||
{
|
||
case -1:
|
||
_tcscpy(Buf , "Á¬½Ó´®¿Úʧ°Ü" );
|
||
break;
|
||
case -2:
|
||
_tcscpy(Buf , "³õʼ»¯ºìÍâÁ¬½Óʧ°Ü" );
|
||
break;
|
||
case -3:
|
||
_tcscpy(Buf , "¼ì²â²»µ½ÊÖ»ú" );
|
||
break;
|
||
case 0:
|
||
_stprintf(Buf , "Á¬½Ó³É¹¦:ÊÖ»úÐͺÅΪ:%s" , m_pSendThread->m_szMobileName );
|
||
break;
|
||
default:
|
||
_tcscpy(Buf , "δ֪´íÎó£¬Á¬½Óʧ°Ü" );
|
||
break;
|
||
}
|
||
m_pMainFrame->SetStatMsg(Buf);
|
||
if ( lCode != 0 ) //ûÓгɹ¦µÄ£¬×¼±¸ÖØÐÂÁ¬½Ó
|
||
{
|
||
Sleep(500);
|
||
m_pSendThread->Com_Exit();
|
||
|
||
SetTimer( 1 , 2000 , NULL ); //ÖØÐÂÁ¬½ÓÊÖ»ú
|
||
}
|
||
else
|
||
{
|
||
if (this->m_Setup.bAutoRead) //Èç¹ûÑ¡ÔñÁË×Ô¶¯È¡SIM¿¨¶ÌÐÅ
|
||
{
|
||
//Ö±½ÓÈ¡SIM¿¨ÖеĶÌÏûÏ¢
|
||
m_bOneGetSim = false;
|
||
m_pMainFrame->SetStatMsg("ÕýÔÚ²éѯSIM¿¨É϶ÌÏûÏ¢...");
|
||
m_pSendThread->PostThreadMessage( TH_GETSIM , 0 , 0 );
|
||
}
|
||
|
||
// else
|
||
|
||
// if (m_pMainFrame->m_pFuncView->isAutoClear()) //Èç¹ûÑ¡ÔñÁË×Ô¶¯É¾³ý
|
||
// {
|
||
// //Çå¿ÕSIM¿¨ÖеĶÌÏûÏ¢
|
||
// m_bOneGetSim = false;
|
||
// SendState_SetMsg( lIndex , "ÕýÔÚÇå¿ÕSIM¿¨É϶ÌÏûÏ¢..." );
|
||
// m_pMCom[lIndex].m_lTime = GetTickCount();
|
||
// m_pMCom[lIndex].pSendThread->PostThreadMessage( TH_CLEAR , 0 , 0 );
|
||
// }
|
||
// else //ûÓÐ×Ô¶¯È¡ÓëÇå¿Õ¶ÌÐÅ£¬ÔòÖ±½Ó·¢ËͶÌÐÅ
|
||
// {
|
||
// SendNextSms(lIndex); //´Ó·¢ËͶÓÁÐÀïÈ¡³öÊý¾Ý¿ªÊ¼·¢ËÍ¡£
|
||
// }
|
||
|
||
}
|
||
|
||
return 1;
|
||
}
|
||
long CFSmsJS::On_TW_Send(WPARAM wParam , LPARAM lParam )
|
||
{
|
||
return 1;
|
||
}
|
||
long CFSmsJS::On_TW_Recv(WPARAM wParam , LPARAM lParam )
|
||
{
|
||
long lIndex = (long)wParam;
|
||
SMS_Recv * pSms = (SMS_Recv *)lParam;
|
||
m_pMainFrame->SetStatMsg("½ÓÊÕµ½ÐµÄÐÅÏ¢£¡" );
|
||
if ( pSms->lMsgType == MSGTYPE_REPORT ) //´Ë¶ÌÏûÏ¢ÊÇ״̬±¨¸æ
|
||
{
|
||
return 1; //ºöÂÔ״̬±¨¸æ
|
||
}
|
||
m_lMobileRecvCount ++; //½ÓÊÕµ½µÄ¶ÌÐÅ+1;
|
||
if ( pSms->lMsgType == MSGTYPE_SMS )
|
||
{
|
||
ANS_RecvData2 sms={0};
|
||
_tcscpy( sms.szSendNum , pSms->szSender );
|
||
_tcscpy( sms.szRecvNum , "mobile" );
|
||
_tcscpy( sms.szMsg , pSms->szMsg );
|
||
::GetLocalTime(&sms.tRecv);
|
||
ExMobileGZM(sms.szSendNum);
|
||
RecvNewSms(sms,true); //ÊÕµ½ÐµÄÐÅÏ¢;
|
||
}
|
||
//Èç¹ûËù½ÓÊÕµ½µÄ²»ÊÇSIM¿¨¶ÌÐÅ£¬²¢ÉèÖÃÓÚ×Ô¶¯É¾³ý£¬ÔòÖ±½Óɾ³ýµÚÒ»Ìõ¶ÌÐÅ
|
||
if ( !pSms->bSim && m_Setup.bAutoDelete )
|
||
{
|
||
long lDel = pSms->lIndex > 0 ? pSms->lIndex : 1;
|
||
char Buf[64]={0};
|
||
_stprintf( Buf , "ÕýÔÚɾ³ýµÚ%dÌõ¶ÌÏûÏ¢..." , lDel );
|
||
m_pMainFrame->SetStatMsg(Buf );
|
||
m_pSendThread->PostThreadMessage( TH_DELETE , lDel , 0 );
|
||
}
|
||
return 1;
|
||
}
|
||
long CFSmsJS::On_TW_GetSim(WPARAM wParam , LPARAM lParam )
|
||
{
|
||
long lIndex = (long)wParam;
|
||
long lCode = (long)lParam;
|
||
|
||
char Buf[32]={0};
|
||
switch( lCode ) //Á¬½ÓÇé¿ö
|
||
{
|
||
case -4:
|
||
_tcscpy(Buf , "½Ó¿Ú»¹Î´³õʼ»¯" );
|
||
break;
|
||
case -2:
|
||
_tcscpy(Buf , "²éѯSIM¿¨¶ÌÐų¬Ê±" );
|
||
break;
|
||
default:
|
||
_stprintf(Buf , "²éѯSIM¿¨¶ÌÐųɹ¦£¬ÕÒµ½%dÌõ¶ÌÐÅ" , lCode);
|
||
break;
|
||
}
|
||
m_pMainFrame->SetStatMsg( Buf );
|
||
|
||
if ( lCode == -2 ) //³¬Ê±
|
||
{
|
||
Sleep(500);
|
||
m_pSendThread->Com_Exit();
|
||
SMS_Init * pSms = new SMS_Init;
|
||
if (m_Setup.lPort == 0)
|
||
pSms->lConnectType = CONNECT_IRDA;
|
||
else
|
||
pSms->lConnectType = CONNECT_CABLE;
|
||
pSms->lIndex = 0;
|
||
pSms->lMobType = m_Setup.lMobileType;
|
||
pSms->lPort = m_Setup.lPort;
|
||
pSms->lBuadrate = m_Setup.lBaudrate;
|
||
pSms->lTimeOut = COM_TIMOUT;
|
||
pSms->pWnd = (CWnd *)this;
|
||
m_pSendThread->PostThreadMessage( TH_INIT , (WPARAM)pSms , 0 );
|
||
m_pMainFrame->SetStatMsg( "ÕýÔÚ¼ì²âÊÖ»ú..." );
|
||
}
|
||
else
|
||
{
|
||
Sleep(500);
|
||
m_pMainFrame->SetStatMsg( "ÕýÔÚÇå¿ÕSIM¿¨..." );
|
||
m_pSendThread->PostThreadMessage( TH_CLEAR , 0 , 0 );
|
||
}
|
||
|
||
// else
|
||
// {
|
||
// if (m_pMainFrame->m_pFuncView->isAutoClear() && !m_bOneGetSim) //Èç¹ûÑ¡ÔñÁË×Ô¶¯É¾³ý
|
||
// {
|
||
// //Çå¿ÕSIM¿¨ÖеĶÌÏûÏ¢
|
||
// m_bOneGetSim = false;
|
||
// SendState_SetMsg( lIndex , "ÕýÔÚÇå¿ÕSIM¿¨É϶ÌÏûÏ¢..." );
|
||
// m_pMCom[lIndex].m_lTime = GetTickCount();
|
||
// m_pMCom[lIndex].pSendThread->PostThreadMessage( TH_CLEAR , 0 , 0 );
|
||
// }
|
||
// else
|
||
// {
|
||
// m_pMCom[lIndex].m_lTime = GetTickCount() + 3600*8*1000; //ÓÐÁ¬½ÓֻΪÁ˽ÓÊÕ£¬ËùÒÔÔÚ8СʱÄÚ²»»á³¬Ê±ÖØÁ¬
|
||
// SendNextSms(lIndex); //´Ó·¢ËͶÓÁÐÀïÈ¡³öÊý¾Ý¿ªÊ¼·¢ËÍ¡£
|
||
// }
|
||
// }
|
||
|
||
return 1;
|
||
}
|
||
long CFSmsJS::On_TW_Clear(WPARAM wParam , LPARAM lParam )
|
||
{
|
||
long lIndex = (long)wParam;
|
||
long lCode = (long)lParam;
|
||
|
||
if ( lCode == -2 ) //³¬Ê±
|
||
{
|
||
m_pMainFrame->SetStatMsg( "Çå¿Õ¶ÌÐÅʧ°Ü!" );
|
||
Sleep(500);
|
||
m_pSendThread->Com_Exit();
|
||
SMS_Init * pSms = new SMS_Init;
|
||
if (m_Setup.lPort == 0)
|
||
pSms->lConnectType = CONNECT_IRDA;
|
||
else
|
||
pSms->lConnectType = CONNECT_CABLE;
|
||
pSms->lIndex = 0;
|
||
pSms->lMobType = m_Setup.lMobileType;
|
||
pSms->lPort = m_Setup.lPort;
|
||
pSms->lBuadrate = m_Setup.lBaudrate;
|
||
pSms->lTimeOut = COM_TIMOUT;
|
||
pSms->pWnd = (CWnd *)this;
|
||
m_pSendThread->PostThreadMessage( TH_INIT , (WPARAM)pSms , 0 );
|
||
m_pMainFrame->SetStatMsg( "ÕýÔÚ¼ì²âÊÖ»ú..." );
|
||
}
|
||
else
|
||
{
|
||
m_pMainFrame->SetStatMsg( "Çå¿Õ¶ÌÐųɹ¦!" );
|
||
|
||
SetTimer( 1 , 60000*30 , NULL ); //ÿ30·ÖÖØÐÂÁ¬½ÓÓëÈ¡¶ÌÐÅ£¬Çå¿Õ¶ÌÐÅ
|
||
}
|
||
|
||
return 1;
|
||
}
|
||
long CFSmsJS::On_TW_Delete(WPARAM wParam , LPARAM lParam )
|
||
{
|
||
long lIndex = (long)wParam;
|
||
long lCode = (long)lParam;
|
||
|
||
if ( lCode == -2 ) //³¬Ê±
|
||
{
|
||
m_pMainFrame->SetStatMsg( "ɾ³ý¶ÌÐÅʧ°Ü!" );
|
||
Sleep(500);
|
||
m_pSendThread->Com_Exit();
|
||
SMS_Init * pSms = new SMS_Init;
|
||
if (m_Setup.lPort == 0)
|
||
pSms->lConnectType = CONNECT_IRDA;
|
||
else
|
||
pSms->lConnectType = CONNECT_CABLE;
|
||
pSms->lIndex = 0;
|
||
pSms->lMobType = m_Setup.lMobileType;
|
||
pSms->lPort = m_Setup.lPort;
|
||
pSms->lBuadrate = m_Setup.lBaudrate;
|
||
pSms->lTimeOut = COM_TIMOUT;
|
||
pSms->pWnd = (CWnd *)this;
|
||
m_pSendThread->PostThreadMessage( TH_INIT , (WPARAM)pSms , 0 );
|
||
m_pMainFrame->SetStatMsg( "ÕýÔÚ¼ì²âÊÖ»ú..." );
|
||
}
|
||
else
|
||
{
|
||
m_pMainFrame->SetStatMsg( "ɾ³ý¶ÌÐųɹ¦!" );
|
||
Sleep(500);
|
||
if ( m_Setup.lAutoClearCount>0 && m_lMobileRecvCount > 0 && m_lMobileRecvCount%m_Setup.lAutoClearCount==0 ) //ÿ½ÓÊÕµ½10Ìõ¶ÌÐÅ£¬×Ô¶¯Çå¿ÕSIM¿¨
|
||
{
|
||
m_pMainFrame->SetStatMsg( "ÕýÔÚÇå¿ÕSIM¿¨..." );
|
||
m_pSendThread->PostThreadMessage( TH_CLEAR , 0 , 0 );
|
||
}
|
||
}
|
||
|
||
return 1;
|
||
}
|
||
#endif
|
||
|
||
void CFSmsJS::OnDestroy()
|
||
{
|
||
#ifdef SUPPERGSM
|
||
if ( m_pSendThread )
|
||
{
|
||
m_pSendThread->Com_Exit();
|
||
m_pSendThread->PostThreadMessage( WM_QUIT , 0 , 0 );
|
||
m_pSendThread = NULL;
|
||
}
|
||
#endif
|
||
|
||
if ( m_pMenuType )
|
||
delete m_pMenuType;
|
||
|
||
CDialog::OnDestroy();
|
||
}
|
||
|
||
void CFSmsJS::RecvNewSms(ANS_RecvData2 sms,BOOL bShowTip)
|
||
{
|
||
try
|
||
{
|
||
TCHAR szName[64]={0};
|
||
TCHAR szName2[64]={0};
|
||
CString NickName;
|
||
CString Sex;
|
||
COleDateTime Birthday;
|
||
CString Ltd;
|
||
CString Job;
|
||
CString Tel;
|
||
CString Fax;
|
||
CString Email;
|
||
CString QQ;
|
||
CString BZ;
|
||
#ifdef MOBSET_OEM_BYSZY
|
||
TCHAR szGroupID[32]={0};
|
||
TCHAR szLocal[128]={0};
|
||
#endif
|
||
|
||
CString strSelect;
|
||
BOOL bGetAddress=false;
|
||
//½ÓÊÕµ½ÐµĶÌÐÅ£¬ÏȲéѯÆäÔڵ绰±¾ÀïµÄÐÕÃû
|
||
if ( !bGetAddress && m_pMainFrame->GetUserPurview( PURVIEW_PADDRESS,false ) ) //ÓÐ˽È˵绰±¾²é¿´È¨ÏÞ
|
||
{
|
||
#ifdef MOBSET_OEM_SNLD
|
||
strSelect.Format( _T("select * from paddress where Mobile like '%%%s' and (GroupID is null or len(GroupID)=0)") , sms.szSendNum ); //ÏÉÄÝÀ׵£¬½ö²éѯ¸ùĿ¼
|
||
#endif
|
||
strSelect.Format( _T("select * from paddress where Mobile like '%%%s'") , sms.szSendNum );
|
||
if ( m_AdoRS2.Open(strSelect) && m_AdoRS2.GetRecordCount() )
|
||
{
|
||
m_AdoRS2.GetCollect( _T("Name") , szName );
|
||
#ifdef MOBSET_OEM_SNLD
|
||
m_AdoRS2.GetCollect( _T("NickName") , NickName );
|
||
m_AdoRS2.GetCollect( _T("Sex") , Sex );
|
||
m_AdoRS2.GetCollect( _T("Birthday") , Birthday );
|
||
m_AdoRS2.GetCollect( _T("Ltd") , Ltd );
|
||
m_AdoRS2.GetCollect( _T("Job") , Job );
|
||
m_AdoRS2.GetCollect( _T("Tel") , Tel );
|
||
m_AdoRS2.GetCollect( _T("Fax") , Fax );
|
||
m_AdoRS2.GetCollect( _T("Email") , Email );
|
||
m_AdoRS2.GetCollect( _T("QQ") , QQ );
|
||
m_AdoRS2.GetCollect( _T("BZ") , BZ );
|
||
#endif
|
||
#ifdef MOBSET_OEM_BYSZY
|
||
m_AdoRS2.GetCollect( _T("GroupID") , szGroupID );
|
||
this->m_pMainFrame->m_pBaseView->m_dlgPAddress.GetLocal(szLocal,szGroupID);
|
||
#endif
|
||
bGetAddress = true;
|
||
}
|
||
}
|
||
if ( !bGetAddress && m_pMainFrame->GetUserPurview( PURVIEW_GADDRESS_SEE,false ) ) //Óй«Óõ绰±¾²é¿´È¨ÏÞ
|
||
{
|
||
strSelect.Format( _T("select * from gaddress where Mobile like '%%%s'") , sms.szSendNum );
|
||
if ( m_AdoRS2.Open(strSelect) && m_AdoRS2.GetRecordCount() )
|
||
{
|
||
m_AdoRS2.GetCollect( _T("Name") , szName );
|
||
#ifdef MOBSET_OEM_SNLD
|
||
m_AdoRS2.GetCollect( _T("NickName") , NickName );
|
||
m_AdoRS2.GetCollect( _T("Sex") , Sex );
|
||
m_AdoRS2.GetCollect( _T("Birthday") , Birthday );
|
||
//m_AdoRS2.GetCollect( _T("Ltd") , Ltd );
|
||
m_AdoRS2.GetCollect( _T("Job") , Job );
|
||
m_AdoRS2.GetCollect( _T("Tel") , Tel );
|
||
m_AdoRS2.GetCollect( _T("Fax") , Fax );
|
||
m_AdoRS2.GetCollect( _T("Email") , Email );
|
||
m_AdoRS2.GetCollect( _T("QQ") , QQ );
|
||
m_AdoRS2.GetCollect( _T("BZ") , BZ );
|
||
#endif
|
||
#ifdef MOBSET_OEM_BYSZY
|
||
m_AdoRS2.GetCollect( _T("GroupID") , szGroupID );
|
||
this->m_pMainFrame->m_pBaseView->m_dlgGAddress2.GetLocal(szLocal,szGroupID);
|
||
#endif
|
||
}
|
||
}
|
||
#ifdef YQ_VER
|
||
|
||
#ifndef YQ_VER_JL
|
||
strSelect.Format( _T("select * from kaddress where Mobile like '%%%s'") , sms.szSendNum );
|
||
if ( !bGetAddress && m_AdoRS2.Open(strSelect) && m_AdoRS2.GetRecordCount() )
|
||
{
|
||
m_AdoRS2.GetCollect( _T("Name") , szName );
|
||
}
|
||
#endif
|
||
|
||
#endif
|
||
|
||
|
||
//²éÕҺŶιéÊô
|
||
CString str;
|
||
CString strProvince=_T("δ֪¹éÊôµØ");
|
||
CString strCity=_T("");
|
||
strProvince = sms.szProv;
|
||
strCity = sms.szCity;
|
||
|
||
#ifdef SUPPER_IM_MAS
|
||
_tcscpy( szName2 , sms.szSendNum );
|
||
szName2[7]=0;
|
||
str.Format( _T("select * from HDB where Head='%s'"),szName2);
|
||
if ( m_HDAdoRS.Open(str) && m_HDAdoRS.GetRecordCount()>0 )
|
||
{
|
||
m_HDAdoRS.MoveFirst();
|
||
m_HDAdoRS.GetCollect( _T("Province") , strProvince );
|
||
m_HDAdoRS.GetCollect( _T("City") , strCity );
|
||
m_HDAdoRS.Close();
|
||
}
|
||
#endif
|
||
|
||
long lRecvID=0;
|
||
BOOL b = m_AdoRS.Open( _T("smsrecv") , adCmdTable ); //´ò¿ªÊý¾Ý¿â£¬×¼±¸Ìí¼Ó
|
||
if ( b )
|
||
{
|
||
m_AdoRS.AddNew();
|
||
m_AdoRS.PutCollect(_T("SendNum") ,sms.szSendNum);
|
||
m_AdoRS.PutCollect(_T("Sender") ,szName);
|
||
m_AdoRS.PutCollect(_T("RecvNum") ,sms.szRecvNum);
|
||
m_AdoRS.PutCollect(_T("Msg") ,sms.szMsg);
|
||
m_AdoRS.PutCollect(_T("RecvTime") ,sms.tRecv );
|
||
//#ifdef YQ_VER
|
||
m_AdoRS.PutCollect(_T("Province") ,strProvince );
|
||
m_AdoRS.PutCollect(_T("City") ,strCity);
|
||
//#endif
|
||
#ifdef MOBSET_OEM_SNLD
|
||
m_AdoRS.PutCollect( _T("NickName") , NickName );
|
||
m_AdoRS.PutCollect( _T("Sex") , Sex );
|
||
m_AdoRS.PutCollect( _T("Birthday") , Birthday );
|
||
m_AdoRS.PutCollect( _T("Ltd") , Ltd );
|
||
m_AdoRS.PutCollect( _T("Job") , Job );
|
||
m_AdoRS.PutCollect( _T("Tel") , Tel );
|
||
m_AdoRS.PutCollect( _T("Fax") , Fax );
|
||
m_AdoRS.PutCollect( _T("Email") , Email );
|
||
m_AdoRS.PutCollect( _T("QQ") , QQ );
|
||
m_AdoRS.PutCollect( _T("BZ") , BZ );
|
||
#endif
|
||
#ifdef MOBSET_OEM_BYSZY
|
||
m_AdoRS.PutCollect( _T("LocalGroup") , szLocal );
|
||
#endif
|
||
m_AdoRS.Update();
|
||
m_AdoRS.GetCollect( _T("RecvID") , lRecvID );
|
||
m_AdoRS.Close();
|
||
}
|
||
|
||
//ÏÔʾÐÂÊÕµ½µÄ¶ÌÐÅ
|
||
//m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,100;½ÓÊÕºÅÂë,80; ¶ÌÐÅÄÚÈÝ,280;ÊÕÐÅʱ¼ä,120;"));
|
||
long lCount = m_wndList.GetItemCount();
|
||
TCHAR szBuf[32]={0};
|
||
m_wndList.InsertItem( 0, _itot( lCount+1,szBuf,10) , 0 );
|
||
m_wndList.SetItemData(0,lRecvID );
|
||
|
||
CString strRecvName;
|
||
#ifdef MOBSET_OEM_SNLD
|
||
//m_wndList.SetHeadings(_T("ÐòºÅ,50; ·¢ËͺÅÂë,120;·¢ËÍÈË,80;½ÓÊÕºÅÂë,120; ¶ÌÐÅÄÚÈÝ,200;ÊÕÐÅʱ¼ä,130;êdzÆ,80;ÐÔ±ð,50; ¹«Ë¾,80;Ö°Îñ,80;µç»°,80;´«Õæ,80;Email,80;QQ,80;±¸×¢,80;"));
|
||
m_wndList.SetItemText(0,1,sms.szSendNum);
|
||
m_wndList.SetItemText(0,2,szName);
|
||
m_wndList.SetItemText(0,3,sms.szRecvNum);
|
||
m_wndList.SetItemText(0,4,sms.szMsg);
|
||
COleDateTime tRecv(sms.tRecv);
|
||
if ( tRecv.GetStatus() == COleDateTime::valid )
|
||
{
|
||
_stprintf( szBuf , _T("%04d.%02d.%02d %02d:%02d") , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() );
|
||
m_wndList.SetItemText(0,5,szBuf);
|
||
}
|
||
m_wndList.SetItemText(0,6,NickName);
|
||
m_wndList.SetItemText(0,7,Sex);
|
||
if ( Birthday.GetStatus() == COleDateTime::valid )
|
||
{
|
||
_stprintf( szBuf , _T("%04d.%02d.%02d") , Birthday.GetYear(),Birthday.GetMonth(),Birthday.GetDay() );
|
||
m_wndList.SetItemText(0,8,szBuf);
|
||
}
|
||
m_wndList.SetItemText(0,9,Ltd);
|
||
m_wndList.SetItemText(0,10,Job);
|
||
m_wndList.SetItemText(0,11,Tel);
|
||
m_wndList.SetItemText(0,12,Fax);
|
||
m_wndList.SetItemText(0,13,Email);
|
||
m_wndList.SetItemText(0,14,QQ);
|
||
m_wndList.SetItemText(0,15,BZ);
|
||
#else
|
||
m_wndList.SetItemText(0,1,sms.szSendNum);
|
||
m_wndList.SetItemText(0,2,szName);
|
||
m_wndList.SetItemText(0,3,sms.szRecvNum);
|
||
m_wndList.SetItemText(0,4,sms.szMsg);
|
||
COleDateTime tRecv(sms.tRecv);
|
||
if ( tRecv.GetStatus() == COleDateTime::valid )
|
||
{
|
||
_stprintf( szBuf , _T("%04d.%02d.%02d %02d:%02d") , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() );
|
||
m_wndList.SetItemText(0,5,szBuf);
|
||
}
|
||
if ( strCity.GetLength()>0 )
|
||
strProvince = strProvince+"-"+strCity;
|
||
#ifdef YQ_VER
|
||
m_wndList.SetItemText(0,7,strProvince);
|
||
#else
|
||
m_wndList.SetItemText(0,6,strProvince);
|
||
#endif
|
||
|
||
#ifdef MOBSET_OEM_BYSZY
|
||
m_wndList.SetItemText(0,7,szLocal);
|
||
#endif
|
||
|
||
#endif
|
||
//if ( i== 0 ) //ÌáʾµÚÒ»ÌõÊÕµ½µÄ¶ÌÐÅ
|
||
if ( bShowTip && !m_pMainFrame->m_Setup.bSmsNoTip)
|
||
{
|
||
//Ìáʾ´°¿Ú£¬ÏÔʾÐÂÊÕµ½¶ÌÐÅÏ¢
|
||
SMS_Recv2 sms2={0};
|
||
_tcscpy( sms2.szMsg , sms.szMsg );
|
||
_tcscpy( sms2.szSender , strRecvName );
|
||
_tcscpy( sms2.szTime , szBuf );
|
||
DLG_RecvSms * dlg = new DLG_RecvSms;
|
||
dlg->Create(IDD_RECVSMS , this);
|
||
dlg->SetPara( &sms2 );
|
||
dlg->ShowWindow( SW_SHOW);
|
||
this->SetFocus();
|
||
}
|
||
|
||
FlashIcon(false,true); //ÉÁ¶¯Í¼±ê
|
||
|
||
//·¢³öÉùÒô
|
||
if ( m_pMainFrame->m_Setup.bSound )
|
||
{
|
||
TCHAR szFileName[512]={0};
|
||
m_pMainFrame->GetCurrentPath(szFileName);
|
||
_tcscat(szFileName , _T("Nokia.wav") );
|
||
PlaySound(szFileName,NULL,SND_FILENAME|SND_NODEFAULT|SND_ASYNC);
|
||
}
|
||
|
||
//·¢ËÍ×Ô¶¯»Ø¸´
|
||
if ( m_Setup.bAutoRe && _tcslen(m_Setup.szAutoRe)>0 )
|
||
{
|
||
//ÏÈÅжÏÊÇ·ñΪÉèÖõĹ̶¨ÄÚÈÝ
|
||
CString strAutoRecv = m_Setup.szAutoRecv;
|
||
if ( strAutoRecv.GetLength() > 0 )
|
||
{
|
||
if ( m_Setup.szAutoRecv[0] != '*' )
|
||
{
|
||
CString strRecvMsg = CString(sms.szMsg).Left(strAutoRecv.GetLength());
|
||
if ( strAutoRecv.CompareNoCase(strRecvMsg) != 0 )
|
||
return ;
|
||
}
|
||
}
|
||
if ( m_Setup.bAutoExRe ) //ÅųýÖØ¸´
|
||
{
|
||
strSelect.Format( _T("select * from smsrecv where SendNum='%s'"),sms.szSendNum );
|
||
if ( m_AdoRS.Open(strSelect) && m_AdoRS.GetRecordCount()> 1 )
|
||
return ;
|
||
}
|
||
//×Ô¶¯¼Ç¼
|
||
if ( m_Setup.bAutoRecord && _tcslen(m_Setup.szGroup)>0 )
|
||
{
|
||
strSelect.Format( _T("select * from paddress where Name='%s' and UserType='0'") , m_Setup.szGroup );
|
||
if ( m_AdoRS.Open(strSelect) && m_AdoRS.GetRecordCount()> 0 )
|
||
{
|
||
TCHAR szGroupID[32]={0};
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect(_T("GroupID") , szGroupID );
|
||
m_AdoRS.Close();
|
||
|
||
BOOL b = m_AdoRS.Open( _T("paddress") , adCmdTable );
|
||
if ( b )
|
||
{
|
||
m_AdoRS.AddNew();
|
||
m_AdoRS.PutCollect(_T("UserType") ,_T("1"));
|
||
m_AdoRS.PutCollect(_T("GroupID") ,szGroupID);
|
||
m_AdoRS.PutCollect(_T("Name") ,_T("×Ô¶¯µÇ¼Ç") );
|
||
m_AdoRS.PutCollect(_T("Mobile") ,sms.szSendNum );
|
||
m_AdoRS.PutCollect(_T("BZ") ,sms.szMsg);
|
||
#ifdef MOBSET_TJJ
|
||
m_AdoRS.PutCollect(_T("NickName") ,strProvince );
|
||
|
||
#endif
|
||
m_AdoRS.Update();
|
||
}
|
||
m_AdoRS.Close();
|
||
}
|
||
}
|
||
#ifdef SUPPER_IM_MAS
|
||
if ( this->m_pMainFrame->m_pFuncView->m_DLGSend.Mas_OK() && !_tcscmp(sms.szRecvNum,_T("Mas")) ) //MAS¶ÌÐÅ
|
||
{
|
||
CStringA strMobile=CW2A(sms.szSendNum);
|
||
CStringA strMsg=CW2A(m_Setup.szAutoRe);
|
||
CStringA strSendTime;
|
||
long lSmID=0; //ÈÕ+ʱ+·Ö+ÐòºÅ
|
||
long lSrcID=0;
|
||
int iRet = (*this->m_pMainFrame->m_pFuncView->m_DLGSend.m_Mas_sendSMAdvTime)(strMobile, strMsg,strSendTime, lSmID,lSrcID);
|
||
}
|
||
else
|
||
#endif
|
||
{
|
||
//ÒÔÏÂΪ·¢ËͶÌÐŶø±¸
|
||
//ÏÈÉú³ÉÁÙʱ´æÖü¿Õ¼ä
|
||
ANS_SendData2 * pTemp = new ANS_SendData2[5];
|
||
memset( pTemp , 0 , sizeof(ANS_SendData2)*5 );
|
||
long lSendCount=0;
|
||
TCHAR szSendMsg[512]={0};
|
||
TCHAR szSendMsg2[512]={0};
|
||
|
||
//·Ö¸ôÐÅÏ¢
|
||
long lMaxMsgLen = m_pMainFrame->GetMaxSendMsgLen(); //È¡ÔÊÐíµÄ×î´ó×Ö·ûÊý
|
||
CString strCM;
|
||
BOOL bCMFirst = m_pMainFrame->GetQJCM(strCM);
|
||
long lMsgAll=0;
|
||
long lMsgIndex = 1;
|
||
BOOL bGetMsg;
|
||
_tcscpy( szSendMsg , m_Setup.szAutoRe ); //·¢ËÍÔ´ÐÅÏ¢
|
||
while ( true )
|
||
{
|
||
memset( szSendMsg2 , 0 , sizeof(szSendMsg2) );
|
||
if (!_tcsncmp(sms.szSendNum, _T("12"), 2) ||
|
||
!_tcsncmp( sms.szSendNum , _T("13") , 2 ) ||
|
||
!_tcsncmp( sms.szSendNum , _T("15") , 2 ) ||
|
||
!_tcsncmp( sms.szSendNum , _T("14") , 2 ) ||
|
||
!_tcsncmp( sms.szSendNum , _T("16") , 2 ) ||
|
||
!_tcsncmp( sms.szSendNum , _T("17") , 2 ) ||
|
||
!_tcsncmp( sms.szSendNum , _T("18") , 2 ) ||
|
||
!_tcsncmp( sms.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_pMainFrame->m_lCorpID;
|
||
pTemp[lSendCount].lUserID = m_pMainFrame->m_lUserID;
|
||
pTemp[lSendCount].lItem = 0;
|
||
pTemp[lSendCount].lItemID = 0; //ItemID;
|
||
if ( bCMFirst )
|
||
_stprintf( pTemp[lSendCount].szMsg ,_T("%s%s") , strCM,szSendMsg2);
|
||
else
|
||
_stprintf( pTemp[lSendCount].szMsg ,_T("%s%s") , szSendMsg2,strCM);
|
||
_tcscpy( pTemp[lSendCount].szName , _T("") );
|
||
_tcscpy( pTemp[lSendCount].szMobile , sms.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 );
|
||
m_pMainFrame->SendFrame( SMSFUNC_SEND2 , pData , lSize );
|
||
}
|
||
delete pTemp; //ɾ³ýÁÙʱ±äÁ¿
|
||
}
|
||
|
||
}
|
||
}
|
||
catch(...)
|
||
{
|
||
return ;
|
||
}
|
||
|
||
}
|
||
|
||
void CFSmsJS::ConnectMobile()
|
||
{
|
||
#ifdef SUPPERGSM
|
||
//Á¬½ÓÊÖ»úÌØÊâÉèÖÃ
|
||
m_Setup = m_pMainFrame->m_Setup;
|
||
|
||
m_pSendThread = new CSendThread;
|
||
m_pSendThread->CreateThread();
|
||
SMS_Init * pSms = new SMS_Init;
|
||
if (m_Setup.lPort == 0)
|
||
pSms->lConnectType = CONNECT_IRDA;
|
||
else
|
||
pSms->lConnectType = CONNECT_CABLE;
|
||
pSms->lIndex = 0;
|
||
pSms->lMobType = m_Setup.lMobileType;
|
||
pSms->lPort = m_Setup.lPort;
|
||
pSms->lBuadrate = m_Setup.lBaudrate;
|
||
pSms->lTimeOut = COM_TIMOUT;
|
||
pSms->pWnd = (CWnd *)this;
|
||
m_pSendThread->PostThreadMessage( TH_INIT , (WPARAM)pSms , 0 );
|
||
m_pMainFrame->SetStatMsg( _T("ÕýÔÚ¼ì²âÊÖ»ú...") );
|
||
#endif
|
||
}
|
||
|
||
void CFSmsJS::OnOK()
|
||
{
|
||
//CDialog::OnOK();
|
||
}
|
||
|
||
void CFSmsJS::OnCancel()
|
||
{
|
||
//CDialog::OnCancel();
|
||
}
|
||
|
||
void CFSmsJS::On_User_Type(long lIndex)
|
||
{
|
||
#ifndef YQ_VER
|
||
return ;
|
||
#endif
|
||
long lItem = this->GetCurrentSelected();
|
||
if ( lItem <0 )
|
||
return ;
|
||
|
||
long lID = m_wndList.GetItemData(lItem);
|
||
CString strSelect;
|
||
strSelect.Format( _T("select * from smsrecv where RecvID=%d") , lID );
|
||
if ( m_AdoRS.Open( strSelect ) && m_AdoRS.GetRecordCount() )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.PutCollect( _T("Type1") , m_pMenuType[lIndex].szType1 );
|
||
m_AdoRS.PutCollect( _T("Type2") , m_pMenuType[lIndex].szType2 );
|
||
m_AdoRS.Update();
|
||
m_AdoRS.Close();
|
||
|
||
CString str = m_pMenuType[lIndex].szType1;
|
||
if ( _tcslen(m_pMenuType[lIndex].szType2) >0 )
|
||
{
|
||
str += _T("-");
|
||
str += m_pMenuType[lIndex].szType2;
|
||
}
|
||
m_wndList.SetItemText( lItem , 6 , str );
|
||
}
|
||
}
|
||
|
||
BOOL CFSmsJS::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
|
||
{
|
||
if ( nID>= (UINT)(MENU_SMSJS_TYPESETUP+1) && nID<= (UINT)(MENU_SMSJS_TYPESETUP+1+m_lMenuTypeCount) )
|
||
{
|
||
long lCount = (long)(nID - (MENU_SMSJS_TYPESETUP+1));
|
||
On_User_Type(lCount);
|
||
}
|
||
return CDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
|
||
}
|
||
|
||
void CFSmsJS::SetToday(BOOL bToday)
|
||
{
|
||
if ( m_bShowToday != bToday )
|
||
{
|
||
m_bShowToday = bToday;
|
||
m_bRefresh = false;
|
||
}
|
||
|
||
}
|
||
|
||
void CFSmsJS::ReadSetup()
|
||
{
|
||
//Á¬½ÓÊÖ»úÌØÊâÉèÖÃ
|
||
m_Setup = m_pMainFrame->m_Setup;
|
||
|
||
}
|
||
|
||
BOOL CFSmsJS::FlashIcon(BOOL bCheck, BOOL bFlash)
|
||
{
|
||
if ( bCheck )
|
||
{
|
||
CString str;
|
||
str=_T("select count(*) as abc from smsRecv where Reader=0 "); //²éѯδ¶ÁµÄ¶ÌÐÅ
|
||
if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 )
|
||
{
|
||
long lCount;
|
||
m_AdoRS.MoveFirst();
|
||
m_AdoRS.GetCollect( _T("abc") , lCount );
|
||
if ( lCount >0 )
|
||
bFlash = true;
|
||
else
|
||
bFlash = false;
|
||
}
|
||
else
|
||
{
|
||
bFlash = false;
|
||
}
|
||
m_AdoRS.Close();
|
||
}
|
||
if ( bFlash )
|
||
{
|
||
m_lIconCount = 1;
|
||
SetTimer(3 , 500 , NULL);
|
||
}
|
||
else
|
||
{
|
||
m_lIconCount = -1;
|
||
}
|
||
return bFlash;
|
||
}
|
||
|
||
BOOL CFSmsJS::ShowNoReaderMsg()
|
||
{
|
||
CString str;
|
||
SMS_See sms={0};
|
||
long lRecvID = 0;
|
||
COleDateTime t;
|
||
str=_T("select top 1 * from smsRecv where Reader=0 order by RecvTime"); //²éѯδ¶ÁµÄ¶ÌÐÅ
|
||
if ( m_AdoRS.Open(str) && m_AdoRS.GetRecordCount()>0 )
|
||
{
|
||
m_AdoRS.MoveFirst();
|
||
TCHAR szSender[32]={0};
|
||
TCHAR szSendNum[32]={0};
|
||
m_AdoRS.GetCollect( _T("RecvID") , lRecvID);
|
||
m_AdoRS.GetCollect( _T("SendNum") , szSendNum );
|
||
m_AdoRS.GetCollect( _T("Sender") , szSender );
|
||
m_AdoRS.GetCollect( _T("RecvNum") , sms.szRecver );
|
||
m_AdoRS.GetCollect( _T("Msg") , sms.szMsg );
|
||
m_AdoRS.GetCollect( _T("RecvTime"), t );t.GetAsSystemTime(sms.tRecv);
|
||
m_AdoRS.Close();
|
||
sms.tSend = sms.tRecv;
|
||
_tcscpy( sms.szStatus , _T("½Ó ÊÕ") );
|
||
|
||
if ( _tcslen(szSender)>0 )
|
||
_stprintf(sms.szSender , _T("%s-%s") , szSendNum,szSender );
|
||
else
|
||
_tcscpy(sms.szSender , szSendNum );
|
||
|
||
//״̬±äΪÒѶÁ
|
||
str.Format( _T("update smsrecv set Reader=1 where RecvID=%d") , lRecvID );
|
||
if ( m_AdoRS.Open( str ) && m_AdoRS.GetRecordCount() )
|
||
{
|
||
//²éÕÒ£¬¸Ä±äͼ±ê
|
||
long lCount = m_wndList.GetItemCount();
|
||
long lRecvID2 = 0;
|
||
for ( int i=0 ; i<lCount ; i++ )
|
||
{
|
||
lRecvID2 = m_wndList.GetItemData(i);
|
||
if ( lRecvID == lRecvID2 )
|
||
{
|
||
m_wndList.SetIconIndex( i , 1 ); //ÏÔʾÒѶÁͼ±ê
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
sms.lType = SMS_SEE_TYPE_RECV;
|
||
DLG_SmsLogSee dlg(this);
|
||
dlg.SetParam(sms);
|
||
dlg.SetReadSms(true);
|
||
if ( dlg.DoModal() == 300 ) //°´ÁËÁ¢¼´»Ø¸´
|
||
{
|
||
if ( m_pMainFrame->m_pFuncView->On_User_List_Add() ) //н¨Áбí
|
||
{
|
||
//Ìí¼ÓºÅÂë
|
||
//·ÖÅäÊý¾Ý
|
||
long lCount = 1;
|
||
long lSize = sizeof(Send_User)*lCount;
|
||
BYTE *pS = new BYTE[lSize];
|
||
memset( pS , 0 , lSize );
|
||
Send_User * pUser = (Send_User * )pS;
|
||
_tcscpy(pUser->szName , szSender );
|
||
_tcscpy(pUser->szMobile , szSendNum );
|
||
m_pMainFrame->m_pFuncView->On_User_List_AddUser(lCount,(Send_User*)pS);
|
||
delete pS;
|
||
}
|
||
}
|
||
//ÉÁ¶¯Í¼±ê
|
||
FlashIcon(true,false);
|
||
return true;
|
||
}
|
||
|
||
FlashIcon(false,false); //²»ÉÁ¶¯Í¼±êÁË¡£
|
||
return false;
|
||
}
|