use statically linked interception library for directinput emulation
This commit is contained in:
@@ -0,0 +1,315 @@
|
||||
/* automatically generated by rust-bindgen 0.54.1 */
|
||||
|
||||
pub const INTERCEPTION_MAX_KEYBOARD: u32 = 10;
|
||||
pub const INTERCEPTION_MAX_MOUSE: u32 = 10;
|
||||
pub const INTERCEPTION_MAX_DEVICE: u32 = 20;
|
||||
pub type InterceptionContext = *mut ::std::os::raw::c_void;
|
||||
pub type InterceptionDevice = ::std::os::raw::c_int;
|
||||
pub type InterceptionPrecedence = ::std::os::raw::c_int;
|
||||
pub type InterceptionFilter = ::std::os::raw::c_ushort;
|
||||
pub type InterceptionPredicate = ::std::option::Option<
|
||||
unsafe extern "C" fn(device: InterceptionDevice) -> ::std::os::raw::c_int,
|
||||
>;
|
||||
pub const InterceptionKeyState_INTERCEPTION_KEY_DOWN: InterceptionKeyState = 0;
|
||||
pub const InterceptionKeyState_INTERCEPTION_KEY_UP: InterceptionKeyState = 1;
|
||||
pub const InterceptionKeyState_INTERCEPTION_KEY_E0: InterceptionKeyState = 2;
|
||||
pub const InterceptionKeyState_INTERCEPTION_KEY_E1: InterceptionKeyState = 4;
|
||||
pub const InterceptionKeyState_INTERCEPTION_KEY_TERMSRV_SET_LED: InterceptionKeyState = 8;
|
||||
pub const InterceptionKeyState_INTERCEPTION_KEY_TERMSRV_SHADOW: InterceptionKeyState = 16;
|
||||
pub const InterceptionKeyState_INTERCEPTION_KEY_TERMSRV_VKPACKET: InterceptionKeyState = 32;
|
||||
pub type InterceptionKeyState = u32;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_NONE: InterceptionFilterKeyState = 0;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_ALL: InterceptionFilterKeyState =
|
||||
65535;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_DOWN: InterceptionFilterKeyState = 1;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_UP: InterceptionFilterKeyState = 2;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_E0: InterceptionFilterKeyState = 4;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_E1: InterceptionFilterKeyState = 8;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_TERMSRV_SET_LED:
|
||||
InterceptionFilterKeyState = 16;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_TERMSRV_SHADOW:
|
||||
InterceptionFilterKeyState = 32;
|
||||
pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_TERMSRV_VKPACKET:
|
||||
InterceptionFilterKeyState = 64;
|
||||
pub type InterceptionFilterKeyState = u32;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_LEFT_BUTTON_DOWN: InterceptionMouseState = 1;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_LEFT_BUTTON_UP: InterceptionMouseState = 2;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_RIGHT_BUTTON_DOWN: InterceptionMouseState = 4;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_RIGHT_BUTTON_UP: InterceptionMouseState = 8;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_MIDDLE_BUTTON_DOWN: InterceptionMouseState = 16;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_MIDDLE_BUTTON_UP: InterceptionMouseState = 32;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_1_DOWN: InterceptionMouseState = 1;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_1_UP: InterceptionMouseState = 2;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_2_DOWN: InterceptionMouseState = 4;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_2_UP: InterceptionMouseState = 8;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_3_DOWN: InterceptionMouseState = 16;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_3_UP: InterceptionMouseState = 32;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_4_DOWN: InterceptionMouseState = 64;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_4_UP: InterceptionMouseState = 128;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_5_DOWN: InterceptionMouseState = 256;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_5_UP: InterceptionMouseState = 512;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_WHEEL: InterceptionMouseState = 1024;
|
||||
pub const InterceptionMouseState_INTERCEPTION_MOUSE_HWHEEL: InterceptionMouseState = 2048;
|
||||
pub type InterceptionMouseState = u32;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_NONE:
|
||||
InterceptionFilterMouseState = 0;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_ALL: InterceptionFilterMouseState =
|
||||
65535;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_LEFT_BUTTON_DOWN:
|
||||
InterceptionFilterMouseState = 1;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_LEFT_BUTTON_UP:
|
||||
InterceptionFilterMouseState = 2;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_RIGHT_BUTTON_DOWN:
|
||||
InterceptionFilterMouseState = 4;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_RIGHT_BUTTON_UP:
|
||||
InterceptionFilterMouseState = 8;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_MIDDLE_BUTTON_DOWN:
|
||||
InterceptionFilterMouseState = 16;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_MIDDLE_BUTTON_UP:
|
||||
InterceptionFilterMouseState = 32;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_1_DOWN:
|
||||
InterceptionFilterMouseState = 1;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_1_UP:
|
||||
InterceptionFilterMouseState = 2;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_2_DOWN:
|
||||
InterceptionFilterMouseState = 4;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_2_UP:
|
||||
InterceptionFilterMouseState = 8;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_3_DOWN:
|
||||
InterceptionFilterMouseState = 16;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_3_UP:
|
||||
InterceptionFilterMouseState = 32;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_4_DOWN:
|
||||
InterceptionFilterMouseState = 64;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_4_UP:
|
||||
InterceptionFilterMouseState = 128;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_5_DOWN:
|
||||
InterceptionFilterMouseState = 256;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_5_UP:
|
||||
InterceptionFilterMouseState = 512;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_WHEEL:
|
||||
InterceptionFilterMouseState = 1024;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_HWHEEL:
|
||||
InterceptionFilterMouseState = 2048;
|
||||
pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_MOVE:
|
||||
InterceptionFilterMouseState = 4096;
|
||||
pub type InterceptionFilterMouseState = u32;
|
||||
pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_MOVE_RELATIVE: InterceptionMouseFlag = 0;
|
||||
pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_MOVE_ABSOLUTE: InterceptionMouseFlag = 1;
|
||||
pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_VIRTUAL_DESKTOP: InterceptionMouseFlag = 2;
|
||||
pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_ATTRIBUTES_CHANGED: InterceptionMouseFlag = 4;
|
||||
pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_MOVE_NOCOALESCE: InterceptionMouseFlag = 8;
|
||||
pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_TERMSRV_SRC_SHADOW: InterceptionMouseFlag = 256;
|
||||
pub type InterceptionMouseFlag = u32;
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Default, Copy, Clone)]
|
||||
pub struct InterceptionMouseStroke {
|
||||
pub state: ::std::os::raw::c_ushort,
|
||||
pub flags: ::std::os::raw::c_ushort,
|
||||
pub rolling: ::std::os::raw::c_short,
|
||||
pub x: ::std::os::raw::c_int,
|
||||
pub y: ::std::os::raw::c_int,
|
||||
pub information: ::std::os::raw::c_uint,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_InterceptionMouseStroke() {
|
||||
assert_eq!(
|
||||
::std::mem::size_of::<InterceptionMouseStroke>(),
|
||||
20usize,
|
||||
concat!("Size of: ", stringify!(InterceptionMouseStroke))
|
||||
);
|
||||
assert_eq!(
|
||||
::std::mem::align_of::<InterceptionMouseStroke>(),
|
||||
4usize,
|
||||
concat!("Alignment of ", stringify!(InterceptionMouseStroke))
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).state as *const _ as usize },
|
||||
0usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionMouseStroke),
|
||||
"::",
|
||||
stringify!(state)
|
||||
)
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).flags as *const _ as usize },
|
||||
2usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionMouseStroke),
|
||||
"::",
|
||||
stringify!(flags)
|
||||
)
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).rolling as *const _ as usize },
|
||||
4usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionMouseStroke),
|
||||
"::",
|
||||
stringify!(rolling)
|
||||
)
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).x as *const _ as usize },
|
||||
8usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionMouseStroke),
|
||||
"::",
|
||||
stringify!(x)
|
||||
)
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).y as *const _ as usize },
|
||||
12usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionMouseStroke),
|
||||
"::",
|
||||
stringify!(y)
|
||||
)
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe {
|
||||
&(*(::std::ptr::null::<InterceptionMouseStroke>())).information as *const _ as usize
|
||||
},
|
||||
16usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionMouseStroke),
|
||||
"::",
|
||||
stringify!(information)
|
||||
)
|
||||
);
|
||||
}
|
||||
#[repr(C)]
|
||||
#[derive(Debug, Default, Copy, Clone)]
|
||||
pub struct InterceptionKeyStroke {
|
||||
pub code: ::std::os::raw::c_ushort,
|
||||
pub state: ::std::os::raw::c_ushort,
|
||||
pub information: ::std::os::raw::c_uint,
|
||||
}
|
||||
#[test]
|
||||
fn bindgen_test_layout_InterceptionKeyStroke() {
|
||||
assert_eq!(
|
||||
::std::mem::size_of::<InterceptionKeyStroke>(),
|
||||
8usize,
|
||||
concat!("Size of: ", stringify!(InterceptionKeyStroke))
|
||||
);
|
||||
assert_eq!(
|
||||
::std::mem::align_of::<InterceptionKeyStroke>(),
|
||||
4usize,
|
||||
concat!("Alignment of ", stringify!(InterceptionKeyStroke))
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe { &(*(::std::ptr::null::<InterceptionKeyStroke>())).code as *const _ as usize },
|
||||
0usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionKeyStroke),
|
||||
"::",
|
||||
stringify!(code)
|
||||
)
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe { &(*(::std::ptr::null::<InterceptionKeyStroke>())).state as *const _ as usize },
|
||||
2usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionKeyStroke),
|
||||
"::",
|
||||
stringify!(state)
|
||||
)
|
||||
);
|
||||
assert_eq!(
|
||||
unsafe {
|
||||
&(*(::std::ptr::null::<InterceptionKeyStroke>())).information as *const _ as usize
|
||||
},
|
||||
4usize,
|
||||
concat!(
|
||||
"Offset of field: ",
|
||||
stringify!(InterceptionKeyStroke),
|
||||
"::",
|
||||
stringify!(information)
|
||||
)
|
||||
);
|
||||
}
|
||||
pub type InterceptionStroke = [::std::os::raw::c_char; 20usize];
|
||||
extern "C" {
|
||||
pub fn interception_create_context() -> InterceptionContext;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_destroy_context(context: InterceptionContext);
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_get_precedence(
|
||||
context: InterceptionContext,
|
||||
device: InterceptionDevice,
|
||||
) -> InterceptionPrecedence;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_set_precedence(
|
||||
context: InterceptionContext,
|
||||
device: InterceptionDevice,
|
||||
precedence: InterceptionPrecedence,
|
||||
);
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_get_filter(
|
||||
context: InterceptionContext,
|
||||
device: InterceptionDevice,
|
||||
) -> InterceptionFilter;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_set_filter(
|
||||
context: InterceptionContext,
|
||||
predicate: InterceptionPredicate,
|
||||
filter: InterceptionFilter,
|
||||
);
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_wait(context: InterceptionContext) -> InterceptionDevice;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_wait_with_timeout(
|
||||
context: InterceptionContext,
|
||||
milliseconds: ::std::os::raw::c_ulong,
|
||||
) -> InterceptionDevice;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_send(
|
||||
context: InterceptionContext,
|
||||
device: InterceptionDevice,
|
||||
stroke: *const InterceptionStroke,
|
||||
nstroke: ::std::os::raw::c_uint,
|
||||
) -> ::std::os::raw::c_int;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_receive(
|
||||
context: InterceptionContext,
|
||||
device: InterceptionDevice,
|
||||
stroke: *mut InterceptionStroke,
|
||||
nstroke: ::std::os::raw::c_uint,
|
||||
) -> ::std::os::raw::c_int;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_get_hardware_id(
|
||||
context: InterceptionContext,
|
||||
device: InterceptionDevice,
|
||||
hardware_id_buffer: *mut ::std::os::raw::c_void,
|
||||
buffer_size: ::std::os::raw::c_uint,
|
||||
) -> ::std::os::raw::c_uint;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_is_invalid(device: InterceptionDevice) -> ::std::os::raw::c_int;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_is_keyboard(device: InterceptionDevice) -> ::std::os::raw::c_int;
|
||||
}
|
||||
extern "C" {
|
||||
pub fn interception_is_mouse(device: InterceptionDevice) -> ::std::os::raw::c_int;
|
||||
}
|
||||
Reference in New Issue
Block a user