Add Original SDK
This commit is contained in:
@@ -0,0 +1,203 @@
|
||||
// !! this file should not be modified
|
||||
|
||||
using System;
|
||||
using System.Runtime.InteropServices; // so we can import DLL functions
|
||||
using System.Text; // so we can extract prodcode from array
|
||||
|
||||
// classes to load the correct 32-bit/64-bit DinkeyChange.dll functions - used by DinkeyChange class
|
||||
|
||||
// loads DCGetInfo from the 32-bit DinkeyChange.dll
|
||||
class DCGetInfo32
|
||||
{
|
||||
[DllImport("DinkeyChange.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCGetInfo(int type_mask, int model_mask, string prodcode_mask, int array_length, out int num_found, int[] type, int[] model, byte[] prodcode, uint[] dongle_number, int[] update_number);
|
||||
}
|
||||
|
||||
// loads DCGetInfo from the 64-bit DinkeyChange64.dll
|
||||
class DCGetInfo64
|
||||
{
|
||||
[DllImport("DinkeyChange64.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCGetInfo(int type_mask, int model_mask, string prodcode_mask, int array_length, out int num_found, int[] type, int[] model, byte[] prodcode, uint[] dongle_number, int[] update_number);
|
||||
}
|
||||
|
||||
// loads DCGetDiagnosticInfo from the 32-bit DinkeyChange.dll
|
||||
class DCGetDiagnosticInfo32
|
||||
{
|
||||
[DllImport("DinkeyChange.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCGetDiagnosticInfo(string filename);
|
||||
}
|
||||
|
||||
// loads DCGetDiagnosticInfo from the 64-bit DinkeyChange64.dll
|
||||
class DCGetDiagnosticInfo64
|
||||
{
|
||||
[DllImport("DinkeyChange64.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCGetDiagnosticInfo(string filename);
|
||||
}
|
||||
|
||||
// loads DCDoUpdateCodeString from the 32-bit DinkeyChange.dll
|
||||
class DCDoUpdateCodeString32
|
||||
{
|
||||
[DllImport("DinkeyChange.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCDoUpdateCodeString(string update_code_string, out int confirmation_code, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCDoUpdateCodeString from the 64-bit DinkeyChange64.dll
|
||||
class DCDoUpdateCodeString64
|
||||
{
|
||||
[DllImport("DinkeyChange64.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCDoUpdateCodeString(string update_code_string, out int confirmation_code, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCDoUpdateCodeFromFile from the 32-bit DinkeyChange.dll
|
||||
class DCDoUpdateCodeFromFile32
|
||||
{
|
||||
[DllImport("DinkeyChange.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCDoUpdateCodeFromFile(string update_code_file, out int confirmation_code, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCDoUpdateCodeFromFile from the 64-bit DinkeyChange64.dll
|
||||
class DCDoUpdateCodeFromFile64
|
||||
{
|
||||
[DllImport("DinkeyChange64.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCDoUpdateCodeFromFile(string update_code_file, out int confirmation_code, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCRestoreDinkeyFDLite from the 32-bit DinkeyChange.dll
|
||||
class DCRestoreDinkeyFDLite32
|
||||
{
|
||||
[DllImport("DinkeyChange.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCRestoreDinkeyFDLite();
|
||||
}
|
||||
|
||||
// loads DCRestoreDinkeyFDLite from the 64-bit DinkeyChange64.dll
|
||||
class DCRestoreDinkeyFDLite64
|
||||
{
|
||||
[DllImport("DinkeyChange64.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCRestoreDinkeyFDLite();
|
||||
}
|
||||
|
||||
// loads DCGetMachineID from the 32-bit DinkeyChange.dll
|
||||
class DCGetMachineID32
|
||||
{
|
||||
[DllImport("DinkeyChange.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCGetMachineID(out uint machineID, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCGetMachineID from the 64-bit DinkeyChange64.dll
|
||||
class DCGetMachineID64
|
||||
{
|
||||
[DllImport("DinkeyChange64.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCGetMachineID(out uint machineID, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCDownloadTempSoftwareKey from the 32-bit DinkeyChange.dll
|
||||
class DCDownloadTempSoftwareKey32
|
||||
{
|
||||
[DllImport("DinkeyChange.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCDownloadTempSoftwareKey(uint machineID, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCDownloadTempSoftwareKey from the 64-bit DinkeyChange64.dll
|
||||
class DCDownloadTempSoftwareKey64
|
||||
{
|
||||
[DllImport("DinkeyChange64.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCDownloadTempSoftwareKey(uint machineID, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCDownloadDemoSoftwareKey from the 32-bit DinkeyChange.dll
|
||||
class DCDownloadDemoSoftwareKey32
|
||||
{
|
||||
[DllImport("DinkeyChange.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCDownloadDemoSoftwareKey(uint machineID, string prodcode, int model, out int extended_error);
|
||||
}
|
||||
|
||||
// loads DCDownloadDemoSoftwareKey from the 64-bit DinkeyChange64.dll
|
||||
class DCDownloadDemoSoftwareKey64
|
||||
{
|
||||
[DllImport("DinkeyChange64.dll", CharSet = CharSet.Ansi)]
|
||||
public static extern int DCDownloadDemoSoftwareKey(uint machineID, string prodcode, int model, out int extended_error);
|
||||
}
|
||||
|
||||
class DinkeyChange
|
||||
{
|
||||
|
||||
// **** main API
|
||||
// We only want to load the correct DLL for the bit-ness of the computer. The other DLL may not exist.
|
||||
// if the appropriate DLL does not exist in the same directory as this test program you will receive a DllNotFoundException
|
||||
|
||||
// detects whether running 32-bit code or 64-bit code and loads appropriate Dll.
|
||||
public static int DCGetInfo(int type_mask, int model_mask, string prodcode_mask, int array_length, out int num_found, int[] type, int[] model, byte[] prodcode, uint[] dongle_number, int[] update_number)
|
||||
{
|
||||
if (IntPtr.Size == 4)
|
||||
return DCGetInfo32.DCGetInfo(type_mask, model_mask, prodcode_mask, array_length, out num_found, type, model, prodcode, dongle_number, update_number);
|
||||
return DCGetInfo64.DCGetInfo(type_mask, model_mask, prodcode_mask, array_length, out num_found, type, model, prodcode, dongle_number, update_number);
|
||||
}
|
||||
|
||||
public static int DCGetDiagnosticInfo(string filename)
|
||||
{
|
||||
if (IntPtr.Size == 4)
|
||||
return DCGetDiagnosticInfo32.DCGetDiagnosticInfo(filename);
|
||||
return DCGetDiagnosticInfo64.DCGetDiagnosticInfo(filename);
|
||||
}
|
||||
|
||||
public static int DCDoUpdateCodeString(string update_code_string, out int confirmation_code, out int extended_error)
|
||||
{
|
||||
if (IntPtr.Size == 4)
|
||||
return DCDoUpdateCodeString32.DCDoUpdateCodeString(update_code_string, out confirmation_code, out extended_error);
|
||||
return DCDoUpdateCodeString64.DCDoUpdateCodeString(update_code_string, out confirmation_code, out extended_error);
|
||||
}
|
||||
|
||||
public static int DCDoUpdateCodeFromFile(string update_code_string, out int confirmation_code, out int extended_error)
|
||||
{
|
||||
if (IntPtr.Size == 4)
|
||||
return DCDoUpdateCodeFromFile32.DCDoUpdateCodeFromFile(update_code_string, out confirmation_code, out extended_error);
|
||||
return DCDoUpdateCodeFromFile64.DCDoUpdateCodeFromFile(update_code_string, out confirmation_code, out extended_error);
|
||||
}
|
||||
|
||||
public static int DCRestoreDinkeyFDLite()
|
||||
{
|
||||
if (IntPtr.Size == 4)
|
||||
return DCRestoreDinkeyFDLite32.DCRestoreDinkeyFDLite();
|
||||
return DCRestoreDinkeyFDLite64.DCRestoreDinkeyFDLite();
|
||||
}
|
||||
|
||||
public static int DCGetMachineID(out uint machineID, out int extended_error)
|
||||
{
|
||||
if (IntPtr.Size == 4)
|
||||
return DCGetMachineID32.DCGetMachineID(out machineID, out extended_error);
|
||||
return DCGetMachineID64.DCGetMachineID(out machineID, out extended_error);
|
||||
}
|
||||
|
||||
public static int DCDownloadTempSoftwareKey(uint machineID, out int extended_error)
|
||||
{
|
||||
if (IntPtr.Size == 4)
|
||||
return DCDownloadTempSoftwareKey32.DCDownloadTempSoftwareKey(machineID, out extended_error);
|
||||
return DCDownloadTempSoftwareKey64.DCDownloadTempSoftwareKey(machineID, out extended_error);
|
||||
}
|
||||
|
||||
public static int DCDownloadDemoSoftwareKey(uint machineID, string prodcode, int model, out int extended_error)
|
||||
{
|
||||
if (IntPtr.Size == 4)
|
||||
return DCDownloadDemoSoftwareKey32.DCDownloadDemoSoftwareKey(machineID, prodcode, model, out extended_error);
|
||||
return DCDownloadDemoSoftwareKey64.DCDownloadDemoSoftwareKey(machineID, prodcode, model, out extended_error);
|
||||
}
|
||||
|
||||
// **** general purpose routines
|
||||
|
||||
// routine to extract product code string from array of product codes
|
||||
public static string GetProductCode(byte[] prodcode, int index)
|
||||
{
|
||||
int i;
|
||||
StringBuilder sb = new StringBuilder(8);
|
||||
|
||||
for (i=index*9; i<(index+1)*9; i++)
|
||||
{
|
||||
if (prodcode[i] == 0)
|
||||
return sb.ToString();
|
||||
else
|
||||
sb.Append((char)prodcode[i]);
|
||||
}
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user