?? ceras.cpp
字號:
// CERAS.cpp: implementation of the CCERAS class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "RASDemo.h"
#include "CERAS.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCERAS::CCERAS()
{
}
CCERAS::~CCERAS()
{
}
/*
*函數介紹:用于建立撥號連接
*入口參數:szEntry : 撥號連接名;
szPhoneNumber : 撥號的號碼;
szCallbackNumber : 回叫號碼;
szUserName : 撥號用戶名;
szPassword : 撥號密碼;
szDomain : 域;
*出口參數:(無)
*返 回 值:TRUE : 成功撥號,建立撥號連接 , FALSE : 撥號失敗
*/
boolean CCERAS::CERasDial(LPCTSTR szEntry, LPCTSTR szPhoneNumber,
LPCTSTR szCallbackNumber,LPCTSTR szUserName, LPCTSTR szPassword, LPCTSTR szDomain)
{
RASDIALPARAMS rdParams;
m_hRasConn = NULL;
//初始化變量
rdParams.dwSize = sizeof(RASDIALPARAMS);
wcscpy(rdParams.szEntryName,szEntry);
wcscpy(rdParams.szPhoneNumber,szPhoneNumber);
wcscpy(rdParams.szCallbackNumber,szCallbackNumber);
wcscpy(rdParams.szUserName,szUserName);
wcscpy(rdParams.szPassword,szPassword);
wcscpy(rdParams.szDomain,szDomain);
//以下是同步撥號模式
DWORD dwRet;
dwRet = RasDial(NULL,NULL,&rdParams,0,NULL,&m_hRasConn);
if ( dwRet != 0 )
{
RasHangUp(m_hRasConn);
return FALSE;
}
return TRUE;
}
/*
*函數介紹:掛斷由本類建立的連接
*入口參數:(無)
*出口參數:(無)
*返 回 值:TRUE : 成功掛斷,FALSE : 掛斷失敗
*/
boolean CCERAS::CERasHangup()
{
RASCONNSTATUS status;
status.dwSize = sizeof(RASCONNSTATUS);
//關閉Ras撥號連接
DWORD result = RasHangUp(m_hRasConn);
if (result == 0)
{
//延時,判斷連接是否關閉
while (RasGetConnectStatus(m_hRasConn, &status) == 0 )
{
Sleep(10);
}
m_hRasConn = NULL;
return TRUE;
}
else
{
return FALSE;
}
}
/*
*函數介紹:掛斷所有已建立的撥號連接
*入口參數:(無)
*出口參數:(無)
*返 回 值:TRUE : 成功掛斷所有已建立的撥號連接,FALSE : 掛斷所有建立的撥號連接失敗
*/
boolean CCERAS::CERasHangupAll()
{
RASCONN entries[25];
DWORD bufsize;
DWORD numEntries;
bufsize = 25*sizeof(RASCONN);
entries[0].dwSize = sizeof(RASCONN);
RASCONNSTATUS status;
status.dwSize = sizeof(RASCONNSTATUS);
if (RasEnumConnections(&entries[0],&bufsize, &numEntries) == 0 )
{
for(DWORD i=0;i<numEntries;i++)
{
if (RasHangUp(entries[i].hrasconn) == 0)
{
while (RasGetConnectStatus(entries[i].hrasconn, &status) == 0 )
{
Sleep(0);
}
}
}
n
}
return TRUE;
}
/*
*函數介紹:得到由本類建立的連接是否還存在連接
*入口參數:(無)
*出口參數:(無)
*返 回 值:TRUE : 代表連接存在,FALSE : 代表連接不存在
*/
boolean CCERAS::IsConnected()
{
RASCONNSTATUS status;
status.dwSize = sizeof(RASCONNSTATUS);
if (!RasGetConnectStatus(m_hRasConn, &status))
{
if (status.rasconnstate == RASCS_Connected)
{
return TRUE;
}
else
{
m_hRasConn = NULL;
return FALSE;
}
}
else
{
return FALSE;
}
}
/*
*函數介紹:得到系統建立撥號連接的個數
*入口參數:(無)
*出口參數:(無)
*返 回 值:返回系統存在撥號連接的個數
*/
int CCERAS::GetConnectedCount()
{
DWORD dwSize = sizeof(RASCONN) * 20, dwCount = 20;
HRASCONN hConnection = NULL;
RASCONN connections[20];
connections[0].dwSize = sizeof(RASCONN);
if (!RasEnumConnections(connections, &dwSize, &dwCount))
{
return dwCount;
}
else
{
return 0;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -