CorpSms/FFaxJS.cpp

1361 lines
35 KiB
C++
Raw Normal View History

2025-02-27 16:58:16 +08:00
// FFaxJS.cpp : implementation file
//
#include "stdafx.h"
#include "CorpSms.h"
#include "FFaxJS.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFFaxJS dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_RecvSms.h"
#include "DLG_SmsLogSee.h"
//#include "DLG_FAXJS_Export.h"
#include "DLG_TypeSetup.h"
#ifdef SUPPERGSM
#include "..\public\SendThread\SendThread.h"
#endif
#include "DLG_Find_RecvSms.h"
CFFaxJS::CFFaxJS(CWnd* pParent /*=NULL*/)
: CDialog(CFFaxJS::IDD, pParent)
{
//{{AFX_DATA_INIT(CFFaxJS)
// 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 CFFaxJS::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFFaxJS)
DDX_Control(pDX, IDC_FAXJS_LIST, m_wndList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFFaxJS, CDialog)
//{{AFX_MSG_MAP(CFFaxJS)
ON_WM_SIZE()
ON_NOTIFY(LVN_KEYDOWN, IDC_FAXJS_LIST, OnKeydownSmsjsList)
ON_NOTIFY(NM_RCLICK, IDC_FAXJS_LIST, OnRclickSmsjsList)
ON_NOTIFY(NM_DBLCLK, IDC_FAXJS_LIST, OnDblclkSmsjsList)
ON_WM_TIMER()
ON_WM_DESTROY()
//}}AFX_MSG_MAP
ON_COMMAND( MENU_FAXJS_DEL , On_User_Del )
ON_COMMAND( MENU_FAXJS_SEE , On_User_See )
ON_COMMAND( MENU_FAXJS_SEND , On_User_Send )
ON_COMMAND( MENU_FAXJS_ZF , On_User_ZF )
ON_COMMAND( MENU_FAXJS_EXPORT , On_User_Export )
ON_COMMAND( MENU_FAXJS_REFRESH , On_User_Refresh )
ON_COMMAND( MENU_FAXJS_FIND , On_User_Find )
ON_COMMAND( MENU_FAXJS_TYPESETUP , On_User_TypeSetup )
#ifdef SUPPERGSM
ON_MESSAGE( TW_INIT , On_TW_Init ) //<2F><><EFBFBD><EFBFBD><EFBFBD>̷߳<DFB3><CCB7>ص<EFBFBD><D8B5><EFBFBD>Ϣ
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()
/////////////////////////////////////////////////////////////////////////////
// CFFaxJS message handlers
BOOL CFFaxJS::OnInitDialog()
{
USES_CONVERSION;
CDialog::OnInitDialog();
//ȡ<>ù<EFBFBD><C3B9>ò<EFBFBD><C3B2><EFBFBD>
//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 );
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5>Ŷα<C5B6>
TCHAR szPath[512]={0};
m_pMainFrame->GetCurrentPath( szPath );
_tcscat( szPath , _T("SMSData.dat") ); //<2F><><EFBFBD>ݿ<EFBFBD><DDBF>ļ<EFBFBD><C4BC><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 ) ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>,<2C><>Ҫ<EFBFBD><D2AA><EFBFBD>´<EFBFBD><C2B4><EFBFBD>
{
MessageBox( _T("ϵͳ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ʧ6<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>°<EFBFBD>װ!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
return false;
}
m_HDAdoRS.SetAdoConnection( &m_HDadoConnection ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><>ʼ<EFBFBD><CABC>List
m_Image.Create(16,16,ILC_COLOR32|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SMSDF) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_SMSJS) );
m_wndList.SubClassWindow2();
#ifdef YQ_VER
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,120;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;<3B><><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD>,100;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,120;"));
#else
#ifdef MOBSET_OEM_SNLD
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,120;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,200;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;<3B>dz<EFBFBD>,80;<3B>Ա<EFBFBD>,50; <20><><EFBFBD><EFBFBD>,90; <20><>˾,80;ְ<><D6B0>,80;<3B>绰,80;<3B><><EFBFBD><EFBFBD>,80;Email,80;QQ,80;<3B><>ע,80;"));
#else
#ifdef MOBSET_OEM_BYSZY
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,120;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,120;<3B><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>,120;"));
#else
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,120;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,100;<3B><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,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 ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CFFaxJS::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CFFaxJS::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CFFaxJS::RefreshInfo()
{
m_wndList.ShowWindow( SW_HIDE ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
m_bRefresh = true;
m_wndList.DeleteAllItems();
TCHAR szSelect[512]={0};
if ( m_bShowToday )
{
//<2F><><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 ); //<2F><>ѯ<EFBFBD>ѷ<EFBFBD><D1B7><EFBFBD><EFBFBD><EFBFBD>
else
_stprintf( szSelect , _T("select * from smsRecv where RecvTime>=#%04d-%02d-%02d# %s order by RecvTime"),t.wYear,t.wMonth,t.wDay,m_strFindAdd ); //<2F><>ѯ<EFBFBD>ѷ<EFBFBD><D1B7><EFBFBD><EFBFBD><EFBFBD>
}
else
{
if ( m_strFindAdd.GetLength()>0 )
_stprintf( szSelect , _T("select * from smsRecv where 1 %s order by RecvTime"),m_strFindAdd ); //<2F><>ѯ<EFBFBD><D1AF><EFBFBD>ռ<EFBFBD>¼
else
_stprintf( szSelect , _T("select * from smsRecv order by RecvTime") ); //<2F><>ѯ<EFBFBD><D1AF><EFBFBD>ռ<EFBFBD>¼
}
//_stprintf( szSelect , _T("select * from smsRecv") ); //<2F><>ѯ<EFBFBD><D1AF><EFBFBD>ռ<EFBFBD>¼
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("<22><><EFBFBD><EFBFBD>,50; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,100;<3B><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,80; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,120;"));
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,150;<3B><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,280;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;<3B><><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD>,100;<3B>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,120;"));
m_wndList.InsertItem( 0 , _itot( iItem+1,szSelect,10) , bRead ); //<2F>Ѷ<EFBFBD><D1B6><EFBFBD>δ<EFBFBD><CEB4>ͼ<EFBFBD>һ<EAB2BB><D2BB>
m_wndList.SetItemData( 0,lRecvID );
#ifdef MOBSET_OEM_SNLD
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,120;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,200;<3B><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,130;<3B>dz<EFBFBD>,80;<3B>Ա<EFBFBD>,50; <20><>˾,80;ְ<><D6B0>,80;<3B>绰,80;<3B><><EFBFBD><EFBFBD>,80;Email,80;QQ,80;<3B><>ע,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 ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
RecvSms(); //ȡ<>µĶ<C2B5><C4B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FlashIcon(true,false); //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
return true;
}
void CFFaxJS::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
m_wndList.MoveWindow( 0 , 0 , cx,cy);
}
}
long CFFaxJS::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CFFaxJS::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 CFFaxJS::RecvSms()
{
//û<><C3BB>Ȩ<EFBFBD><C8A8>
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 CFFaxJS::ProcessSocket(Socket_Head *pHead)
{
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
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 ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
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++; //<2F><>ʾ<EFBFBD><CABE>һ<EFBFBD><D2BB>
}
m_wndList.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
if ( m_bRecvFirst && pRecv->lCount <= 0 ) //û<>յ<EFBFBD><D5B5>µĶ<C2B5><C4B6><EFBFBD>
{
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("<22><><EFBFBD><EFBFBD>%d<><64>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"),lRead );
//_tcscpy( sms2.szSender , _T("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
_stprintf( sms2.szTime , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"),lRead );
DLG_RecvSms * dlg = new DLG_RecvSms;
dlg->Create(IDD_RECVSMS , this);
//dlg->SetPara( &sms2,_T("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
dlg->SetPara( &sms2,_T("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
dlg->ShowWindow( SW_SHOW);
this->SetFocus();
}
}
}
return true;
}
//<2F>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>
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 ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
//<2F><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD>
for ( int i = 0;i<pRecv->lCount;i++)
{
RecvNewSms(*pData,i<3?true:false);
pData++; //<2F><>ʾ<EFBFBD><CABE>һ<EFBFBD><D2BB>
}
m_wndList.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
if ( m_bRecvFirst && pRecv->lCount <= 0 ) //û<>յ<EFBFBD><D5B5>µĶ<C2B5><C4B6><EFBFBD>
{
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("<22><><EFBFBD><EFBFBD>%d<><64>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"),lRead );
//_tcscpy( sms2.szSender , _T("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
_stprintf( sms2.szTime , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"),lRead );
DLG_RecvSms * dlg = new DLG_RecvSms;
dlg->Create(IDD_RECVSMS , this);
dlg->SetPara( &sms2,_T("δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
//dlg->SetPara( &sms2,"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" );
dlg->ShowWindow( SW_SHOW);
this->SetFocus();
}
}
}
return true;
}
return false;
}
void CFFaxJS::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); //״̬<D7B4><CCAC>Ϊ<EFBFBD>Ѷ<EFBFBD>
DLG_SmsLogSee dlg(this);
sms.lType = SMS_SEE_TYPE_RECV;
dlg.SetParam(sms);
dlg.SetReadSms(true);
if ( dlg.DoModal() == 300 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
{
if ( m_pMainFrame->m_pFuncView->On_User_List_Add() ) //<2F>½<EFBFBD><C2BD>б<EFBFBD>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pMainFrame->m_pFuncView->m_DLGSend.List_SetMsg( _T("") ); //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 CFFaxJS::On_User_Send()
{
long lItem = GetCurrentSelected();
if ( lItem <0 )
return ;
ReadSms(lItem); //״̬<D7B4><CCAC>Ϊ<EFBFBD>Ѷ<EFBFBD>
if ( m_pMainFrame->m_pFuncView->On_User_List_Add() ) //<2F>½<EFBFBD><C2BD>б<EFBFBD>
{
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
long lCount = m_wndList.GetSelectedCount();
if ( lCount <= 0 )
return ;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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 CFFaxJS::On_User_ZF()
{
long lItem = GetCurrentSelected();
if ( lItem <0 )
return ;
ReadSms(lItem); //״̬<D7B4><CCAC>Ϊ<EFBFBD>Ѷ<EFBFBD>
SMS_See sms = GetSms(lItem);
if ( m_pMainFrame->m_pFuncView->On_User_List_Add() ) //<2F>½<EFBFBD><C2BD>б<EFBFBD>
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pMainFrame->m_pFuncView->m_DLGSend.List_SetMsg( sms.szMsg ); //<2F><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>
}
}
void CFFaxJS::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];
//<2F><>תɾ<D7AA><C9BE>
m_wndList.ShowWindow( SW_HIDE ); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ٶ<EFBFBD>
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]); //<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE>
}
}
m_wndList.ShowWindow( SW_SHOW ); //<2F>ӿ<EFBFBD><D3BF><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ٶ<EFBFBD>
delete lDel;
}
void CFFaxJS::On_User_Export()
{
/*
DLG_FAXJS_Export dlg(this);
dlg.SetParam(&m_AdoRS2,&m_wndList);
dlg.DoModal();
*/
}
void CFFaxJS::On_User_Refresh()
{
RefreshInfo();
}
void CFFaxJS::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(""); //ˢ<>º󣬲<C2BA>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>
}
}
void CFFaxJS::On_User_TypeSetup()
{
DLG_TypeSetup dlg(this);
dlg.SetParam( &m_AdoRS2 );
dlg.DoModal();
}
void CFFaxJS::OnRclickSmsjsList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CFFaxJS::OnDblclkSmsjsList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_See();
}
void CFFaxJS::ShowRMenu()
{
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
#ifdef YQ_VER
CMenu MenuType;
MenuType.CreatePopupMenu();
if ( lItem >= 0 )
{
//<2F><><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD>ռ<EFBFBD>
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;
//<2F><><EFBFBD><EFBFBD>Menu<6E><75><EFBFBD><EFBFBD>
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 );
//<2F>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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_FAXJS_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_FAXJS_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_FAXJS_TYPESETUP , _T(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ") );
#endif
if ( lItem >= 0 )
{
menu.AppendMenu(MF_STRING , MENU_FAXJS_SEE , _T(" <20><> <20><> ") );
menu.AppendMenu(MF_STRING , MENU_FAXJS_SEND , _T(" <20><> <20><> ") );
menu.AppendMenu(MF_STRING , MENU_FAXJS_ZF , _T(" ת <20><> ") );
menu.AppendMenu(MF_STRING , MENU_FAXJS_DEL , _T(" ɾ <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_FAXJS_SEE , _T(" <20><> <20><> ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_FAXJS_SEND, _T(" <20><> <20><> ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_FAXJS_ZF, _T(" ת <20><> ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_FAXJS_DEL , _T(" ɾ <20><> ") );
}
#ifdef YQ_VER
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING|MF_POPUP,(UINT)MenuType.GetSafeHmenu(), _T(" <20><> <20><> ") );
#endif
menu.AppendMenu(MF_SEPARATOR );
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING , MENU_FAXJS_EXPORT, _T(" <20><><EFBFBD><EFBFBD>... ") );
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING , MENU_FAXJS_FIND , _T(" <20><><EFBFBD><EFBFBD>... ") );
menu.AppendMenu(MF_SEPARATOR );
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING , MENU_FAXJS_REFRESH, _T(" ˢ <20><> ") );
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
SMS_See CFFaxJS::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("<EFBFBD><EFBFBD> <20><>") );
}
return sms;
}
void CFFaxJS::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 ); //<2F><>ʾ<EFBFBD>Ѷ<EFBFBD>ͼ<EFBFBD><CDBC>
}
}
}
void CFFaxJS::OnTimer(UINT 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("<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>...") );
}
return ;
}
#endif
if ( nIDEvent == 3 )
{
KillTimer(nIDEvent);
//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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("-<2D>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Ϣ");
_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 CFFaxJS::On_TW_Init(WPARAM wParam , LPARAM lParam )
{
long lIndex = (long) wParam;
long lCode = (long) lParam;
if ( lIndex !=0 ) //<2F><>Ϣ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD>
return false;
char Buf[64];
switch( lCode ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
case -1:
_tcscpy(Buf , "<EFBFBD><EFBFBD><EFBFBD>Ӵ<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>" );
break;
case -2:
_tcscpy(Buf , "<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>" );
break;
case -3:
_tcscpy(Buf , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>" );
break;
case 0:
_stprintf(Buf , "<EFBFBD><EFBFBD><EFBFBD>ӳɹ<EFBFBD>:<3A>ֻ<EFBFBD><D6BB>ͺ<EFBFBD>Ϊ:%s" , m_pSendThread->m_szMobileName );
break;
default:
_tcscpy(Buf , "δ֪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>" );
break;
}
m_pMainFrame->SetStatMsg(Buf);
if ( lCode != 0 ) //û<>гɹ<D0B3><C9B9>ģ<EFBFBD>׼<EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
Sleep(500);
m_pSendThread->Com_Exit();
SetTimer( 1 , 2000 , NULL ); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>
}
else
{
if (this->m_Setup.bAutoRead) //<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ȡSIM<49><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
//ֱ<><D6B1>ȡSIM<49><4D><EFBFBD>еĶ<D0B5><C4B6><EFBFBD>Ϣ
m_bOneGetSim = false;
m_pMainFrame->SetStatMsg("<EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD>ѯSIM<EFBFBD><EFBFBD><EFBFBD>϶<EFBFBD><EFBFBD><EFBFBD>Ϣ...");
m_pSendThread->PostThreadMessage( TH_GETSIM , 0 , 0 );
}
// else
// if (m_pMainFrame->m_pFuncView->isAutoClear()) //<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ɾ<EFBFBD><C9BE>
// {
// //<2F><><EFBFBD><EFBFBD>SIM<49><4D><EFBFBD>еĶ<D0B5><C4B6><EFBFBD>Ϣ
// m_bOneGetSim = false;
// SendState_SetMsg( lIndex , "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SIM<49><4D><EFBFBD>϶<EFBFBD><CFB6><EFBFBD>Ϣ..." );
// m_pMCom[lIndex].m_lTime = GetTickCount();
// m_pMCom[lIndex].pSendThread->PostThreadMessage( TH_CLEAR , 0 , 0 );
// }
// else //û<><C3BB><EFBFBD>Զ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><D5B6>ţ<EFBFBD><C5A3><EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7>Ͷ<EFBFBD><CDB6><EFBFBD>
// {
// SendNextSms(lIndex); //<2F>ӷ<EFBFBD><D3B7>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>͡<EFBFBD>
// }
}
return 1;
}
long CFFaxJS::On_TW_Send(WPARAM wParam , LPARAM lParam )
{
return 1;
}
long CFFaxJS::On_TW_Recv(WPARAM wParam , LPARAM lParam )
{
long lIndex = (long)wParam;
SMS_Recv * pSms = (SMS_Recv *)lParam;
m_pMainFrame->SetStatMsg("<EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><EFBFBD>µ<EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD>" );
if ( pSms->lMsgType == MSGTYPE_REPORT ) //<2F>˶<EFBFBD><CBB6><EFBFBD>Ϣ<EFBFBD><CFA2>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
{
return 1; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>
}
m_lMobileRecvCount ++; //<2F><><EFBFBD>յ<EFBFBD><D5B5>Ķ<EFBFBD><C4B6><EFBFBD>+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); //<2F>յ<EFBFBD><D5B5>µ<EFBFBD><C2B5><EFBFBD>Ϣ;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5>IJ<EFBFBD><C4B2><EFBFBD>SIM<49><4D><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if ( !pSms->bSim && m_Setup.bAutoDelete )
{
long lDel = pSms->lIndex > 0 ? pSms->lIndex : 1;
char Buf[64]={0};
_stprintf( Buf , "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ..." , lDel );
m_pMainFrame->SetStatMsg(Buf );
m_pSendThread->PostThreadMessage( TH_DELETE , lDel , 0 );
}
return 1;
}
long CFFaxJS::On_TW_GetSim(WPARAM wParam , LPARAM lParam )
{
long lIndex = (long)wParam;
long lCode = (long)lParam;
char Buf[32]={0};
switch( lCode ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
case -4:
_tcscpy(Buf , "<EFBFBD>ӿڻ<EFBFBD>δ<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD>" );
break;
case -2:
_tcscpy(Buf , "<EFBFBD><EFBFBD>ѯSIM<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ų<EFBFBD>ʱ" );
break;
default:
_stprintf(Buf , "<EFBFBD><EFBFBD>ѯSIM<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ųɹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>%d<><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" , lCode);
break;
}
m_pMainFrame->SetStatMsg( Buf );
if ( lCode == -2 ) //<2F><>ʱ
{
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( "<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>..." );
}
else
{
Sleep(500);
m_pMainFrame->SetStatMsg( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SIM<EFBFBD><EFBFBD>..." );
m_pSendThread->PostThreadMessage( TH_CLEAR , 0 , 0 );
}
// else
// {
// if (m_pMainFrame->m_pFuncView->isAutoClear() && !m_bOneGetSim) //<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD>ɾ<EFBFBD><C9BE>
// {
// //<2F><><EFBFBD><EFBFBD>SIM<49><4D><EFBFBD>еĶ<D0B5><C4B6><EFBFBD>Ϣ
// m_bOneGetSim = false;
// SendState_SetMsg( lIndex , "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SIM<49><4D><EFBFBD>϶<EFBFBD><CFB6><EFBFBD>Ϣ..." );
// 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; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻΪ<D6BB>˽<EFBFBD><CBBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8Сʱ<D0A1>ڲ<EFBFBD><DAB2>ᳬʱ<E1B3AC><CAB1><EFBFBD><EFBFBD>
// SendNextSms(lIndex); //<2F>ӷ<EFBFBD><D3B7>Ͷ<EFBFBD><CDB6><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD>ʼ<EFBFBD><CABC><EFBFBD>͡<EFBFBD>
// }
// }
return 1;
}
long CFFaxJS::On_TW_Clear(WPARAM wParam , LPARAM lParam )
{
long lIndex = (long)wParam;
long lCode = (long)lParam;
if ( lCode == -2 ) //<2F><>ʱ
{
m_pMainFrame->SetStatMsg( "<EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!" );
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( "<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>..." );
}
else
{
m_pMainFrame->SetStatMsg( "<EFBFBD><EFBFBD><EFBFBD>ն<EFBFBD><EFBFBD>ųɹ<EFBFBD>!" );
SetTimer( 1 , 60000*30 , NULL ); //ÿ30<33><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD>ţ<EFBFBD><C5A3><EFBFBD><EFBFBD>ն<EFBFBD><D5B6><EFBFBD>
}
return 1;
}
long CFFaxJS::On_TW_Delete(WPARAM wParam , LPARAM lParam )
{
long lIndex = (long)wParam;
long lCode = (long)lParam;
if ( lCode == -2 ) //<2F><>ʱ
{
m_pMainFrame->SetStatMsg( "ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><EFBFBD>!" );
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( "<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>..." );
}
else
{
m_pMainFrame->SetStatMsg( "ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ųɹ<EFBFBD>!" );
Sleep(500);
if ( m_Setup.lAutoClearCount>0 && m_lMobileRecvCount > 0 && m_lMobileRecvCount%m_Setup.lAutoClearCount==0 ) //ÿ<><C3BF><EFBFBD>յ<EFBFBD>10<31><30><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD><C5A3>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>SIM<49><4D>
{
m_pMainFrame->SetStatMsg( "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>SIM<EFBFBD><EFBFBD>..." );
m_pSendThread->PostThreadMessage( TH_CLEAR , 0 , 0 );
}
}
return 1;
}
#endif
void CFFaxJS::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 CFFaxJS::RecvNewSms(ANS_RecvData2 sms,BOOL bShowTip)
{
}
void CFFaxJS::ConnectMobile()
{
#ifdef SUPPERGSM
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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("<EFBFBD><EFBFBD><EFBFBD>ڼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>...") );
#endif
}
void CFFaxJS::OnOK()
{
//CDialog::OnOK();
}
void CFFaxJS::OnCancel()
{
//CDialog::OnCancel();
}
void CFFaxJS::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 CFFaxJS::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo)
{
if ( nID>= MENU_FAXJS_TYPESETUP+1 && nID<=MENU_FAXJS_TYPESETUP+1+m_lMenuTypeCount )
{
long lCount = nID - (MENU_FAXJS_TYPESETUP+1);
On_User_Type(lCount);
}
return CDialog::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}
void CFFaxJS::SetToday(BOOL bToday)
{
if ( m_bShowToday != bToday )
{
m_bShowToday = bToday;
m_bRefresh = false;
}
}
void CFFaxJS::ReadSetup()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_Setup = m_pMainFrame->m_Setup;
}
BOOL CFFaxJS::FlashIcon(BOOL bCheck, BOOL bFlash)
{
if ( bCheck )
{
CString str;
str=_T("select count(*) as abc from smsRecv where Reader=0 "); //<2F><>ѯδ<D1AF><CEB4><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
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 CFFaxJS::ShowNoReaderMsg()
{
CString str;
SMS_See sms={0};
long lRecvID = 0;
COleDateTime t;
str="select top 1 * from smsRecv where Reader=0 order by RecvTime"; //<2F><>ѯδ<D1AF><CEB4><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
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("<EFBFBD><EFBFBD> <20><>") );
if ( _tcslen(szSender)>0 )
_stprintf(sms.szSender , _T("%s-%s") , szSendNum,szSender );
else
_tcscpy(sms.szSender , szSendNum );
//״̬<D7B4><CCAC>Ϊ<EFBFBD>Ѷ<EFBFBD>
str.Format( _T("update smsrecv set Reader=1 where RecvID=%d") , lRecvID );
if ( m_AdoRS.Open( str ) && m_AdoRS.GetRecordCount() )
{
//<2F><><EFBFBD>ң<EFBFBD><D2A3>ı<EFBFBD>ͼ<EFBFBD><CDBC>
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 ); //<2F><>ʾ<EFBFBD>Ѷ<EFBFBD>ͼ<EFBFBD><CDBC>
break;
}
}
}
sms.lType = SMS_SEE_TYPE_RECV;
DLG_SmsLogSee dlg(this);
dlg.SetParam(sms);
dlg.SetReadSms(true);
if ( dlg.DoModal() == 300 ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
{
if ( m_pMainFrame->m_pFuncView->On_User_List_Add() ) //<2F>½<EFBFBD><C2BD>б<EFBFBD>
{
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
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;
}
}
//<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC>
FlashIcon(true,false);
return true;
}
FlashIcon(false,false); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ˡ<EFBFBD>
return false;
}