1pub const INTERCEPTION_MAX_KEYBOARD: u32 = 10;
4pub const INTERCEPTION_MAX_MOUSE: u32 = 10;
5pub const INTERCEPTION_MAX_DEVICE: u32 = 20;
6pub type InterceptionContext = *mut ::std::os::raw::c_void;
7pub type InterceptionDevice = ::std::os::raw::c_int;
8pub type InterceptionPrecedence = ::std::os::raw::c_int;
9pub type InterceptionFilter = ::std::os::raw::c_ushort;
10pub type InterceptionPredicate = ::std::option::Option<
11 unsafe extern "C" fn(device: InterceptionDevice) -> ::std::os::raw::c_int,
12>;
13pub const InterceptionKeyState_INTERCEPTION_KEY_DOWN: InterceptionKeyState = 0;
14pub const InterceptionKeyState_INTERCEPTION_KEY_UP: InterceptionKeyState = 1;
15pub const InterceptionKeyState_INTERCEPTION_KEY_E0: InterceptionKeyState = 2;
16pub const InterceptionKeyState_INTERCEPTION_KEY_E1: InterceptionKeyState = 4;
17pub const InterceptionKeyState_INTERCEPTION_KEY_TERMSRV_SET_LED: InterceptionKeyState = 8;
18pub const InterceptionKeyState_INTERCEPTION_KEY_TERMSRV_SHADOW: InterceptionKeyState = 16;
19pub const InterceptionKeyState_INTERCEPTION_KEY_TERMSRV_VKPACKET: InterceptionKeyState = 32;
20pub type InterceptionKeyState = u32;
21pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_NONE: InterceptionFilterKeyState = 0;
22pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_ALL: InterceptionFilterKeyState =
23 65535;
24pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_DOWN: InterceptionFilterKeyState = 1;
25pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_UP: InterceptionFilterKeyState = 2;
26pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_E0: InterceptionFilterKeyState = 4;
27pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_E1: InterceptionFilterKeyState = 8;
28pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_TERMSRV_SET_LED:
29 InterceptionFilterKeyState = 16;
30pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_TERMSRV_SHADOW:
31 InterceptionFilterKeyState = 32;
32pub const InterceptionFilterKeyState_INTERCEPTION_FILTER_KEY_TERMSRV_VKPACKET:
33 InterceptionFilterKeyState = 64;
34pub type InterceptionFilterKeyState = u32;
35pub const InterceptionMouseState_INTERCEPTION_MOUSE_LEFT_BUTTON_DOWN: InterceptionMouseState = 1;
36pub const InterceptionMouseState_INTERCEPTION_MOUSE_LEFT_BUTTON_UP: InterceptionMouseState = 2;
37pub const InterceptionMouseState_INTERCEPTION_MOUSE_RIGHT_BUTTON_DOWN: InterceptionMouseState = 4;
38pub const InterceptionMouseState_INTERCEPTION_MOUSE_RIGHT_BUTTON_UP: InterceptionMouseState = 8;
39pub const InterceptionMouseState_INTERCEPTION_MOUSE_MIDDLE_BUTTON_DOWN: InterceptionMouseState = 16;
40pub const InterceptionMouseState_INTERCEPTION_MOUSE_MIDDLE_BUTTON_UP: InterceptionMouseState = 32;
41pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_1_DOWN: InterceptionMouseState = 1;
42pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_1_UP: InterceptionMouseState = 2;
43pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_2_DOWN: InterceptionMouseState = 4;
44pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_2_UP: InterceptionMouseState = 8;
45pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_3_DOWN: InterceptionMouseState = 16;
46pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_3_UP: InterceptionMouseState = 32;
47pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_4_DOWN: InterceptionMouseState = 64;
48pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_4_UP: InterceptionMouseState = 128;
49pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_5_DOWN: InterceptionMouseState = 256;
50pub const InterceptionMouseState_INTERCEPTION_MOUSE_BUTTON_5_UP: InterceptionMouseState = 512;
51pub const InterceptionMouseState_INTERCEPTION_MOUSE_WHEEL: InterceptionMouseState = 1024;
52pub const InterceptionMouseState_INTERCEPTION_MOUSE_HWHEEL: InterceptionMouseState = 2048;
53pub type InterceptionMouseState = u32;
54pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_NONE:
55 InterceptionFilterMouseState = 0;
56pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_ALL: InterceptionFilterMouseState =
57 65535;
58pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_LEFT_BUTTON_DOWN:
59 InterceptionFilterMouseState = 1;
60pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_LEFT_BUTTON_UP:
61 InterceptionFilterMouseState = 2;
62pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_RIGHT_BUTTON_DOWN:
63 InterceptionFilterMouseState = 4;
64pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_RIGHT_BUTTON_UP:
65 InterceptionFilterMouseState = 8;
66pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_MIDDLE_BUTTON_DOWN:
67 InterceptionFilterMouseState = 16;
68pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_MIDDLE_BUTTON_UP:
69 InterceptionFilterMouseState = 32;
70pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_1_DOWN:
71 InterceptionFilterMouseState = 1;
72pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_1_UP:
73 InterceptionFilterMouseState = 2;
74pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_2_DOWN:
75 InterceptionFilterMouseState = 4;
76pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_2_UP:
77 InterceptionFilterMouseState = 8;
78pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_3_DOWN:
79 InterceptionFilterMouseState = 16;
80pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_3_UP:
81 InterceptionFilterMouseState = 32;
82pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_4_DOWN:
83 InterceptionFilterMouseState = 64;
84pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_4_UP:
85 InterceptionFilterMouseState = 128;
86pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_5_DOWN:
87 InterceptionFilterMouseState = 256;
88pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_BUTTON_5_UP:
89 InterceptionFilterMouseState = 512;
90pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_WHEEL:
91 InterceptionFilterMouseState = 1024;
92pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_HWHEEL:
93 InterceptionFilterMouseState = 2048;
94pub const InterceptionFilterMouseState_INTERCEPTION_FILTER_MOUSE_MOVE:
95 InterceptionFilterMouseState = 4096;
96pub type InterceptionFilterMouseState = u32;
97pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_MOVE_RELATIVE: InterceptionMouseFlag = 0;
98pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_MOVE_ABSOLUTE: InterceptionMouseFlag = 1;
99pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_VIRTUAL_DESKTOP: InterceptionMouseFlag = 2;
100pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_ATTRIBUTES_CHANGED: InterceptionMouseFlag = 4;
101pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_MOVE_NOCOALESCE: InterceptionMouseFlag = 8;
102pub const InterceptionMouseFlag_INTERCEPTION_MOUSE_TERMSRV_SRC_SHADOW: InterceptionMouseFlag = 256;
103pub type InterceptionMouseFlag = u32;
104#[repr(C)]
105#[derive(Debug, Default, Copy, Clone)]
106pub struct InterceptionMouseStroke {
107 pub state: ::std::os::raw::c_ushort,
108 pub flags: ::std::os::raw::c_ushort,
109 pub rolling: ::std::os::raw::c_short,
110 pub x: ::std::os::raw::c_int,
111 pub y: ::std::os::raw::c_int,
112 pub information: ::std::os::raw::c_uint,
113}
114#[test]
115fn bindgen_test_layout_InterceptionMouseStroke() {
116 assert_eq!(
117 ::std::mem::size_of::<InterceptionMouseStroke>(),
118 20usize,
119 concat!("Size of: ", stringify!(InterceptionMouseStroke))
120 );
121 assert_eq!(
122 ::std::mem::align_of::<InterceptionMouseStroke>(),
123 4usize,
124 concat!("Alignment of ", stringify!(InterceptionMouseStroke))
125 );
126 assert_eq!(
127 unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).state as *const _ as usize },
128 0usize,
129 concat!(
130 "Offset of field: ",
131 stringify!(InterceptionMouseStroke),
132 "::",
133 stringify!(state)
134 )
135 );
136 assert_eq!(
137 unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).flags as *const _ as usize },
138 2usize,
139 concat!(
140 "Offset of field: ",
141 stringify!(InterceptionMouseStroke),
142 "::",
143 stringify!(flags)
144 )
145 );
146 assert_eq!(
147 unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).rolling as *const _ as usize },
148 4usize,
149 concat!(
150 "Offset of field: ",
151 stringify!(InterceptionMouseStroke),
152 "::",
153 stringify!(rolling)
154 )
155 );
156 assert_eq!(
157 unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).x as *const _ as usize },
158 8usize,
159 concat!(
160 "Offset of field: ",
161 stringify!(InterceptionMouseStroke),
162 "::",
163 stringify!(x)
164 )
165 );
166 assert_eq!(
167 unsafe { &(*(::std::ptr::null::<InterceptionMouseStroke>())).y as *const _ as usize },
168 12usize,
169 concat!(
170 "Offset of field: ",
171 stringify!(InterceptionMouseStroke),
172 "::",
173 stringify!(y)
174 )
175 );
176 assert_eq!(
177 unsafe {
178 &(*(::std::ptr::null::<InterceptionMouseStroke>())).information as *const _ as usize
179 },
180 16usize,
181 concat!(
182 "Offset of field: ",
183 stringify!(InterceptionMouseStroke),
184 "::",
185 stringify!(information)
186 )
187 );
188}
189#[repr(C)]
190#[derive(Debug, Default, Copy, Clone)]
191pub struct InterceptionKeyStroke {
192 pub code: ::std::os::raw::c_ushort,
193 pub state: ::std::os::raw::c_ushort,
194 pub information: ::std::os::raw::c_uint,
195}
196#[test]
197fn bindgen_test_layout_InterceptionKeyStroke() {
198 assert_eq!(
199 ::std::mem::size_of::<InterceptionKeyStroke>(),
200 8usize,
201 concat!("Size of: ", stringify!(InterceptionKeyStroke))
202 );
203 assert_eq!(
204 ::std::mem::align_of::<InterceptionKeyStroke>(),
205 4usize,
206 concat!("Alignment of ", stringify!(InterceptionKeyStroke))
207 );
208 assert_eq!(
209 unsafe { &(*(::std::ptr::null::<InterceptionKeyStroke>())).code as *const _ as usize },
210 0usize,
211 concat!(
212 "Offset of field: ",
213 stringify!(InterceptionKeyStroke),
214 "::",
215 stringify!(code)
216 )
217 );
218 assert_eq!(
219 unsafe { &(*(::std::ptr::null::<InterceptionKeyStroke>())).state as *const _ as usize },
220 2usize,
221 concat!(
222 "Offset of field: ",
223 stringify!(InterceptionKeyStroke),
224 "::",
225 stringify!(state)
226 )
227 );
228 assert_eq!(
229 unsafe {
230 &(*(::std::ptr::null::<InterceptionKeyStroke>())).information as *const _ as usize
231 },
232 4usize,
233 concat!(
234 "Offset of field: ",
235 stringify!(InterceptionKeyStroke),
236 "::",
237 stringify!(information)
238 )
239 );
240}
241pub type InterceptionStroke = [::std::os::raw::c_char; 20usize];
242extern "C" {
243 pub fn interception_create_context() -> InterceptionContext;
244}
245extern "C" {
246 pub fn interception_destroy_context(context: InterceptionContext);
247}
248extern "C" {
249 pub fn interception_get_precedence(
250 context: InterceptionContext,
251 device: InterceptionDevice,
252 ) -> InterceptionPrecedence;
253}
254extern "C" {
255 pub fn interception_set_precedence(
256 context: InterceptionContext,
257 device: InterceptionDevice,
258 precedence: InterceptionPrecedence,
259 );
260}
261extern "C" {
262 pub fn interception_get_filter(
263 context: InterceptionContext,
264 device: InterceptionDevice,
265 ) -> InterceptionFilter;
266}
267extern "C" {
268 pub fn interception_set_filter(
269 context: InterceptionContext,
270 predicate: InterceptionPredicate,
271 filter: InterceptionFilter,
272 );
273}
274extern "C" {
275 pub fn interception_wait(context: InterceptionContext) -> InterceptionDevice;
276}
277extern "C" {
278 pub fn interception_wait_with_timeout(
279 context: InterceptionContext,
280 milliseconds: ::std::os::raw::c_ulong,
281 ) -> InterceptionDevice;
282}
283extern "C" {
284 pub fn interception_send(
285 context: InterceptionContext,
286 device: InterceptionDevice,
287 stroke: *const InterceptionStroke,
288 nstroke: ::std::os::raw::c_uint,
289 ) -> ::std::os::raw::c_int;
290}
291extern "C" {
292 pub fn interception_receive(
293 context: InterceptionContext,
294 device: InterceptionDevice,
295 stroke: *mut InterceptionStroke,
296 nstroke: ::std::os::raw::c_uint,
297 ) -> ::std::os::raw::c_int;
298}
299extern "C" {
300 pub fn interception_get_hardware_id(
301 context: InterceptionContext,
302 device: InterceptionDevice,
303 hardware_id_buffer: *mut ::std::os::raw::c_void,
304 buffer_size: ::std::os::raw::c_uint,
305 ) -> ::std::os::raw::c_uint;
306}
307extern "C" {
308 pub fn interception_is_invalid(device: InterceptionDevice) -> ::std::os::raw::c_int;
309}
310extern "C" {
311 pub fn interception_is_keyboard(device: InterceptionDevice) -> ::std::os::raw::c_int;
312}
313extern "C" {
314 pub fn interception_is_mouse(device: InterceptionDevice) -> ::std::os::raw::c_int;
315}