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

📄 dialdlg.cpp

📁 通信增值服务,上网接听电话
💻 CPP
字号:
// DialDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ras.h"
#include "raserror.h"
#include "tapiutils.h"
#include "netpro.h"
#include "DialDlg.h"
#include "DialRing.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDialDlg dialog
extern HINSTANCE hRasLib;
CSystemStatus   SystemStatus; 
CSystemStatus::CSystemStatus()
{
	m_dwDialStatus=0;
	bDialWinOnCancel= FALSE;
}


CDialDlg::CDialDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDialDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDialDlg)
	m_cJMPNum = SystemStatus.m_CFBL;
   
	m_bOffDial = SystemStatus.bOffDial ;
	m_bOffJMP = SystemStatus.bOffJMP;
	m_bOnDial = SystemStatus.bOnDial;
	m_bOnJMP = SystemStatus.bOnJMP;
	m_cTelNum = _T("163");
	m_cPassword = _T("");
	m_cUserName = _T("");
    m_DialStatus=2;
	m_iSelect=SystemStatus.m_iSelect ;
	//}}AFX_DATA_INIT



}


void CDialDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDialDlg)
	DDX_Control(pDX, IDC_DIALLIST, m_Diallist);
	DDX_Text(pDX, IDC_JMPNUM, m_cJMPNum);
	DDX_Check(pDX, IDC_CHKOFFDIAL, m_bOffDial);
	DDX_Check(pDX, IDC_CHKOFFJMP, m_bOffJMP);
	DDX_Check(pDX, IDC_CHKONDIAL, m_bOnDial);
	DDX_Check(pDX, IDC_CHKONJMP, m_bOnJMP);
	DDX_Text(pDX, IDC_TELNUM, m_cTelNum);
	DDX_Text(pDX, IDC_PASSWORD, m_cPassword);
	DDX_Text(pDX, IDC_USERNAME, m_cUserName);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDialDlg, CDialog)
	//{{AFX_MSG_MAP(CDialDlg)
	ON_CBN_SELCHANGE(IDC_DIALLIST, OnSelchangeDiallist)
	ON_BN_CLICKED(IDC_CHKONDIAL, OnChkondial)
	ON_BN_CLICKED(IDC_CHKONJMP, OnChkonjmp)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDialDlg message handlers

BOOL CDialDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	DlgCtrlInit();
	// TODO: Add extra initialization here
    return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CDialDlg::DlgCtrlInit()
{
 RASENTRYNAME entry[20];
 BOOL p=TRUE;
 RASDIALPARAMS params;
// RASENTRY rasEntry;
 DWORD dwSize;
 DWORD ret,n;
 CWnd*   pCtrlAll;
             dwSize=sizeof(entry);
			 entry[0].dwSize=sizeof(RASENTRYNAME);
             ret=RasEnumEntries(NULL, NULL, entry, &dwSize,&n);
             if(ret==0){
			 for (DWORD i=0;i< n;i++) 
			 {
               m_Diallist.AddString(entry[i].szEntryName);
			 }
             m_Diallist.SetCurSel(SystemStatus.m_iSelect);     
	         memset(&params, '\0',sizeof(params));
	         params.dwSize=sizeof(RASDIALPARAMS);
		     m_Diallist.GetLBText(0, params.szEntryName);
     	     TRACE("%s\n",params.szEntryName);
			 RasGetEntryDialParams(NULL, &params, &p);
	    //     m_cTelNum=params.szPhoneNumber;
             m_cUserName=params.szUserName;
             m_cPassword=params.szPassword;
			 /*memset(&rasEntry, '\0',sizeof(rasEntry));
	         rasEntry.dwSize=sizeof(RASENTRY);
		     
			 dwSize = sizeof(rasEntry);
			 if(m_cTelNum=="")
			 {
				 RasGetEntryProperties(NULL,NULL,&rasEntry,&dwSize,NULL,NULL);
			 }*/
			 UpdateData(FALSE);
			 }//if(ret==0)
			 if(m_bOnDial==0)
			 {
				  pCtrlAll=GetDlgItem(IDC_DIALLIST);
				  pCtrlAll->EnableWindow(FALSE);
				  pCtrlAll=GetDlgItem(IDC_TELNUM);
				  pCtrlAll->EnableWindow(FALSE);
				  pCtrlAll=GetDlgItem(IDC_USERNAME);
				  pCtrlAll->EnableWindow(FALSE);
				  pCtrlAll=GetDlgItem(IDC_PASSWORD);
				  pCtrlAll->EnableWindow(FALSE);
			 }
			 if(m_bOnJMP==0)
			 {
				  pCtrlAll=GetDlgItem(IDC_JMPNUM);
				  pCtrlAll->EnableWindow(FALSE);
			 }
}


void CDialDlg::OnOK() 
{
	// TODO: Add extra validation here
    UpdateData(TRUE);
    ShowWindow(SW_HIDE);
    if(!((m_bOnJMP==0) &&(m_bOnDial==0)))
    {
	
		 m_IsDialUpSucc=FALSE;
		 //DlgDialUp();
		 CDialRing*   pDialRingDlg;
		 pDialRingDlg= new CDialRing(this);
		 if(pDialRingDlg->DoModal()==IDOK)
		 {
			delete  pDialRingDlg;
			m_IsDialUpSucc=TRUE;
			SystemStatus.m_iSelect =m_Diallist.GetCurSel();
			SystemStatus.bOnDial =m_bOnDial;
			SystemStatus.bOnJMP=m_bOnJMP;

		 }else{    
			delete  pDialRingDlg;
			ShowWindow(SW_NORMAL);
			return;
		 }
	}
			SystemStatus.bOnDial =m_bOnDial;
			SystemStatus.bOnJMP=m_bOnJMP;
	CDialog::OnOK();
	return;
}

