SmsManager/CheckupDlg.cpp

810 lines
21 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// CheckupDlg.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "CheckupDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCheckupDlg dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_CheckupSee.h"
#include "SmsManagerDoc.h"
#include "UserView.h"
#include "DLG_Corp_Oper_Open.h"
#include "DLG_ShowWarning.h"
#pragma comment(lib, "winmm.lib")
#include <Mmsystem.h>
CCheckupDlg::CCheckupDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCheckupDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCheckupDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_bProcess = false;
m_bAddIcon = false;
m_lIconCount = 0;
pDlgWarning = NULL;
}
void CCheckupDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCheckupDlg)
DDX_Control(pDX, IDC_CHECKUP_LIST, m_wndList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCheckupDlg, CDialog)
//{{AFX_MSG_MAP(CCheckupDlg)
ON_WM_SIZE()
ON_NOTIFY(NM_DBLCLK, IDC_CHECKUP_LIST, OnDblclkCheckupList)
ON_NOTIFY(NM_RCLICK, IDC_CHECKUP_LIST, OnRclickCheckupList)
//}}AFX_MSG_MAP
ON_COMMAND( MENU_CHECKUP_SEE , On_User_See )
ON_COMMAND( MENU_CHECKUP_PASS , On_User_Pass )
ON_COMMAND( MENU_CHECKUP_NOPASS , On_User_NoPass )
ON_COMMAND(MENU_CHECKUP_CHANGETDPASS, On_User_ChangeTdPass)
ON_COMMAND( MENU_CHECKUP_CORPPASS , On_User_CorpPass )
ON_COMMAND( MENU_CHECKUP_CORPNOPASS , On_User_CorpNoPass )
ON_COMMAND(MENU_CHECKUP_CORPTDPASS, On_User_CorpTDPass)
ON_COMMAND(MENU_CHECKUP_CORPTDNOPASS, On_User_CorpTDNoPass)
ON_COMMAND(MENU_CHECKUP_CORPCHANGETDPASS, On_User_CorpChangeTDPass)
ON_COMMAND(MENU_CHECKUP_CORPTDCHANGETDPASS, On_User_CorpTDChangeTDPass)
ON_COMMAND( MENU_CHECKUP_CORPLIST , On_User_CorpList )
ON_COMMAND( MENU_CHECKUP_CORPOFF , On_User_CorpOFF )
ON_COMMAND( MENU_CHECKUP_REFRESH , On_User_Refresh )
ON_WM_TIMER()
ON_WM_DESTROY()
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCheckupDlg message handlers
BOOL CCheckupDlg::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CCheckupDlg::RefreshInfo(BOOL bShowDlg)
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return false;
}
this->Close(); //<2F>ر<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
m_wndList.ShowWindow( SW_HIDE ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
m_wndList.DeleteAllItems(); //<2F><>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>¼
m_pMainFrame->SendFrame(SMSFUNC_CHECKUP_SEE,NULL,0);
if (bShowDlg && !m_bProcess)
{
m_bProcess = true;
m_Process.DoModal();
m_bProcess = false;
}
m_wndList.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
return true;
}
BOOL CCheckupDlg::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CCheckupDlg::ProcessSocket(Socket_Head *pHead)
{
//ȡҪ<C8A1><D2AA><EFBFBD>˵Ķ<CBB5><C4B6><EFBFBD>
if (pHead->lFuncType == SMSFUNC_CHECKUP_SEE)
{
m_bRefresh = true; //<2F>Ѿ<EFBFBD>ˢ<EFBFBD>¹<EFBFBD>
ANS_Checkup_See * pSee = (ANS_Checkup_See *)pHead->pFrame;
ANS_Checkup_SeeData * pData = (ANS_Checkup_SeeData *)(pHead->pFrame+sizeof(ANS_Checkup_See));
TCHAR Buf[512];
CString str;
long lCount = m_wndList.GetItemCount();
for ( int i=0;i<pSee->lCount;i++ )
{
ANS_Checkup_SeeData * pNewData = new ANS_Checkup_SeeData;
*pNewData = *pData;
POSITION pos = m_Checkup.AddTail(pNewData);
//(_T("<22><><EFBFBD><EFBFBD>,50; <20><EFBFBD><E1BDBB>˾,80; <20><EFBFBD><E1BDBB>,80; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,200;<3B>ύʱ<E1BDBB><CAB1>,150;")));
_stprintf(Buf , _T("%d") , lCount+i+1 );
m_wndList.InsertItem(lCount+i , Buf , 0 );
m_wndList.SetItemData(lCount+ i , (DWORD_PTR)pos ); //<2F><>Pos
m_wndList.SetItemText(lCount+i,1,_itot(pData->lCorpID,Buf,10));
m_wndList.SetItemText(lCount+i,2,pData->szSender);
m_wndList.SetItemText(lCount+i,3,pData->szSendNum);
_tcscpy(Buf , pData->szRecvNum );
#ifdef SMSMANAGER_KF
Buf[4]='*';Buf[5]='*';Buf[6]='*';
#endif
m_wndList.SetItemText(lCount + i, 4, Buf);
switch (pData->lRecvNumType)
{
case 0:
str = _T("<EFBFBD>ƶ<EFBFBD>");
break;
case 1:
str = _T("<EFBFBD><EFBFBD>ͨ");
break;
case 2:
str = _T("С<EFBFBD><EFBFBD>ͨ");
break;
case 3:
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
break;
default:
str = _T("");
break;
}
m_wndList.SetItemText(lCount + i, 5, str);
_stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tSubTime.wYear,pData->tSubTime.wMonth,pData->tSubTime.wDay,pData->tSubTime.wHour,pData->tSubTime.wMinute );
m_wndList.SetItemText(lCount+i,6,Buf);
_stprintf(Buf, _T("%04d.%02d.%02d %02d:%02d"), pData->tTimer.wYear, pData->tTimer.wMonth, pData->tTimer.wDay, pData->tTimer.wHour, pData->tTimer.wMinute);
m_wndList.SetItemText(lCount + i, 7, Buf);
m_wndList.SetItemText(lCount+i,8,pData->szMsg);
pData ++;
}
if ( m_bProcess ) //<2F>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
{
m_Process.SetProcess( pSee->lPageAll , pSee->lPageCount );
}
//<2F><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
if (this->m_pMainFrame->m_Setup.Warning_Enable && m_pMainFrame->m_Setup.Warning_Timer > 0)
{
if (!m_pMainFrame->m_Setup.Warning_OnlyContent)
{
KillTimer(1);
Warning_Close(); //ˢ<><CBA2><EFBFBD>ˣ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
#ifdef _DEBUG
SetTimer(1, 8 * 1000, NULL);
#else
SetTimer(1, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000, NULL);
#endif
}
else
{
KillTimer(11); //ˢ<><CBA2><EFBFBD>ˣ<EFBFBD><CBA3><EFBFBD><EFBFBD>ó<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
if (pSee->lCount > 0) //<2F><><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
{
Warning_Checkup(_T("<EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
}
else
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD>ͬʱ<CDAC><CAB1><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳû<D2B2><C3BB><EFBFBD>ݣ<EFBFBD><DDA3>Ͳ<EFBFBD><CDB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pMainFrame->m_pUserView->m_dlgSmsTask.m_lCheckCount <= 0 &&
m_pMainFrame->m_pUserView->m_dlgTemplate.m_lCheckCount <= 0 &&
m_pMainFrame->m_pUserView->m_dlgSignName.m_lCheckCount <= 0)
{
Warning_Close(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˣ<EFBFBD>ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
}
#ifdef _DEBUG
SetTimer(10, 8 * 1000, NULL);
#else
SetTimer(10, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000, NULL); //<2F>´<EFBFBD><C2B4>Զ<EFBFBD>ˢ<EFBFBD><CBA2>ʱ<EFBFBD><CAB1>
#endif
}
}
}
return true;
}
//<2F><><EFBFBD>˶<EFBFBD><CBB6>ţ<EFBFBD><C5A3><EFBFBD><E0B5B1>ɾ<EFBFBD><C9BE>
if (pHead->lFuncType == SMSFUNC_CHECKUP)
{
ANS_Checkup * pDel = (ANS_Checkup *)pHead->pFrame;
ANS_CheckupData * pDelData = (ANS_CheckupData *)(pHead->pFrame+sizeof(ANS_Checkup));
POSITION pos,pos2;
ANS_Checkup_SeeData * pCheckupData;
if ( pDel->bAll )
{
RefreshInfo(); //<2F><>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ˢ<EFBFBD><CBA2>
}
else
{
m_wndList.ShowWindow( SW_HIDE ); //<2F>ӿ<EFBFBD><D3BF>ٶ<EFBFBD>
for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
{
if ( pDelData[i].lSendID ) //<2F><><EFBFBD>˳ɹ<CBB3>
{
pos = (POSITION)m_wndList.GetItemData( pDelData[i].lItem );
pos2 = pos;
pCheckupData = m_Checkup.GetNext( pos );
if ( pCheckupData->lSendID == pDelData[i].lSendID ) //ID<49><44>ͬ<EFBFBD>IJſ<C4B2>ɾ<EFBFBD><C9BE>
{
delete pCheckupData; //<2F><>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_Checkup.RemoveAt(pos2); //<2F><><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ɾ<EFBFBD><C9BE>
m_wndList.DeleteItem(pDelData[i].lItem); //<2F><>ListCtrl<72><6C>ɾ<EFBFBD><C9BE>
}
}
}
m_wndList.ShowWindow( SW_SHOW ); //<2F>ӿ<EFBFBD><D3BF>ٶ<EFBFBD>
}
return true;
}
return false;
}
BOOL CCheckupDlg::OnInitDialog()
{
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;
//<2F><>ʼ<EFBFBD><CABC>List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CHECKUP) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><>ҵID,80; <20><EFBFBD><E1BDBB>,80; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,200; <20><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,150;<3B><>Ӫ<EFBFBD><D3AA>,80;<3B>ύʱ<E1BDBB><CAB1>,160;<3B><>ʱʱ<CAB1><CAB1>,160; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,1000;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CCheckupDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
m_wndList.MoveWindow( 0 , 0 , cx,cy);
}
}
void CCheckupDlg::Close()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
while (!m_Checkup.IsEmpty())
{
ANS_Checkup_SeeData * pData = m_Checkup.GetHead();
m_Checkup.RemoveHead();
delete pData;
}
}
void CCheckupDlg::OnDblclkCheckupList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_See();
}
void CCheckupDlg::OnRclickCheckupList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CCheckupDlg::ShowRMenu()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT,false)) //û<>в鿴Ȩ<E9BFB4><C8A8>
return ;
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
if ( lItem >= 0 )
bLock = isLockItem( lItem , false ); //ȡ<><C8A1><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F>޸<EFBFBD>
if (lItem >= 0 && !bLock)
{
menu.AppendMenu(MF_STRING, MENU_CHECKUP_SEE, _T(" <20><> <20><> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_PASS, _T(" ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
menu.AppendMenu(MF_STRING, MENU_CHECKUP_NOPASS, _T(" ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CHANGETDPASS, _T(" ѡ<>е<EFBFBD>תӪ<D7AA><D3AA>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
if (m_wndList.GetSelectedCount() == 1) //ֻ<><D6BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>¼ʱ<C2BC>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
{
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPPASS, _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPNOPASS, _T(" <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPTDPASS, _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPTDNOPASS, _T(" <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> "));
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPCHANGETDPASS, _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>תӪ<D7AA><D3AA>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
menu.AppendMenu(MF_STRING, MENU_CHECKUP_CORPTDCHANGETDPASS, _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5>ͨ<EFBFBD><CDA8>תӪ<D7AA><D3AA>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> "));
}
if ( m_pMainFrame->GetUserPurview(PURVIEW_LIST,false) && !m_pMainFrame->m_bSOS ) //<2F>в<EFBFBD>ѯ<EFBFBD><EFBFBD>IJ<EFBFBD><C4B2>д<EFBFBD>Ȩ<EFBFBD><C8A8>
{
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_CHECKUP_CORPLIST, _T(" <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>") );
}
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_CHECKUP_CORPOFF, _T(" <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>ҵ ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CHECKUP_SEE, _T(" <20><> <20><> ") );
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CHECKUP_PASS, _T(" ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CHECKUP_NOPASS, _T(" ѡ<>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> ") );
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CHECKUP_CORPPASS , _T(" <20><><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> ") );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CHECKUP_CORPNOPASS, _T(" <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7> ") );
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CHECKUP_CORPLIST, _T(" <20><>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>") );
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_CHECKUP_CORPOFF, _T(" <20><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD>ҵ ") );
}
menu.AppendMenu(MF_SEPARATOR );
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING , MENU_CHECKUP_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();
}
void CCheckupDlg::On_User_See()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_Checkup_SeeData * pData = m_Checkup.GetNext( pos );
if (pData)
{
DLG_CheckupSee dlg(this);
dlg.SetParam(*pData);
dlg.DoModal();
}
}
void CCheckupDlg::On_User_Pass()
{
SmsCheckup( true ,false,0,false);
}
void CCheckupDlg::On_User_NoPass()
{
SmsCheckup( false,false, 0, false);
}
void CCheckupDlg::On_User_ChangeTdPass()
{
SmsCheckup(true, false, 2, true);
}
void CCheckupDlg::On_User_CorpPass()
{
SmsCheckup( true,true, 0, false);
}
void CCheckupDlg::On_User_CorpNoPass()
{
SmsCheckup( false,true, 0, false);
}
void CCheckupDlg::On_User_CorpTDPass()
{
SmsCheckup(true, true, 1, false);
}
void CCheckupDlg::On_User_CorpTDNoPass()
{
SmsCheckup(false, true, 1, false);
}
void CCheckupDlg::On_User_CorpChangeTDPass()
{
SmsCheckup(true, true, 2, true);
}
void CCheckupDlg::On_User_CorpTDChangeTDPass()
{
SmsCheckup(true, true, 1, true);
}
void CCheckupDlg::On_User_CorpList()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_Checkup_SeeData * pData = m_Checkup.GetNext( pos );
if (!pData)
return ;
this->m_pMainFrame->ShowFuncDlg( FUNC_LIST );
this->m_pMainFrame->m_pUserView->m_dlgList.m_lQueryCorpID = pData->lCorpID;
this->m_pMainFrame->m_pUserView->m_dlgList.OnListQuery();
}
void CCheckupDlg::On_User_CorpOFF()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
if (isLockItem(lItem))
{
return ;
}
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_Checkup_SeeData * pData = m_Checkup.GetNext( pos );
if (!pData)
return ;
ANS_Corp_SeeData data={0};
data.lCorpID = pData->lCorpID;
DLG_Corp_Oper_Open dlg(this);
dlg.SetParam(&data,false,this->m_pMainFrame->m_Setup.szUser);
if ( dlg.DoModal() == IDOK )
{
REQ_CorpOFF * pCorp = new REQ_CorpOFF;memset(pCorp,0,sizeof(REQ_CorpOFF));
pCorp->lCorpID = pData->lCorpID;
pCorp->lStatus = 0; //0Ϊ<30><CEAA><EFBFBD>ã<EFBFBD><31><CEAA><EFBFBD><EFBFBD>
_tcscpy(pCorp->szOper , dlg.m_strOperName );
_tcscpy(pCorp->szBZ , dlg.m_strBZ );
m_pMainFrame->SendFrame(SMSFUNC_CORPOFF,(BYTE*)pCorp,sizeof(REQ_CorpOFF));
}
}
void CCheckupDlg::On_User_Refresh()
{
RefreshInfo();
}
long CCheckupDlg::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CCheckupDlg::SetLockItem(long lItem, BOOL bLock)
{
if ( bLock )
m_wndList.SetIconIndex( lItem , 1 );
else
m_wndList.SetIconIndex( lItem , 0 );
}
BOOL CCheckupDlg::isLockItem(long lItem, BOOL bShowWarning)
{
BOOL b = (m_wndList.GetIconIndex(lItem) == 1);
if ( b && bShowWarning )
{
MessageBox( _T("<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD><EFBFBD>ٲ<EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONINFORMATION );
}
return b;
}
void CCheckupDlg::SmsCheckup(BOOL bPass,BOOL bAll,long lTD,BOOL bChange)
{
//bPass <20>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
//bAll <20>Ƿ<EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊֻ<CEAA><D6BB><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>
//lTD <20>Ƿ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>ġ<EFBFBD>0-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>2-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD><EFBFBD>з<EFBFBD><D0B7>͵<EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
//bChange <20>Ƿ<EFBFBD>ת<EFBFBD>Ƶ<EFBFBD>Ӫ<EFBFBD><D3AA>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
{
return ;
}
long lCount = m_wndList.GetSelectedCount();
long lSize = sizeof(REQ_Checkup)+sizeof(ANS_CheckupData)*lCount;
BYTE * pCheckupSend = new BYTE[lSize];memset(pCheckupSend,0,lSize);
BOOL bGetFirst=false;
REQ_Checkup * pCheckup = (REQ_Checkup *)pCheckupSend; //ͷ
ANS_CheckupData * pCheckupData = (ANS_CheckupData *)(pCheckupSend+sizeof(REQ_Checkup));
pCheckup->lCount = lCount;
pCheckup->bAll = false;
pCheckup->lTDType = lTD;
pCheckup->bChangeTD = bChange;
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
ANS_Checkup_SeeData * pSeeData;
COleDateTime tMaxDelayTime = COleDateTime::GetCurrentTime(); //ȡ<>ʱ<EEB3A4><CAB1><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
CString strMaxDelayMsg;
long lMaxDelayCorpID=0;
long lMaxDelayUserID = 0;
POSITION pos2;
while(pos)
{
pCheckupData->bPass = bPass;
pCheckupData->lItem = m_wndList.GetNextSelectedItem(pos);
pos2 = (POSITION)m_wndList.GetItemData(pCheckupData->lItem);
pSeeData = m_Checkup.GetNext(pos2); //ȡ<><C8A1><EFBFBD>б<EFBFBD><D0B1>е<EFBFBD>pos
pCheckupData->lSendID = pSeeData->lSendID;
#ifdef _UNICODE
pCheckupData->bDS = pSeeData->bDS;
#endif
if (COleDateTime(pSeeData->tSubTime) < tMaxDelayTime) //ȡ<>ʱ<EEB3A4><CAB1><EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
{
tMaxDelayTime = pSeeData->tSubTime;
strMaxDelayMsg = pSeeData->szMsg;
lMaxDelayCorpID = pSeeData->lCorpID;
lMaxDelayUserID = pSeeData->lUserID;
}
if ( !bGetFirst )
{
bGetFirst = true;
pCheckup->bPass = bPass;
pCheckup->lCorpID = pSeeData->lCorpID;
_tcscpy(pCheckup->szMsg , pSeeData->szMsg );
if ( bAll )
{
if ( pCheckup->bPass == false ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>Ҫȡ<D2AA>û<EFBFBD>ID
pCheckup->lCorpID = pSeeData->lUserID;
pCheckup->bAll = true;
break;
}
}
pCheckupData ++;
}
if (strMaxDelayMsg.GetLength() > 0)
{
_tcscpy(pCheckup->szMsg, strMaxDelayMsg);
pCheckup->lCorpID = lMaxDelayCorpID;
if (bAll && pCheckup->bPass == false) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>Ҫȡ<D2AA>û<EFBFBD>ID
{
pCheckup->lCorpID = lMaxDelayUserID;
}
}
tMaxDelayTime.GetAsSystemTime(pCheckup->tMaxDelayTime);
m_pMainFrame->SendFrame( SMSFUNC_CHECKUP , pCheckupSend , lSize );
}
void CCheckupDlg::Warning_Checkup(CString strTip)
{
if (m_pMainFrame->m_Setup.Warning_Window)
{
//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString strTip2 = _T("%s\r\nƽ̨1");
#ifdef SMSCENTER_TWO
strTip2 = _T("%s\r\nƽ̨2");
#endif
#ifdef SMSCENTER_THREE
strTip2 = _T("%s\r\nƽ̨3");
#endif
CString strTip3;
strTip3.Format(strTip2, strTip);
//<2F><>ʾ<EFBFBD><CABE><EFBFBD>ڣ<EFBFBD><DAA3><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD>Ϣ
if (!pDlgWarning)
{
DLG_ShowWarning * dlg = new DLG_ShowWarning(GetDesktopWindow());
pDlgWarning = dlg;
dlg->Create(IDD_SHOWWARNING, GetDesktopWindow());
dlg->SetParam(strTip3, this->m_pMainFrame, &pDlgWarning);
dlg->ShowWindow(SW_SHOW);
this->SetFocus();
}
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_pMainFrame->m_Setup.Warning_Sound)
{
TCHAR szFileName[512] = { 0 };
m_pMainFrame->GetCurrentPath(szFileName);
_tcscat(szFileName, _T("air.wav"));
PlaySound(szFileName, NULL, SND_FILENAME | SND_NODEFAULT | SND_ASYNC | SND_LOOP);
}
if (m_pMainFrame->m_Setup.Warning_Flash)
{
SetTimer(2, 500, NULL); //<2F><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_lIconCount = 0;
}
}
void CCheckupDlg::Warning_FlashIcon(CString strTip)
{
//<2F><>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBB5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CString strTip2 = _T("%s\r\nƽ̨1");
#ifdef SMSCENTER_TWO
strTip2 = _T("%s\r\nƽ̨2");
#endif
#ifdef SMSCENTER_THREE
strTip2 = _T("%s\r\nƽ̨3");
#endif
CString strTip3;
strTip3.Format(strTip2, strTip);
NOTIFYICONDATA niData;
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);
_stprintf(niData.szTip, strTip3);
niData.cbSize = sizeof(NOTIFYICONDATA);
niData.hWnd = this->m_pMainFrame->m_hWnd;
niData.uID = 125;
niData.uCallbackMessage = SHELL_ICON_MESS;
if (m_bAddIcon)
{
niData.uFlags = NIF_ICON | NIF_TIP;
Shell_NotifyIcon(NIM_MODIFY, &niData);
}
else
{
niData.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
Shell_NotifyIcon(NIM_ADD, &niData);
m_bAddIcon = true;
}
}
void CCheckupDlg::Warning_Close()
{
KillTimer(2);
if (m_bAddIcon)
{
NOTIFYICONDATA niData;
niData.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
niData.cbSize = sizeof(NOTIFYICONDATA);
niData.hWnd = this->m_pMainFrame->m_hWnd;
niData.uID = 125;
niData.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
niData.uCallbackMessage = SHELL_ICON_MESS;
_stprintf(niData.szTip, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
Shell_NotifyIcon(NIM_DELETE, &niData);
m_bAddIcon = false;
}
if (this->m_pMainFrame->m_pUserView->m_dlgCheckup.pDlgWarning)
{
this->m_pMainFrame->m_pUserView->m_dlgCheckup.pDlgWarning->PostMessage(WM_CLOSE);
}
//ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
PlaySound(NULL, NULL, SND_FILENAME);
}
void CCheckupDlg::OnTimer(UINT_PTR nIDEvent)
{
CDialog::OnTimer(nIDEvent);
if (nIDEvent == 1)
{
KillTimer(nIDEvent);
Warning_Checkup(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>ʱ"));
}
if (nIDEvent == 2)
{
Warning_FlashIcon(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>ʱ"));
}
if (nIDEvent == 10) //ˢ<><CBA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
KillTimer(10);
#ifdef _DEBUG
SetTimer(11, 6000, NULL); //40<34><30>ˢ<EFBFBD>³<EFBFBD>ʱ
#else
SetTimer(11, 40000, NULL); //40<34><30>ˢ<EFBFBD>³<EFBFBD>ʱ
#endif
RefreshInfo(false);
}
if (nIDEvent == 11) //ˢ<>³<EFBFBD>ʱ
{
KillTimer(nIDEvent);
Warning_Checkup(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢ<EFBFBD>³<EFBFBD>ʱ"));
#ifdef _DEBUG
SetTimer(10, 8 * 1000, NULL);
#else
SetTimer(10, m_pMainFrame->m_Setup.Warning_Timer * 60 * 1000 / 2, NULL); //<2F><>ʱ<EFBFBD><CAB1><EFBFBD>ٴ<EFBFBD>ˢ<EFBFBD><CBA2>
#endif
}
}
void CCheckupDlg::OnDestroy()
{
if (m_bAddIcon)
{
NOTIFYICONDATA niData;
niData.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
niData.cbSize = sizeof(NOTIFYICONDATA);
niData.hWnd = this->m_pMainFrame->m_hWnd;
niData.uID = 125;
niData.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE;
niData.uCallbackMessage = SHELL_ICON_MESS;
_stprintf(niData.szTip, _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
Shell_NotifyIcon(NIM_DELETE, &niData);
m_bAddIcon = false;
}
if (pDlgWarning)
{
pDlgWarning->OnClose();
//pDlgWarning->DestroyWindow();
//delete pDlgWarning;
//pDlgWarning = NULL;
}
CDialog::OnDestroy();
// TODO: <20>ڴ˴<DAB4><CBB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}