📄 netprodlg.cpp
字号:
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS Enum Connections error (%ld).", dwRet );
//m_cMsgwnd.m_cDialUp =szBuf;
m_pMsgWndOwner->SetMsgWndStatus(szBuf,3);
}
else
{
if(dNumber==0)
{
/*
m_cMsgwnd.m_cDialUp ="尚未拨号上网... ";
m_cMsgwnd.m_cStatus = "欢迎使用 FFCS IP 电话";
pDC = m_cMsgwnd.GetDC();
m_cMsgwnd.PaintFlame(pDC);
ReleaseDC(pDC);
m_bOnLine=FALSE;
m_cMsgwnd.m_bOnline = FALSE;
*/
m_bOnLine=FALSE;
m_pMsgWndOwner->SetMsgWndStatus(IDS_NOT_DIALED_UP,3);
m_pMsgWndOwner->SetMsgWndStatus(IDS_WELCOME_USE_IPHONE,0);
m_pMsgWndOwner->SetOnline(FALSE);
//DisableButtons(FALSE,FALSE);
if(pConf){
if (pConf->InConnection())
{
pConf->HangUp();
}
}
}
else
{
rasconnstatus.dwSize=sizeof(rasconnstatus);
RasGetConnectStatus(ras[0].hrasconn,&rasconnstatus);
switch(rasconnstatus.rasconnstate)
{
case RASCS_Connected:
//m_cMsgwnd.m_cDialUp ="已经拨号上网... ";
m_pMsgWndOwner->SetMsgWndStatus(IDS_BEEN_DIALUP,3);
if(!m_bOnLine){
/* if(m_strAdURL!=""){
GotoURL(m_strAdURL,SW_MINIMIZE);
}
*/
m_bOnLine=TRUE;
}
rasprojection = RASP_PppIp ;
raspppip.dwSize = sizeof(RASPPPIP);
cb = raspppip.dwSize;
if(!RasGetProjectionInfo(ras[0].hrasconn,rasprojection,&raspppip,&cb))
{
//success
CDC *pDC;
m_oIP = raspppip.szIpAddress;
if ( ((m_oDN != m_origDN) || ( m_oIP != m_origIP))||(++OneHourCounter>1800))
{
if((m_oIP.Left(m_IPCompare.GetLength()) == m_IPCompare||m_IPCompare==_T("255."))&&m_bOnLine )
{
//Terminate Modem Test Timer here
if(m_ModemTestTimer){
KillTimer(m_ModemTestTimer);
m_ModemTestTimer = SetTimer(MODEM_TIMER_ID,10000,NULL);
}
BOOL m_bConnect = BeginConnectThread();
//BOOL m_bConnect = OnConnect();
if(OneHourCounter >= 1800)
{
/*
m_cMsgwnd.m_cStatus = m_cStatus;
pDC = m_cMsgwnd.GetDC();
m_cMsgwnd.PaintFlame(pDC);
ReleaseDC(pDC);
*/
m_pMsgWndOwner->SetMsgWndStatus(m_cStatus,0);
}
}else{
/*
m_cMsgwnd.m_cStatus = "欢迎使用 FFCS IP 电话";
pDC = m_cMsgwnd.GetDC();
m_cMsgwnd.PaintFlame(pDC);
ReleaseDC(pDC);
*/
m_pMsgWndOwner->SetMsgWndStatus(IDS_WELCOME_USE_IPHONE,0);
}
}
}else{
TRACE0("RasGetProjectionInfo() Failed");
}
break;
case RASCS_Disconnected:
m_bOnLine=FALSE;
// m_cMsgwnd.m_cDialUp ="已经断开拨号... ";
// m_cMsgwnd.m_bOnline = FALSE;
m_pMsgWndOwner->SetMsgWndStatus(IDS_RAS_DISCONNECTED,3);
m_pMsgWndOwner->SetOnline(FALSE);
//DisableButtons(FALSE,FALSE);
break;
default:
m_bOnLine=FALSE;
// m_cMsgwnd.m_cDialUp ="正在拨号上网... ";
// m_cMsgwnd.m_bOnline = FALSE;
m_pMsgWndOwner->SetMsgWndStatus(IDS_DIALING_UP,3);
m_pMsgWndOwner->SetOnline(FALSE);
break;
}
}
}
/*
pDC = m_cMsgwnd.GetDC();
m_cMsgwnd.PaintFlame(pDC);
ReleaseDC(pDC);
*/
}
void CNetproDlg::OnIPCompare()
{
char szHostName[128];
CDC *pDC;
if( gethostname(szHostName, 128) == 0 )
{
// Get host adresses
struct hostent * pHost;
int i=0;
pHost = gethostbyname(szHostName);
if(pHost!=NULL)
{
while(pHost->h_addr_list[i]!=NULL) i++;
m_oIP = inet_ntoa (*(struct in_addr *)pHost->h_addr_list[i-1]);
if ( ((m_oDN != m_origDN) || ( m_oIP != m_origIP)))
{
if((m_oIP.Left(m_IPCompare.GetLength()) == m_IPCompare||m_IPCompare==_T("255."))&&m_bOnLine )
{
BOOL m_bConnect = BeginConnectThread();
/*
m_cMsgwnd.m_cStatus = m_cStatus;
pDC = m_cMsgwnd.GetDC();
m_cMsgwnd.PaintFlame(pDC);
ReleaseDC(pDC);
*/
m_pMsgWndOwner->SetMsgWndStatus(m_cStatus,0);
}
else
{
/*
m_cMsgwnd.m_cStatus = "欢迎使用 FFCS IP 电话";
pDC = m_cMsgwnd.GetDC();
m_cMsgwnd.PaintFlame(pDC);
ReleaseDC(pDC);
*/
m_pMsgWndOwner->SetMsgWndStatus(IDS_WELCOME_USE_IPHONE,0);
}
}
}
}
if(!m_bSCInUse)
{
if(waveInGetNumDevs()&&waveInGetNumDevs())
{
if(waveOutOpen(&hWaveOut,WAVE_MAPPER,&m_WaveFormat,(unsigned long)this->m_hWnd,0,CALLBACK_WINDOW)==MMSYSERR_NOERROR )
{
if(waveInOpen(&hWaveIn,WAVE_MAPPER,&m_WaveFormat,(unsigned long)this->m_hWnd,0,CALLBACK_WINDOW)!=MMSYSERR_NOERROR )
{
m_cStatus2.LoadString(IDS_SOUNDCARD_NOT_WELL_ENOUGH);// = _T("您的声卡不符合要求... ");
//return FALSE;
}
else
{
m_cStatus2 = _T("");
waveInClose(hWaveIn);
}
waveOutClose(hWaveOut);
//return FALSE;
}
else
{
if(m_bSCInUse)
m_cStatus2 = _T("");
else
m_cStatus2.LoadString(IDS_SOUNDCARD_INUSE);// = _T("您的声卡被其他设备占用... ");
}
}
else
{
m_cStatus2.LoadString(IDS_NO_SOUNDCARD);// = _T("您的声卡未安装... ");
}
}
}
BOOL CNetproDlg::OnConnect()
{
CString cValue;
UINT LocalPort;
CString cSend;
CClientSocket* m_ClientSocket;
m_ClientSocket = new CClientSocket(this);
cSend=m_oDN;
if(!m_ClientSocket->Create(0,SOCK_STREAM,(LPCTSTR)m_oIP))/////////////////////////
{
TRACE0("ClientSocket create failed!");
return FALSE;
}
else
{
UINT h=7777;
if(m_ClientSocket->Connect(m_ServerAddr,h))
{
m_ClientSocket->GetSockName(LocalSockAddr,(UINT &)LocalPort);
if(m_ClientSocket->Send(cSend,16))
{
m_cStatus.LoadString(IDS_CONNECT_TO_VSL_OK);//.Format("连接VSL服务器成功");
//ProcessOnReceive(m_ClientSocket);
return TRUE;
}
else
{
m_cStatus.LoadString(IDS_CONNECT_TO_VSL_NG);//Format("连接VSL服务器失败");
m_ClientSocket->Close();
return FALSE;
}
}
else
{
m_cStatus.LoadString(IDS_CONNECT_TO_VSL_NG);//.Format("连接VSL服务器失败");
m_ClientSocket->Close();
delete m_ClientSocket;
return FALSE;
}
}
}
void CNetproDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
if(m_uTimer)
{
KillTimer(m_uTimer);
m_uTimer=0;
}
}
void CNetproDlg::OnAppProperty()
{
PopupSetupDlg();
}
/*
HBRUSH CNetproDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
LOGBRUSH logbrush;
CBrush m_tmpBrush1;
switch (nCtlColor)
{
//Edit controls need white background and black text
//Note the 'return hbr' which is needed to draw the Edit
//control's internal background (as opposed to text background)
case CTLCOLOR_EDIT:
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(0,0,0));
return hbr;
//Static controls need black text and same background as m_brush
case CTLCOLOR_STATIC:
m_brush.GetLogBrush( &logbrush );
pDC->SetTextColor(RGB(255,255,0));
pDC->SetBkColor(logbrush.lbColor);
return m_brush;
//For listboxes, scrollbars, buttons, messageboxes and dialogs,
//use the new brush (m_brush)
case CTLCOLOR_BTN:
m_brush.GetLogBrush( &logbrush );
pDC->SetTextColor(RGB(255,255,0));
pDC->SetBkColor(logbrush.lbColor);
return m_brush;
case CTLCOLOR_LISTBOX:
m_brush.GetLogBrush( &logbrush );
pDC->SetTextColor(RGB(255,255,0));
pDC->SetBkColor(logbrush.lbColor);
//m_tmpBrush1.CreateSolidBrush(RGB(0,255,0));
return m_brush;
case CTLCOLOR_SCROLLBAR:
case CTLCOLOR_MSGBOX:
case CTLCOLOR_DLG:
return m_brush;
//This shouldn't occurr since we took all the cases, but
//JUST IN CASE, return the new brush
default:
return m_brush;
}
// TODO: Return a different brush if the default is not desired
}
*/
void CNetproDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnLButtonDown(nFlags, point);
PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));
}
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_brush.CreateSolidBrush(RGB(255,255,255));
VERIFY(m_cHyperLink.SubclassDlgItem(IDC_STATIC_FFCS, this));
m_cHyperLink.SetColours(RGB(0,0,200),RGB(85, 26, 139),RGB(125,125,0));
m_cHyperLink.SetURL(_T("http://www.ffcs.net.cn"));
m_cHyperLink.SetUnderline(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CNetproDlg::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
cs.lpszClass = ((CNetproApp*)AfxGetApp())->GetClassName();
return CDialog::PreCreateWindow(cs);
}
void CNetproDlg::WinHelp(DWORD dwData, UINT nCmd)
{
// TODO: Add your specialized code here and/or call the base class
WinExec("hh netpro.chm",SW_NORMAL);
}
BOOL CNetproDlg::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
BOOL bRet;
bRet=CDialog::Create(IDD, pParentWnd);
return bRet;
}
void CNetproDlg::SetupRegion(CDC *pDC, unsigned short MaskID)
{
CDC memDC;
CBitmap cBitmap;
CBitmap* pOldMemBmp = NULL;
COLORREF col;
CRect cRect;
int x, y;
CRgn wndRgn, rgnTemp;
GetWindowRect(&cRect);
cBitmap.LoadBitmap(MaskID);
memDC.CreateCompatibleDC(pDC);
pOldMemBmp = memDC.SelectObject(&cBitmap);
wndRgn.CreateRectRgn(0, 0, cRect.Width(), cRect.Height());
for(x=0; x<=cRect.Width(); x++)
{
for(y=0; y<=cRect.Height(); y++)
{
col = memDC.GetPixel(x, y);
if(col == 0)
{
rgnTemp.CreateRectRgn(x, y, x+1, y+1);
wndRgn.CombineRgn(&wndRgn, &rgnTemp, RGN_XOR);
rgnTemp.DeleteObject();
}
}
}
if (pOldMemBmp) memDC.SelectObject(pOldMemBmp);
SetWindowRgn((HRGN)wndRgn, TRUE);
}
BOOL RasHangupAll()
{
RASCONN ras[20];
DWORD dSize, dNumber,dwRet;
char szBuf[256];
HRASCONN hRasConn;
ras[0].dwSize = sizeof( RASCONN );
dSize = sizeof( ras ); // Get active RAS - Connection
dwRet = RasEnumConnections( ras, &dSize, &dNumber );
if ( dwRet != 0 )
{
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS Enum Connections error (%ld).", dwRet );
AfxMessageBox( (LPSTR)szBuf);
return FALSE;
}
for( DWORD dCount = 0; dCount < dNumber; dCount++ )
{
// Hang up that connection
hRasConn = ras[dCount].hrasconn;
dwRet = RasHangUp( hRasConn );
if ( dwRet != 0 )
{
if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
wsprintf( (LPSTR)szBuf, "Undefined RAS HangUp Error (%ld).", dwRet );
AfxMessageBox( (LPSTR)szBuf);
return FALSE;
}
}
return TRUE;
}
void CNetproDlg::OnButtonPhonebook()
{
CPhoneBookDlg* m_dPhonebook=NULL;
m_dPhonebook = new CPhoneBookDlg(&m_mapPhonebook);
if(m_dPhonebook)
{
CRect rect;
GetClientRect(rect);
::SetWindowPos(m_dPhonebook->GetSafeHwnd(),HWND_NOTOPMOST,rect.left,rect.top,rect.Width(),rect.Height(),
SWP_NOSIZE |SWP_NOZORDER | SWP_FRAMECHANGED);
m_dPhonebook->DoModal();
delete m_dPhonebook;
}
}
BOOL CNetproDlg::WritePhonebook(CString m_sFilename,CString m_Section)
{
CString m_strPhonebook,CRLF;
CString m_strName,m_strNum,m_strKey,m_strSection;
CString banner;
m_strSection = m_Section;
m_strKey = _T("=");
banner.LoadString(IDS_WARNING);
CRLF = _T("\r\n");
CFile f;
f.Open(m_sFilename,CFile::modeWrite|CFile::shareDenyRead|CFile::modeCreate);
f.SeekToBegin();
f.Write((LPCTSTR)banner,banner.GetLength());
f.Write((LPCTSTR)m_strSection,m_strSection.GetLength());
f.Write((LPCTSTR)CRLF,CRLF.GetLength());
POSITION pos = m_mapPhonebook.GetStartPosition();
while(pos!=NULL)
{
m_mapPhonebook.GetNextAssoc(pos,m_strNum,m_strName);
f.Write((LPCTSTR)m_strName,m_strName.GetLength());
f.Write((LPCTSTR)m_strKey,m_strKey.GetLength());
f.Write((LPCTSTR)m_strNum,m_strNum.GetLength());
f.Write((LPCTSTR)CRLF,CRLF.GetLength());
}
f.Close();
return TRUE;
}
void CNetproDlg::OnButtonCalllog()
{
CCallLogDlg CallLogDlg(&m_pCallLogList,&m_mapPhonebook);
CRect rect;
GetClientRect(rect);
::SetWindowPos(CallLogDlg.GetSafeHwnd(),HWND_NOTOPMOST,rect.left,rect.top,rect.Width(),rect.Height(),
SWP_NOSIZE |SWP_NOZORDER | SWP_FRAMECHANGED);
CallLogDlg.DoModal();
}
BOOL CNetproDlg::ReadCallLog(CString m_sFilename, CString m_Section)
{
CString m_strCallLog,m_strSection,CRLF;
CString m_strCallNum,m_strCallTime,m_strState,m_strKey,m_strCallEndTime;
int m_Position,m_Position2;
char m_sCallLog[MAX_FILESIZE];
CRLF = _T("\r\n");
CFile f;
int m_FileSize;
f.Open(m_sFilename,CFile::modeRead|CFile::modeNoTruncate|CFile::modeCreate);
m_FileSize=f.Read(m_sCallLog,MAX_FILESIZE);
f.Close();
m_strCallLog = m_sCallLog;
m_strCallLog = m_strCallLog.Left(m_FileSize);
m_strSection = m_Section;
m_strKey = _T("\t");
if((m_Position=m_strCallLog.Find(m_strSection))!=-1)
{
if( (m_Position=m_strCallLog.Find(CRLF,m_Position))!=-1)
{
m_Position+=CRLF.GetLength();
while((m_Position2=m_strCallLog.Find(m_strKey,m_Position))!=-1)
{
m_strCallNum = m_strCallLog.Mid(m_Position,m_Position2-m_Position);
m_Position2 = m_Position2 + m_strKey.GetLength();
if((m_Position = m_strCallLog.Find(m_strKey,m_Position2))==-1)
break;
m_strCallTime = m_strCallLog.Mid(m_Position2,m_Position-m_Position2);
m_Position2 = m_Position + m_strKey.GetLength();
if((m_Position = m_strCallLog.Find(m_strKey,m_Position2))==-1)
break;
m_strCallEndTime = m_strCallLog.Mid(m_Position2,m_Position-m_Position2);
m_Position2 = m_Position + m_strKey.GetLength();
m_Position = m_strCallLog.Find(CRLF,m_Position2);
if(m_Position==-1)
break;
m_strState = m_strCallLog.Mid(m_Position2,m_Position-m_Position2);
m_Position = m_Position+CRLF.GetLength();
if(m_strCallNum!=_T("")&&m_strCallTime!=_T("")&&m_strState!=_T("")&&m_strCallEndTime!=_T(""))
{
//Fill in CallLog List
CALLLOGNODE* pNode = new CallLogNode;
pNode->m_sCallNum = m_strCallNum;
pNode->m_sCallTime = m_strCallTime;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -