📄 rasclient.cpp
字号:
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 + -