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

📄 rasclient.cpp

📁 代码为windows下的无线猫的应用程序(对AT指令的操作)。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		return ERROR_ENTRY_NO_FOUND;
}

DWORD CRasClient::RasDialSyn(CString strEntry, CString strPhoneNumber,
		CString strUserName, CString strPassword, CString strDomain, 
		CString strPhoneBook)
{
	LPTSTR lpszPhoneBook = NULL;
	if(strPhoneBook != _T(""))
	{
		lpszPhoneBook = strPhoneBook.GetBuffer(1);
		strPhoneBook.ReleaseBuffer();
	}
	RASDIALPARAMS dialParams;
    ::ZeroMemory(&dialParams, sizeof(dialParams) );
    dialParams.dwSize = sizeof(dialParams);
	strcpy(dialParams.szEntryName, strEntry);
	strcpy(dialParams.szPhoneNumber, strPhoneNumber);
	strcpy(dialParams.szUserName, strUserName);
	strcpy(dialParams.szPassword, strPassword);
	strcpy(dialParams.szDomain, strDomain);

	m_ConnectionHandle = NULL;
	DWORD dwError = RasDial(NULL, lpszPhoneBook, &dialParams, NULL, 
		NULL, &m_ConnectionHandle); 
	return dwError;
}


DWORD CRasClient::RasDialAsynCallback1(CString strEntry, LPVOID lpvNotifier, CString strPhoneNumber,
		CString strUserName, CString strPassword, CString strDomain, 
		CString strPhoneBook)
{
	LPTSTR lpszPhoneBook = NULL;
	if(strPhoneBook != _T(""))
	{
		lpszPhoneBook = strPhoneBook.GetBuffer(1);
		strPhoneBook.ReleaseBuffer();
	}
	RASDIALPARAMS dialParams;
    ::ZeroMemory(&dialParams, sizeof(dialParams) );
    dialParams.dwSize = sizeof(dialParams);
	strcpy(dialParams.szEntryName, strEntry);
	strcpy(dialParams.szPhoneNumber, strPhoneNumber);
	strcpy(dialParams.szUserName, strUserName);
	strcpy(dialParams.szPassword, strPassword);
	strcpy(dialParams.szDomain, strDomain);

	m_ConnectionHandle = NULL;
	DWORD dwError = RasDial(NULL, lpszPhoneBook, &dialParams, 1,
		lpvNotifier, &m_ConnectionHandle); 
	return dwError;
}


DWORD CRasClient::RasDialAsyn(CString strEntry, LPVOID lpvNotifier, CString strPhoneNumber,
		CString strUserName, CString strPassword, CString strDomain, 
		CString strPhoneBook)
{
	LPTSTR lpszPhoneBook = NULL;
	if(strPhoneBook != _T(""))
	{
		lpszPhoneBook = strPhoneBook.GetBuffer(1);
		strPhoneBook.ReleaseBuffer();
	}
	RASDIALPARAMS dialParams;
    ::ZeroMemory(&dialParams, sizeof(dialParams) );
    dialParams.dwSize = sizeof(dialParams);
	strcpy(dialParams.szEntryName, strEntry);
	strcpy(dialParams.szPhoneNumber, strPhoneNumber);
	strcpy(dialParams.szUserName, strUserName);
	strcpy(dialParams.szPassword, strPassword);
	strcpy(dialParams.szDomain, strDomain);

	m_ConnectionHandle = NULL;
	DWORD dwError = RasDial(NULL, lpszPhoneBook, &dialParams, 0xFFFFFFFF,  
		lpvNotifier, &m_ConnectionHandle); 
	return dwError;
}


DWORD CRasClient::GetRasErrorString(CString &strError)
{
	strError = _T("Fail to get error string");
	if(m_rasStatus.dwError != 0)
	{
		LPTSTR lpszErr = strError.GetBuffer(256);
		DWORD dwRV = RasGetErrorString(m_rasStatus.dwError, lpszErr, 256);
		strError.ReleaseBuffer();
		return dwRV;
	}
	else 
		return ERROR_NO_RASSTATUS;
}


DWORD CRasClient::GetRasErrorStringByErrorCode(DWORD dwError,
				DWORD dwExtendError, CString &strError)
{
	strError = "Fail to get error string";
	if(dwError != 0)
	{
		LPTSTR lpszErr = strError.GetBuffer(256);
		DWORD dwRV = RasGetErrorString(dwError, lpszErr, 256);
		strError.ReleaseBuffer();
		if(dwExtendError != 0)
		{
			CString strExtend;
			strExtend.Format(" Extended Error Code: %d", dwExtendError);
			strError = strError + strExtend; 
		}
		return dwRV;
	}
	else 
		return ERROR_NO_RASSTATUS;
}


