mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-06 11:16:51 +02:00
87 lines
3.0 KiB
C#
87 lines
3.0 KiB
C#
|
|
// Copyright (c) Microsoft Corporation
|
|||
|
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
|||
|
|
// See the LICENSE file in the project root for more information.
|
|||
|
|
|
|||
|
|
using System;
|
|||
|
|
using System.Runtime.InteropServices;
|
|||
|
|
|
|||
|
|
namespace Microsoft.PowerToys.Settings.UI.Helpers
|
|||
|
|
{
|
|||
|
|
internal static class NativeKeyboardHelper
|
|||
|
|
{
|
|||
|
|
[StructLayout(LayoutKind.Sequential)]
|
|||
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")]
|
|||
|
|
internal struct INPUT
|
|||
|
|
{
|
|||
|
|
internal INPUTTYPE type;
|
|||
|
|
internal InputUnion data;
|
|||
|
|
|
|||
|
|
internal static int Size
|
|||
|
|
{
|
|||
|
|
get { return Marshal.SizeOf(typeof(INPUT)); }
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[StructLayout(LayoutKind.Explicit)]
|
|||
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")]
|
|||
|
|
internal struct InputUnion
|
|||
|
|
{
|
|||
|
|
[FieldOffset(0)]
|
|||
|
|
internal MOUSEINPUT mi;
|
|||
|
|
[FieldOffset(0)]
|
|||
|
|
internal KEYBDINPUT ki;
|
|||
|
|
[FieldOffset(0)]
|
|||
|
|
internal HARDWAREINPUT hi;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[StructLayout(LayoutKind.Sequential)]
|
|||
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")]
|
|||
|
|
internal struct MOUSEINPUT
|
|||
|
|
{
|
|||
|
|
internal int dx;
|
|||
|
|
internal int dy;
|
|||
|
|
internal int mouseData;
|
|||
|
|
internal uint dwFlags;
|
|||
|
|
internal uint time;
|
|||
|
|
internal UIntPtr dwExtraInfo;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[StructLayout(LayoutKind.Sequential)]
|
|||
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")]
|
|||
|
|
internal struct KEYBDINPUT
|
|||
|
|
{
|
|||
|
|
internal short wVk;
|
|||
|
|
internal short wScan;
|
|||
|
|
internal uint dwFlags;
|
|||
|
|
internal int time;
|
|||
|
|
internal UIntPtr dwExtraInfo;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[StructLayout(LayoutKind.Sequential)]
|
|||
|
|
[System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.NamingRules", "SA1307:Accessible fields should begin with upper-case letter", Justification = "Matching Native Structure")]
|
|||
|
|
internal struct HARDWAREINPUT
|
|||
|
|
{
|
|||
|
|
internal int uMsg;
|
|||
|
|
internal short wParamL;
|
|||
|
|
internal short wParamH;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
internal enum INPUTTYPE : uint
|
|||
|
|
{
|
|||
|
|
INPUT_MOUSE = 0,
|
|||
|
|
INPUT_KEYBOARD = 1,
|
|||
|
|
INPUT_HARDWARE = 2,
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
[Flags]
|
|||
|
|
internal enum KeyEventF
|
|||
|
|
{
|
|||
|
|
KeyDown = 0x0000,
|
|||
|
|
ExtendedKey = 0x0001,
|
|||
|
|
KeyUp = 0x0002,
|
|||
|
|
Unicode = 0x0004,
|
|||
|
|
Scancode = 0x0008,
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|