Exemplo n.º 1
0
        /// <summary>
        /// Erzeugt eine neue Empfangseinheit.
        /// </summary>
        /// <param name="usagePage">Die Hauptkategorie des Gerätes.</param>
        /// <param name="usage">Die Unterkategorie des Gerätes.</param>
        /// <param name="window">Optional das Fenster, das die Benachrichtigungen erhalten soll.</param>
        /// <returns>Die angeforderte Empfangseinheit.</returns>
        public static RawInputSink Create(ushort usagePage, ushort usage, IntPtr window)
        {
            // Create registration structure
            var register =
                new _RawInputDevice[]
            {
                new _RawInputDevice {
                    usUsagePage = usagePage, usUsage = usage, hwndTarget = window, dwFlags = 0
                },
            };

            // Override flags
            if (window != IntPtr.Zero)
            {
                register[0].dwFlags |= 0x00000100;
            }

            // Process
            if (!RegisterRawInputDevices(register, register.Length, _RawInputDevice.SizeOf))
            {
                throw new InvalidOperationException();
            }

            // Report
            return(new RawInputSink());
        }
Exemplo n.º 2
0
        /// <summary>
        /// Erzeugt eine neue Empfangseinheit.
        /// </summary>
        /// <param name="window">Optional das Fenster, das die Benachrichtigungen erhalten soll.</param>
        /// <returns>Die angeforderte Empfangseinheit.</returns>
        public static RawInputSink Create(IntPtr window)
        {
            // Create registration structure
            var register =
                new _RawInputDevice[]
            {
                // RC
                new _RawInputDevice {
                    usUsagePage = 12, usUsage = 1, hwndTarget = window, dwFlags = 0
                },
                // RC
                new _RawInputDevice {
                    usUsagePage = 0xffbc, usUsage = 0x88, hwndTarget = window, dwFlags = 0
                },
                // Keyboard
                new _RawInputDevice {
                    usUsagePage = 1, usUsage = 6, hwndTarget = window, dwFlags = 0x00000230
                },
            };

            // Override flags
            if (window != IntPtr.Zero)
            {
                for (int i = register.Length; i-- > 0;)
                {
                    register[i].dwFlags |= 0x00000100;
                }
            }

            // Process
            if (!RegisterRawInputDevices(register, register.Length, _RawInputDevice.SizeOf))
            {
                throw new InvalidOperationException();
            }

            // Report
            return(new RawInputSink());
        }
Exemplo n.º 3
0
        /// <summary>
        /// Erzeugt eine neue Empfangseinheit.
        /// </summary>
        /// <param name="usagePage">Die Hauptkategorie des Gerätes.</param>
        /// <param name="usage">Die Unterkategorie des Gerätes.</param>
        /// <param name="window">Optional das Fenster, das die Benachrichtigungen erhalten soll.</param>
        /// <returns>Die angeforderte Empfangseinheit.</returns>
        public static RawInputSink Create( ushort usagePage, ushort usage, IntPtr window )
        {
            // Create registration structure
            var register =
                new _RawInputDevice[]
                    {
                        new _RawInputDevice { usUsagePage = usagePage, usUsage = usage, hwndTarget = window, dwFlags = 0 },
                    };

            // Override flags
            if (window != IntPtr.Zero)
                register[0].dwFlags |= 0x00000100;

            // Process
            if (!RegisterRawInputDevices( register, register.Length, _RawInputDevice.SizeOf ))
                throw new InvalidOperationException();

            // Report
            return new RawInputSink();
        }
Exemplo n.º 4
0
        /// <summary>
        /// Erzeugt eine neue Empfangseinheit.
        /// </summary>
        /// <param name="window">Optional das Fenster, das die Benachrichtigungen erhalten soll.</param>
        /// <returns>Die angeforderte Empfangseinheit.</returns>
        public static RawInputSink Create( IntPtr window )
        {
            // Create registration structure
            var register =
                new _RawInputDevice[]
                    {
                        // RC
                        new _RawInputDevice { usUsagePage = 12, usUsage = 1, hwndTarget = window, dwFlags = 0 },
                        // RC
                        new _RawInputDevice { usUsagePage = 0xffbc, usUsage = 0x88, hwndTarget = window, dwFlags = 0 },
                        // Keyboard
                        new _RawInputDevice { usUsagePage = 1, usUsage = 6, hwndTarget = window, dwFlags = 0x00000230 },
                    };

            // Override flags
            if (window != IntPtr.Zero)
                for (int i = register.Length; i-- > 0; )
                    register[i].dwFlags |= 0x00000100;

            // Process
            if (!RegisterRawInputDevices( register, register.Length, _RawInputDevice.SizeOf ))
                throw new InvalidOperationException();

            // Report
            return new RawInputSink();
        }
Exemplo n.º 5
0
 private static extern bool RegisterRawInputDevices( _RawInputDevice[] pRawInputDevices, Int32 uiNumDevices, Int32 cbSize );