⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netprodlg.cpp

📁 通信增值服务,上网接听电话
💻 CPP
📖 第 1 页 / 共 4 页
字号:
		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 + -