void CDialDlg::OnCancel() 
{
	// TODO: Add extra cleanup here

	SystemStatus.bDialWinOnCancel=TRUE;
    UpdateData(TRUE);
	//SystemStatus.bOnDial =m_bOnDial;
	//SystemStatus.bOffDial =m_bOffDial;
	//SystemStatus.bOnJMP=m_bOnJMP;
	//SystemStatus.bOffJMP=m_bOffJMP;
	CDialog::OnCancel();
}

void CDialDlg::OnSelchangeDiallist() 
{
 int sel;
 BOOL p=TRUE;
 RASDIALPARAMS params;
	// TODO: Add your control notification handler code here
	         sel=m_Diallist.GetCurSel();
	         memset(&params, '\0',sizeof(params));
	         params.dwSize=sizeof(RASDIALPARAMS);
		     m_Diallist.GetLBText(sel, params.szEntryName);
     	     TRACE("%s\n",params.szEntryName);
			 RasGetEntryDialParams(NULL, &params, &p);
	        // m_cTelNum=params.szPhoneNumber;
             m_cUserName=params.szUserName;
             m_cPassword=params.szPassword;
			 UpdateData(FALSE);
	
}

void CDialDlg::OnChkondial() 
{
 CWnd*   pCtrlAll;
     UpdateData(TRUE);
	// TODO: Add your control notification handler code here
			 if(m_bOnDial==0)
			 {
				  pCtrlAll=GetDlgItem(IDC_DIALLIST);
				  pCtrlAll->EnableWindow(FALSE);
				  pCtrlAll=GetDlgItem(IDC_TELNUM);
				  pCtrlAll->EnableWindow(FALSE);
				  pCtrlAll=GetDlgItem(IDC_USERNAME);
				  pCtrlAll->EnableWindow(FALSE);
				  pCtrlAll=GetDlgItem(IDC_PASSWORD);
				  pCtrlAll->EnableWindow(FALSE);
			 }
			 else
			 {
				  pCtrlAll=GetDlgItem(IDC_DIALLIST);
				  pCtrlAll->EnableWindow(TRUE);
				  pCtrlAll=GetDlgItem(IDC_TELNUM);
				  pCtrlAll->EnableWindow(TRUE);
				  pCtrlAll=GetDlgItem(IDC_USERNAME);
				  pCtrlAll->EnableWindow(TRUE);
				  pCtrlAll=GetDlgItem(IDC_PASSWORD);
				  pCtrlAll->EnableWindow(TRUE);
			 }
	
}

void CDialDlg::OnChkonjmp() 
{
	// TODO: Add your control notification handler code here
 CWnd*   pCtrlAll;
     UpdateData(TRUE);
			 if(m_bOnJMP==0)
			 {
				  pCtrlAll=GetDlgItem(IDC_JMPNUM);
				  pCtrlAll->EnableWindow(FALSE);
			 }
	         else
			 {
				  pCtrlAll=GetDlgItem(IDC_JMPNUM);
				  pCtrlAll->EnableWindow(FALSE);

			 }
}

/*

UINT CDialDlg::OnDialEventArrived(WPARAM wParam,LPARAM lParam)
{
	CString m_cStatus;
	RASCONNSTATE rasconnstate;
	DWORD dwError,dwRet;
	rasconnstate = (RASCONNSTATE) wParam; // connection state about to be entered 
	dwError = (DWORD) lParam;             // error that may have occurred 
	char szBuf[128];
	if(dwError)
	{
		//Error Process
		dwRet = dwError;
             if ( dwRet != 0 )  
			 {
		      if ( RasGetErrorString( (UINT)dwRet, (LPSTR)szBuf, 256 ) != 0 )
		      wsprintf( (LPSTR)szBuf, "Undefined RAS Dial Error (%ld).", dwRet );
	      ::MessageBox( NULL,(LPSTR)szBuf, "Error", MB_OK | MB_ICONSTOP );
	          return TRUE;
			 }
	}
	else
	{
		switch(rasconnstate)
		{
		case RASCS_OpenPort:
		case RASCS_PortOpened: 
		case RASCS_ConnectDevice:
		case RASCS_DeviceConnected: 
		case RASCS_AllDevicesConnected:
			      m_cStatus="正在拨号上网...";
				  break;

		case RASCS_Authenticate:
		case RASCS_AuthNotify:
		case RASCS_AuthRetry: 
		case RASCS_AuthCallback: 
		case RASCS_AuthChangePassword: 
		case RASCS_AuthProject:
		case RASCS_AuthLinkSpeed: 
		case RASCS_AuthAck: 
		case RASCS_ReAuthenticate:
			m_cStatus = "正在验证用户名和密码...";
			break;
		case RASCS_Authenticated: 
		case RASCS_PrepareForCallback: 
		case RASCS_WaitForModemReset:
		case RASCS_WaitForCallback:
		case RASCS_Projected:
			break;
 
		case RASCS_Connected:
			m_cStatus = "OK";
			break;
		case RASCS_Disconnected:
			m_cStatus = "正在断开网络";
		default:
			;

		}
	}
	UpdateData(FALSE);
	return TRUE;
 
}
*/
//void RasDialFunc( UINT unMsg, RASCONNSTATE rasconnstate, DWORD dwError )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -