Example #1
0
        internal bool GetNumberOfInputBuffers(int hidDeviceObject, ref int numberOfInputBuffers)
        {
            bool flag1 = false;

            try
            {
                bool flag2;
                if (!IsWindows98Gold())
                {
                    flag2 = HidApiDeclarations.HidD_GetNumInputBuffers(hidDeviceObject, ref numberOfInputBuffers);
                }
                else
                {
                    numberOfInputBuffers = 2;
                    flag2 = true;
                }
                flag1 = flag2;
            }
            catch (Exception ex)
            {
                ProjectData.SetProjectError(ex);
                Hid.HandleException("Hid", ex);
                ProjectData.ClearProjectError();
            }
            return(flag1);
        }
Example #2
0
 internal HidApiDeclarations.HIDP_CAPS GetDeviceCapabilities(int hidHandle)
 {
     byte[] inArray  = new byte[30];
     byte[] numArray = new byte[1024];
     HidApiDeclarations.HIDP_CAPS capabilities = new HidApiDeclarations.HIDP_CAPS();
     try
     {
         IntPtr PreparsedData = new IntPtr();
         bool   flag          = HidApiDeclarations.HidD_GetPreparsedData(hidHandle, ref PreparsedData);
         Convert.ToBase64String(inArray);
         if (HidApiDeclarations.HidP_GetCaps(PreparsedData, ref Capabilities) != 0)
         {
             HidApiDeclarations.HidP_GetValueCaps((short)0, ref numArray[0], ref Capabilities.NumberInputValueCaps, PreparsedData);
             flag = HidApiDeclarations.HidD_FreePreparsedData(ref PreparsedData);
         }
         capabilities = Capabilities;
     }
     catch (Exception ex)
     {
         ProjectData.SetProjectError(ex);
         Hid.HandleException("Hid", ex);
         ProjectData.ClearProjectError();
     }
     return(capabilities);
 }
Example #3
0
        internal string GetHIDUsage(HidApiDeclarations.HIDP_CAPS MyCapabilities)
        {
            string str1 = "";

            try
            {
                string str2 = "";
                int    num  = checked ((int)MyCapabilities.UsagePage * 256 + (int)MyCapabilities.Usage);
                if (num == 258)
                {
                    str2 = "mouse";
                }
                if (num == 262)
                {
                    str2 = "keyboard";
                }
                str1 = str2;
            }
            catch (Exception ex)
            {
                ProjectData.SetProjectError(ex);
                Hid.HandleException("Hid", ex);
                ProjectData.ClearProjectError();
            }
            return(str1);
        }
Example #4
0
 internal void CancelTransfer(int readHandle, int hidHandle, int writeHandle)
 {
     try
     {
         FileIOApiDeclarations.CancelIo(readHandle);
         if (hidHandle != 0)
         {
             FileIOApiDeclarations.CloseHandle(hidHandle);
         }
         if (readHandle != 0)
         {
             FileIOApiDeclarations.CloseHandle(readHandle);
         }
         if (writeHandle == 0)
         {
             return;
         }
         FileIOApiDeclarations.CloseHandle(writeHandle);
     }
     catch (Exception ex)
     {
         ProjectData.SetProjectError(ex);
         Hid.HandleException("Hid", ex);
         ProjectData.ClearProjectError();
     }
 }
 public Nobreak(string _vid, string _pid)
 {
     vid   = _vid;
     pid   = _pid;
     MyHID = new Hid();
     MyDeviceManagement = new DeviceManagement();
     myOutputReport     = new Hid.OutputReport();
     myInputReport      = new Hid.InputReport();
 }
        //public event FalhaDeRedeEventHandler FalhaDeRedeEvent;
        //public event BateriaOkEventHandler BateriaOkEvent;
        ////public event DesligamentoSistema;
        //public event HibernacaoSistema;
        //public event RetornoSistema;
        //public event TesteSolicitado;
        //public event RetornoTeste;
        //public event ModoBypass;
        //public event AnormalidadeEventHandler AnormalidadeEvent;

        public Nobreak()
        {
            vid   = "0483";
            pid   = "0035";
            MyHID = new Hid();
            MyDeviceManagement = new DeviceManagement();
            myOutputReport     = new Hid.OutputReport();
            myInputReport      = new Hid.InputReport();
        }
Example #7
0
 protected override void ProtectedRead(int readHandle, int hidHandle, int writeHandle, ref bool myDeviceDetected, ref byte[] inputReportBuffer, ref bool success)
 {
     try
     {
         success = HidApiDeclarations.HidD_GetInputReport(hidHandle, ref inputReportBuffer[0], checked (Information.UBound((Array)inputReportBuffer, 1) + 1));
     }
     catch (Exception ex)
     {
         ProjectData.SetProjectError(ex);
         Hid.HandleException("Hid", ex);
         ProjectData.ClearProjectError();
     }
 }
Example #8
0
 internal void Read(int readHandle, int hidHandle, int writeHandle, ref bool myDeviceDetected, ref byte[] readBuffer, ref bool success)
 {
     try
     {
         ProtectedRead(readHandle, hidHandle, writeHandle, ref myDeviceDetected, ref readBuffer, ref success);
     }
     catch (Exception ex)
     {
         ProjectData.SetProjectError(ex);
         Hid.HandleException("Hid", ex);
         ProjectData.ClearProjectError();
     }
 }
