ohos_input_sys/input_manager/
input_manager_ffi.rs

1// automatically generated by rust-bindgen 0.71.1
2
3#![allow(non_upper_case_globals)]
4#![allow(non_camel_case_types)]
5#![allow(non_snake_case)]
6use crate::axis_type::{InputEvent_AxisAction, InputEvent_AxisEventType, InputEvent_AxisType};
7
8#[cfg(feature = "api-12")]
9#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
10impl Input_KeyStateAction {
11    /// Default
12    pub const KEY_DEFAULT: Input_KeyStateAction = Input_KeyStateAction(-1);
13}
14#[cfg(feature = "api-12")]
15#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
16impl Input_KeyStateAction {
17    /// Pressing of a key
18    pub const KEY_PRESSED: Input_KeyStateAction = Input_KeyStateAction(0);
19}
20#[cfg(feature = "api-12")]
21#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
22impl Input_KeyStateAction {
23    /// Release of a key
24    pub const KEY_RELEASED: Input_KeyStateAction = Input_KeyStateAction(1);
25}
26#[cfg(feature = "api-12")]
27#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
28impl Input_KeyStateAction {
29    /// Key switch enabled
30    pub const KEY_SWITCH_ON: Input_KeyStateAction = Input_KeyStateAction(2);
31}
32#[cfg(feature = "api-12")]
33#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
34impl Input_KeyStateAction {
35    /// Key switch disabled
36    pub const KEY_SWITCH_OFF: Input_KeyStateAction = Input_KeyStateAction(3);
37}
38#[repr(transparent)]
39/// Enumerated values of key event action.
40///
41///
42/// Available since API-level: 12
43#[cfg(feature = "api-12")]
44#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
45#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
46pub struct Input_KeyStateAction(pub ::core::ffi::c_int);
47#[cfg(feature = "api-12")]
48#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
49impl Input_KeyEventAction {
50    /// Cancellation of a key action.
51    pub const KEY_ACTION_CANCEL: Input_KeyEventAction = Input_KeyEventAction(0);
52}
53#[cfg(feature = "api-12")]
54#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
55impl Input_KeyEventAction {
56    /// Pressing of a key.
57    pub const KEY_ACTION_DOWN: Input_KeyEventAction = Input_KeyEventAction(1);
58}
59#[cfg(feature = "api-12")]
60#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
61impl Input_KeyEventAction {
62    /// Release of a key.
63    pub const KEY_ACTION_UP: Input_KeyEventAction = Input_KeyEventAction(2);
64}
65#[repr(transparent)]
66/// Enumerates key event types.
67///
68///
69/// Available since API-level: 12
70#[cfg(feature = "api-12")]
71#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
72#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
73pub struct Input_KeyEventAction(pub ::core::ffi::c_uint);
74#[cfg(feature = "api-12")]
75#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
76impl Input_MouseEventAction {
77    /// Cancel.
78    pub const MOUSE_ACTION_CANCEL: Input_MouseEventAction = Input_MouseEventAction(0);
79}
80#[cfg(feature = "api-12")]
81#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
82impl Input_MouseEventAction {
83    /// Moving of the mouse pointer.
84    pub const MOUSE_ACTION_MOVE: Input_MouseEventAction = Input_MouseEventAction(1);
85}
86#[cfg(feature = "api-12")]
87#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
88impl Input_MouseEventAction {
89    /// Pressing down of the mouse.
90    pub const MOUSE_ACTION_BUTTON_DOWN: Input_MouseEventAction = Input_MouseEventAction(2);
91}
92#[cfg(feature = "api-12")]
93#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
94impl Input_MouseEventAction {
95    /// Lifting of the mouse button.
96    pub const MOUSE_ACTION_BUTTON_UP: Input_MouseEventAction = Input_MouseEventAction(3);
97}
98#[cfg(feature = "api-12")]
99#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
100impl Input_MouseEventAction {
101    /// Beginning of the mouse axis event
102    pub const MOUSE_ACTION_AXIS_BEGIN: Input_MouseEventAction = Input_MouseEventAction(4);
103}
104#[cfg(feature = "api-12")]
105#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
106impl Input_MouseEventAction {
107    /// Updating of the mouse axis event
108    pub const MOUSE_ACTION_AXIS_UPDATE: Input_MouseEventAction = Input_MouseEventAction(5);
109}
110#[cfg(feature = "api-12")]
111#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
112impl Input_MouseEventAction {
113    /// End of the mouse axis event
114    pub const MOUSE_ACTION_AXIS_END: Input_MouseEventAction = Input_MouseEventAction(6);
115}
116#[repr(transparent)]
117/// Enumerated values of mouse event action.
118///
119///
120/// Available since API-level: 12
121#[cfg(feature = "api-12")]
122#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
123#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
124pub struct Input_MouseEventAction(pub ::core::ffi::c_uint);
125#[cfg(feature = "api-12")]
126#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
127impl InputEvent_MouseAxis {
128    /// Vertical scroll axis
129    pub const MOUSE_AXIS_SCROLL_VERTICAL: InputEvent_MouseAxis = InputEvent_MouseAxis(0);
130}
131#[cfg(feature = "api-12")]
132#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
133impl InputEvent_MouseAxis {
134    /// Horizontal scroll axis
135    pub const MOUSE_AXIS_SCROLL_HORIZONTAL: InputEvent_MouseAxis = InputEvent_MouseAxis(1);
136}
137#[repr(transparent)]
138/// Mouse axis types.
139///
140///
141/// Available since API-level: 12
142#[cfg(feature = "api-12")]
143#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
144#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
145pub struct InputEvent_MouseAxis(pub ::core::ffi::c_uint);
146#[cfg(feature = "api-12")]
147#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
148impl Input_MouseEventButton {
149    /// Invalid button
150    pub const MOUSE_BUTTON_NONE: Input_MouseEventButton = Input_MouseEventButton(-1);
151}
152#[cfg(feature = "api-12")]
153#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
154impl Input_MouseEventButton {
155    /// Left button on the mouse.
156    pub const MOUSE_BUTTON_LEFT: Input_MouseEventButton = Input_MouseEventButton(0);
157}
158#[cfg(feature = "api-12")]
159#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
160impl Input_MouseEventButton {
161    /// Middle button on the mouse.
162    pub const MOUSE_BUTTON_MIDDLE: Input_MouseEventButton = Input_MouseEventButton(1);
163}
164#[cfg(feature = "api-12")]
165#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
166impl Input_MouseEventButton {
167    /// Right button on the mouse.
168    pub const MOUSE_BUTTON_RIGHT: Input_MouseEventButton = Input_MouseEventButton(2);
169}
170#[cfg(feature = "api-12")]
171#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
172impl Input_MouseEventButton {
173    /// Forward button on the mouse.
174    pub const MOUSE_BUTTON_FORWARD: Input_MouseEventButton = Input_MouseEventButton(3);
175}
176#[cfg(feature = "api-12")]
177#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
178impl Input_MouseEventButton {
179    /// Back button on the mouse.
180    pub const MOUSE_BUTTON_BACK: Input_MouseEventButton = Input_MouseEventButton(4);
181}
182#[repr(transparent)]
183/// Enumerated values of mouse event button.
184///
185///
186/// Available since API-level: 12
187#[cfg(feature = "api-12")]
188#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
189#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
190pub struct Input_MouseEventButton(pub ::core::ffi::c_int);
191#[cfg(feature = "api-12")]
192#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
193impl Input_TouchEventAction {
194    /// Touch cancelled.
195    pub const TOUCH_ACTION_CANCEL: Input_TouchEventAction = Input_TouchEventAction(0);
196}
197#[cfg(feature = "api-12")]
198#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
199impl Input_TouchEventAction {
200    /// Touch pressed.
201    pub const TOUCH_ACTION_DOWN: Input_TouchEventAction = Input_TouchEventAction(1);
202}
203#[cfg(feature = "api-12")]
204#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
205impl Input_TouchEventAction {
206    /// Touch moved.
207    pub const TOUCH_ACTION_MOVE: Input_TouchEventAction = Input_TouchEventAction(2);
208}
209#[cfg(feature = "api-12")]
210#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
211impl Input_TouchEventAction {
212    /// Touch lifted.
213    pub const TOUCH_ACTION_UP: Input_TouchEventAction = Input_TouchEventAction(3);
214}
215#[repr(transparent)]
216/// Enumerated values of touch event action.
217///
218///
219/// Available since API-level: 12
220#[cfg(feature = "api-12")]
221#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
222#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
223pub struct Input_TouchEventAction(pub ::core::ffi::c_uint);
224#[cfg(feature = "api-13")]
225#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
226impl Input_KeyboardType {
227    /// Keyboard without keys
228    pub const KEYBOARD_TYPE_NONE: Input_KeyboardType = Input_KeyboardType(0);
229}
230#[cfg(feature = "api-13")]
231#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
232impl Input_KeyboardType {
233    /// Keyboard with unknown keys
234    pub const KEYBOARD_TYPE_UNKNOWN: Input_KeyboardType = Input_KeyboardType(1);
235}
236#[cfg(feature = "api-13")]
237#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
238impl Input_KeyboardType {
239    /// Full keyboard
240    pub const KEYBOARD_TYPE_ALPHABETIC: Input_KeyboardType = Input_KeyboardType(2);
241}
242#[cfg(feature = "api-13")]
243#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
244impl Input_KeyboardType {
245    /// Digital keyboard
246    pub const KEYBOARD_TYPE_DIGITAL: Input_KeyboardType = Input_KeyboardType(3);
247}
248#[cfg(feature = "api-13")]
249#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
250impl Input_KeyboardType {
251    /// Stylus
252    pub const KEYBOARD_TYPE_STYLUS: Input_KeyboardType = Input_KeyboardType(4);
253}
254#[cfg(feature = "api-13")]
255#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
256impl Input_KeyboardType {
257    /// Remote control
258    pub const KEYBOARD_TYPE_REMOTE_CONTROL: Input_KeyboardType = Input_KeyboardType(5);
259}
260#[repr(transparent)]
261/// Enumerates keyboard types.
262///
263///
264/// Available since API-level: 13
265#[cfg(feature = "api-13")]
266#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
267#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
268pub struct Input_KeyboardType(pub ::core::ffi::c_uint);
269#[cfg(feature = "api-12")]
270#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
271impl InputEvent_SourceType {
272    /// Indicates that the input source generates events similar to mouse cursor movement,
273    /// button press and release, and wheel scrolling.
274    ///
275    ///
276    /// Available since API-level: 12
277    #[cfg(feature = "api-12")]
278    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
279    pub const SOURCE_TYPE_MOUSE: InputEvent_SourceType = InputEvent_SourceType(1);
280}
281#[cfg(feature = "api-12")]
282#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
283impl InputEvent_SourceType {
284    /// Indicates that the input source generates a touchscreen multi-touch event.
285    ///
286    ///
287    /// Available since API-level: 12
288    #[cfg(feature = "api-12")]
289    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
290    pub const SOURCE_TYPE_TOUCHSCREEN: InputEvent_SourceType = InputEvent_SourceType(2);
291}
292#[cfg(feature = "api-12")]
293#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
294impl InputEvent_SourceType {
295    /// Indicates that the input source generates a touchpad multi-touch event.
296    ///
297    ///
298    /// Available since API-level: 12
299    #[cfg(feature = "api-12")]
300    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
301    pub const SOURCE_TYPE_TOUCHPAD: InputEvent_SourceType = InputEvent_SourceType(3);
302}
303#[repr(transparent)]
304/// Enumerates event source types.
305///
306///
307/// Available since API-level: 12
308#[cfg(feature = "api-12")]
309#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
310#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
311pub struct InputEvent_SourceType(pub ::core::ffi::c_uint);
312#[repr(C)]
313pub struct Input_KeyState {
314    _unused: [u8; 0],
315}
316#[repr(C)]
317pub struct Input_KeyEvent {
318    _unused: [u8; 0],
319}
320#[repr(C)]
321pub struct Input_MouseEvent {
322    _unused: [u8; 0],
323}
324#[repr(C)]
325pub struct Input_TouchEvent {
326    _unused: [u8; 0],
327}
328#[repr(C)]
329pub struct Input_AxisEvent {
330    _unused: [u8; 0],
331}
332#[repr(C)]
333pub struct Input_Hotkey {
334    _unused: [u8; 0],
335}
336#[cfg(feature = "api-12")]
337#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
338impl Input_Result {
339    /// Success return code on success
340    pub const INPUT_SUCCESS: Input_Result = Input_Result(0);
341}
342#[cfg(feature = "api-12")]
343#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
344impl Input_Result {
345    /// Permission verification failed
346    pub const INPUT_PERMISSION_DENIED: Input_Result = Input_Result(201);
347}
348#[cfg(feature = "api-12")]
349#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
350impl Input_Result {
351    /// Non-system application
352    pub const INPUT_NOT_SYSTEM_APPLICATION: Input_Result = Input_Result(202);
353}
354#[cfg(feature = "api-12")]
355#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
356impl Input_Result {
357    /// Parameter check failed
358    pub const INPUT_PARAMETER_ERROR: Input_Result = Input_Result(401);
359}
360#[cfg(feature = "api-12")]
361#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
362impl Input_Result {
363    /// Device not support
364    pub const INPUT_DEVICE_NOT_SUPPORTED: Input_Result = Input_Result(801);
365}
366#[cfg(feature = "api-12")]
367#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
368impl Input_Result {
369    /// Service error
370    pub const INPUT_SERVICE_EXCEPTION: Input_Result = Input_Result(3800001);
371}
372#[cfg(feature = "api-12")]
373#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
374impl Input_Result {
375    /// Interceptor repeatedly created for an application
376    pub const INPUT_REPEAT_INTERCEPTOR: Input_Result = Input_Result(4200001);
377}
378#[cfg(feature = "api-12")]
379#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
380impl Input_Result {
381    /// Already occupied by the system
382    ///
383    /// Available since API-level: 14
384    #[cfg(feature = "api-14")]
385    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
386    pub const INPUT_OCCUPIED_BY_SYSTEM: Input_Result = Input_Result(4200002);
387}
388#[cfg(feature = "api-12")]
389#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
390impl Input_Result {
391    /// Already occupied by the other
392    ///
393    /// Available since API-level: 14
394    #[cfg(feature = "api-14")]
395    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
396    pub const INPUT_OCCUPIED_BY_OTHER: Input_Result = Input_Result(4200003);
397}
398#[repr(transparent)]
399/// Enumerates error codes.
400///
401///
402/// Available since API-level: 12
403#[cfg(feature = "api-12")]
404#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
405#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
406pub struct Input_Result(pub ::core::ffi::c_uint);
407/// Callback used to return shortcut key events.
408///
409/// Available since API-level: 14
410#[cfg(feature = "api-14")]
411#[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
412pub type Input_HotkeyCallback =
413    ::core::option::Option<unsafe extern "C" fn(hotkey: *mut Input_Hotkey)>;
414#[repr(C)]
415pub struct Input_DeviceInfo {
416    _unused: [u8; 0],
417}
418/// Defines a lifecycle callback for keyEvent. If the callback is triggered, keyEvent will be destroyed.
419///
420/// # Arguments
421///
422/// * `keyEvent` - Key event object.
423///
424/// Available since API-level: 12
425#[cfg(feature = "api-12")]
426#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
427pub type Input_KeyEventCallback =
428    ::core::option::Option<unsafe extern "C" fn(keyEvent: *const Input_KeyEvent)>;
429/// Defines a lifecycle callback for mouseEvent. If the callback is triggered, mouseEvent will be destroyed.
430///
431/// # Arguments
432///
433/// * `mouseEvent` - Mouse event object.
434///
435/// Available since API-level: 12
436#[cfg(feature = "api-12")]
437#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
438pub type Input_MouseEventCallback =
439    ::core::option::Option<unsafe extern "C" fn(mouseEvent: *const Input_MouseEvent)>;
440/// Defines a lifecycle callback for touchEvent. If the callback is triggered, touchEvent will be destroyed.
441///
442/// # Arguments
443///
444/// * `touchEvent` - Touch event object.
445///
446/// Available since API-level: 12
447#[cfg(feature = "api-12")]
448#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
449pub type Input_TouchEventCallback =
450    ::core::option::Option<unsafe extern "C" fn(touchEvent: *const Input_TouchEvent)>;
451/// Defines a lifecycle callback for axisEvent. If the callback is triggered, axisEvent will be destroyed.
452///
453/// # Arguments
454///
455/// * `axisEvent` - Axis event object.
456///
457/// Available since API-level: 12
458#[cfg(feature = "api-12")]
459#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
460pub type Input_AxisEventCallback =
461    ::core::option::Option<unsafe extern "C" fn(axisEvent: *const Input_AxisEvent)>;
462/// Defines the callback for device addition events.
463/// # Arguments
464///
465/// * `deviceId` - Device ID.
466///
467/// Available since API-level: 13
468#[cfg(feature = "api-13")]
469#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
470pub type Input_DeviceAddedCallback = ::core::option::Option<unsafe extern "C" fn(deviceId: i32)>;
471/// Defines the callback for device removal events.
472/// # Arguments
473///
474/// * `deviceId` - Device ID.
475///
476/// Available since API-level: 13
477#[cfg(feature = "api-13")]
478#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
479pub type Input_DeviceRemovedCallback = ::core::option::Option<unsafe extern "C" fn(deviceId: i32)>;
480/// Defines the structure for the interceptor of event callbacks,
481/// including mouseCallback, touchCallback, and axisCallback.
482///
483/// Available since API-level: 12
484#[cfg(feature = "api-12")]
485#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
486#[repr(C)]
487#[derive(Debug, Copy, Clone)]
488pub struct Input_InterceptorEventCallback {
489    /// Defines a lifecycle callback for **mouseEvent**.
490    pub mouseCallback: Input_MouseEventCallback,
491    /// Defines a lifecycle callback for **touchEvent**.
492    pub touchCallback: Input_TouchEventCallback,
493    /// Defines a lifecycle callback for **axisEvent**.
494    pub axisCallback: Input_AxisEventCallback,
495}
496/// Defines a listener for device insertion and removal events.
497///
498/// Available since API-level: 13
499#[cfg(feature = "api-13")]
500#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
501#[repr(C)]
502#[derive(Debug, Copy, Clone)]
503pub struct Input_DeviceListener {
504    /// Callback for device addition events
505    pub deviceAddedCallback: Input_DeviceAddedCallback,
506    /// Callback for device removal events
507    pub deviceRemovedCallback: Input_DeviceRemovedCallback,
508}
509#[repr(C)]
510pub struct Input_InterceptorOptions {
511    _unused: [u8; 0],
512}
513extern "C" {
514    /// Queries the key state.
515    ///
516    /// # Arguments
517    ///
518    /// * `keyState` - Key state.
519    ///
520    /// # Returns
521    ///
522    /// * OH_Input_GetKeyState function result code.
523    /// [`INPUT_SUCCESS`] get KeyState success.
524    ///
525    /// [`INPUT_PARAMETER_ERROR`] keyCode is invalid.
526    ///
527    ///
528    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
529    ///
530    /// Available since API-level: 12
531    #[cfg(feature = "api-12")]
532    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
533    pub fn OH_Input_GetKeyState(keyState: *mut Input_KeyState) -> Input_Result;
534    /// Creates a key status enumeration object.
535    ///
536    ///
537    /// # Returns
538    ///
539    /// * Returns an [`Input_KeyState`] pointer object if the operation is successful.
540    /// Otherwise, a null pointer is returned. The possible cause is memory allocation failure.
541    ///
542    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
543    ///
544    /// Available since API-level: 12
545    #[cfg(feature = "api-12")]
546    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
547    pub fn OH_Input_CreateKeyState() -> *mut Input_KeyState;
548    /// Destroys a key status enumeration object.
549    ///
550    /// # Arguments
551    ///
552    /// * `keyState` - Key status enumeration object.
553    ///
554    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
555    ///
556    /// Available since API-level: 12
557    #[cfg(feature = "api-12")]
558    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
559    pub fn OH_Input_DestroyKeyState(keyState: *mut *mut Input_KeyState);
560    /// Sets the key value of a key status enumeration object.
561    ///
562    /// # Arguments
563    ///
564    /// * `keyState` - Key status enumeration object.
565    ///
566    /// * `keyCode` - Key value of the key status enumeration object.
567    ///
568    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
569    ///
570    /// Available since API-level: 12
571    #[cfg(feature = "api-12")]
572    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
573    pub fn OH_Input_SetKeyCode(keyState: *mut Input_KeyState, keyCode: i32);
574    /// Obtains the key value of a key status enumeration object.
575    ///
576    /// # Arguments
577    ///
578    /// * `keyState` - Key status enumeration object.
579    ///
580    /// # Returns
581    ///
582    /// * Key value of the key status enumeration object.
583    ///
584    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
585    ///
586    /// Available since API-level: 12
587    #[cfg(feature = "api-12")]
588    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
589    pub fn OH_Input_GetKeyCode(keyState: *const Input_KeyState) -> i32;
590    /// Sets whether the key specific to a key status enumeration object is pressed.
591    ///
592    /// # Arguments
593    ///
594    /// * `keyState` - Key status enumeration object.
595    ///
596    /// * `keyAction` - Whether the key is pressed.
597    ///
598    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
599    ///
600    /// Available since API-level: 12
601    #[cfg(feature = "api-12")]
602    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
603    pub fn OH_Input_SetKeyPressed(keyState: *mut Input_KeyState, keyAction: i32);
604    /// Checks whether the key specific to a key status enumeration object is pressed.
605    ///
606    /// # Arguments
607    ///
608    /// * `keyState` - Key status enumeration object.
609    ///
610    /// # Returns
611    ///
612    /// * Key pressing status of the key status enumeration object.
613    ///
614    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
615    ///
616    /// Available since API-level: 12
617    #[cfg(feature = "api-12")]
618    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
619    pub fn OH_Input_GetKeyPressed(keyState: *const Input_KeyState) -> i32;
620    /// Sets the key switch of the key status enumeration object.
621    ///
622    /// # Arguments
623    ///
624    /// * `keyState` - Key status enumeration object.
625    ///
626    /// * `keySwitch` - Key switch of the key status enumeration object.
627    ///
628    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
629    ///
630    /// Available since API-level: 12
631    #[cfg(feature = "api-12")]
632    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
633    pub fn OH_Input_SetKeySwitch(keyState: *mut Input_KeyState, keySwitch: i32);
634    /// Obtains the key switch of the key status enumeration object.
635    ///
636    /// # Arguments
637    ///
638    /// * `keyState` - Key status enumeration object.
639    ///
640    /// # Returns
641    ///
642    /// * Key switch of the key status enumeration object.
643    ///
644    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
645    ///
646    /// Available since API-level: 12
647    #[cfg(feature = "api-12")]
648    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
649    pub fn OH_Input_GetKeySwitch(keyState: *const Input_KeyState) -> i32;
650    /// Inject system keys.
651    ///
652    /// # Arguments
653    ///
654    /// * `keyEvent` - - the key event to be injected.
655    ///
656    /// # Returns
657    ///
658    /// * OH_Input_InjectKeyEvent function result code.
659    /// [`INPUT_SUCCESS`] inject keyEvent success.
660    ///
661    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
662    ///
663    /// [`INPUT_PARAMETER_ERROR`] keyCode is less 0, can not process.
664    ///
665    ///
666    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
667    ///
668    /// Available since API-level: 12
669    #[cfg(feature = "api-12")]
670    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
671    pub fn OH_Input_InjectKeyEvent(keyEvent: *const Input_KeyEvent) -> i32;
672    /// Creates a key event object.
673    ///
674    ///
675    /// # Returns
676    ///
677    /// * Returns an [`Input_KeyEvent`] pointer object if the operation is successful.
678    /// Otherwise, a null pointer is returned. The possible cause is memory allocation failure.
679    ///
680    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
681    ///
682    /// Available since API-level: 12
683    #[cfg(feature = "api-12")]
684    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
685    pub fn OH_Input_CreateKeyEvent() -> *mut Input_KeyEvent;
686    /// Destroys a key event object.
687    ///
688    /// # Arguments
689    ///
690    /// * `keyEvent` - Key event object.
691    ///
692    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
693    ///
694    /// Available since API-level: 12
695    #[cfg(feature = "api-12")]
696    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
697    pub fn OH_Input_DestroyKeyEvent(keyEvent: *mut *mut Input_KeyEvent);
698    /// Sets the key event type.
699    ///
700    /// # Arguments
701    ///
702    /// * `keyEvent` - Key event object.
703    ///
704    /// * `action` - Key event type.
705    ///
706    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
707    ///
708    /// Available since API-level: 12
709    #[cfg(feature = "api-12")]
710    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
711    pub fn OH_Input_SetKeyEventAction(keyEvent: *mut Input_KeyEvent, action: i32);
712    /// Obtains the key event type.
713    ///
714    /// # Arguments
715    ///
716    /// * `keyEvent` - Key event object.
717    ///
718    /// # Returns
719    ///
720    /// * Key event type.
721    ///
722    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
723    ///
724    /// Available since API-level: 12
725    #[cfg(feature = "api-12")]
726    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
727    pub fn OH_Input_GetKeyEventAction(keyEvent: *const Input_KeyEvent) -> i32;
728    /// Sets the key value for a key event.
729    ///
730    /// # Arguments
731    ///
732    /// * `keyEvent` - Key event object.
733    ///
734    /// * `keyCode` - keyCode Key code.
735    ///
736    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
737    ///
738    /// Available since API-level: 12
739    #[cfg(feature = "api-12")]
740    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
741    pub fn OH_Input_SetKeyEventKeyCode(keyEvent: *mut Input_KeyEvent, keyCode: i32);
742    /// Obtains the key value of a key event.
743    ///
744    /// # Arguments
745    ///
746    /// * `keyEvent` - Key event object.
747    ///
748    /// # Returns
749    ///
750    /// * Key code.
751    ///
752    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
753    ///
754    /// Available since API-level: 12
755    #[cfg(feature = "api-12")]
756    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
757    pub fn OH_Input_GetKeyEventKeyCode(keyEvent: *const Input_KeyEvent) -> i32;
758    /// Sets the time when a key event occurs.
759    ///
760    /// # Arguments
761    ///
762    /// * `keyEvent` - Key event object.
763    ///
764    /// * `actionTime` - Time when the key event occurs.
765    ///
766    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
767    ///
768    /// Available since API-level: 12
769    #[cfg(feature = "api-12")]
770    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
771    pub fn OH_Input_SetKeyEventActionTime(keyEvent: *mut Input_KeyEvent, actionTime: i64);
772    /// Obtains the time when a key event occurs.
773    ///
774    /// # Arguments
775    ///
776    /// * `keyEvent` - Key event object.
777    ///
778    /// # Returns
779    ///
780    /// * Returns the time when the key event occurs.
781    ///
782    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
783    ///
784    /// Available since API-level: 12
785    #[cfg(feature = "api-12")]
786    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
787    pub fn OH_Input_GetKeyEventActionTime(keyEvent: *const Input_KeyEvent) -> i64;
788    /// Inject mouse event.
789    ///
790    /// # Arguments
791    ///
792    /// * `mouseEvent` - - the mouse event to be injected.
793    ///
794    /// # Returns
795    ///
796    /// * OH_Input_InjectMouseEvent function result code.
797    /// [`INPUT_SUCCESS`] inject mouseEvent success.
798    ///
799    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
800    ///
801    /// [`INPUT_PARAMETER_ERROR`] Parameter check failed.
802    ///
803    ///
804    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
805    ///
806    /// Available since API-level: 12
807    #[cfg(feature = "api-12")]
808    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
809    pub fn OH_Input_InjectMouseEvent(mouseEvent: *const Input_MouseEvent) -> i32;
810    /// Creates a mouse event object.
811    ///
812    ///
813    /// # Returns
814    ///
815    /// * Returns an [`Input_MouseEvent`] pointer object if the operation is successful.
816    /// Otherwise, a null pointer is returned. The possible cause is memory allocation failure.
817    ///
818    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
819    ///
820    /// Available since API-level: 12
821    #[cfg(feature = "api-12")]
822    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
823    pub fn OH_Input_CreateMouseEvent() -> *mut Input_MouseEvent;
824    /// Destroys a mouse event object.
825    ///
826    /// # Arguments
827    ///
828    /// * `mouseEvent` - Mouse event object.
829    ///
830    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
831    ///
832    /// Available since API-level: 12
833    #[cfg(feature = "api-12")]
834    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
835    pub fn OH_Input_DestroyMouseEvent(mouseEvent: *mut *mut Input_MouseEvent);
836    /// Sets the action for a mouse event.
837    ///
838    /// # Arguments
839    ///
840    /// * `mouseEvent` - Mouse event object.
841    ///
842    /// * `action` - Mouse action.
843    ///
844    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
845    ///
846    /// Available since API-level: 12
847    #[cfg(feature = "api-12")]
848    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
849    pub fn OH_Input_SetMouseEventAction(mouseEvent: *mut Input_MouseEvent, action: i32);
850    /// Obtains the action of a mouse event.
851    ///
852    /// # Arguments
853    ///
854    /// * `mouseEvent` - Mouse event object.
855    ///
856    /// # Returns
857    ///
858    /// * Mouse action.
859    ///
860    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
861    ///
862    /// Available since API-level: 12
863    #[cfg(feature = "api-12")]
864    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
865    pub fn OH_Input_GetMouseEventAction(mouseEvent: *const Input_MouseEvent) -> i32;
866    /// Sets the X coordinate for a mouse event.
867    ///
868    /// # Arguments
869    ///
870    /// * `mouseEvent` - Mouse event object.
871    ///
872    /// * `displayX` - X coordinate on the display.
873    ///
874    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
875    ///
876    /// Available since API-level: 12
877    #[cfg(feature = "api-12")]
878    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
879    pub fn OH_Input_SetMouseEventDisplayX(mouseEvent: *mut Input_MouseEvent, displayX: i32);
880    /// Obtains the X coordinate of a mouse event.
881    ///
882    /// # Arguments
883    ///
884    /// * `mouseEvent` - Mouse event object.
885    ///
886    /// # Returns
887    ///
888    /// * X coordinate on the display.
889    ///
890    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
891    ///
892    /// Available since API-level: 12
893    #[cfg(feature = "api-12")]
894    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
895    pub fn OH_Input_GetMouseEventDisplayX(mouseEvent: *const Input_MouseEvent) -> i32;
896    /// Sets the Y coordinate for a mouse event.
897    ///
898    /// # Arguments
899    ///
900    /// * `mouseEvent` - Mouse event object.
901    ///
902    /// * `displayY` - Y coordinate on the display.
903    ///
904    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
905    ///
906    /// Available since API-level: 12
907    #[cfg(feature = "api-12")]
908    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
909    pub fn OH_Input_SetMouseEventDisplayY(mouseEvent: *mut Input_MouseEvent, displayY: i32);
910    /// Obtains the Y coordinate of a mouse event.
911    ///
912    /// # Arguments
913    ///
914    /// * `mouseEvent` - Mouse event object.
915    ///
916    /// # Returns
917    ///
918    /// * Y coordinate on the display.
919    ///
920    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
921    ///
922    /// Available since API-level: 12
923    #[cfg(feature = "api-12")]
924    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
925    pub fn OH_Input_GetMouseEventDisplayY(mouseEvent: *const Input_MouseEvent) -> i32;
926    /// Sets the button for a mouse event.
927    ///
928    /// # Arguments
929    ///
930    /// * `mouseEvent` - Mouse event object.
931    ///
932    /// * `button` - Mouse button.
933    ///
934    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
935    ///
936    /// Available since API-level: 12
937    #[cfg(feature = "api-12")]
938    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
939    pub fn OH_Input_SetMouseEventButton(mouseEvent: *mut Input_MouseEvent, button: i32);
940    /// Obtains the button of a mouse event.
941    ///
942    /// # Arguments
943    ///
944    /// * `mouseEvent` - Mouse event object.
945    ///
946    /// # Returns
947    ///
948    /// * Mouse button.
949    ///
950    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
951    ///
952    /// Available since API-level: 12
953    #[cfg(feature = "api-12")]
954    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
955    pub fn OH_Input_GetMouseEventButton(mouseEvent: *const Input_MouseEvent) -> i32;
956    /// Sets the axis type for mouse event.
957    ///
958    /// # Arguments
959    ///
960    /// * `mouseEvent` - Mouse event object.
961    ///
962    /// * `axisType` - Axis type, for example, X axis or Y axis.
963    ///
964    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
965    ///
966    /// Available since API-level: 12
967    #[cfg(feature = "api-12")]
968    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
969    pub fn OH_Input_SetMouseEventAxisType(mouseEvent: *mut Input_MouseEvent, axisType: i32);
970    /// Obtains the axis type of a mouse event.
971    ///
972    /// # Arguments
973    ///
974    /// * `mouseEvent` - Mouse event object.
975    ///
976    /// # Returns
977    ///
978    /// * Axis type.
979    ///
980    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
981    ///
982    /// Available since API-level: 12
983    #[cfg(feature = "api-12")]
984    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
985    pub fn OH_Input_GetMouseEventAxisType(mouseEvent: *const Input_MouseEvent) -> i32;
986    /// Sets the axis value for a mouse axis event.
987    ///
988    /// # Arguments
989    ///
990    /// * `mouseEvent` - Mouse event object.
991    ///
992    /// * `axisValue` - Axis value. A positive value means scrolling forward,
993    /// and a negative number means scrolling backward.
994    ///
995    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
996    ///
997    /// Available since API-level: 12
998    #[cfg(feature = "api-12")]
999    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1000    pub fn OH_Input_SetMouseEventAxisValue(mouseEvent: *mut Input_MouseEvent, axisValue: f32);
1001    /// Obtains the axis value of a mouse event.
1002    ///
1003    /// # Arguments
1004    ///
1005    /// * `mouseEvent` - Mouse event object.
1006    ///
1007    /// # Returns
1008    ///
1009    /// * Axis value.
1010    ///
1011    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1012    ///
1013    /// Available since API-level: 12
1014    #[cfg(feature = "api-12")]
1015    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1016    pub fn OH_Input_GetMouseEventAxisValue(mouseEvent: *const Input_MouseEvent) -> f32;
1017    /// Sets the time when a mouse event occurs.
1018    ///
1019    /// # Arguments
1020    ///
1021    /// * `mouseEvent` - Mouse event object.
1022    ///
1023    /// * `actionTime` - Time when the mouse event occurs.
1024    ///
1025    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1026    ///
1027    /// Available since API-level: 12
1028    #[cfg(feature = "api-12")]
1029    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1030    pub fn OH_Input_SetMouseEventActionTime(mouseEvent: *mut Input_MouseEvent, actionTime: i64);
1031    /// Obtains the time when a mouse event occurs.
1032    ///
1033    /// # Arguments
1034    ///
1035    /// * `mouseEvent` - Mouse event object.
1036    ///
1037    /// # Returns
1038    ///
1039    /// * Returns the time when the mouse event occurs.
1040    ///
1041    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1042    ///
1043    /// Available since API-level: 12
1044    #[cfg(feature = "api-12")]
1045    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1046    pub fn OH_Input_GetMouseEventActionTime(mouseEvent: *const Input_MouseEvent) -> i64;
1047    /// Inject touch event.
1048    ///
1049    /// # Arguments
1050    ///
1051    /// * `touchEvent` - - the touch event to be injected.
1052    ///
1053    /// # Returns
1054    ///
1055    /// * OH_Input_InjectTouchEvent function result code.
1056    /// [`INPUT_SUCCESS`] inject touchEvent success.
1057    ///
1058    /// [`INPUT_PARAMETER_ERROR`] Parameter check failed.
1059    ///
1060    ///
1061    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1062    ///
1063    /// Available since API-level: 12
1064    #[cfg(feature = "api-12")]
1065    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1066    pub fn OH_Input_InjectTouchEvent(touchEvent: *const Input_TouchEvent) -> i32;
1067    /// Creates a touch event object.
1068    ///
1069    ///
1070    /// # Returns
1071    ///
1072    /// * Returns an [`Input_TouchEvent`] pointer object if the operation is successful.
1073    /// Otherwise, a null pointer is returned. The possible cause is memory allocation failure.
1074    ///
1075    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1076    ///
1077    /// Available since API-level: 12
1078    #[cfg(feature = "api-12")]
1079    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1080    pub fn OH_Input_CreateTouchEvent() -> *mut Input_TouchEvent;
1081    /// Destroys a touch event object.
1082    ///
1083    /// # Arguments
1084    ///
1085    /// * `touchEvent` - Touch event object.
1086    ///
1087    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1088    ///
1089    /// Available since API-level: 12
1090    #[cfg(feature = "api-12")]
1091    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1092    pub fn OH_Input_DestroyTouchEvent(touchEvent: *mut *mut Input_TouchEvent);
1093    /// Sets the action for a touch event.
1094    ///
1095    /// # Arguments
1096    ///
1097    /// * `touchEvent` - Touch event object.
1098    ///
1099    /// * `action` - Touch action.
1100    ///
1101    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1102    ///
1103    /// Available since API-level: 12
1104    #[cfg(feature = "api-12")]
1105    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1106    pub fn OH_Input_SetTouchEventAction(touchEvent: *mut Input_TouchEvent, action: i32);
1107    /// Obtains the action of a touch event.
1108    ///
1109    /// # Arguments
1110    ///
1111    /// * `touchEvent` - Touch event object.
1112    ///
1113    /// # Returns
1114    ///
1115    /// * Touch action.
1116    ///
1117    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1118    ///
1119    /// Available since API-level: 12
1120    #[cfg(feature = "api-12")]
1121    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1122    pub fn OH_Input_GetTouchEventAction(touchEvent: *const Input_TouchEvent) -> i32;
1123    /// Sets the finger ID for the touch event.
1124    ///
1125    /// # Arguments
1126    ///
1127    /// * `touchEvent` - Touch event object.
1128    ///
1129    /// * `id` - Finger ID.
1130    ///
1131    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1132    ///
1133    /// Available since API-level: 12
1134    #[cfg(feature = "api-12")]
1135    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1136    pub fn OH_Input_SetTouchEventFingerId(touchEvent: *mut Input_TouchEvent, id: i32);
1137    /// Obtains the finger ID of a touch event.
1138    ///
1139    /// # Arguments
1140    ///
1141    /// * `touchEvent` - Touch event object.
1142    ///
1143    /// # Returns
1144    ///
1145    /// * Finger ID.
1146    ///
1147    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1148    ///
1149    /// Available since API-level: 12
1150    #[cfg(feature = "api-12")]
1151    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1152    pub fn OH_Input_GetTouchEventFingerId(touchEvent: *const Input_TouchEvent) -> i32;
1153    /// Sets the X coordinate for a touch event.
1154    ///
1155    /// # Arguments
1156    ///
1157    /// * `touchEvent` - Touch event object.
1158    ///
1159    /// * `displayX` - X coordinate.
1160    ///
1161    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1162    ///
1163    /// Available since API-level: 12
1164    #[cfg(feature = "api-12")]
1165    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1166    pub fn OH_Input_SetTouchEventDisplayX(touchEvent: *mut Input_TouchEvent, displayX: i32);
1167    /// Obtains the X coordinate of a touch event.
1168    ///
1169    /// # Arguments
1170    ///
1171    /// * `touchEvent` - Touch event object.
1172    ///
1173    /// # Returns
1174    ///
1175    /// * X coordinate.
1176    ///
1177    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1178    ///
1179    /// Available since API-level: 12
1180    #[cfg(feature = "api-12")]
1181    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1182    pub fn OH_Input_GetTouchEventDisplayX(touchEvent: *const Input_TouchEvent) -> i32;
1183    /// Sets the Y coordinate for a touch event.
1184    ///
1185    /// # Arguments
1186    ///
1187    /// * `touchEvent` - Touch event object.
1188    ///
1189    /// * `displayY` - Y coordinate.
1190    ///
1191    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1192    ///
1193    /// Available since API-level: 12
1194    #[cfg(feature = "api-12")]
1195    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1196    pub fn OH_Input_SetTouchEventDisplayY(touchEvent: *mut Input_TouchEvent, displayY: i32);
1197    /// Obtains the Y coordinate of a touch event.
1198    ///
1199    /// # Arguments
1200    ///
1201    /// * `touchEvent` - Touch event object.
1202    ///
1203    /// # Returns
1204    ///
1205    /// * Y coordinate.
1206    ///
1207    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1208    ///
1209    /// Available since API-level: 12
1210    #[cfg(feature = "api-12")]
1211    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1212    pub fn OH_Input_GetTouchEventDisplayY(touchEvent: *const Input_TouchEvent) -> i32;
1213    /// Sets the time when a touch event occurs.
1214    ///
1215    /// # Arguments
1216    ///
1217    /// * `touchEvent` - Touch event object.
1218    ///
1219    /// * `actionTime` - Time when the touch event occurs.
1220    ///
1221    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1222    ///
1223    /// Available since API-level: 12
1224    #[cfg(feature = "api-12")]
1225    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1226    pub fn OH_Input_SetTouchEventActionTime(touchEvent: *mut Input_TouchEvent, actionTime: i64);
1227    /// Obtains the time when a touch event occurs.
1228    ///
1229    /// # Arguments
1230    ///
1231    /// * `touchEvent` - touch event object.
1232    ///
1233    /// # Returns
1234    ///
1235    /// * Returns the time when the touch event occurs.
1236    ///
1237    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1238    ///
1239    /// Available since API-level: 12
1240    #[cfg(feature = "api-12")]
1241    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1242    pub fn OH_Input_GetTouchEventActionTime(touchEvent: *const Input_TouchEvent) -> i64;
1243    /// Cancels event injection and revokes authorization.
1244    ///
1245    ///
1246    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1247    ///
1248    /// Available since API-level: 12
1249    #[cfg(feature = "api-12")]
1250    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1251    pub fn OH_Input_CancelInjection();
1252    /// Creates an axis event object.
1253    ///
1254    ///
1255    /// # Returns
1256    ///
1257    /// * If the operation is successful, a [`Input_AxisEvent`] object is returned.
1258    /// If the operation fails, null is returned.
1259    ///
1260    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1261    ///
1262    /// Available since API-level: 12
1263    #[cfg(feature = "api-12")]
1264    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1265    pub fn OH_Input_CreateAxisEvent() -> *mut Input_AxisEvent;
1266    /// Destroys an axis event object.
1267    ///
1268    /// # Arguments
1269    ///
1270    /// * `axisEvent` - Pointer to the axis event object.
1271    ///
1272    /// # Returns
1273    ///
1274    /// * OH_Input_DestroyAxisEvent function result code.
1275    /// [`INPUT_SUCCESS`] Destroys axisEvent success.
1276    ///
1277    /// [`INPUT_PARAMETER_ERROR`]The axisEvent is NULL or the *axisEvent is NULL.
1278    ///
1279    ///
1280    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1281    ///
1282    /// Available since API-level: 12
1283    #[cfg(feature = "api-12")]
1284    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1285    pub fn OH_Input_DestroyAxisEvent(axisEvent: *mut *mut Input_AxisEvent) -> Input_Result;
1286    /// Sets the axis event action.
1287    ///
1288    /// # Arguments
1289    ///
1290    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1291    ///
1292    /// * `action` - Axis event action. The values are defined in [`InputEvent_AxisAction`].
1293    ///
1294    /// # Returns
1295    ///
1296    /// * OH_Input_SetAxisEventAction function result code.
1297    /// [`INPUT_SUCCESS`] Sets the axis event action success.
1298    ///
1299    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1300    ///
1301    ///
1302    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1303    ///
1304    /// Available since API-level: 12
1305    #[cfg(feature = "api-12")]
1306    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1307    pub fn OH_Input_SetAxisEventAction(
1308        axisEvent: *mut Input_AxisEvent,
1309        action: InputEvent_AxisAction,
1310    ) -> Input_Result;
1311    /// Obtains the axis event action.
1312    ///
1313    /// # Arguments
1314    ///
1315    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1316    ///
1317    /// * `action` - Axis event action. The values are defined in [`InputEvent_AxisAction`].
1318    ///
1319    /// # Returns
1320    ///
1321    /// * OH_Input_GetAxisEventAction function result code.
1322    /// [`INPUT_SUCCESS`] Obtains the axis event action success.
1323    ///
1324    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the action is NULL.
1325    ///
1326    ///
1327    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1328    ///
1329    /// Available since API-level: 12
1330    #[cfg(feature = "api-12")]
1331    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1332    pub fn OH_Input_GetAxisEventAction(
1333        axisEvent: *const Input_AxisEvent,
1334        action: *mut InputEvent_AxisAction,
1335    ) -> Input_Result;
1336    /// Sets the X coordinate of an axis event.
1337    ///
1338    /// # Arguments
1339    ///
1340    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1341    ///
1342    /// * `displayX` - X coordinate of the axis event.
1343    ///
1344    /// # Returns
1345    ///
1346    /// * OH_Input_SetAxisEventDisplayX function result code.
1347    /// [`INPUT_SUCCESS`] Sets the X coordinate of the axis event success.
1348    ///
1349    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1350    ///
1351    ///
1352    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1353    ///
1354    /// Available since API-level: 12
1355    #[cfg(feature = "api-12")]
1356    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1357    pub fn OH_Input_SetAxisEventDisplayX(
1358        axisEvent: *mut Input_AxisEvent,
1359        displayX: f32,
1360    ) -> Input_Result;
1361    /// Obtains the X coordinate of an axis event.
1362    ///
1363    /// # Arguments
1364    ///
1365    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1366    ///
1367    /// * `displayX` - X coordinate of the axis event.
1368    ///
1369    /// # Returns
1370    ///
1371    /// * OH_Input_GetAxisEventDisplayX function result code.
1372    /// [`INPUT_SUCCESS`] Obtains the X coordinate of the axis event success.
1373    ///
1374    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the displayX is NULL.
1375    ///
1376    ///
1377    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1378    ///
1379    /// Available since API-level: 12
1380    #[cfg(feature = "api-12")]
1381    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1382    pub fn OH_Input_GetAxisEventDisplayX(
1383        axisEvent: *const Input_AxisEvent,
1384        displayX: *mut f32,
1385    ) -> Input_Result;
1386    /// Sets the Y coordinate of an axis event.
1387    ///
1388    /// # Arguments
1389    ///
1390    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1391    ///
1392    /// * `displayY` - Y coordinate of the axis event.
1393    ///
1394    /// # Returns
1395    ///
1396    /// * OH_Input_SetAxisEventDisplayY function result code.
1397    /// [`INPUT_SUCCESS`] Sets the Y coordinate of the axis event success.
1398    ///
1399    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1400    ///
1401    ///
1402    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1403    ///
1404    /// Available since API-level: 12
1405    #[cfg(feature = "api-12")]
1406    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1407    pub fn OH_Input_SetAxisEventDisplayY(
1408        axisEvent: *mut Input_AxisEvent,
1409        displayY: f32,
1410    ) -> Input_Result;
1411    /// Obtains the Y coordinate of an axis event.
1412    ///
1413    /// # Arguments
1414    ///
1415    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1416    ///
1417    /// * `displayY` - Y coordinate of the axis event.
1418    ///
1419    /// # Returns
1420    ///
1421    /// * OH_Input_GetAxisEventDisplayY function result code.
1422    /// [`INPUT_SUCCESS`] Obtains the Y coordinate of the axis event success.
1423    ///
1424    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the displayY is NULL.
1425    ///
1426    ///
1427    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1428    ///
1429    /// Available since API-level: 12
1430    #[cfg(feature = "api-12")]
1431    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1432    pub fn OH_Input_GetAxisEventDisplayY(
1433        axisEvent: *const Input_AxisEvent,
1434        displayY: *mut f32,
1435    ) -> Input_Result;
1436    /// Sets the axis value of the axis type specified by the axis event.
1437    ///
1438    /// # Arguments
1439    ///
1440    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1441    ///
1442    /// * `axisType` - Axis type. The values are defined in [`InputEvent_AxisType`].
1443    ///
1444    /// * `axisValue` - Axis value.
1445    ///
1446    /// # Returns
1447    ///
1448    /// * OH_Input_SetAxisEventAxisValue function result code.
1449    /// [`INPUT_SUCCESS`] Sets the axis value of the axis event success.
1450    ///
1451    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1452    ///
1453    ///
1454    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1455    ///
1456    /// Available since API-level: 12
1457    #[cfg(feature = "api-12")]
1458    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1459    pub fn OH_Input_SetAxisEventAxisValue(
1460        axisEvent: *mut Input_AxisEvent,
1461        axisType: InputEvent_AxisType,
1462        axisValue: f64,
1463    ) -> Input_Result;
1464    /// Obtains the axis value for the specified axis type of the axis event.
1465    ///
1466    /// # Arguments
1467    ///
1468    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1469    ///
1470    /// * `axisType` - Axis type. The values are defined in [`InputEvent_AxisType`].
1471    ///
1472    /// * `axisValue` - Axis value.
1473    ///
1474    /// # Returns
1475    ///
1476    /// * OH_Input_GetAxisEventAxisValue function result code.
1477    /// [`INPUT_SUCCESS`] Obtains the axis value of the axis event success.
1478    ///
1479    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the axisValue is NULL,
1480    /// or the axisType not found in the axisEvent.
1481    ///
1482    ///
1483    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1484    ///
1485    /// Available since API-level: 12
1486    #[cfg(feature = "api-12")]
1487    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1488    pub fn OH_Input_GetAxisEventAxisValue(
1489        axisEvent: *const Input_AxisEvent,
1490        axisType: InputEvent_AxisType,
1491        axisValue: *mut f64,
1492    ) -> Input_Result;
1493    /// Sets the time when an axis event occurs.
1494    ///
1495    /// # Arguments
1496    ///
1497    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1498    ///
1499    /// * `actionTime` - Time when an axis event occurs.
1500    ///
1501    /// # Returns
1502    ///
1503    /// * OH_Input_SetAxisEventActionTime function result code.
1504    /// [`INPUT_SUCCESS`] Sets the time when an axis event occurs success.
1505    ///
1506    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1507    ///
1508    ///
1509    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1510    ///
1511    /// Available since API-level: 12
1512    #[cfg(feature = "api-12")]
1513    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1514    pub fn OH_Input_SetAxisEventActionTime(
1515        axisEvent: *mut Input_AxisEvent,
1516        actionTime: i64,
1517    ) -> Input_Result;
1518    /// Obtains the time when an axis event occurs.
1519    ///
1520    /// # Arguments
1521    ///
1522    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1523    ///
1524    /// * `actionTime` - Time when an axis event occurs.
1525    ///
1526    /// # Returns
1527    ///
1528    /// * OH_Input_GetAxisEventActionTime function result code.
1529    /// [`INPUT_SUCCESS`] Obtains the time when an axis event occurs success.
1530    ///
1531    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the actionTime is NULL.
1532    ///
1533    ///
1534    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1535    ///
1536    /// Available since API-level: 12
1537    #[cfg(feature = "api-12")]
1538    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1539    pub fn OH_Input_GetAxisEventActionTime(
1540        axisEvent: *const Input_AxisEvent,
1541        actionTime: *mut i64,
1542    ) -> Input_Result;
1543    /// Sets the axis event type.
1544    ///
1545    /// # Arguments
1546    ///
1547    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1548    ///
1549    /// * `axisEventType` - Axis event type. The values are defined in [`InputEvent_AxisEventType`].
1550    ///
1551    /// # Returns
1552    ///
1553    /// * OH_Input_SetAxisEventType function result code.
1554    /// [`INPUT_SUCCESS`] Sets the axis event type success.
1555    ///
1556    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1557    ///
1558    ///
1559    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1560    ///
1561    /// Available since API-level: 12
1562    #[cfg(feature = "api-12")]
1563    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1564    pub fn OH_Input_SetAxisEventType(
1565        axisEvent: *mut Input_AxisEvent,
1566        axisEventType: InputEvent_AxisEventType,
1567    ) -> Input_Result;
1568    /// Obtains the axis event type.
1569    ///
1570    /// # Arguments
1571    ///
1572    /// * `axisEvent` - Axis event object.
1573    ///
1574    /// * `axisEventType` - Axis event type. The values are defined in [`InputEvent_AxisEventType`].
1575    ///
1576    /// # Returns
1577    ///
1578    /// * OH_Input_GetAxisEventType function result code.
1579    /// [`INPUT_SUCCESS`] Obtains the axis event type success.
1580    ///
1581    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the axisEventType is NULL.
1582    ///
1583    ///
1584    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1585    ///
1586    /// Available since API-level: 12
1587    #[cfg(feature = "api-12")]
1588    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1589    pub fn OH_Input_GetAxisEventType(
1590        axisEvent: *const Input_AxisEvent,
1591        axisEventType: *mut InputEvent_AxisEventType,
1592    ) -> Input_Result;
1593    /// Sets the axis event source type.
1594    ///
1595    /// # Arguments
1596    ///
1597    /// * `axisEvent` - Axis event object.
1598    ///
1599    /// * `sourceType` - Axis event source type. The values are defined in [`InputEvent_SourceType`].
1600    ///
1601    /// # Returns
1602    ///
1603    /// * OH_Input_SetAxisEventSourceType function result code.
1604    /// [`INPUT_SUCCESS`] Sets the axis event source type success.
1605    ///
1606    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1607    ///
1608    ///
1609    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1610    ///
1611    /// Available since API-level: 12
1612    #[cfg(feature = "api-12")]
1613    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1614    pub fn OH_Input_SetAxisEventSourceType(
1615        axisEvent: *mut Input_AxisEvent,
1616        sourceType: InputEvent_SourceType,
1617    ) -> Input_Result;
1618    /// Obtains the axis event source type.
1619    ///
1620    /// # Arguments
1621    ///
1622    /// * `axisEvent` - Axis event object.
1623    ///
1624    /// * `sourceType` - Axis event source type. The values are defined in [`InputEvent_SourceType`].
1625    ///
1626    /// # Returns
1627    ///
1628    /// * OH_Input_GetAxisEventSourceType function result code.
1629    /// [`INPUT_SUCCESS`] Obtains the axis event source type success.
1630    ///
1631    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the sourceType is NULL.
1632    ///
1633    ///
1634    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1635    ///
1636    /// Available since API-level: 12
1637    #[cfg(feature = "api-12")]
1638    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1639    pub fn OH_Input_GetAxisEventSourceType(
1640        axisEvent: *const Input_AxisEvent,
1641        sourceType: *mut InputEvent_SourceType,
1642    ) -> Input_Result;
1643    /// Adds a listener of key events.
1644    ///
1645    /// ohos.permission.INPUT_MONITORING
1646    /// # Arguments
1647    ///
1648    /// * `callback` - - Callback used to receive key events.
1649    ///
1650    /// # Returns
1651    ///
1652    /// * OH_Input_AddKeyEventMonitor function result code.
1653    /// [`INPUT_SUCCESS`] Adds a listener of key events success.
1654    ///
1655    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1656    ///
1657    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
1658    ///
1659    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
1660    ///
1661    ///
1662    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1663    ///
1664    /// Available since API-level: 12
1665    #[cfg(feature = "api-12")]
1666    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1667    pub fn OH_Input_AddKeyEventMonitor(callback: Input_KeyEventCallback) -> Input_Result;
1668    /// Adds a listener for mouse events, including mouse click and movement events,
1669    /// but not scroll wheel events. Scroll wheel events are axis events.
1670    ///
1671    /// ohos.permission.INPUT_MONITORING
1672    /// # Arguments
1673    ///
1674    /// * `callback` - - Callback used to receive mouse events.
1675    ///
1676    /// # Returns
1677    ///
1678    /// * OH_Input_AddMouseEventMonitor function result code.
1679    /// [`INPUT_SUCCESS`] Adds a listener of mouse events success.
1680    ///
1681    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1682    ///
1683    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
1684    ///
1685    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
1686    ///
1687    ///
1688    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1689    ///
1690    /// Available since API-level: 12
1691    #[cfg(feature = "api-12")]
1692    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1693    pub fn OH_Input_AddMouseEventMonitor(callback: Input_MouseEventCallback) -> Input_Result;
1694    /// Add a listener for touch events.
1695    ///
1696    /// ohos.permission.INPUT_MONITORING
1697    /// # Arguments
1698    ///
1699    /// * `callback` - - Callback used to receive touch events.
1700    ///
1701    /// # Returns
1702    ///
1703    /// * OH_Input_AddTouchEventMonitor function result code.
1704    /// [`INPUT_SUCCESS`] Adds a listener of touch events success.
1705    ///
1706    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1707    ///
1708    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
1709    ///
1710    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
1711    ///
1712    ///
1713    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1714    ///
1715    /// Available since API-level: 12
1716    #[cfg(feature = "api-12")]
1717    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1718    pub fn OH_Input_AddTouchEventMonitor(callback: Input_TouchEventCallback) -> Input_Result;
1719    /// Adds a listener for all types of axis events.
1720    /// The axis event types are defined in [`InputEvent_AxisEventType`].
1721    ///
1722    /// ohos.permission.INPUT_MONITORING
1723    /// # Arguments
1724    ///
1725    /// * `callback` - - Callback used to receive axis events.
1726    ///
1727    /// # Returns
1728    ///
1729    /// * OH_Input_AddAxisEventMonitorForAll function result code.
1730    /// [`INPUT_SUCCESS`] Adds a listener for all types of axis events success.
1731    ///
1732    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1733    ///
1734    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
1735    ///
1736    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
1737    ///
1738    ///
1739    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1740    ///
1741    /// Available since API-level: 12
1742    #[cfg(feature = "api-12")]
1743    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1744    pub fn OH_Input_AddAxisEventMonitorForAll(callback: Input_AxisEventCallback) -> Input_Result;
1745    /// Adds a listener for the specified type of axis events.
1746    ///
1747    /// ohos.permission.INPUT_MONITORING
1748    /// # Arguments
1749    ///
1750    /// * `axisEventType` - - Axis event type. The values are defined in [`InputEvent_AxisEventType`].
1751    ///
1752    /// * `callback` - - Callback used to receive the specified type of axis events.
1753    ///
1754    /// # Returns
1755    ///
1756    /// * OH_Input_AddAxisEventMonitor function result code.
1757    /// [`INPUT_SUCCESS`] Adds a listener for the specified types of axis events success.
1758    ///
1759    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1760    ///
1761    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
1762    ///
1763    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
1764    ///
1765    ///
1766    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1767    ///
1768    /// Available since API-level: 12
1769    #[cfg(feature = "api-12")]
1770    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1771    pub fn OH_Input_AddAxisEventMonitor(
1772        axisEventType: InputEvent_AxisEventType,
1773        callback: Input_AxisEventCallback,
1774    ) -> Input_Result;
1775    /// Removes a key event listener.
1776    ///
1777    /// ohos.permission.INPUT_MONITORING
1778    /// # Arguments
1779    ///
1780    /// * `callback` - - Callback for the key event listener.
1781    ///
1782    /// # Returns
1783    ///
1784    /// * OH_Input_RemoveKeyEventMonitor function result code.
1785    /// [`INPUT_SUCCESS`] Removes a key event listener success.
1786    ///
1787    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1788    ///
1789    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
1790    ///
1791    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
1792    ///
1793    ///
1794    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1795    ///
1796    /// Available since API-level: 12
1797    #[cfg(feature = "api-12")]
1798    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1799    pub fn OH_Input_RemoveKeyEventMonitor(callback: Input_KeyEventCallback) -> Input_Result;
1800    /// Removes a mouse event listener.
1801    ///
1802    /// ohos.permission.INPUT_MONITORING
1803    /// # Arguments
1804    ///
1805    /// * `callback` - - Callback for the mouse event listener.
1806    ///
1807    /// # Returns
1808    ///
1809    /// * OH_Input_RemoveMouseEventMonitor function result code.
1810    /// [`INPUT_SUCCESS`] Removes a mouse event listener success.
1811    ///
1812    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1813    ///
1814    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
1815    ///
1816    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
1817    ///
1818    ///
1819    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1820    ///
1821    /// Available since API-level: 12
1822    #[cfg(feature = "api-12")]
1823    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1824    pub fn OH_Input_RemoveMouseEventMonitor(callback: Input_MouseEventCallback) -> Input_Result;
1825    /// Removes a touch event listener.
1826    ///
1827    /// ohos.permission.INPUT_MONITORING
1828    /// # Arguments
1829    ///
1830    /// * `callback` - - Callback for the touch event listener.
1831    ///
1832    /// # Returns
1833    ///
1834    /// * OH_Input_RemoveTouchEventMonitor function result code.
1835    /// [`INPUT_SUCCESS`] Removes a touch event listener success.
1836    ///
1837    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1838    ///
1839    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
1840    ///
1841    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
1842    ///
1843    ///
1844    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1845    ///
1846    /// Available since API-level: 12
1847    #[cfg(feature = "api-12")]
1848    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1849    pub fn OH_Input_RemoveTouchEventMonitor(callback: Input_TouchEventCallback) -> Input_Result;
1850    /// Removes the listener for all types of axis events.
1851    ///
1852    /// ohos.permission.INPUT_MONITORING
1853    /// # Arguments
1854    ///
1855    /// * `callback` - - Callback for the listener used to listen for all types of axis events.
1856    ///
1857    /// # Returns
1858    ///
1859    /// * OH_Input_RemoveAxisEventMonitorForAll function result code.
1860    /// [`INPUT_SUCCESS`] Removes the listener for all types of axis events success.
1861    ///
1862    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1863    ///
1864    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
1865    ///
1866    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
1867    ///
1868    ///
1869    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1870    ///
1871    /// Available since API-level: 12
1872    #[cfg(feature = "api-12")]
1873    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1874    pub fn OH_Input_RemoveAxisEventMonitorForAll(callback: Input_AxisEventCallback)
1875        -> Input_Result;
1876    /// Removes the listener for the specified type of axis events.
1877    ///
1878    /// ohos.permission.INPUT_MONITORING
1879    /// # Arguments
1880    ///
1881    /// * `axisEventType` - - Axis event type. The axis event type is defined in [`InputEvent_AxisEventType`].
1882    ///
1883    /// * `callback` - - Callback for the listener used to listen for the specified type of axis events.
1884    ///
1885    /// # Returns
1886    ///
1887    /// * OH_Input_RemoveAxisEventMonitor function result code.
1888    /// [`INPUT_SUCCESS`] Removes the listener for the specified type of axis events success.
1889    ///
1890    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1891    ///
1892    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
1893    ///
1894    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
1895    ///
1896    ///
1897    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1898    ///
1899    /// Available since API-level: 12
1900    #[cfg(feature = "api-12")]
1901    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1902    pub fn OH_Input_RemoveAxisEventMonitor(
1903        axisEventType: InputEvent_AxisEventType,
1904        callback: Input_AxisEventCallback,
1905    ) -> Input_Result;
1906    /// Adds a key event interceptor. If multiple interceptors are added, only the first one takes effect.
1907    ///
1908    /// ohos.permission.INTERCEPT_INPUT_EVENT
1909    /// # Arguments
1910    ///
1911    /// * `callback` - - Callback used to receive key events.
1912    ///
1913    /// * `option` - - Options for event interception. If **null** is passed, the default value is used.
1914    ///
1915    /// # Returns
1916    ///
1917    /// * OH_Input_AddKeyEventInterceptor function result code.
1918    /// [`INPUT_SUCCESS`] Adds a key event interceptor success.
1919    ///
1920    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1921    ///
1922    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
1923    ///
1924    /// [`INPUT_REPEAT_INTERCEPTOR`] Interceptor repeatedly created for an application.
1925    ///
1926    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the interceptor because the service is exception.
1927    ///
1928    ///
1929    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1930    ///
1931    /// Available since API-level: 12
1932    #[cfg(feature = "api-12")]
1933    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1934    pub fn OH_Input_AddKeyEventInterceptor(
1935        callback: Input_KeyEventCallback,
1936        option: *mut Input_InterceptorOptions,
1937    ) -> Input_Result;
1938    /// Adds an interceptor for input events, including mouse, touch, and axis events.
1939    /// If multiple interceptors are added, only the first one takes effect.
1940    ///
1941    /// ohos.permission.INTERCEPT_INPUT_EVENT
1942    /// # Arguments
1943    ///
1944    /// * `callback` - - Pointer to the structure of the callback for the input event interceptor.
1945    /// For details, see [`Input_InterceptorEventCallback`].
1946    ///
1947    /// * `option` - - Options for event interception. If **null** is passed, the default value is used.
1948    ///
1949    /// # Returns
1950    ///
1951    /// * OH_Input_AddInputEventInterceptor function result code.
1952    /// [`INPUT_SUCCESS`] Adds an interceptor for input events success.
1953    ///
1954    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1955    ///
1956    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
1957    ///
1958    /// [`INPUT_REPEAT_INTERCEPTOR`] Interceptor repeatedly created for an application.
1959    ///
1960    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the interceptor because the service is exception.
1961    ///
1962    ///
1963    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1964    ///
1965    /// Available since API-level: 12
1966    #[cfg(feature = "api-12")]
1967    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1968    pub fn OH_Input_AddInputEventInterceptor(
1969        callback: *mut Input_InterceptorEventCallback,
1970        option: *mut Input_InterceptorOptions,
1971    ) -> Input_Result;
1972    /// Removes a key event interceptor.
1973    ///
1974    /// ohos.permission.INTERCEPT_INPUT_EVENT
1975    ///
1976    /// # Returns
1977    ///
1978    /// * OH_Input_RemoveKeyEventInterceptor function result code.
1979    /// [`INPUT_SUCCESS`]Removes a key event interceptor success.
1980    ///
1981    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1982    ///
1983    /// [`INPUT_SERVICE_EXCEPTION`] Failed to remove the interceptor because the service is exception.
1984    ///
1985    ///
1986    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1987    ///
1988    /// Available since API-level: 12
1989    #[cfg(feature = "api-12")]
1990    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1991    pub fn OH_Input_RemoveKeyEventInterceptor() -> Input_Result;
1992    /// Removes an interceptor for input events, including mouse, touch, and axis events.
1993    ///
1994    /// ohos.permission.INTERCEPT_INPUT_EVENT
1995    ///
1996    /// # Returns
1997    ///
1998    /// * OH_Input_RemoveInputEventInterceptor function result code.
1999    /// [`INPUT_SUCCESS`] Removes an interceptor for input events success.
2000    ///
2001    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2002    ///
2003    /// [`INPUT_SERVICE_EXCEPTION`] Failed to remove the interceptor because the service is exception.
2004    ///
2005    ///
2006    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2007    ///
2008    /// Available since API-level: 12
2009    #[cfg(feature = "api-12")]
2010    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2011    pub fn OH_Input_RemoveInputEventInterceptor() -> Input_Result;
2012    /// Obtains the interval since the last system input event.
2013    ///
2014    /// # Arguments
2015    ///
2016    /// * `timeInterval` - Interval, in microseconds.
2017    ///
2018    /// # Returns
2019    ///
2020    /// * OH_Input_GetIntervalSinceLastInput status code, specifically.
2021    /// [`INPUT_SUCCESS`] if the Operation is successful.
2022    ///
2023    /// [`INPUT_SERVICE_EXCEPTION`] Failed to get the interval because the service is exception.
2024    ///
2025    /// [`INPUT_PARAMETER_ERROR`] The timeInterval is NULL.
2026    ///
2027    ///
2028    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2029    ///
2030    /// Available since API-level: 14
2031    #[cfg(feature = "api-14")]
2032    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2033    pub fn OH_Input_GetIntervalSinceLastInput(timeInterval: *mut i64) -> Input_Result;
2034    /// Creates a hot key object.
2035    ///
2036    ///
2037    /// # Returns
2038    ///
2039    /// * Returns an [`Input_Hotkey`] pointer object if the operation is successful. Otherwise, a null pointer is
2040    /// returned. The possible cause is memory allocation failure.
2041    ///
2042    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2043    ///
2044    /// Available since API-level: 14
2045    #[cfg(feature = "api-14")]
2046    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2047    pub fn OH_Input_CreateHotkey() -> *mut Input_Hotkey;
2048    /// Destroys a hot key object.
2049    ///
2050    /// # Arguments
2051    ///
2052    /// * `hotkey` - Hot key object.
2053    ///
2054    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2055    ///
2056    /// Available since API-level: 14
2057    #[cfg(feature = "api-14")]
2058    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2059    pub fn OH_Input_DestroyHotkey(hotkey: *mut *mut Input_Hotkey);
2060    /// Sets a modifier key.
2061    ///
2062    /// # Arguments
2063    ///
2064    /// * `hotkey` - Hotkey key object.
2065    ///
2066    /// * `preKeys` - List of modifier keys.
2067    ///
2068    /// * `size` - Number of modifier keys. One or two modifier keys are supported.
2069    ///
2070    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2071    ///
2072    /// Available since API-level: 14
2073    #[cfg(feature = "api-14")]
2074    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2075    pub fn OH_Input_SetPreKeys(hotkey: *mut Input_Hotkey, preKeys: *mut i32, size: i32);
2076    /// Obtains a modifier key.
2077    ///
2078    /// # Arguments
2079    ///
2080    /// * `hotkey` - Hotkey key object.
2081    ///
2082    /// * `preKeys` - List of modifier keys.
2083    ///
2084    /// * `preKeyCount` - Number of modifier keys.
2085    ///
2086    /// # Returns
2087    ///
2088    /// * OH_Input_GetPreKeys status code, specifically,
2089    /// [`INPUT_SUCCESS`] if the operation is successful;
2090    ///
2091    /// [`INPUT_PARAMETER_ERROR`] The hotkey is NULL or the pressedKeys is NULL or the pressedKeyCount
2092    /// is NULL;
2093    ///
2094    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2095    ///
2096    ///
2097    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2098    ///
2099    /// Available since API-level: 14
2100    #[cfg(feature = "api-14")]
2101    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2102    pub fn OH_Input_GetPreKeys(
2103        hotkey: *const Input_Hotkey,
2104        preKeys: *mut *mut i32,
2105        preKeyCount: *mut i32,
2106    ) -> Input_Result;
2107    /// Sets a modified key.
2108    ///
2109    /// # Arguments
2110    ///
2111    /// * `hotkey` - Hotkey key object.
2112    ///
2113    /// * `finalKey` - Modified key. Only one modified key is supported.
2114    ///
2115    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2116    ///
2117    /// Available since API-level: 14
2118    #[cfg(feature = "api-14")]
2119    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2120    pub fn OH_Input_SetFinalKey(hotkey: *mut Input_Hotkey, finalKey: i32);
2121    /// Obtains a modified key.
2122    ///
2123    /// # Arguments
2124    ///
2125    /// * `hotkey` - Hotkey key object.
2126    ///
2127    /// * `finalKeyCode` - Returns the key value of the decorated key.
2128    ///
2129    /// # Returns
2130    ///
2131    /// * OH_Input_GetfinalKey status code, specifically,
2132    /// [`INPUT_SUCCESS`] if the operation is successful;
2133    ///
2134    /// [`INPUT_PARAMETER_ERROR`] The hotkey is NULL or the finalKeyCode is NULL;
2135    ///
2136    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2137    ///
2138    ///
2139    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2140    ///
2141    /// Available since API-level: 14
2142    #[cfg(feature = "api-14")]
2143    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2144    pub fn OH_Input_GetFinalKey(
2145        hotkey: *const Input_Hotkey,
2146        finalKeyCode: *mut i32,
2147    ) -> Input_Result;
2148    /// Creates an array of [`Input_Hotkey`] instances.
2149    ///
2150    /// # Arguments
2151    ///
2152    /// * `count` - Number of [`Input_Hotkey`] instances to be created. The count must be the same as the number of
2153    /// system shortcut keys.
2154    ///
2155    /// # Returns
2156    ///
2157    /// * Returns a pointer to an array of [`Input_Hotkey`] instances if the operation is successful. If the
2158    /// operation fails, a null pointer is returned. The possible cause is memory allocation failure or count is not equal
2159    /// to the number of system hotkeys.
2160    ///
2161    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2162    ///
2163    /// Available since API-level: 14
2164    #[cfg(feature = "api-14")]
2165    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2166    pub fn OH_Input_CreateAllSystemHotkeys(count: i32) -> *mut *mut Input_Hotkey;
2167    /// Destroys an array of [`Input_Hotkey`] instances and reclaims memory.
2168    ///
2169    /// # Arguments
2170    ///
2171    /// * `hotkeys` - Pointer to an array of [`Input_Hotkey`] instances created by the
2172    /// [`OH_Input_CreateAllSystemHotkeys`] method.
2173    ///
2174    /// * `count` - Count of the array to be destroyed, which must be the same as the number of system shortcut keys.
2175    ///
2176    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2177    ///
2178    /// Available since API-level: 14
2179    #[cfg(feature = "api-14")]
2180    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2181    pub fn OH_Input_DestroyAllSystemHotkeys(hotkeys: *mut *mut Input_Hotkey, count: i32);
2182    /// Obtains all hot keys supported by the system.
2183    ///
2184    /// # Arguments
2185    ///
2186    /// * `hotkey` - Array of [`Input_Hotkey`] instances.
2187    /// When calling this API for the first time, you can pass NULL to obtain the array length.
2188    ///
2189    /// * `count` - Number of hot keys supported by the system.
2190    ///
2191    /// # Returns
2192    ///
2193    /// * OH_Input_GetAllSystemHotkeys status code, specifically,
2194    /// [`INPUT_SUCCESS`] if the operation is successful;
2195    ///
2196    /// [`INPUT_PARAMETER_ERROR`] The hotkey or count is NULL, or the value of count does not match the number
2197    /// of system shortcut keys supported by the system;
2198    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2199    ///
2200    ///
2201    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2202    ///
2203    /// Available since API-level: 14
2204    #[cfg(feature = "api-14")]
2205    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2206    pub fn OH_Input_GetAllSystemHotkeys(
2207        hotkey: *mut *mut Input_Hotkey,
2208        count: *mut i32,
2209    ) -> Input_Result;
2210    /// Specifies whether to report repeated key events.
2211    ///
2212    /// # Arguments
2213    ///
2214    /// * `hotkey` - Shortcut key object.
2215    ///
2216    /// * `isRepeat` - Whether to report repeated key events.
2217    /// The value <b>true</b> means to report repeated key events, and the value <b>false</b> means the opposite.
2218    ///
2219    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2220    ///
2221    /// Available since API-level: 14
2222    #[cfg(feature = "api-14")]
2223    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2224    pub fn OH_Input_SetRepeat(hotkey: *mut Input_Hotkey, isRepeat: bool);
2225    /// Checks whether to report repeated key events.
2226    ///
2227    /// # Arguments
2228    ///
2229    /// * `hotkey` - Shortcut key object.
2230    ///
2231    /// * `isRepeat` - Whether a key event is repeated.
2232    ///
2233    /// # Returns
2234    ///
2235    /// * OH_Input_GetIsRepeat status code, specifically,
2236    /// [`INPUT_SUCCESS`] if the operation is successful;
2237    ///
2238    /// [`INPUT_PARAMETER_ERROR`] otherwise;
2239    ///
2240    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2241    ///
2242    ///
2243    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2244    ///
2245    /// Available since API-level: 14
2246    #[cfg(feature = "api-14")]
2247    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2248    pub fn OH_Input_GetRepeat(hotkey: *const Input_Hotkey, isRepeat: *mut bool) -> Input_Result;
2249    /// Subscribes to shortcut key events.
2250    ///
2251    /// # Arguments
2252    ///
2253    /// * `hotkey` - Shortcut key object.
2254    ///
2255    /// * `callback` - Callback used to return shortcut key events.
2256    ///
2257    /// # Returns
2258    ///
2259    /// * OH_Input_AddHotkeyMonitor status code, specifically,
2260    /// [`INPUT_SUCCESS`] if the operation is successful;
2261    ///
2262    /// [`INPUT_PARAMETER_ERROR`] if hotkey or callback is NULL;
2263    ///
2264    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported;
2265    ///
2266    /// [`INPUT_OCCUPIED_BY_SYSTEM`] The hotkey has been used by the system. You can call the [`GetAllSystemHotkeys`] interface to query all system shortcut keys.
2267    ///
2268    /// [`INPUT_OCCUPIED_BY_OTHER`] The hotkey has been subscribed to by another.
2269    ///
2270    ///
2271    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2272    ///
2273    /// Available since API-level: 14
2274    #[cfg(feature = "api-14")]
2275    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2276    pub fn OH_Input_AddHotkeyMonitor(
2277        hotkey: *const Input_Hotkey,
2278        callback: Input_HotkeyCallback,
2279    ) -> Input_Result;
2280    /// Unsubscribes from shortcut key events.
2281    ///
2282    /// # Arguments
2283    ///
2284    /// * `hotkey` - Shortcut key object.
2285    ///
2286    /// * `callback` - Callback used to return shortcut key events.
2287    ///
2288    /// # Returns
2289    ///
2290    /// * OH_Input_RemoveHotkeyMonitor status code, specifically,
2291    /// [`INPUT_SUCCESS`] if the operation is successful;
2292    ///
2293    /// [`INPUT_PARAMETER_ERROR`] if hotkey or callback is NULL;
2294    ///
2295    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2296    ///
2297    ///
2298    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2299    ///
2300    /// Available since API-level: 14
2301    #[cfg(feature = "api-14")]
2302    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2303    pub fn OH_Input_RemoveHotkeyMonitor(
2304        hotkey: *const Input_Hotkey,
2305        callback: Input_HotkeyCallback,
2306    ) -> Input_Result;
2307    /// Obtains the IDs of all input devices.
2308    ///
2309    /// # Arguments
2310    ///
2311    /// * `deviceIds` - Array of input device IDs.
2312    ///
2313    /// * `inSize` - Size of the array of input device IDs.
2314    ///
2315    /// * `outSize` - Length of the list of input device IDs. The value cannot be greater than the value of inSize.
2316    ///
2317    /// # Returns
2318    ///
2319    /// * OH_Input_GetDeviceIds result code, specifically,
2320    /// [`INPUT_SUCCESS`] if the operation is successful;
2321    /// [`INPUT_PARAMETER_ERROR`] if deviceIds or outSize is a null pointer or inSize is less than 0.
2322    ///
2323    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2324    ///
2325    /// Available since API-level: 13
2326    #[cfg(feature = "api-13")]
2327    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2328    pub fn OH_Input_GetDeviceIds(
2329        deviceIds: *mut i32,
2330        inSize: i32,
2331        outSize: *mut i32,
2332    ) -> Input_Result;
2333    /// Obtains the information about an input device.
2334    ///
2335    /// # Arguments
2336    ///
2337    /// * `deviceId` - Device ID.
2338    ///
2339    /// * `deviceInfo` - Pointer to an [`Input_DeviceInfo`] object.
2340    ///
2341    /// # Returns
2342    ///
2343    /// * OH_Input_GetDevice result code, specifically,
2344    /// [`INPUT_SUCCESS`] if the operation is successful;
2345    /// [`INPUT_PARAMETER_ERROR`] if the deviceInfo is a null pointer or the deviceId is invalid.
2346    /// You can use the [`OH_Input_GetDeviceIds`] interface to query the device IDs supported by the system.
2347    ///
2348    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2349    ///
2350    /// Available since API-level: 13
2351    #[cfg(feature = "api-13")]
2352    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2353    pub fn OH_Input_GetDevice(
2354        deviceId: i32,
2355        deviceInfo: *mut *mut Input_DeviceInfo,
2356    ) -> Input_Result;
2357    /// Creates a deviceInfo object.
2358    ///
2359    ///
2360    /// # Returns
2361    ///
2362    /// * Pointer to an [`Input_DeviceInfo`] object if the operation is successful;
2363    /// a null pointer otherwise (possibly because of a memory allocation failure).
2364    ///
2365    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2366    ///
2367    /// Available since API-level: 13
2368    #[cfg(feature = "api-13")]
2369    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2370    pub fn OH_Input_CreateDeviceInfo() -> *mut Input_DeviceInfo;
2371    /// Destroys a deviceInfo object.
2372    ///
2373    /// # Arguments
2374    ///
2375    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
2376    ///
2377    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2378    ///
2379    /// Available since API-level: 13
2380    #[cfg(feature = "api-13")]
2381    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2382    pub fn OH_Input_DestroyDeviceInfo(deviceInfo: *mut *mut Input_DeviceInfo);
2383    /// Obtains the keyboard type of an input device.
2384    ///
2385    /// # Arguments
2386    ///
2387    /// * `deviceId` - Device ID.
2388    ///
2389    /// * `keyboardType` - Pointer to the keyboard type of the input device.
2390    ///
2391    /// # Returns
2392    ///
2393    /// * OH_Input_GetKeyboardType result code, specifically,
2394    /// [`INPUT_SUCCESS`] if the operation is successful;
2395    /// [`INPUT_PARAMETER_ERROR`] if the device ID is invalid or keyboardType is a null pointer.
2396    ///
2397    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2398    ///
2399    /// Available since API-level: 13
2400    #[cfg(feature = "api-13")]
2401    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2402    pub fn OH_Input_GetKeyboardType(deviceId: i32, keyboardType: *mut i32) -> Input_Result;
2403    /// Obtains the ID of an input device.
2404    ///
2405    /// # Arguments
2406    ///
2407    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
2408    ///
2409    /// * `id` - Pointer to the ID of the input device.
2410    ///
2411    /// # Returns
2412    ///
2413    /// * OH_Input_GetDeviceId result code, specifically,
2414    /// [`INPUT_SUCCESS`] if the operation is successful;
2415    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or id is a null pointer.
2416    ///
2417    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2418    ///
2419    /// Available since API-level: 13
2420    #[cfg(feature = "api-13")]
2421    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2422    pub fn OH_Input_GetDeviceId(deviceInfo: *mut Input_DeviceInfo, id: *mut i32) -> Input_Result;
2423    /// Obtains the name of an input device.
2424    ///
2425    /// # Arguments
2426    ///
2427    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
2428    ///
2429    /// * `name` - Pointer to the name of the input device.
2430    ///
2431    /// # Returns
2432    ///
2433    /// * OH_Input_GetDeviceName result code, specifically,
2434    /// [`INPUT_SUCCESS`] if the operation is successful;
2435    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or name is a null pointer.
2436    ///
2437    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2438    ///
2439    /// Available since API-level: 13
2440    #[cfg(feature = "api-13")]
2441    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2442    pub fn OH_Input_GetDeviceName(
2443        deviceInfo: *mut Input_DeviceInfo,
2444        name: *mut *mut ::core::ffi::c_char,
2445    ) -> Input_Result;
2446    /// Obtains the capabilities of an input device, for example, a touchscreen, touchpad, or keyboard.
2447    ///
2448    /// # Arguments
2449    ///
2450    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
2451    ///
2452    /// * `capabilities` - Pointer to the capabilities of the input device.
2453    ///
2454    /// # Returns
2455    ///
2456    /// * OH_Input_GetCapabilities result code, specifically,
2457    /// [`INPUT_SUCCESS`] if the operation is successful;
2458    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or capabilities is a null pointer.
2459    ///
2460    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2461    ///
2462    /// Available since API-level: 13
2463    #[cfg(feature = "api-13")]
2464    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2465    pub fn OH_Input_GetCapabilities(
2466        deviceInfo: *mut Input_DeviceInfo,
2467        capabilities: *mut i32,
2468    ) -> Input_Result;
2469    /// Obtains the version information of an input device.
2470    ///
2471    /// # Arguments
2472    ///
2473    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
2474    ///
2475    /// * `version` - Pointer to the version information of the input device.
2476    ///
2477    /// # Returns
2478    ///
2479    /// * OH_Input_GetDeviceVersion result code, specifically,
2480    /// [`INPUT_SUCCESS`] if the operation is successful;
2481    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or version is a null pointer.
2482    ///
2483    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2484    ///
2485    /// Available since API-level: 13
2486    #[cfg(feature = "api-13")]
2487    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2488    pub fn OH_Input_GetDeviceVersion(
2489        deviceInfo: *mut Input_DeviceInfo,
2490        version: *mut i32,
2491    ) -> Input_Result;
2492    /// Obtains the product information of an input device.
2493    ///
2494    /// # Arguments
2495    ///
2496    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
2497    ///
2498    /// * `product` - Pointer to the product information of the input device.
2499    ///
2500    /// # Returns
2501    ///
2502    /// * OH_Input_GetDeviceProduct result code, specifically,
2503    /// [`INPUT_SUCCESS`] if the operation is successful;
2504    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or product is a null pointer.
2505    ///
2506    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2507    ///
2508    /// Available since API-level: 13
2509    #[cfg(feature = "api-13")]
2510    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2511    pub fn OH_Input_GetDeviceProduct(
2512        deviceInfo: *mut Input_DeviceInfo,
2513        product: *mut i32,
2514    ) -> Input_Result;
2515    /// Obtains the vendor information of an input device.
2516    ///
2517    /// # Arguments
2518    ///
2519    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
2520    ///
2521    /// * `vendor` - Pointer to the vendor information of the input device.
2522    ///
2523    /// # Returns
2524    ///
2525    /// * OH_Input_GetDeviceVendor result code, specifically,
2526    /// [`INPUT_SUCCESS`] if the operation is successful;
2527    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or vendor is a null pointer.
2528    ///
2529    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2530    ///
2531    /// Available since API-level: 13
2532    #[cfg(feature = "api-13")]
2533    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2534    pub fn OH_Input_GetDeviceVendor(
2535        deviceInfo: *mut Input_DeviceInfo,
2536        vendor: *mut i32,
2537    ) -> Input_Result;
2538    /// Obtains the physical address of an input device.
2539    ///
2540    /// # Arguments
2541    ///
2542    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
2543    ///
2544    /// * `address` - Pointer to the physical address of the input device.
2545    ///
2546    /// # Returns
2547    ///
2548    /// * OH_Input_GetDeviceAddress result code, specifically,
2549    /// [`INPUT_SUCCESS`] if the operation is successful;
2550    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or address is a null pointer.
2551    ///
2552    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2553    ///
2554    /// Available since API-level: 13
2555    #[cfg(feature = "api-13")]
2556    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2557    pub fn OH_Input_GetDeviceAddress(
2558        deviceInfo: *mut Input_DeviceInfo,
2559        address: *mut *mut ::core::ffi::c_char,
2560    ) -> Input_Result;
2561    /// Registers a listener for device hot swap events.
2562    ///
2563    /// # Arguments
2564    ///
2565    /// * `listener` - Pointer to an [`Input_DeviceListener`] object.
2566    ///
2567    ///
2568    /// # Returns
2569    ///
2570    /// * OH_Input_RegisterDeviceListener status code, specifically,
2571    /// [`INPUT_SUCCESS`] if the operation is successful;
2572    ///
2573    /// [`INPUT_PARAMETER_ERROR`] if listener is NULL;
2574    ///
2575    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2576    ///
2577    /// Available since API-level: 13
2578    #[cfg(feature = "api-13")]
2579    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2580    pub fn OH_Input_RegisterDeviceListener(listener: *mut Input_DeviceListener) -> Input_Result;
2581    /// Unregisters the listener for device hot swap events.
2582    ///
2583    /// # Arguments
2584    ///
2585    /// * `listener` - Pointer to the listener for device hot swap events. For details, see [`Input_DeviceListener`].
2586    ///
2587    ///
2588    /// # Returns
2589    ///
2590    /// * OH_Input_UnregisterDeviceListener status code, specifically,
2591    /// [`INPUT_SUCCESS`] if the operation is successful;
2592    ///
2593    /// [`INPUT_PARAMETER_ERROR`] if listener is NULL or no listener is registered;
2594    /// [`INPUT_SERVICE_EXCEPTION`] if the service is abnormal.
2595    ///
2596    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2597    ///
2598    /// Available since API-level: 13
2599    #[cfg(feature = "api-13")]
2600    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2601    pub fn OH_Input_UnregisterDeviceListener(listener: *mut Input_DeviceListener) -> Input_Result;
2602    /// Unregisters the listener for all device hot swap events.
2603    ///
2604    ///
2605    /// # Returns
2606    ///
2607    /// * OH_Input_UnregisterDeviceListener status code, specifically,
2608    /// [`INPUT_SUCCESS`] if the operation is successful;
2609    ///
2610    /// [`INPUT_SERVICE_EXCEPTION`] if the service is abnormal.
2611    ///
2612    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2613    ///
2614    /// Available since API-level: 13
2615    #[cfg(feature = "api-13")]
2616    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2617    pub fn OH_Input_UnregisterDeviceListeners() -> Input_Result;
2618}