📄 ras_glb.bas
字号:
Attribute VB_Name = "RAS_GLB"
Option Explicit
'**********************************
'* 常量声名******
Public Const UNLEN = 256
Public Const DNLEN = 15
Public Const PWLEN = 256
Public Const RAS_MaxDeviceType = 16
Public Const RAS_MaxPhoneNumber = 128
Public Const RAS_MaxIpAddress = 15
Public Const RAS_MaxIpxAddress = 21
Public Const RAS_MaxEntryName = 20
Public Const RAS_MaxDeviceName = 32
Public Const RAS_MaxCallbackNumber = 48
Public Const RAS95_MaxEntryName = 256
Public Const RAS95_MaxDeviceName = 128
Public Const RAS95_MaxCallbackNumber = RAS_MaxPhoneNumber
Public Const RASP_Amb = &H10000
Public Const RASP_PppNbf = &H803F&
Public Const RASP_PppIpx = &H802B&
Public Const RASP_PppIp = &H8021&
'其他常量
Public Const NETBIOS_NAME_LEN = 16
Public Const APINULL = 0&
Public Const VER_PLATFORM_WIN32s = 0&
Public Const VER_PLATFORM_WIN32_WINDOWS = 1&
Public Const VER_PLATFORM_WIN32_NT = 2&
'连接状态产量
Public Const RASCS_PAUSED = &H1000&
Public Const RASCS_DONE = &H2000&
'开始连接常量
Public Const RASCS_OpenPort = 0&
Public Const RASCS_PortOpened = 1&
Public Const RASCS_ConnectDevice = 2&
Public Const RASCS_DeviceConnected = 3&
Public Const RASCS_AllDevicesConnected = 4&
Public Const RASCS_Authenticate = 5&
Public Const RASCS_AuthNotify = 6&
Public Const RASCS_AuthRetry = 7&
Public Const RASCS_AuthCallback = 8&
Public Const RASCS_AuthChangePassword = 9&
Public Const RASCS_AuthProject = 10&
Public Const RASCS_AuthLinkSpeed = 11&
Public Const RASCS_AuthAck = 12&
Public Const RASCS_ReAuthenticate = 13&
Public Const RASCS_Authenticated = 14&
Public Const RASCS_PrepareForCallback = 15&
Public Const RASCS_WaitForModemReset = 16&
Public Const RASCS_WaitForCallback = 17&
Public Const RASCS_Projected = 18&
Public Const RASCS_StartAuthentication = 19& '适用于95/98
Public Const RASCS_CallbackComplete = 20& '适用于95/98
Public Const RASCS_LogonNetwork = 21& '适用于95/98
Public Const RASCS_Interactive = RASCS_PAUSED
Public Const RASCS_RetryAuthentication = RASCS_PAUSED + 1&
Public Const RASCS_CallbackSetByCaller = RASCS_PAUSED + 2&
Public Const RASCS_PasswordExpired = RASCS_PAUSED + 3&
Public Const RASCS_Connected = RASCS_DONE
Public Const RASCS_Disconnected = RASCS_DONE + 1&
'常量声名结束
'**********************************
'* 结构体声名 *
'以上大部分结构体在书中已经有说明
'其中可能有的结构体在后面加了95,表示是适用95/98系统
'因为不同的操作系统,结构体可能有些区别
'**********************************
Public Type RASDIALEXTENSIONS
'设置 dwsize 为 16
dwSize As Long
dwfOptions As Long
hwndParent As Long
reserved As Long
End Type
Public Type RASDIALPARAMS
'set dwsize to 736 unless winver >= 400 then set to 1052
dwSize As Long
szEntryName(RAS_MaxEntryName) As Byte
szPhoneNumber(RAS_MaxPhoneNumber) As Byte
szCallbackNumber(RAS_MaxCallbackNumber) As Byte
szUserName(UNLEN) As Byte
szPassword(PWLEN) As Byte
szDomain(DNLEN) As Byte
End Type
Public Type RASDIALPARAMS95
'set dwsize to 1052
dwSize As Long
szEntryName(RAS95_MaxEntryName) As Byte
szPhoneNumber(RAS_MaxPhoneNumber) As Byte
szCallbackNumber(RAS95_MaxCallbackNumber) As Byte
szUserName(UNLEN) As Byte
szPassword(PWLEN) As Byte
szDomain(DNLEN) As Byte
End Type
Public Type RASCONN
'set dwsize to 32
dwSize As Long
hRasConn As Long
szEntryName(RAS_MaxEntryName) As Byte
End Type
Public Type RASCONN95
'set dwsize to 412
dwSize As Long
hRasConn As Long
szEntryName(RAS95_MaxEntryName) As Byte
szDeviceType(RAS_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Public Type RASENTRYNAME
'set dwsize to 28 unless winver >= 400 then set to 264
dwSize As Long
szEntryName(RAS_MaxEntryName) As Byte
End Type
Public Type RASENTRYNAME95
'set dwsize to 264
dwSize As Long
szEntryName(RAS95_MaxEntryName) As Byte
End Type
Public Type RASCONNSTATUS
'set dwsize to 64 unless winver >= 400 then set to 288
dwSize As Long
rasconnstate As Long 'RASCONNSTATE Enumeration
dwError As Long
szDeviceType(RAS_MaxDeviceType) As Byte
szDeviceName(RAS_MaxDeviceName) As Byte
End Type
Public Type RASCONNSTATUS95
'set dwsize to 160
dwSize As Long
rasconnstate As Long 'RASCONNSTATE Enumeration
dwError As Long
szDeviceType(RAS_MaxDeviceType) As Byte
szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Public Type RASAMB
'set dwsize to 28
dwSize As Long
dwError As Long
szNetBiosError(NETBIOS_NAME_LEN) As Byte
bLana As Byte
End Type
Public Type RASPPPNBF
'set dwsize to 48
dwSize As Long
dwError As Long
dwNetBiosError As Long
szNetBiosError(NETBIOS_NAME_LEN) As Byte
szWorkstationName(NETBIOS_NAME_LEN) As Byte
bLana As Byte
End Type
Public Type RASPPPIPX
'set dwsize to 32
dwSize As Long
dwError As Long
szIpxAddress(RAS_MaxIpxAddress) As Byte
End Type
Public Type RASPPPIP
'set dwsize to 40
dwSize As Long
dwError As Long
szIpAddress(RAS_MaxIpAddress) As Byte
szServerAddress(RAS_MaxIpAddress) As Byte
End Type
'**********************************
'* WIN32 Type Declarations *
'**********************************
'获得操作系统版本信息结构体
Public Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String * 128 ' Maintenance string for PSS usage
End Type
'**********************************
'* RAS函数声明,其意义在书中有说明 *
'其中包含了大部分的RAS函数声明
'**********************************
Public Declare Function RasCreatePhonebookEntry Lib "RasApi32.DLL" Alias "RasCreatePhonebookEntryA" (ByVal hWND As Long, ByVal lpszPhonebook As String) As Long
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
Public Declare Function RasEditPhonebookEntry Lib "RasApi32.DLL" Alias "RasEditPhonebookEntryA" (ByVal hWND As Long, ByVal lpszPhonebook As String, ByVal lpszEntryName As String) As Long
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -