Module1.bas
Upload User: cl_dengshi
Upload Date: 2021-11-16
Package Size: 1918k
Code Size: 3k
Category:

Search Engine

Development Platform:

Visual Basic

  1. Attribute VB_Name = "Module1"
  2. Option Explicit
  3. Public hRasConn As Long '定义一个指向RAS调用的全局句柄
  4. Public Const APINULL = 0&
  5. Public Const UNLEN = 256
  6. Public Const DNLEN = 15
  7. Public Const PWLEN = 256
  8. Public Const RAS95_MaxPhoneNumber = 128
  9. Public Const RAS95_MaxEntryName = 256
  10. Public Const RAS95_MaxCallbackNumber = RAS95_MaxPhoneNumber
  11. Public Type RASDIALPARAMS95
  12. dwSize As Long
  13. szEntryName(RAS95_MaxEntryName) As Byte
  14. szPhoneNumber(RAS95_MaxPhoneNumber) As Byte
  15. szCallbackNumber(RAS95_MaxCallbackNumber) As Byte
  16. szUserName(UNLEN) As Byte
  17. szPassword(PWLEN) As Byte
  18. szDomain(DNLEN) As Byte
  19. End Type
  20. '**********************************
  21. '* RAS调用错误代号 *
  22. '**********************************
  23. Public Const NOT_SUPPORTED = 120&
  24. Public Const RASBASEERROR = 600&
  25. Public Const SUCCESS = 0&
  26. Public Const ERROR_PORT_ALREADY_OPEN = (RASBASEERROR + 2)
  27. Public Const ERROR_UNKNOWN = (RASBASEERROR + 35)
  28. Public Const ERROR_REQUEST_TIMEOUT = (RASBASEERROR + 38)
  29. Public Const ERROR_PASSWD_EXPIRED = (RASBASEERROR + 48)
  30. Public Const ERROR_NO_DIALIN_PERMISSION = (RASBASEERROR + 49)
  31. Public Const ERROR_SERVER_NOT_RESPONDING = (RASBASEERROR + 50)
  32. Public Const ERROR_UNRECOGNIZED_RESPONSE = (RASBASEERROR + 52)
  33. Public Const ERROR_NO_RESPONSES = (RASBASEERROR + 60)
  34. Public Const ERROR_DEVICE_NOT_READY = (RASBASEERROR + 66)
  35. Public Const ERROR_LINE_BUSY = (RASBASEERROR + 76)
  36. Public Const ERROR_NO_ANSWER = (RASBASEERROR + 78)
  37. Public Const ERROR_NO_CARRIER = (RASBASEERROR + 79)
  38. Public Const ERROR_NO_DIALTONE = (RASBASEERROR + 80)
  39. Public Const ERROR_AUTHENTICATION_FAILURE = (RASBASEERROR + 91)
  40. Public Const ERROR_PPP_TIMEOUT = (RASBASEERROR + 118)
  41. '**********************************
  42. '* RAS API 声明 *
  43. '**********************************
  44. Public Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (lpString1 As Any, ByVal lpString2 As String) As Long
  45. Public Declare Function RasDial Lib "RasApi32.DLL" Alias "RasDialA" (lpRasDialExtensions As Any, ByVal lpszPhonebook As String, lprasdialparams As Any, ByVal dwNotifierType As Long, lpvNotifier As Long, lphRasConn As Long) As Long
  46. Public Declare Function RasHangUp Lib "RasApi32.DLL" Alias "RasHangUpA" (ByVal hRasConn As Long) As Long
  47. Public Function AddConnection(strNewEntryName As String, strNewPhoneNumber As String, strNewCallbackNumber As String, strNewUsername As String, strNewPassword As String, strNewDomain As String) As Integer
  48. Dim lngRetCode As Long
  49. Dim lngRetLstrcpy As Long
  50. Dim lngRetHangUp As Long
  51. Dim lprasdialparams As RASDIALPARAMS95
  52. lprasdialparams.dwSize = 1052 '在WINDOWS95/98中必须将dwSize设为1052
  53. '利用lstrcpy函数将字符串拷贝到BYTE数组
  54. lngRetLstrcpy = lstrcpy(lprasdialparams.szEntryName(0), strNewEntryName)
  55. lngRetLstrcpy = lstrcpy(lprasdialparams.szPhoneNumber(0), strNewPhoneNumber)
  56. lngRetLstrcpy = lstrcpy(lprasdialparams.szCallbackNumber(0), strNewCallbackNumber)
  57. lngRetLstrcpy = lstrcpy(lprasdialparams.szUserName(0), strNewUsername)
  58. lngRetLstrcpy = lstrcpy(lprasdialparams.szPassword(0), strNewPassword)
  59. lngRetLstrcpy = lstrcpy(lprasdialparams.szDomain(0), strNewDomain)
  60. '我们使用同步通信
  61. Screen.MousePointer = vbHourglass
  62. hRasConn = 0 '
  63. lngRetCode = RasDial(ByVal APINULL, vbNullString, lprasdialparams, APINULL, ByVal APINULL, hRasConn)
  64. Screen.MousePointer = vbDefault
  65. '测试有没有错误
  66. If lngRetCode Then
  67. lngRetHangUp = RasHangUp(hRasConn)
  68. End If
  69. AddConnection = lngRetCode
  70. End Function
  71. Public Sub RemoveConnection(H_RasConn As Long)
  72. Call RasHangUp(hRasConn)
  73. End Sub