📄 moddial.bas
字号:
Attribute VB_Name = "modDial"
Option Explicit
'**********************************
'* Constant Declarations *
'**********************************
'constants needed for UDTs
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&
'Other Constants
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&
'RASCONNSTATE enum
Public Const RASCS_PAUSED = &H1000&
Public Const RASCS_DONE = &H2000&
'begin enum
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& 'Windows 95 only
Public Const RASCS_CallbackComplete = 20& 'Windows 95 only
Public Const RASCS_LogonNetwork = 21& 'Windows 95 only
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&
'end enum
'**********************************
'* User Defined Type Declarations *
'**********************************
'As a note VB subscripts are already +1 over C
Public Type RASDIALEXTENSIONS
'set dwsize to 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 *
'**********************************
'We have to determine the OS version
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 Function Declarations *
'**********************************
'I keep type checking wherever possible.
'Some functions need a ByVal sometimes and ByRef others. I declare ByRef and issue ByVal in function call.
'These functions should be good for all cases if the ByVal is added to the call wherever needed.
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
Public Declare Function RasEnumConnections Lib "RasApi32.DLL" Alias "RasEnumConnectionsA" (lprasconn As Any, lpcb As Long, lpcConnections As Long) As Long
Public Declare Function RasEnumEntries Lib "RasApi32.DLL" Alias "RasEnumEntriesA" (ByVal Reserved As String, ByVal lpszPhonebook As String, lprasentryname As Any, lpcb As Long, lpcEntries As Long) As Long
Public Declare Function RasGetConnectStatus Lib "RasApi32.DLL" Alias "RasGetConnectStatusA" (ByVal hRasConn As Long, lpRASCONNSTATUS As Any) As Long
Public Declare Function RasGetEntryDialParams Lib "RasApi32.DLL" Alias "RasGetEntryDialParamsA" (ByVal lpszPhonebook As String, lprasdialparams As Any, lpfPassword As Long) As Long
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -