📄 apietc.bas
字号:
Attribute VB_Name = "APIetc"
Option Explicit
' ############################################################################
' API Constants
Public Const GENERIC_READ As Long = &H80000000
Public Const GENERIC_WRITE As Long = &H40000000
Public Const OPEN_EXISTING As Integer = 3
Public Const FILE_ATTRIBUTE_NORMAL As Long = &H80
Public Const FILE_ANY_ACCESS As Integer = &H0
Public Const FILE_READ_ACCESS As Integer = &H1
Public Const FILE_WRITE_ACCESS As Integer = &H2
Public Const SWP_NOMOVE As Long = &H2
Public Const SWP_NOSIZE As Long = &H1
Public Const HWND_TOPMOST As Integer = -1
'Shared Ram Interface Memory Offset constants
Public Const SRI_GENI_SETUP_OFFSET As Long = 2178
Public Const SRI_GENI_STATUS_OFFSET As Long = 2194
Public Const SRI_COMMAND_OFFSET As Long = 2242
Public Const SRI_TRANSMIT_DATAGRAM_OFFSET As Long = 2258
Public Const SRI_READ_DATAGRAM_OFFSET As Long = 2498
Public Const SRI_SBA00_DEVICE_CONFIG_OFFSET As Long = 7680
Public Const SRI_SBA01_DEVICE_CONFIG_OFFSET As Long = 7688
Public Const SRI_SBA02_DEVICE_CONFIG_OFFSET As Long = 7696
Public Const SRI_SBA03_DEVICE_CONFIG_OFFSET As Long = 7704
Public Const SRI_SBA04_DEVICE_CONFIG_OFFSET As Long = 7712
Public Const SRI_SBA05_DEVICE_CONFIG_OFFSET As Long = 7720
Public Const SRI_SBA06_DEVICE_CONFIG_OFFSET As Long = 7728
Public Const SRI_SBA07_DEVICE_CONFIG_OFFSET As Long = 7736
Public Const SRI_SBA08_DEVICE_CONFIG_OFFSET As Long = 7744
Public Const SRI_SBA09_DEVICE_CONFIG_OFFSET As Long = 7752
Public Const SRI_SBA10_DEVICE_CONFIG_OFFSET As Long = 7760
Public Const SRI_SBA11_DEVICE_CONFIG_OFFSET As Long = 7768
Public Const SRI_SBA12_DEVICE_CONFIG_OFFSET As Long = 7776
Public Const SRI_SBA13_DEVICE_CONFIG_OFFSET As Long = 7784
Public Const SRI_SBA14_DEVICE_CONFIG_OFFSET As Long = 7792
Public Const SRI_SBA15_DEVICE_CONFIG_OFFSET As Long = 7800
Public Const SRI_SBA16_DEVICE_CONFIG_OFFSET As Long = 7808
Public Const SRI_SBA17_DEVICE_CONFIG_OFFSET As Long = 7816
Public Const SRI_SBA18_DEVICE_CONFIG_OFFSET As Long = 7824
Public Const SRI_SBA19_DEVICE_CONFIG_OFFSET As Long = 7832
Public Const SRI_SBA20_DEVICE_CONFIG_OFFSET As Long = 7840
Public Const SRI_SBA21_DEVICE_CONFIG_OFFSET As Long = 7848
Public Const SRI_SBA22_DEVICE_CONFIG_OFFSET As Long = 7856
Public Const SRI_SBA23_DEVICE_CONFIG_OFFSET As Long = 7864
Public Const SRI_SBA24_DEVICE_CONFIG_OFFSET As Long = 7872
Public Const SRI_SBA25_DEVICE_CONFIG_OFFSET As Long = 7880
Public Const SRI_SBA26_DEVICE_CONFIG_OFFSET As Long = 7888
Public Const SRI_SBA27_DEVICE_CONFIG_OFFSET As Long = 7896
Public Const SRI_SBA28_DEVICE_CONFIG_OFFSET As Long = 7904
Public Const SRI_SBA29_DEVICE_CONFIG_OFFSET As Long = 7912
Public Const SRI_SBA30_DEVICE_CONFIG_OFFSET As Long = 7920
Public Const SRI_SBA31_DEVICE_CONFIG_OFFSET As Long = 7928
Public Const SRI_BROADCAST_CONTROL_OUTPUT_TABLE_OFFSET As Long = 8064
Public Const SRI_SBA00_DEVICE_IO_TABLE_OFFSET As Long = 8192
Public Const SRI_SBA01_DEVICE_IO_TABLE_OFFSET As Long = 8320
Public Const SRI_SBA02_DEVICE_IO_TABLE_OFFSET As Long = 8448
Public Const SRI_SBA03_DEVICE_IO_TABLE_OFFSET As Long = 8576
Public Const SRI_SBA04_DEVICE_IO_TABLE_OFFSET As Long = 8704
Public Const SRI_SBA05_DEVICE_IO_TABLE_OFFSET As Long = 8832
Public Const SRI_SBA06_DEVICE_IO_TABLE_OFFSET As Long = 8960
Public Const SRI_SBA07_DEVICE_IO_TABLE_OFFSET As Long = 9088
Public Const SRI_SBA08_DEVICE_IO_TABLE_OFFSET As Long = 9216
Public Const SRI_SBA09_DEVICE_IO_TABLE_OFFSET As Long = 9344
Public Const SRI_SBA10_DEVICE_IO_TABLE_OFFSET As Long = 9472
Public Const SRI_SBA11_DEVICE_IO_TABLE_OFFSET As Long = 9600
Public Const SRI_SBA12_DEVICE_IO_TABLE_OFFSET As Long = 9728
Public Const SRI_SBA13_DEVICE_IO_TABLE_OFFSET As Long = 9856
Public Const SRI_SBA14_DEVICE_IO_TABLE_OFFSET As Long = 9984
Public Const SRI_SBA15_DEVICE_IO_TABLE_OFFSET As Long = 10112
Public Const SRI_SBA16_DEVICE_IO_TABLE_OFFSET As Long = 10240
Public Const SRI_SBA17_DEVICE_IO_TABLE_OFFSET As Long = 10368
Public Const SRI_SBA18_DEVICE_IO_TABLE_OFFSET As Long = 10496
Public Const SRI_SBA19_DEVICE_IO_TABLE_OFFSET As Long = 10624
Public Const SRI_SBA20_DEVICE_IO_TABLE_OFFSET As Long = 10752
Public Const SRI_SBA21_DEVICE_IO_TABLE_OFFSET As Long = 10880
Public Const SRI_SBA22_DEVICE_IO_TABLE_OFFSET As Long = 11008
Public Const SRI_SBA23_DEVICE_IO_TABLE_OFFSET As Long = 11136
Public Const SRI_SBA24_DEVICE_IO_TABLE_OFFSET As Long = 11264
Public Const SRI_SBA25_DEVICE_IO_TABLE_OFFSET As Long = 11392
Public Const SRI_SBA26_DEVICE_IO_TABLE_OFFSET As Long = 11520
Public Const SRI_SBA27_DEVICE_IO_TABLE_OFFSET As Long = 11648
Public Const SRI_SBA28_DEVICE_IO_TABLE_OFFSET As Long = 11776
Public Const SRI_SBA29_DEVICE_IO_TABLE_OFFSET As Long = 11904
Public Const SRI_SBA30_DEVICE_IO_TABLE_OFFSET As Long = 12032
Public Const SRI_SBA31_DEVICE_IO_TABLE_OFFSET As Long = 12160
'Public variables
Public LocationResult As Integer
Public InitializationResult As Integer
'Initialization result of constructor
Public SerialBusAddress As Integer
'Serial bus address assigned to the PCGEN card
Public cGEGENIUS As String
Public hWin32Device As Long
Public MemoryBaseAddress As Long
Public Outputs As GENI_Outputs
Public BaudRate As GENI_BaudRate
Public Node As Integer
Public Device As Integer
Public SRI_Device_Config_Offset(31) As Long
Public SRI_Device_IO_Table_Offset(31) As Long
Public DeviceConfig(31) As DEVICE_CONFIG
'API Functions
Public Declare Function CreateFile Lib "KERNEL32" Alias "CreateFileA" (ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, _
lpSecurityAttributes As Long, _
ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long
Public Declare Function DeviceIoControl Lib "KERNEL32" (ByVal hDevice As Long, _
ByVal dwIoControlCode As Long, _
ByRef lpInBuffer As Any, _
ByVal nInBufferSize As Long, _
ByRef lpOutBuffer As Any, _
ByVal nOutBufferSize As Long, _
ByRef lpBytesReturned As Long, _
ByVal lpOverlapped As Long) As Long
Public Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (Destination As Any, _
Source As Any, _
ByVal Length As Long)
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, _
ByVal hWndInsertAfter As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal cx As Long, _
ByVal cy As Long, _
ByVal wFlags As Long) As Long
Public Declare Function CloseHandle Lib "KERNEL32" (ByVal hObject As Long) As Long
Public Declare Function GetTickCount Lib "kernel32.dll" () As Long
Public Function BinaryToDecimal(Bin As Variant) As String
Dim Binary1 As String
Dim Decimal1 As Long
Dim A As Integer
For A = 1 To Len(Bin)
If Mid$(Bin, A, 1) <> "0" Then
If Mid$(Bin, A, 1) <> "1" Then
Exit Function
End If
End If
Next A
Decimal1 = 0
Binary1 = Bin
For A = 1 To Len(Binary1)
Decimal1 = Decimal1 * 2 + Mid$(Binary1, A, 1)
Next A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -