144 lines
8.9 KiB
VB.net
144 lines
8.9 KiB
VB.net
' !! this file should not be modified
|
|
|
|
Imports System.Runtime.InteropServices
|
|
Imports System.Text
|
|
|
|
Module DinkeyChange_code
|
|
|
|
' declarations for functions exported by DinkeyChange.dll
|
|
Declare Ansi Function DCGetInfo32 Lib "DinkeyChange.dll" Alias "DCGetInfo" (ByVal type_mask As Integer, ByVal model_mask As Integer, ByVal prodcode_mask As String, ByVal array_length As Integer, _
|
|
ByRef num_found As Integer, ByVal type_array() As Integer, ByVal model_array() As Integer, ByVal prodcode_array() As Byte, ByVal dongle_number() As UInt32, ByVal update_number() As Integer) As Integer
|
|
Declare Ansi Function DCGetDiagnosticInfo32 Lib "DinkeyChange.dll" Alias "DCGetDiagnosticInfo" (ByVal filename As String) As Integer
|
|
Declare Ansi Function DCDoUpdateCodeString32 Lib "DinkeyChange.dll" Alias "DCDoUpdateCodeString" (ByVal update_code_string As String, ByRef confirmation_code As Integer, ByRef extended_error As Integer) As Integer
|
|
Declare Ansi Function DCDoUpdateCodeFromFile32 Lib "DinkeyChange.dll" Alias "DCDoUpdateCodeFromFile" (ByVal filename As String, ByRef confirmation_code As Integer, ByRef extended_error As Integer) As Integer
|
|
Declare Ansi Function DCRestoreDinkeyFDLite32 Lib "DinkeyChange.dll" Alias "DCRestoreDinkeyFDLite" () As Integer
|
|
Declare Ansi Function DCGetMachineID32 Lib "DinkeyChange.dll" Alias "DCGetMachineID" (ByRef machineID As UInt32, ByRef extended_error As Integer) As Integer
|
|
Declare Ansi Function DCDownloadTempSoftwareKey32 Lib "DinkeyChange.dll" Alias "DCDownloadTempSoftwareKey" (ByVal machineID As UInt32, ByRef extended_error As Integer) As Integer
|
|
Declare Ansi Function DCDownloadDemoSoftwareKey32 Lib "DinkeyChange.dll" Alias "DCDownloadDemoSoftwareKey" (ByVal machineID As UInt32, ByVal prodcode As String, ByVal model As Integer, ByRef extended_error As Integer) As Integer
|
|
|
|
' declarations for functions exported by DinkeyChange64.dll
|
|
Declare Ansi Function DCGetInfo64 Lib "DinkeyChange64.dll" Alias "DCGetInfo" (ByVal type_mask As Integer, ByVal model_mask As Integer, ByVal prodcode_mask As String, ByVal array_length As Integer, _
|
|
ByRef num_found As Integer, ByVal type_array() As Integer, ByVal model_array() As Integer, ByVal prodcode_array() As Byte, ByVal dongle_number() As UInt32, ByVal update_number() As Integer) As Integer
|
|
Declare Ansi Function DCGetDiagnosticInfo64 Lib "DinkeyChange64.dll" Alias "DCGetDiagnosticInfo" (ByVal filename As String) As Integer
|
|
Declare Ansi Function DCDoUpdateCodeString64 Lib "DinkeyChange64.dll" Alias "DCDoUpdateCodeString" (ByVal update_code_string As String, ByRef confirmation_code As Integer, ByRef extended_error As Integer) As Integer
|
|
Declare Ansi Function DCDoUpdateCodeFromFile64 Lib "DinkeyChange64.dll" Alias "DCDoUpdateCodeFromFile" (ByVal filename As String, ByRef confirmation_code As Integer, ByRef extended_error As Integer) As Integer
|
|
Declare Ansi Function DCRestoreDinkeyFDLite64 Lib "DinkeyChange64.dll" Alias "DCRestoreDinkeyFDLite" () As Integer
|
|
Declare Ansi Function DCGetMachineID64 Lib "DinkeyChange64.dll" Alias "DCGetMachineID" (ByRef machineID As UInt32, ByRef extended_error As Integer) As Integer
|
|
Declare Ansi Function DCDownloadTempSoftwareKey64 Lib "DinkeyChange64.dll" Alias "DCDownloadTempSoftwareKey" (ByVal machineID As UInt32, ByRef extended_error As Integer) As Integer
|
|
Declare Ansi Function DCDownloadDemoSoftwareKey64 Lib "DinkeyChange64.dll" Alias "DCDownloadDemoSoftwareKey" (ByVal machineID As UInt32, ByVal prodcode As String, ByVal model As Integer, ByRef extended_error As Integer) As Integer
|
|
|
|
'routines that ensure the relevant dll is called depending on whether we are running on 32-bit or 64-bit Windows
|
|
Function DCGetInfo(ByVal type_mask As Integer, ByVal model_mask As Integer, ByVal prodcode_mask As String, ByVal array_length As Integer, _
|
|
ByRef num_found As Integer, ByVal type_array() As Integer, ByVal model_array() As Integer, ByVal prodcode_array() As Byte, ByVal dongle_number() As UInt32, ByVal update_number() As Integer) As Integer
|
|
If (IntPtr.Size = 4) Then
|
|
DCGetInfo = DCGetInfo32(type_mask, model_mask, prodcode_mask, array_length, num_found, type_array, model_array, prodcode_array, dongle_number, update_number)
|
|
Else
|
|
DCGetInfo = DCGetInfo64(type_mask, model_mask, prodcode_mask, array_length, num_found, type_array, model_array, prodcode_array, dongle_number, update_number)
|
|
End If
|
|
End Function
|
|
|
|
Function DCGetDiagnosticInfo(ByVal filename As String) As Integer
|
|
If (IntPtr.Size = 4) Then
|
|
DCGetDiagnosticInfo = DCGetDiagnosticInfo32(filename)
|
|
Else
|
|
DCGetDiagnosticInfo = DCGetDiagnosticInfo64(filename)
|
|
End If
|
|
End Function
|
|
|
|
Function DCDoUpdateCodeString(ByVal update_code_string As String, ByRef confirmation_code As Integer, ByRef extended_error As Integer) As Integer
|
|
If (IntPtr.Size = 4) Then
|
|
DCDoUpdateCodeString = DCDoUpdateCodeString32(update_code_string, confirmation_code, extended_error)
|
|
Else
|
|
DCDoUpdateCodeString = DCDoUpdateCodeString64(update_code_string, confirmation_code, extended_error)
|
|
End If
|
|
End Function
|
|
|
|
Function DCDoUpdateCodeFromFile(ByVal filename As String, ByRef confirmation_code As Integer, ByRef extended_error As Integer) As Integer
|
|
If (IntPtr.Size = 4) Then
|
|
DCDoUpdateCodeFromFile = DCDoUpdateCodeFromFile32(filename, confirmation_code, extended_error)
|
|
Else
|
|
DCDoUpdateCodeFromFile = DCDoUpdateCodeFromFile64(filename, confirmation_code, extended_error)
|
|
End If
|
|
End Function
|
|
|
|
Function DCRestoreDinkeyFDLite() As Integer
|
|
If (IntPtr.Size = 4) Then
|
|
DCRestoreDinkeyFDLite = DCRestoreDinkeyFDLite32()
|
|
Else
|
|
DCRestoreDinkeyFDLite = DCRestoreDinkeyFDLite64()
|
|
End If
|
|
End Function
|
|
|
|
Function DCGetMachineID(ByRef machineID As UInt32, ByRef extended_error As Integer) As Integer
|
|
If (IntPtr.Size = 4) Then
|
|
DCGetMachineID = DCGetMachineID32(machineID, extended_error)
|
|
Else
|
|
DCGetMachineID = DCGetMachineID64(machineID, extended_error)
|
|
End If
|
|
End Function
|
|
|
|
Function DCDownloadTempSoftwareKey(ByVal machineID As UInt32, ByRef extended_error As Integer) As Integer
|
|
If (IntPtr.Size = 4) Then
|
|
DCDownloadTempSoftwareKey = DCDownloadTempSoftwareKey32(machineID, extended_error)
|
|
Else
|
|
DCDownloadTempSoftwareKey = DCDownloadTempSoftwareKey64(machineID, extended_error)
|
|
End If
|
|
End Function
|
|
|
|
Function DCDownloadDemoSoftwareKey(ByVal machineID As UInt32, ByVal prodcode As String, ByVal model As Integer, ByRef extended_error As Integer) As Integer
|
|
If (IntPtr.Size = 4) Then
|
|
DCDownloadDemoSoftwareKey = DCDownloadDemoSoftwareKey32(machineID, prodcode, model, extended_error)
|
|
Else
|
|
DCDownloadDemoSoftwareKey = DCDownloadDemoSoftwareKey64(machineID, prodcode, model, extended_error)
|
|
End If
|
|
End Function
|
|
|
|
' routine to extract product code string from array of product codes
|
|
Function GetProductCode(ByRef prodcode() As Byte, ByVal index As Integer) As String
|
|
Dim i As Integer
|
|
Dim ascii As New ASCIIEncoding()
|
|
|
|
For i = 0 To 8
|
|
If prodcode((index * 9) + i) = 0 Then
|
|
Exit For
|
|
End If
|
|
Next
|
|
Return ascii.GetString(prodcode, index * 9, i)
|
|
End Function
|
|
|
|
' maximum number of USB devices that can be attached to a machine at any time
|
|
Public Const MAX_USB_DEVICES As Integer = 128
|
|
Public Const MAX_PRODCODE_LEN As Integer = 9
|
|
|
|
' mask values
|
|
Public Const TYPE_MASK_PRO As Integer = 1
|
|
Public Const TYPE_MASK_FD As Integer = 2
|
|
Public Const TYPE_MASK_ALL As Integer = TYPE_MASK_PRO Or TYPE_MASK_FD
|
|
|
|
Public Const MODEL_MASK_LITE As Integer = 1
|
|
Public Const MODEL_MASK_PLUS As Integer = 2
|
|
Public Const MODEL_MASK_NET As Integer = 4
|
|
Public Const MODEL_MASK_ALL As Integer = MODEL_MASK_LITE Or MODEL_MASK_PLUS Or MODEL_MASK_NET
|
|
Public Const MODEL_MASK_DEFAULT As Integer = MODEL_MASK_PLUS Or MODEL_MASK_NET
|
|
|
|
' type values for DCGetInfo (returned in the array)
|
|
Public Const TYPE_PRO As Integer = 1
|
|
Public Const TYPE_FD As Integer = 2
|
|
|
|
' model values for DCGetInfo (returned in the array)
|
|
Public Const MODEL_LITE As Integer = 1
|
|
Public Const MODEL_PLUS As Integer = 2
|
|
Public Const MODEL_NET5 As Integer = 4
|
|
Public Const MODEL_NETU As Integer = 7
|
|
|
|
' model values for DCDownloadDemoSoftwareKey
|
|
Public Const SWKEY_MODEL_DEFAULT As Integer = &HFFFFFFFF ' NB this assumes that the Demo Software Key Template was created with only one valid dongle model
|
|
Public Const SWKEY_MODEL_PRO_LITE As Integer = 0
|
|
Public Const SWKEY_MODEL_PRO_PLUS As Integer = 1
|
|
Public Const SWKEY_MODEL_PRO_NET As Integer = 2
|
|
Public Const SWKEY_MODEL_FD_LITE As Integer = 3
|
|
Public Const SWKEY_MODEL_FD_PLUS As Integer = 4
|
|
Public Const SWKEY_MODEL_FD_NET As Integer = 5
|
|
|
|
End Module
|
|
|