
CRas ras; |
RASENTRY rasEntry; |
char strName[50];// = "COMKK"; |
DWORD lpcb = 0; |
DWORD lpcDevices; |
RASDEVINFO* lpRasDevInfo; |
RASDEVINFO rasdevinfo; |
|
strcpy(strName,VPNName.GetBuffer(VPNName.GetLength())); |
RasEnumDevices(NULL, &lpcb, &lpcDevices); |
lpRasDevInfo = (LPRASDEVINFO) GlobalAlloc(GPTR, lpcb); |
lpRasDevInfo->dwSize = sizeof(RASDEVINFO); |
RasEnumDevices(lpRasDevInfo, &lpcb, &lpcDevices); |
strcpy (rasdevinfo.szDeviceName, lpRasDevInfo->szDeviceName); |
strcpy (rasdevinfo.szDeviceType, lpRasDevInfo->szDeviceType); |
rasEntry.dwSize = sizeof (RASENTRY); |
//rasEntry.dwfOptions = RASEO_RemoteDefaultGateway | RASEO_SpecificNameServers; |
//rasEntry.dwfOptions = RASEO_RequireMsEncryptedPw | RASEO_RequireDataEncryption; |
rasEntry.dwAlternateOffset = 0; |
rasEntry.dwCountryID = 86; |
rasEntry.dwCountryCode = 86; |
// rasEntry.dwDialExtraPercent = 75; |
// rasEntry.dwDialExtraSampleSeconds = 120; |
// rasEntry.dwDialMode = 1; |
// rasEntry.dwVpnStrategy = 1; |
// rasEntry.dwfNetProtocols = 4; |
rasEntry.dwfOptions = 1024262928; |
// rasEntry.dwfOptions2 = 367; |
rasEntry.dwFramingProtocol = 1; |
// rasEntry.dwHangUpExtraPercent = 10; |
// rasEntry.dwHangUpExtraSampleSeconds = 120; |
// rasEntry.dwRedialCount = 3; |
// rasEntry.dwRedialPause = 60; |
// rasEntry.dwType = RASET_VPN; |
rasEntry.dwFrameSize = 0; |
rasEntry.dwfNetProtocols = RASNP_Ip; // TCP/IP |
rasEntry.dwFramingProtocol = RASFP_Ppp; //PPP |
rasEntry.dwChannels = 0; |
rasEntry.dwReserved1 = 0; |
rasEntry.dwReserved2 = 0; |
// Strings |
strcpy (rasEntry.szAreaCode, " "); |
strcpy (rasEntry.szScript, ""); |
strcpy (rasEntry.szAutodialDll, ""); |
strcpy (rasEntry.szAutodialFunc, ""); |
strcpy (rasEntry.szX25PadType, ""); |
strcpy (rasEntry.szX25Address, ""); |
strcpy (rasEntry.szX25Facilities, ""); |
strcpy (rasEntry.szX25UserData, ""); |
strcpy (rasEntry.szDeviceName,"WAN 微型端口 (PPTP)"); |
strcpy (rasEntry.szDeviceType, "vpn"); |
strcpy (rasEntry.szLocalPhoneNumber, VPNAddress.GetBuffer(VPNAddress.GetLength()));/*"140.207.3.74"59.188.23.84"218.242.176.71"*///服务器地址或域名 |
// rasEntry.dwVpnStrategy = VS_DEFAULT; //vpn类型 |
// rasEntry.dwEncryptionType = ET_OPTIONAL; //数据加密类型 |
// IP addresses |
InitRASIP (rasEntry.ipaddr); |
InitRASIP (rasEntry.ipaddrDns); |
InitRASIP (rasEntry.ipaddrDnsAlt); |
InitRASIP (rasEntry.ipaddrWins); |
InitRASIP (rasEntry.ipaddrWinsAlt); |
//Create Entry |
DWORD dwError; |
|
dwError = ras.RasSetEntryProperties (NULL, strName, &rasEntry, sizeof (RASENTRY), NULL, NULL); |
if (dwError == 0) { |
RASDIALPARAMS dialParm; |
dialParm.dwSize = sizeof (RASDIALPARAMS); |
strcpy (dialParm.szEntryName, strName); |
strcpy (dialParm.szPhoneNumber, ""); |
strcpy (dialParm.szCallbackNumber, ""); |
strcpy (dialParm.szUserName,VPNUser.GetBuffer(VPNUser.GetLength()));// "zdx"/*"hdj"*/ |
strcpy (dialParm.szPassword,VPNPass.GetBuffer(VPNPass.GetLength()));// "19881011"/*"hdj"*/ |
strcpy (dialParm.szDomain, ""); |
dwError = ras.RasSetEntryDialParams(NULL, &dialParm,FALSE); |
if( dwError == 0 ) { |
//dwError = ras.RasSetCredentials(NULL, strName, &rasEntry, 0); |
m_log += "正在进行网络连接,请稍候...\r\n"; |
frameWnd->PostMessage(WM_UPDATE_MESSAGE,0,0); |
//SetDlgItemText( IDC_EDIT_LOG, "正在进行网络连接,请稍候..." ); |
dwError = RasDial( NULL, NULL, &dialParm, 0L, NULL, &m_hRasConn ); |
if ( dwError ) { |
char szBuf[256] = ""; |
// 网络连接错误 |
if ( RasGetErrorString( (UINT)dwError, (LPSTR)szBuf, 255 ) != 0 ) { |
_stprintf( (LPTSTR)szBuf, "Undefined RAS Dial Error (%ld).", dwError ); |
|
} |
|
m_log += "网络连接异常..."; |
frameWnd->PostMessage(WM_UPDATE_MESSAGE,0,0); |
//SetDlgItemText( IDC_EDIT_LOG, szBuf ), |
EndDialog(FALSE); |
//return FALSE; |
} |
} |
} |
|
m_log += "远程网络已正常连接!\r\n"; |
frameWnd->PostMessage(WM_UPDATE_MESSAGE,0,0); |