Example #9
0
            protected override bool ProtectedWrite(int hidHandle, byte[] outputReportBuffer)
            {
                bool flag = false;

                try
                {
                    flag = HidApiDeclarations.HidD_SetOutputReport(hidHandle, ref outputReportBuffer[0], checked (Information.UBound((Array)outputReportBuffer, 1) + 1));
                }
                catch (Exception ex)
                {
                    ProjectData.SetProjectError(ex);
                    Hid.HandleException("Hid", ex);
                    ProjectData.ClearProjectError();
                }
                return(flag);
            }
Example #10
0
            internal bool Write(byte[] reportBuffer, int deviceHandle)
            {
                bool flag = false;

                try
                {
                    flag = ProtectedWrite(deviceHandle, reportBuffer);
                }
                catch (Exception ex)
                {
                    ProjectData.SetProjectError(ex);
                    Hid.HandleException("Hid", ex);
                    ProjectData.ClearProjectError();
                }
                return(flag);
            }
Example #11
0
        internal bool FlushQueue(int hidHandle)
        {
            bool flag = false;

            try
            {
                flag = HidApiDeclarations.HidD_FlushQueue(hidHandle);
            }
            catch (Exception ex)
            {
                ProjectData.SetProjectError(ex);
                Hid.HandleException("Hid", ex);
                ProjectData.ClearProjectError();
            }
            return(flag);
        }
Example #12
0
        internal bool IsWindows98Gold()
        {
            bool flag = false;

            try
            {
                flag = Environment.OSVersion.Version < new Version(4, 10, 2183);
            }
            catch (Exception ex)
            {
                ProjectData.SetProjectError(ex);
                Hid.HandleException("Hid", ex);
                ProjectData.ClearProjectError();
            }
            return(flag);
        }
Example #13
0
        internal bool IsWindowsXpOrLater()
        {
            bool flag = false;

            try
            {
                flag = Environment.OSVersion.Version >= new Version(5, 1);
            }
            catch (Exception ex)
            {
                ProjectData.SetProjectError(ex);
                Hid.HandleException("Hid", ex);
                ProjectData.ClearProjectError();
            }
            return(flag);
        }
Example #14
0
            protected override void ProtectedRead(int readHandle, int hidHandle, int writeHandle, ref bool myDeviceDetected, ref byte[] inputReportBuffer, ref bool success)
            {
                try
                {
                    if (!ReadyForOverlappedTransfer)
                    {
                        PrepareForOverlappedTransfer(ref HIDOverlapped, ref EventObject);
                    }
                    int lpNumberOfBytesRead = 0;
                    FileIOApiDeclarations.ReadFile(readHandle, ref inputReportBuffer[0], checked (Information.UBound((Array)inputReportBuffer, 1) + 1), ref lpNumberOfBytesRead, ref HIDOverlapped);
                    int num = FileIOApiDeclarations.WaitForSingleObject(EventObject, 100);
                    switch (num)
                    {
                    case 0:
                        success = true;
                        break;

                    case 258:
                        CancelTransfer(readHandle, hidHandle, writeHandle);
                        success          = false;
                        myDeviceDetected = false;
                        break;

                    default:
                        CancelTransfer(readHandle, hidHandle, writeHandle);
                        success          = false;
                        myDeviceDetected = false;
                        break;
                    }
                    if (num == 0)
                    {
                        success = true;
                    }
                    else
                    {
                        success = false;
                    }
                }
                catch (Exception ex)
                {
                    ProjectData.SetProjectError(ex);
                    Hid.HandleException("Hid", ex);
                    ProjectData.ClearProjectError();
                }
            }
Example #15
0
 internal void PrepareForOverlappedTransfer(ref FileIOApiDeclarations.OVERLAPPED hidOverlapped, ref int eventObject)
 {
     try
     {
         FileIOApiDeclarations.SECURITY_ATTRIBUTES SecurityAttributes = new FileIOApiDeclarations.SECURITY_ATTRIBUTES();
         SecurityAttributes.lpSecurityDescriptor = 0;
         SecurityAttributes.bInheritHandle       = -1;
         SecurityAttributes.nLength = Strings.Len(SecurityAttributes);
         eventObject                = FileIOApiDeclarations.CreateEvent(ref SecurityAttributes, 0, -1, "");
         hidOverlapped.Offset       = 0;
         hidOverlapped.OffsetHigh   = 0;
         hidOverlapped.hEvent       = eventObject;
         ReadyForOverlappedTransfer = true;
     }
     catch (Exception ex)
     {
         ProjectData.SetProjectError(ex);
         Hid.HandleException("Hid", ex);
         ProjectData.ClearProjectError();
     }
 }
Example #16
0
            protected override bool ProtectedWrite(int writeHandle, byte[] outputReportBuffer)
            {
                bool flag1 = false;

                try
                {
                    int  lpNumberOfBytesWritten = 0;
                    bool flag2 = FileIOApiDeclarations.WriteFile(writeHandle, ref outputReportBuffer[0], checked (Information.UBound((Array)outputReportBuffer, 1) + 1), ref lpNumberOfBytesWritten, 0);
                    if (!flag2 && writeHandle != 0)
                    {
                        FileIOApiDeclarations.CloseHandle(writeHandle);
                    }
                    flag1 = flag2;
                }
                catch (Exception ex)
                {
                    ProjectData.SetProjectError(ex);
                    Hid.HandleException("Hid", ex);
                    ProjectData.ClearProjectError();
                }
                return(flag1);
            }