interception-sys 0.1.3

FFI bindings for Interception
Documentation
/* 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;
}