BOOL CRasClient::GetRasStatusString(CString &strStatus, BOOL& bConnected)
{
	bConnected = FALSE;
	RasGetConnectStatus(m_ConnectionHandle, &m_rasStatus);
	switch(m_rasStatus.rasconnstate)
	{
		case RASCS_Connected:
			strStatus = "已经通过身份验证...";
			bConnected = TRUE;
			return TRUE;
		case RASCS_Disconnected:
			strStatus = "断开";
			return TRUE;
		case RASCS_OpenPort:
			strStatus = "正在打开端口...";
			break;
		case RASCS_PortOpened:
			strStatus = "端口打开成功";
			break;
		case RASCS_ConnectDevice:
			strStatus = "正在拨号...";
			break;
		case RASCS_DeviceConnected:
			strStatus = "设备已经找到网络...";
			break;
		case RASCS_AllDevicesConnected:
			strStatus = "设备已经找到网络...";
			break;
		case RASCS_Authenticate:
			strStatus = "正在验证用户名和密码...";  
			break;
		case RASCS_AuthNotify:
			strStatus = "身份验证事件已发生...";
			break;
		case RASCS_AuthRetry:
			strStatus = "服务器已请求尝试另一个身份验证...";
			break;
		case RASCS_AuthCallback:
			strStatus = "服务器已请求一个回拨号码...";
			break;
		case RASCS_AuthChangePassword:
			strStatus = "服务器已请求改变RAS帐号上的密码...";
			break;
		case RASCS_AuthProject:
			// strStatus = "The projection phase is starting...";
			strStatus = "正在网络注册您的计算机...";
			break;
		case RASCS_AuthLinkSpeed:
			strStatus = "链接速度正在计算过程中...";
			break;
		case RASCS_AuthAck:
			strStatus = "身份验证请求正在确认过程中..."; 
			break;
		case RASCS_ReAuthenticate:
			strStatus = "回拨之后的身份验证进程准备开始... ";
			break;
		case RASCS_Authenticated:
			strStatus = "客户机已成功结束身份验证...";
			break;
		case RASCS_PrepareForCallback:
			strStatus = "线路即将取消链接准备回拨...";
			break;
		case RASCS_WaitForModemReset:
			strStatus = "准备回拨之前客户机准备MODEM的重新设置...";
			break;
		case RASCS_WaitForCallback:
			strStatus = "客户机等待服务器发出的接入拨号...";
			break;
		case RASCS_Projected:
			strStatus = "协议发送已完成...";
			break;
		case RASCS_StartAuthentication:
			strStatus = "用户身份验证已开始或已完成...";  
			break;
		case RASCS_CallbackComplete:
			strStatus = "已经回拨客户机.";
			break;
		case RASCS_LogonNetwork:
			strStatus = "客户机正在登录远程网络...";
			break;
		case RASCS_SubEntryConnected:
			strStatus = "多链路电话簿条目的子目录已接入...";
			break;
		case RASCS_SubEntryDisconnected:
			strStatus = "多链路电话簿条目已取消链接...";
			break;
		case RASCS_Interactive:
			strStatus = "Terminal state supported by RASPHONE.EXE.";
			break;
		case RASCS_RetryAuthentication:
			strStatus = "RasDial正在等待新的用户凭证...";
			break;
		case RASCS_CallbackSetByCaller:
			strStatus = "RasDial正在等待客户机的回拨号码...";
			break;
		case RASCS_PasswordExpired:
			strStatus = "RasDial希望用户提供新的密码...";
			break;
	}
	//if(m_rasStatus.dwError != 0)		// 9/14/98 FOR WIN95/98
	//	return TRUE;
	//else
	return FALSE;
}

BOOL CRasClient::HangUpConnection(CString strEntryName)
{
	if(m_ConnectionHandle == NULL)
	{
		HRASCONN hrasConn;
		if(GetRasConnection(strEntryName, hrasConn))
		{
			if(RasHangUp(hrasConn) == 0)
				return TRUE;
			else
				return FALSE;
		}
		else
			return FALSE;
	}
	else
	{
		if(RasHangUp(m_ConnectionHandle) == 0)
			return TRUE;
		else
			return FALSE;
	}
}

BOOL CRasClient::GetRasConnection(CString strEntryName, HRASCONN & hrasConn)
{
	BOOL bFind = FALSE;
	CString strEntry;
	DWORD dwSizeBuf = 0;
	DWORD dwConnections = 0;
	RASCONN rasConn;
	rasConn.dwSize = sizeof(rasConn);
	DWORD dw = RasEnumConnections(&rasConn, &dwSizeBuf, &dwConnections);
	if(dwConnections <= 0)
		return FALSE;
	RASCONN *lpRasConn = new RASCONN[dwConnections];
	lpRasConn->dwSize = sizeof(*lpRasConn);
	RasEnumConnections(lpRasConn, &dwSizeBuf, &dwConnections);
	for(DWORD i = 0; i < dwConnections; i++)
	{
		strEntry = lpRasConn[i].szEntryName;
		if(strEntry.CompareNoCase(strEntryName) == 0)
		{
			hrasConn = lpRasConn[i].hrasconn;
			bFind = TRUE;
		}
	}
	delete []lpRasConn;
	if(bFind)
		return TRUE;
	else
		return FALSE;
}

DWORD CRasClient::DeleteEntry(CString strPhoneBook, CString strEntry)
{
	DWORD nRet;

	nRet = RasDeleteEntry(strPhoneBook, strEntry);
	
	return nRet;
}

⌨️ 快捷键说明

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