using DWORD = UInt32;
using HANDLE = UInt32;
class MPUSB
{
public const HANDLE INVALID_HANDLE_VALUE = 0xFFFFFFFF;
public const DWORD SUCCESS = 1;
public const DWORD FAIL = 0;
public enum PipeDir : uint
{
Write = 0,
Read = 1
}
public const int maxDevs = 127;
[DllImport("mpusbapi.dll",EntryPoint="_MPUSBGetDLLVersion")]
public static extern DWORD MPUSBGetDLLVersion();
[DllImport("mpusbapi.dll", EntryPoint = "_MPUSBGetDeviceCount")]
public static extern DWORD GetDeviceCount([MarshalAs(UnmanagedType.LPStr)] string pVID_PID);
[DllImport("mpusbapi.dll", EntryPoint = "_MPUSBOpen", SetLastError = true)]
public static extern DWORD Open ( DWORD instance,
[MarshalAs(UnmanagedType.LPStr)] string pVID_PID,
[MarshalAs(UnmanagedType.LPStr)] string pEP,
[MarshalAs(UnmanagedType.U4)] PipeDir dwDir,
DWORD dwReserved );
[DllImport("mpusbapi.dll", EntryPoint = "_MPUSBRead", SetLastError = true)]
public static extern DWORD Read ( HANDLE handle,
[MarshalAs(UnmanagedType.LPArray)] byte[] pData,
DWORD dwLen,
out DWORD pLength,
DWORD dwMilliseconds );
[DllImport("mpusbapi.dll", EntryPoint = "_MPUSBWrite", SetLastError = true)]
public static extern DWORD Write ( HANDLE handle,
[MarshalAs(UnmanagedType.LPArray)] byte[] pData,
DWORD dwLen,
out DWORD pLength,
DWORD dwMilliseconds );
[DllImport("mpusbapi.dll", EntryPoint = "_MPUSBReadInt")]
public static extern DWORD ReadInt( HANDLE handle,
[MarshalAs(UnmanagedType.LPArray)] byte[] pData,
DWORD dwLen,
out DWORD pLength,
DWORD dwMilliseconds );
[DllImport("mpusbapi.dll", EntryPoint = "_MPUSBClose")]
public static extern bool Close ( HANDLE handle );
public static DWORD DLLVersion { get { return MPUSBGetDLLVersion(); } }
public static void GetDLLVersion(out ushort major, out ushort minor)
{
DWORD ver = DLLVersion;
major = (ushort)(DLLVersion >> 16);
minor = (ushort)(DLLVersion & 0x0000FFFF);
}
}
|