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#[cfg(feature = "api-14")]
8use ohos_sys_opaque_types::Input_Hotkey;
9use ohos_sys_opaque_types::{
10    Input_AxisEvent, Input_KeyEvent, Input_KeyState, Input_MouseEvent, Input_TouchEvent,
11};
12
13#[cfg(feature = "api-12")]
14#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
15impl Input_KeyStateAction {
16    /// Default
17    pub const KEY_DEFAULT: Input_KeyStateAction = Input_KeyStateAction(-1);
18    /// Pressing of a key
19    pub const KEY_PRESSED: Input_KeyStateAction = Input_KeyStateAction(0);
20    /// Release of a key
21    pub const KEY_RELEASED: Input_KeyStateAction = Input_KeyStateAction(1);
22    /// Key switch enabled
23    pub const KEY_SWITCH_ON: Input_KeyStateAction = Input_KeyStateAction(2);
24    /// Key switch disabled
25    pub const KEY_SWITCH_OFF: Input_KeyStateAction = Input_KeyStateAction(3);
26}
27#[repr(transparent)]
28/// Enumerated values of key event action.
29///
30///
31/// Available since API-level: 12
32#[cfg(feature = "api-12")]
33#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
34#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
35pub struct Input_KeyStateAction(pub ::core::ffi::c_int);
36#[cfg(feature = "api-12")]
37#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
38impl Input_KeyEventAction {
39    /// Cancellation of a key action.
40    pub const KEY_ACTION_CANCEL: Input_KeyEventAction = Input_KeyEventAction(0);
41    /// Pressing of a key.
42    pub const KEY_ACTION_DOWN: Input_KeyEventAction = Input_KeyEventAction(1);
43    /// Release of a key.
44    pub const KEY_ACTION_UP: Input_KeyEventAction = Input_KeyEventAction(2);
45}
46#[repr(transparent)]
47/// Enumerates key event types.
48///
49///
50/// Available since API-level: 12
51#[cfg(feature = "api-12")]
52#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
53#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
54pub struct Input_KeyEventAction(pub ::core::ffi::c_uint);
55#[cfg(feature = "api-12")]
56#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
57impl Input_MouseEventAction {
58    /// Cancel.
59    pub const MOUSE_ACTION_CANCEL: Input_MouseEventAction = Input_MouseEventAction(0);
60    /// Moving of the mouse pointer.
61    pub const MOUSE_ACTION_MOVE: Input_MouseEventAction = Input_MouseEventAction(1);
62    /// Pressing down of the mouse.
63    pub const MOUSE_ACTION_BUTTON_DOWN: Input_MouseEventAction = Input_MouseEventAction(2);
64    /// Lifting of the mouse button.
65    pub const MOUSE_ACTION_BUTTON_UP: Input_MouseEventAction = Input_MouseEventAction(3);
66    /// Beginning of the mouse axis event
67    pub const MOUSE_ACTION_AXIS_BEGIN: Input_MouseEventAction = Input_MouseEventAction(4);
68    /// Updating of the mouse axis event
69    pub const MOUSE_ACTION_AXIS_UPDATE: Input_MouseEventAction = Input_MouseEventAction(5);
70    /// End of the mouse axis event
71    pub const MOUSE_ACTION_AXIS_END: Input_MouseEventAction = Input_MouseEventAction(6);
72}
73#[repr(transparent)]
74/// Enumerated values of mouse event action.
75///
76///
77/// Available since API-level: 12
78#[cfg(feature = "api-12")]
79#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
80#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
81pub struct Input_MouseEventAction(pub ::core::ffi::c_uint);
82#[cfg(feature = "api-12")]
83#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
84impl InputEvent_MouseAxis {
85    /// Vertical scroll axis
86    pub const MOUSE_AXIS_SCROLL_VERTICAL: InputEvent_MouseAxis = InputEvent_MouseAxis(0);
87    /// Horizontal scroll axis
88    pub const MOUSE_AXIS_SCROLL_HORIZONTAL: InputEvent_MouseAxis = InputEvent_MouseAxis(1);
89}
90#[repr(transparent)]
91/// Mouse axis types.
92///
93///
94/// Available since API-level: 12
95#[cfg(feature = "api-12")]
96#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
97#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
98pub struct InputEvent_MouseAxis(pub ::core::ffi::c_uint);
99#[cfg(feature = "api-12")]
100#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
101impl Input_MouseEventButton {
102    /// Invalid button
103    pub const MOUSE_BUTTON_NONE: Input_MouseEventButton = Input_MouseEventButton(-1);
104    /// Left button on the mouse.
105    pub const MOUSE_BUTTON_LEFT: Input_MouseEventButton = Input_MouseEventButton(0);
106    /// Middle button on the mouse.
107    pub const MOUSE_BUTTON_MIDDLE: Input_MouseEventButton = Input_MouseEventButton(1);
108    /// Right button on the mouse.
109    pub const MOUSE_BUTTON_RIGHT: Input_MouseEventButton = Input_MouseEventButton(2);
110    /// Forward button on the mouse.
111    pub const MOUSE_BUTTON_FORWARD: Input_MouseEventButton = Input_MouseEventButton(3);
112    /// Back button on the mouse.
113    pub const MOUSE_BUTTON_BACK: Input_MouseEventButton = Input_MouseEventButton(4);
114}
115#[repr(transparent)]
116/// Enumerated values of mouse event button.
117///
118///
119/// Available since API-level: 12
120#[cfg(feature = "api-12")]
121#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
122#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
123pub struct Input_MouseEventButton(pub ::core::ffi::c_int);
124#[cfg(feature = "api-12")]
125#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
126impl Input_TouchEventAction {
127    /// Touch cancelled.
128    pub const TOUCH_ACTION_CANCEL: Input_TouchEventAction = Input_TouchEventAction(0);
129    /// Touch pressed.
130    pub const TOUCH_ACTION_DOWN: Input_TouchEventAction = Input_TouchEventAction(1);
131    /// Touch moved.
132    pub const TOUCH_ACTION_MOVE: Input_TouchEventAction = Input_TouchEventAction(2);
133    /// Touch lifted.
134    pub const TOUCH_ACTION_UP: Input_TouchEventAction = Input_TouchEventAction(3);
135}
136#[repr(transparent)]
137/// Enumerated values of touch event action.
138///
139///
140/// Available since API-level: 12
141#[cfg(feature = "api-12")]
142#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
143#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
144pub struct Input_TouchEventAction(pub ::core::ffi::c_uint);
145#[cfg(feature = "api-13")]
146#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
147impl Input_KeyboardType {
148    /// Keyboard without keys
149    pub const KEYBOARD_TYPE_NONE: Input_KeyboardType = Input_KeyboardType(0);
150    /// Keyboard with unknown keys
151    pub const KEYBOARD_TYPE_UNKNOWN: Input_KeyboardType = Input_KeyboardType(1);
152    /// Full keyboard
153    pub const KEYBOARD_TYPE_ALPHABETIC: Input_KeyboardType = Input_KeyboardType(2);
154    /// Digital keyboard
155    pub const KEYBOARD_TYPE_DIGITAL: Input_KeyboardType = Input_KeyboardType(3);
156    /// Stylus
157    pub const KEYBOARD_TYPE_STYLUS: Input_KeyboardType = Input_KeyboardType(4);
158    /// Remote control
159    pub const KEYBOARD_TYPE_REMOTE_CONTROL: Input_KeyboardType = Input_KeyboardType(5);
160}
161#[repr(transparent)]
162/// Enumerates keyboard types.
163///
164///
165/// Available since API-level: 13
166#[cfg(feature = "api-13")]
167#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
168#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
169pub struct Input_KeyboardType(pub ::core::ffi::c_uint);
170#[cfg(feature = "api-20")]
171#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
172impl Input_InjectionStatus {
173    /// Unauthorized
174    pub const UNAUTHORIZED: Input_InjectionStatus = Input_InjectionStatus(0);
175    /// Authorizing
176    pub const AUTHORIZING: Input_InjectionStatus = Input_InjectionStatus(1);
177    /// Authorized
178    pub const AUTHORIZED: Input_InjectionStatus = Input_InjectionStatus(2);
179}
180#[repr(transparent)]
181/// Enumerates the injection authorization status.
182///
183///
184/// Available since API-level: 20
185#[cfg(feature = "api-20")]
186#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
187#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
188pub struct Input_InjectionStatus(pub ::core::ffi::c_uint);
189#[cfg(feature = "api-12")]
190#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
191impl InputEvent_SourceType {
192    /// Indicates that the input source generates events similar to mouse cursor movement,
193    /// button press and release, and wheel scrolling.
194    ///
195    ///
196    /// Available since API-level: 12
197    #[cfg(feature = "api-12")]
198    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
199    pub const SOURCE_TYPE_MOUSE: InputEvent_SourceType = InputEvent_SourceType(1);
200    /// Indicates that the input source generates a touchscreen multi-touch event.
201    ///
202    ///
203    /// Available since API-level: 12
204    #[cfg(feature = "api-12")]
205    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
206    pub const SOURCE_TYPE_TOUCHSCREEN: InputEvent_SourceType = InputEvent_SourceType(2);
207    /// Indicates that the input source generates a touchpad multi-touch event.
208    ///
209    ///
210    /// Available since API-level: 12
211    #[cfg(feature = "api-12")]
212    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
213    pub const SOURCE_TYPE_TOUCHPAD: InputEvent_SourceType = InputEvent_SourceType(3);
214}
215#[repr(transparent)]
216/// Enumerates event source types.
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 InputEvent_SourceType(pub ::core::ffi::c_uint);
224pub type Input_Result = Result<(), InputErrorCode>;
225#[cfg(feature = "api-12")]
226#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
227impl InputErrorCode {
228    /// Permission verification failed
229    pub const PERMISSION_DENIED: InputErrorCode =
230        InputErrorCode(const { core::num::NonZero::new(201).unwrap() });
231    /// Non-system application
232    pub const NOT_SYSTEM_APPLICATION: InputErrorCode =
233        InputErrorCode(const { core::num::NonZero::new(202).unwrap() });
234    /// Parameter check failed
235    pub const PARAMETER_ERROR: InputErrorCode =
236        InputErrorCode(const { core::num::NonZero::new(401).unwrap() });
237    /// Device not support
238    pub const DEVICE_NOT_SUPPORTED: InputErrorCode =
239        InputErrorCode(const { core::num::NonZero::new(801).unwrap() });
240    /// Service error
241    pub const SERVICE_EXCEPTION: InputErrorCode =
242        InputErrorCode(const { core::num::NonZero::new(3800001).unwrap() });
243    /// Interceptor repeatedly created for an application
244    pub const REPEAT_INTERCEPTOR: InputErrorCode =
245        InputErrorCode(const { core::num::NonZero::new(4200001).unwrap() });
246    /// Already occupied by the system
247    ///
248    /// Available since API-level: 14
249    #[cfg(feature = "api-14")]
250    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
251    pub const OCCUPIED_BY_SYSTEM: InputErrorCode =
252        InputErrorCode(const { core::num::NonZero::new(4200002).unwrap() });
253    /// Already occupied by the other
254    ///
255    /// Available since API-level: 14
256    #[cfg(feature = "api-14")]
257    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
258    pub const OCCUPIED_BY_OTHER: InputErrorCode =
259        InputErrorCode(const { core::num::NonZero::new(4200003).unwrap() });
260    /// No keyboard device connected
261    ///
262    /// Available since API-level: 15
263    #[cfg(feature = "api-15")]
264    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
265    pub const KEYBOARD_DEVICE_NOT_EXIST: InputErrorCode =
266        InputErrorCode(const { core::num::NonZero::new(3900002).unwrap() });
267    /// Authorizing
268    ///
269    /// Available since API-level: 20
270    #[cfg(feature = "api-20")]
271    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
272    pub const INJECTION_AUTHORIZING: InputErrorCode =
273        InputErrorCode(const { core::num::NonZero::new(3900005).unwrap() });
274    /// Too many operations
275    ///
276    /// Available since API-level: 20
277    #[cfg(feature = "api-20")]
278    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
279    pub const INJECTION_OPERATION_FREQUENT: InputErrorCode =
280        InputErrorCode(const { core::num::NonZero::new(3900006).unwrap() });
281    /// Authorized
282    ///
283    /// Available since API-level: 20
284    #[cfg(feature = "api-20")]
285    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
286    pub const INJECTION_AUTHORIZED: InputErrorCode =
287        InputErrorCode(const { core::num::NonZero::new(3900007).unwrap() });
288    /// Authorized to other applications
289    ///
290    /// Available since API-level: 20
291    #[cfg(feature = "api-20")]
292    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
293    pub const INJECTION_AUTHORIZED_OTHERS: InputErrorCode =
294        InputErrorCode(const { core::num::NonZero::new(3900008).unwrap() });
295    /// App is not the focused app
296    ///
297    /// Available since API-level: 20
298    #[cfg(feature = "api-20")]
299    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
300    pub const APP_NOT_FOCUSED: InputErrorCode =
301        InputErrorCode(const { core::num::NonZero::new(3900009).unwrap() });
302    /// The device has no pointer
303    ///
304    /// Available since API-level: 20
305    #[cfg(feature = "api-20")]
306    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
307    pub const DEVICE_NO_POINTER: InputErrorCode =
308        InputErrorCode(const { core::num::NonZero::new(3900010).unwrap() });
309}
310#[repr(transparent)]
311/// Enumerates error codes.
312///
313///
314/// Available since API-level: 12
315#[cfg(feature = "api-12")]
316#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
317#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
318pub struct InputErrorCode(pub core::num::NonZero<::core::ffi::c_uint>);
319/// Callback used to return shortcut key events.
320///
321/// Available since API-level: 14
322#[cfg(feature = "api-14")]
323#[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
324pub type Input_HotkeyCallback =
325    ::core::option::Option<unsafe extern "C" fn(hotkey: *mut Input_Hotkey)>;
326/// Represents information about the input device.
327///
328///
329/// Available since API-level: 13
330#[cfg(feature = "api-13")]
331#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
332#[repr(C)]
333pub struct Input_DeviceInfo {
334    _unused: [u8; 0],
335}
336/// Defines a lifecycle callback for keyEvent. If the callback is triggered, keyEvent will be destroyed.
337///
338/// # Arguments
339///
340/// * `keyEvent` - Key event object.
341///
342/// Available since API-level: 12
343#[cfg(feature = "api-12")]
344#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
345pub type Input_KeyEventCallback =
346    ::core::option::Option<unsafe extern "C" fn(keyEvent: *const Input_KeyEvent)>;
347/// Defines a lifecycle callback for mouseEvent. If the callback is triggered, mouseEvent will be destroyed.
348///
349/// # Arguments
350///
351/// * `mouseEvent` - Mouse event object.
352///
353/// Available since API-level: 12
354#[cfg(feature = "api-12")]
355#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
356pub type Input_MouseEventCallback =
357    ::core::option::Option<unsafe extern "C" fn(mouseEvent: *const Input_MouseEvent)>;
358/// Defines a lifecycle callback for touchEvent. If the callback is triggered, touchEvent will be destroyed.
359///
360/// # Arguments
361///
362/// * `touchEvent` - Touch event object.
363///
364/// Available since API-level: 12
365#[cfg(feature = "api-12")]
366#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
367pub type Input_TouchEventCallback =
368    ::core::option::Option<unsafe extern "C" fn(touchEvent: *const Input_TouchEvent)>;
369/// Defines a lifecycle callback for axisEvent. If the callback is triggered, axisEvent will be destroyed.
370///
371/// # Arguments
372///
373/// * `axisEvent` - Axis event object.
374///
375/// Available since API-level: 12
376#[cfg(feature = "api-12")]
377#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
378pub type Input_AxisEventCallback =
379    ::core::option::Option<unsafe extern "C" fn(axisEvent: *const Input_AxisEvent)>;
380/// Defines the callback for device addition events.
381/// # Arguments
382///
383/// * `deviceId` - Device ID.
384///
385/// Available since API-level: 13
386#[cfg(feature = "api-13")]
387#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
388pub type Input_DeviceAddedCallback = ::core::option::Option<unsafe extern "C" fn(deviceId: i32)>;
389/// Defines the callback for device removal events.
390/// # Arguments
391///
392/// * `deviceId` - Device ID.
393///
394/// Available since API-level: 13
395#[cfg(feature = "api-13")]
396#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
397pub type Input_DeviceRemovedCallback = ::core::option::Option<unsafe extern "C" fn(deviceId: i32)>;
398/// Defines the event injection callback.
399/// # Arguments
400///
401/// * `authorizedStatus` - Authorization status.
402///
403/// Available since API-level: 20
404#[cfg(feature = "api-20")]
405#[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
406pub type Input_InjectAuthorizeCallback =
407    ::core::option::Option<unsafe extern "C" fn(authorizedStatus: Input_InjectionStatus)>;
408/// Defines the structure for the interceptor of event callbacks,
409/// including mouseCallback, touchCallback, and axisCallback.
410///
411/// Available since API-level: 12
412#[cfg(feature = "api-12")]
413#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
414#[repr(C)]
415#[derive(Debug, Copy, Clone)]
416pub struct Input_InterceptorEventCallback {
417    /// Defines a lifecycle callback for **mouseEvent**.
418    pub mouseCallback: Input_MouseEventCallback,
419    /// Defines a lifecycle callback for **touchEvent**.
420    pub touchCallback: Input_TouchEventCallback,
421    /// Defines a lifecycle callback for **axisEvent**.
422    pub axisCallback: Input_AxisEventCallback,
423}
424/// Defines a listener for device insertion and removal events.
425///
426/// Available since API-level: 13
427#[cfg(feature = "api-13")]
428#[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
429#[repr(C)]
430#[derive(Debug, Copy, Clone)]
431pub struct Input_DeviceListener {
432    /// Callback for device addition events
433    pub deviceAddedCallback: Input_DeviceAddedCallback,
434    /// Callback for device removal events
435    pub deviceRemovedCallback: Input_DeviceRemovedCallback,
436}
437/// Defines event interceptor options.
438///
439/// Available since API-level: 12
440#[cfg(feature = "api-12")]
441#[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
442#[repr(C)]
443pub struct Input_InterceptorOptions {
444    _unused: [u8; 0],
445}
446extern "C" {
447    /// Queries the key state.
448    ///
449    /// # Arguments
450    ///
451    /// * `keyState` - Key state.
452    ///
453    /// # Returns
454    ///
455    /// * OH_Input_GetKeyState function result code.
456    /// [`INPUT_SUCCESS`] get KeyState success.
457    ///
458    /// [`INPUT_PARAMETER_ERROR`] keyCode is invalid.
459    ///
460    ///
461    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
462    ///
463    /// Available since API-level: 12
464    #[cfg(feature = "api-12")]
465    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
466    pub fn OH_Input_GetKeyState(keyState: *mut Input_KeyState) -> Input_Result;
467    /// Creates a key status enumeration object.
468    ///
469    ///
470    /// # Returns
471    ///
472    /// * Returns an [`Input_KeyState`] pointer object if the operation is successful.
473    /// Otherwise, a null pointer is returned. The possible cause is memory allocation failure.
474    ///
475    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
476    ///
477    /// Available since API-level: 12
478    #[cfg(feature = "api-12")]
479    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
480    pub fn OH_Input_CreateKeyState() -> *mut Input_KeyState;
481    /// Destroys a key status enumeration object.
482    ///
483    /// # Arguments
484    ///
485    /// * `keyState` - Key status enumeration object.
486    ///
487    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
488    ///
489    /// Available since API-level: 12
490    #[cfg(feature = "api-12")]
491    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
492    pub fn OH_Input_DestroyKeyState(keyState: *mut *mut Input_KeyState);
493    /// Sets the key value of a key status enumeration object.
494    ///
495    /// # Arguments
496    ///
497    /// * `keyState` - Key status enumeration object.
498    ///
499    /// * `keyCode` - Key value of the key status enumeration object.
500    ///
501    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
502    ///
503    /// Available since API-level: 12
504    #[cfg(feature = "api-12")]
505    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
506    pub fn OH_Input_SetKeyCode(keyState: *mut Input_KeyState, keyCode: i32);
507    /// Obtains the key value of a key status enumeration object.
508    ///
509    /// # Arguments
510    ///
511    /// * `keyState` - Key status enumeration object.
512    ///
513    /// # Returns
514    ///
515    /// * Key value of the key status enumeration object.
516    ///
517    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
518    ///
519    /// Available since API-level: 12
520    #[cfg(feature = "api-12")]
521    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
522    pub fn OH_Input_GetKeyCode(keyState: *const Input_KeyState) -> i32;
523    /// Sets whether the key specific to a key status enumeration object is pressed.
524    ///
525    /// # Arguments
526    ///
527    /// * `keyState` - Key status enumeration object.
528    ///
529    /// * `keyAction` - Whether the key is pressed.
530    ///
531    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
532    ///
533    /// Available since API-level: 12
534    #[cfg(feature = "api-12")]
535    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
536    pub fn OH_Input_SetKeyPressed(keyState: *mut Input_KeyState, keyAction: i32);
537    /// Checks whether the key specific to a key status enumeration object is pressed.
538    ///
539    /// # Arguments
540    ///
541    /// * `keyState` - Key status enumeration object.
542    ///
543    /// # Returns
544    ///
545    /// * Key pressing status of the key status enumeration object.
546    ///
547    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
548    ///
549    /// Available since API-level: 12
550    #[cfg(feature = "api-12")]
551    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
552    pub fn OH_Input_GetKeyPressed(keyState: *const Input_KeyState) -> i32;
553    /// Sets the key switch of the key status enumeration object.
554    ///
555    /// # Arguments
556    ///
557    /// * `keyState` - Key status enumeration object.
558    ///
559    /// * `keySwitch` - Key switch of the key status enumeration object.
560    ///
561    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
562    ///
563    /// Available since API-level: 12
564    #[cfg(feature = "api-12")]
565    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
566    pub fn OH_Input_SetKeySwitch(keyState: *mut Input_KeyState, keySwitch: i32);
567    /// Obtains the key switch of the key status enumeration object.
568    ///
569    /// # Arguments
570    ///
571    /// * `keyState` - Key status enumeration object.
572    ///
573    /// # Returns
574    ///
575    /// * Key switch of the key status enumeration object.
576    ///
577    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
578    ///
579    /// Available since API-level: 12
580    #[cfg(feature = "api-12")]
581    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
582    pub fn OH_Input_GetKeySwitch(keyState: *const Input_KeyState) -> i32;
583    /// Inject system keys.
584    /// since API 20, it is recommended to use OH_Input_RequestInjection
585    /// to request authorization before using the interface,
586    /// and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
587    /// When the authorization status is AUTHORIZED, use the interface.
588    ///
589    /// # Arguments
590    ///
591    /// * `keyEvent` - - the key event to be injected.
592    ///
593    /// # Returns
594    ///
595    /// * OH_Input_InjectKeyEvent function result code.
596    /// [`INPUT_SUCCESS`] inject keyEvent success.
597    ///
598    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
599    ///
600    /// [`INPUT_PARAMETER_ERROR`] keyCode is less 0, can not process.
601    ///
602    ///
603    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
604    ///
605    /// Available since API-level: 12
606    #[cfg(feature = "api-12")]
607    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
608    pub fn OH_Input_InjectKeyEvent(keyEvent: *const Input_KeyEvent) -> i32;
609    /// Creates a key event object.
610    ///
611    ///
612    /// # Returns
613    ///
614    /// * Returns an [`Input_KeyEvent`] pointer object if the operation is successful.
615    /// Otherwise, a null pointer is returned. The possible cause is memory allocation failure.
616    ///
617    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
618    ///
619    /// Available since API-level: 12
620    #[cfg(feature = "api-12")]
621    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
622    pub fn OH_Input_CreateKeyEvent() -> *mut Input_KeyEvent;
623    /// Destroys a key event object.
624    ///
625    /// # Arguments
626    ///
627    /// * `keyEvent` - Key event object.
628    ///
629    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
630    ///
631    /// Available since API-level: 12
632    #[cfg(feature = "api-12")]
633    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
634    pub fn OH_Input_DestroyKeyEvent(keyEvent: *mut *mut Input_KeyEvent);
635    /// Sets the key event type.
636    ///
637    /// # Arguments
638    ///
639    /// * `keyEvent` - Key event object.
640    ///
641    /// * `action` - Key event type.
642    ///
643    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
644    ///
645    /// Available since API-level: 12
646    #[cfg(feature = "api-12")]
647    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
648    pub fn OH_Input_SetKeyEventAction(keyEvent: *mut Input_KeyEvent, action: i32);
649    /// Obtains the key event type.
650    ///
651    /// # Arguments
652    ///
653    /// * `keyEvent` - Key event object.
654    ///
655    /// # Returns
656    ///
657    /// * Key event type.
658    ///
659    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
660    ///
661    /// Available since API-level: 12
662    #[cfg(feature = "api-12")]
663    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
664    pub fn OH_Input_GetKeyEventAction(keyEvent: *const Input_KeyEvent) -> i32;
665    /// Sets the key value for a key event.
666    ///
667    /// # Arguments
668    ///
669    /// * `keyEvent` - Key event object.
670    ///
671    /// * `keyCode` - keyCode Key code.
672    ///
673    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
674    ///
675    /// Available since API-level: 12
676    #[cfg(feature = "api-12")]
677    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
678    pub fn OH_Input_SetKeyEventKeyCode(keyEvent: *mut Input_KeyEvent, keyCode: i32);
679    /// Obtains the key value of a key event.
680    ///
681    /// # Arguments
682    ///
683    /// * `keyEvent` - Key event object.
684    ///
685    /// # Returns
686    ///
687    /// * Key code.
688    ///
689    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
690    ///
691    /// Available since API-level: 12
692    #[cfg(feature = "api-12")]
693    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
694    pub fn OH_Input_GetKeyEventKeyCode(keyEvent: *const Input_KeyEvent) -> i32;
695    /// Sets the time when a key event occurs.
696    ///
697    /// # Arguments
698    ///
699    /// * `keyEvent` - Key event object.
700    ///
701    /// * `actionTime` - Time when the key event occurs.
702    ///
703    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
704    ///
705    /// Available since API-level: 12
706    #[cfg(feature = "api-12")]
707    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
708    pub fn OH_Input_SetKeyEventActionTime(keyEvent: *mut Input_KeyEvent, actionTime: i64);
709    /// Obtains the time when a key event occurs.
710    ///
711    /// # Arguments
712    ///
713    /// * `keyEvent` - Key event object.
714    ///
715    /// # Returns
716    ///
717    /// * Returns the time when the key event occurs.
718    ///
719    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
720    ///
721    /// Available since API-level: 12
722    #[cfg(feature = "api-12")]
723    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
724    pub fn OH_Input_GetKeyEventActionTime(keyEvent: *const Input_KeyEvent) -> i64;
725    /// Sets the windowId for a key event.
726    ///
727    /// # Arguments
728    ///
729    /// * `keyEvent` - Key event object.
730    ///
731    /// * `windowId` - The windowId for a key event.
732    ///
733    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
734    ///
735    /// Available since API-level: 15
736    #[cfg(feature = "api-15")]
737    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
738    pub fn OH_Input_SetKeyEventWindowId(keyEvent: *mut Input_KeyEvent, windowId: i32);
739    /// Obtains the windowId of a key event.
740    ///
741    /// # Arguments
742    ///
743    /// * `keyEvent` - Key event object.
744    ///
745    /// # Returns
746    ///
747    /// * windowId.
748    ///
749    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
750    ///
751    /// Available since API-level: 15
752    #[cfg(feature = "api-15")]
753    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
754    pub fn OH_Input_GetKeyEventWindowId(keyEvent: *const Input_KeyEvent) -> i32;
755    /// Sets the displayId for a key event.
756    ///
757    /// # Arguments
758    ///
759    /// * `keyEvent` - Key event object.
760    ///
761    /// * `displayId` - The displayId for a key event.
762    ///
763    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
764    ///
765    /// Available since API-level: 15
766    #[cfg(feature = "api-15")]
767    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
768    pub fn OH_Input_SetKeyEventDisplayId(keyEvent: *mut Input_KeyEvent, displayId: i32);
769    /// Obtains the displayId of a key event.
770    ///
771    /// # Arguments
772    ///
773    /// * `keyEvent` - Key event object.
774    ///
775    /// # Returns
776    ///
777    /// * displayId.
778    ///
779    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
780    ///
781    /// Available since API-level: 15
782    #[cfg(feature = "api-15")]
783    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
784    pub fn OH_Input_GetKeyEventDisplayId(keyEvent: *const Input_KeyEvent) -> i32;
785    /// Get the eventId of the keyEvent.
786    ///
787    /// # Arguments
788    ///
789    /// * `keyEvent` - - Key event object.
790    ///
791    /// * `eventId` - - Get the keyEvent eventId.
792    ///
793    /// # Returns
794    ///
795    /// * OH_Input_GetKeyEventId function result code.
796    /// [`INPUT_SUCCESS`] Get the eventId of the keyEvent success.
797    ///
798    /// [`INPUT_PARAMETER_ERROR`] Parameter check failed.
799    ///
800    ///
801    /// Available since API-level: 21
802    #[cfg(feature = "api-21")]
803    #[cfg_attr(docsrs, doc(cfg(feature = "api-21")))]
804    pub fn OH_Input_GetKeyEventId(
805        keyEvent: *const Input_KeyEvent,
806        eventId: *mut i32,
807    ) -> Input_Result;
808    /// Add a keyEvent interception hook function. Before using this interface,
809    /// the user needs to authorize it in the settings.
810    ///
811    /// ohos.permission.HOOK_KEY_EVENT
812    /// # Arguments
813    ///
814    /// * `callback` - - Hook function, keyEvent will be sent to the hook function for priority processing.
815    ///
816    /// # Returns
817    ///
818    /// * OH_Input_AddKeyEventHook function result code.
819    /// [`INPUT_SUCCESS`] Added hook function successfully.
820    ///
821    /// [`INPUT_PARAMETER_ERROR`] Failed to add the hook function. Reason: Parameter check failed.
822    ///
823    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
824    ///
825    /// [`INPUT_PERMISSION_DENIED`] Failed to add the hook function. Reason: Permission check failed.
826    ///
827    /// [`INPUT_REPEAT_INTERCEPTOR`] Failed to add the hook function.
828    ///
829    /// Reason: Repeatedly set the hook function. A process can only have one key hook function.
830    ///
831    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the hook function.
832    ///
833    /// Reason: Input service exception, please try again.
834    ///
835    ///
836    /// Available since API-level: 21
837    #[cfg(feature = "api-21")]
838    #[cfg_attr(docsrs, doc(cfg(feature = "api-21")))]
839    pub fn OH_Input_AddKeyEventHook(callback: Input_KeyEventCallback) -> Input_Result;
840    /// Remove keyEvent interception hook function.
841    ///
842    /// # Arguments
843    ///
844    /// * `callback` - - Hook function, Same as the parameters when calling OH_Input_AddKeyEventHook.
845    ///
846    /// # Returns
847    ///
848    /// * OH_Input_RemoveKeyEventHook function result code.
849    /// [`INPUT_SUCCESS`] Hook function removed successfully.
850    ///
851    /// Even if the hook function has not been added before, it will return success when removed.
852    ///
853    /// [`INPUT_PARAMETER_ERROR`] Failed to remove the hook function. Reason: Parameter check failed.
854    ///
855    /// [`INPUT_SERVICE_EXCEPTION`] Failed to remove the hook function.
856    ///
857    /// Reason: Input service exception, please try again.
858    ///
859    ///
860    /// Available since API-level: 21
861    #[cfg(feature = "api-21")]
862    #[cfg_attr(docsrs, doc(cfg(feature = "api-21")))]
863    pub fn OH_Input_RemoveKeyEventHook(callback: Input_KeyEventCallback) -> Input_Result;
864    /// Redispatches keyEvent.
865    /// Only keyEvent intercepted by hook functions can be redispatched,
866    /// and the event order must be maintained during redispatching.
867    /// The hook function intercepts the input event and then redistributes it for 3 seconds.
868    /// If this time is exceeded, calling this function will return INPUT_PARAMETER_ERROR.
869    /// Re-dispatching requires event pairing, usually starting with one or more KEY_ACTION_DOWN and
870    /// ending with KEY_ACTION_UP or KEY_ACTION_CANCEL.
871    /// Only KEY_ACTION_UP or KEY_ACTION_CANCEL is redispatched, the function call succeeds,
872    /// but no actual dispatch is made.
873    /// If an event is dispatched that is not intercepted by the hook function,
874    /// the function call succeeds, but no actual dispatch action is taken.
875    ///
876    /// # Arguments
877    ///
878    /// * `eventId` - - keyEvent eventId.
879    ///
880    /// # Returns
881    ///
882    /// * OH_Input_DispatchToNextHandler function result code.
883    /// [`INPUT_SUCCESS`] Redistribution successful.
884    ///
885    /// [`INPUT_PARAMETER_ERROR`] Redistribution failed. Reason: KeyEvent does not exist.
886    ///
887    /// [`INPUT_SERVICE_EXCEPTION`] Redistribution failed.
888    ///
889    /// Reason: Input service exception, it's recommended to reset the pending distribution status.
890    ///
891    ///
892    /// Available since API-level: 21
893    #[cfg(feature = "api-21")]
894    #[cfg_attr(docsrs, doc(cfg(feature = "api-21")))]
895    pub fn OH_Input_DispatchToNextHandler(eventId: i32) -> Input_Result;
896    /// Inject mouse event.
897    /// since API 20, it is recommended to use OH_Input_RequestInjection
898    /// to request authorization before using the interface,
899    /// and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
900    /// When the authorization status is AUTHORIZED, use the interface.
901    ///
902    /// # Arguments
903    ///
904    /// * `mouseEvent` - - the mouse event to be injected.
905    ///
906    /// # Returns
907    ///
908    /// * OH_Input_InjectMouseEvent function result code.
909    /// [`INPUT_SUCCESS`] inject mouseEvent success.
910    ///
911    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
912    ///
913    /// [`INPUT_PARAMETER_ERROR`] Parameter check failed.
914    ///
915    ///
916    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
917    ///
918    /// Available since API-level: 12
919    #[cfg(feature = "api-12")]
920    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
921    pub fn OH_Input_InjectMouseEvent(mouseEvent: *const Input_MouseEvent) -> i32;
922    /// Inject mouse event using global coordinate.
923    /// since API 20, it is recommended to use OH_Input_RequestInjection
924    /// to request authorization before using the interface,
925    /// and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
926    /// When the authorization status is AUTHORIZED, use the interface.
927    ///
928    /// # Arguments
929    ///
930    /// * `mouseEvent` - - the mouse event to be injected, set up effective globalX globalY.
931    ///
932    /// # Returns
933    ///
934    /// * OH_Input_InjectMouseEventGlobal function result code.
935    /// [`INPUT_SUCCESS`] inject mouseEvent success.
936    ///
937    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
938    ///
939    /// [`INPUT_PARAMETER_ERROR`] Parameter check failed.
940    ///
941    ///
942    /// Available since API-level: 20
943    #[cfg(feature = "api-20")]
944    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
945    pub fn OH_Input_InjectMouseEventGlobal(mouseEvent: *const Input_MouseEvent) -> i32;
946    /// Creates a mouse event object.
947    ///
948    ///
949    /// # Returns
950    ///
951    /// * Returns an [`Input_MouseEvent`] pointer object if the operation is successful.
952    /// Otherwise, a null pointer is returned. The possible cause is memory allocation failure.
953    ///
954    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
955    ///
956    /// Available since API-level: 12
957    #[cfg(feature = "api-12")]
958    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
959    pub fn OH_Input_CreateMouseEvent() -> *mut Input_MouseEvent;
960    /// Destroys a mouse event object.
961    ///
962    /// # Arguments
963    ///
964    /// * `mouseEvent` - Mouse event object.
965    ///
966    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
967    ///
968    /// Available since API-level: 12
969    #[cfg(feature = "api-12")]
970    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
971    pub fn OH_Input_DestroyMouseEvent(mouseEvent: *mut *mut Input_MouseEvent);
972    /// Sets the action for a mouse event.
973    ///
974    /// # Arguments
975    ///
976    /// * `mouseEvent` - Mouse event object.
977    ///
978    /// * `action` - Mouse action.
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_SetMouseEventAction(mouseEvent: *mut Input_MouseEvent, action: i32);
986    /// Obtains the action of a mouse event.
987    ///
988    /// # Arguments
989    ///
990    /// * `mouseEvent` - Mouse event object.
991    ///
992    /// # Returns
993    ///
994    /// * Mouse action.
995    ///
996    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
997    ///
998    /// Available since API-level: 12
999    #[cfg(feature = "api-12")]
1000    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1001    pub fn OH_Input_GetMouseEventAction(mouseEvent: *const Input_MouseEvent) -> i32;
1002    /// Sets the X coordinate for a mouse event.
1003    ///
1004    /// # Arguments
1005    ///
1006    /// * `mouseEvent` - Mouse event object.
1007    ///
1008    /// * `displayX` - X coordinate on the display.
1009    ///
1010    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1011    ///
1012    /// Available since API-level: 12
1013    #[cfg(feature = "api-12")]
1014    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1015    pub fn OH_Input_SetMouseEventDisplayX(mouseEvent: *mut Input_MouseEvent, displayX: i32);
1016    /// Obtains the X coordinate of a mouse event.
1017    ///
1018    /// # Arguments
1019    ///
1020    /// * `mouseEvent` - Mouse event object.
1021    ///
1022    /// # Returns
1023    ///
1024    /// * X coordinate on the display.
1025    ///
1026    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1027    ///
1028    /// Available since API-level: 12
1029    #[cfg(feature = "api-12")]
1030    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1031    pub fn OH_Input_GetMouseEventDisplayX(mouseEvent: *const Input_MouseEvent) -> i32;
1032    /// Sets the Y coordinate for a mouse event.
1033    ///
1034    /// # Arguments
1035    ///
1036    /// * `mouseEvent` - Mouse event object.
1037    ///
1038    /// * `displayY` - Y coordinate on the display.
1039    ///
1040    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1041    ///
1042    /// Available since API-level: 12
1043    #[cfg(feature = "api-12")]
1044    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1045    pub fn OH_Input_SetMouseEventDisplayY(mouseEvent: *mut Input_MouseEvent, displayY: i32);
1046    /// Obtains the Y coordinate of a mouse event.
1047    ///
1048    /// # Arguments
1049    ///
1050    /// * `mouseEvent` - Mouse event object.
1051    ///
1052    /// # Returns
1053    ///
1054    /// * Y coordinate on the display.
1055    ///
1056    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1057    ///
1058    /// Available since API-level: 12
1059    #[cfg(feature = "api-12")]
1060    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1061    pub fn OH_Input_GetMouseEventDisplayY(mouseEvent: *const Input_MouseEvent) -> i32;
1062    /// Sets the button for a mouse event.
1063    ///
1064    /// # Arguments
1065    ///
1066    /// * `mouseEvent` - Mouse event object.
1067    ///
1068    /// * `button` - Mouse button.
1069    ///
1070    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1071    ///
1072    /// Available since API-level: 12
1073    #[cfg(feature = "api-12")]
1074    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1075    pub fn OH_Input_SetMouseEventButton(mouseEvent: *mut Input_MouseEvent, button: i32);
1076    /// Obtains the button of a mouse event.
1077    ///
1078    /// # Arguments
1079    ///
1080    /// * `mouseEvent` - Mouse event object.
1081    ///
1082    /// # Returns
1083    ///
1084    /// * Mouse button.
1085    ///
1086    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1087    ///
1088    /// Available since API-level: 12
1089    #[cfg(feature = "api-12")]
1090    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1091    pub fn OH_Input_GetMouseEventButton(mouseEvent: *const Input_MouseEvent) -> i32;
1092    /// Sets the axis type for mouse event.
1093    ///
1094    /// # Arguments
1095    ///
1096    /// * `mouseEvent` - Mouse event object.
1097    ///
1098    /// * `axisType` - Axis type, for example, X axis or Y axis.
1099    ///
1100    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1101    ///
1102    /// Available since API-level: 12
1103    #[cfg(feature = "api-12")]
1104    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1105    pub fn OH_Input_SetMouseEventAxisType(mouseEvent: *mut Input_MouseEvent, axisType: i32);
1106    /// Obtains the axis type of a mouse event.
1107    ///
1108    /// # Arguments
1109    ///
1110    /// * `mouseEvent` - Mouse event object.
1111    ///
1112    /// # Returns
1113    ///
1114    /// * Axis type.
1115    ///
1116    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1117    ///
1118    /// Available since API-level: 12
1119    #[cfg(feature = "api-12")]
1120    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1121    pub fn OH_Input_GetMouseEventAxisType(mouseEvent: *const Input_MouseEvent) -> i32;
1122    /// Sets the axis value for a mouse axis event.
1123    ///
1124    /// # Arguments
1125    ///
1126    /// * `mouseEvent` - Mouse event object.
1127    ///
1128    /// * `axisValue` - Axis value. A positive value means scrolling forward,
1129    /// and a negative number means scrolling backward.
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_SetMouseEventAxisValue(mouseEvent: *mut Input_MouseEvent, axisValue: f32);
1137    /// Obtains the axis value of a mouse event.
1138    ///
1139    /// # Arguments
1140    ///
1141    /// * `mouseEvent` - Mouse event object.
1142    ///
1143    /// # Returns
1144    ///
1145    /// * Axis value.
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_GetMouseEventAxisValue(mouseEvent: *const Input_MouseEvent) -> f32;
1153    /// Sets the time when a mouse event occurs.
1154    ///
1155    /// # Arguments
1156    ///
1157    /// * `mouseEvent` - Mouse event object.
1158    ///
1159    /// * `actionTime` - Time when the mouse event occurs.
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_SetMouseEventActionTime(mouseEvent: *mut Input_MouseEvent, actionTime: i64);
1167    /// Obtains the time when a mouse event occurs.
1168    ///
1169    /// # Arguments
1170    ///
1171    /// * `mouseEvent` - Mouse event object.
1172    ///
1173    /// # Returns
1174    ///
1175    /// * Returns the time when the mouse event occurs.
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_GetMouseEventActionTime(mouseEvent: *const Input_MouseEvent) -> i64;
1183    /// Sets the windowId for a mouse event.
1184    ///
1185    /// # Arguments
1186    ///
1187    /// * `mouseEvent` - Mouse event object.
1188    ///
1189    /// * `windowId` - The windowId for a mouse event.
1190    ///
1191    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1192    ///
1193    /// Available since API-level: 15
1194    #[cfg(feature = "api-15")]
1195    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
1196    pub fn OH_Input_SetMouseEventWindowId(mouseEvent: *mut Input_MouseEvent, windowId: i32);
1197    /// Obtains the windowId of a mouse event.
1198    ///
1199    /// # Arguments
1200    ///
1201    /// * `mouseEvent` - Mouse event object.
1202    ///
1203    /// # Returns
1204    ///
1205    /// * windowId.
1206    ///
1207    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1208    ///
1209    /// Available since API-level: 15
1210    #[cfg(feature = "api-15")]
1211    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
1212    pub fn OH_Input_GetMouseEventWindowId(mouseEvent: *const Input_MouseEvent) -> i32;
1213    /// Sets the displayId for a mouse event.
1214    ///
1215    /// # Arguments
1216    ///
1217    /// * `mouseEvent` - Mouse event object.
1218    ///
1219    /// * `displayId` - The displayId for a mouse event.
1220    ///
1221    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1222    ///
1223    /// Available since API-level: 15
1224    #[cfg(feature = "api-15")]
1225    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
1226    pub fn OH_Input_SetMouseEventDisplayId(mouseEvent: *mut Input_MouseEvent, displayId: i32);
1227    /// Obtains the displayId of a mouse event.
1228    ///
1229    /// # Arguments
1230    ///
1231    /// * `mouseEvent` - Mouse event object.
1232    ///
1233    /// # Returns
1234    ///
1235    /// * displayId.
1236    ///
1237    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1238    ///
1239    /// Available since API-level: 15
1240    #[cfg(feature = "api-15")]
1241    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
1242    pub fn OH_Input_GetMouseEventDisplayId(mouseEvent: *const Input_MouseEvent) -> i32;
1243    /// Set the global X coordinate of the mouse event.
1244    ///
1245    /// # Arguments
1246    ///
1247    /// * `mouseEvent` - Mouse event object.
1248    ///
1249    /// * `globalX` - Global X coordinate.
1250    ///
1251    /// Available since API-level: 20
1252    #[cfg(feature = "api-20")]
1253    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1254    pub fn OH_Input_SetMouseEventGlobalX(mouseEvent: *mut Input_MouseEvent, globalX: i32);
1255    /// Queries the global X coordinate of the mouse event.
1256    ///
1257    /// # Arguments
1258    ///
1259    /// * `mouseEvent` - Mouse event object.
1260    ///
1261    /// # Returns
1262    ///
1263    /// * Global X coordinate.
1264    ///
1265    /// Available since API-level: 20
1266    #[cfg(feature = "api-20")]
1267    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1268    pub fn OH_Input_GetMouseEventGlobalX(mouseEvent: *const Input_MouseEvent) -> i32;
1269    /// Set the global Y coordinate of the mouse event.
1270    ///
1271    /// # Arguments
1272    ///
1273    /// * `mouseEvent` - Mouse event object.
1274    ///
1275    /// * `globalY` - Global Y coordinate.
1276    ///
1277    /// Available since API-level: 20
1278    #[cfg(feature = "api-20")]
1279    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1280    pub fn OH_Input_SetMouseEventGlobalY(mouseEvent: *mut Input_MouseEvent, globalY: i32);
1281    /// Queries the global Y coordinate of the mouse event.
1282    ///
1283    /// # Arguments
1284    ///
1285    /// * `mouseEvent` - Mouse event object.
1286    ///
1287    /// # Returns
1288    ///
1289    /// * Global Y coordinate.
1290    ///
1291    /// Available since API-level: 20
1292    #[cfg(feature = "api-20")]
1293    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1294    pub fn OH_Input_GetMouseEventGlobalY(mouseEvent: *const Input_MouseEvent) -> i32;
1295    /// Inject touch event.
1296    /// since API 20, it is recommended to use OH_Input_RequestInjection
1297    /// to request authorization before using the interface,
1298    /// and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
1299    /// When the authorization status is AUTHORIZED, use the interface.
1300    ///
1301    /// # Arguments
1302    ///
1303    /// * `touchEvent` - - the touch event to be injected.
1304    ///
1305    /// # Returns
1306    ///
1307    /// * OH_Input_InjectTouchEvent function result code.
1308    /// [`INPUT_SUCCESS`] inject touchEvent success.
1309    ///
1310    /// [`INPUT_PARAMETER_ERROR`] Parameter check failed.
1311    ///
1312    ///
1313    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1314    ///
1315    /// Available since API-level: 12
1316    #[cfg(feature = "api-12")]
1317    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1318    pub fn OH_Input_InjectTouchEvent(touchEvent: *const Input_TouchEvent) -> i32;
1319    /// Inject touch event using global coordinate.
1320    /// since API 20, it is recommended to use OH_Input_RequestInjection
1321    /// to request authorization before using the interface,
1322    /// and then use OH_Input_QueryAuthorizedStatus to query the authorization status.
1323    /// When the authorization status is AUTHORIZED, use the interface.
1324    ///
1325    /// # Arguments
1326    ///
1327    /// * `touchEvent` - - the touch event to be injected, set up effective globalX globalY.
1328    ///
1329    /// # Returns
1330    ///
1331    /// * OH_Input_InjectTouchEventGlobal function result code.
1332    /// [`INPUT_SUCCESS`] inject touchEvent success.
1333    ///
1334    /// [`INPUT_PARAMETER_ERROR`] Parameter check failed.
1335    ///
1336    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
1337    ///
1338    ///
1339    /// Available since API-level: 20
1340    #[cfg(feature = "api-20")]
1341    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1342    pub fn OH_Input_InjectTouchEventGlobal(touchEvent: *const Input_TouchEvent) -> i32;
1343    /// Creates a touch event object.
1344    ///
1345    ///
1346    /// # Returns
1347    ///
1348    /// * Returns an [`Input_TouchEvent`] pointer object if the operation is successful.
1349    /// Otherwise, a null pointer is returned. The possible cause is memory allocation failure.
1350    ///
1351    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1352    ///
1353    /// Available since API-level: 12
1354    #[cfg(feature = "api-12")]
1355    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1356    pub fn OH_Input_CreateTouchEvent() -> *mut Input_TouchEvent;
1357    /// Destroys a touch event object.
1358    ///
1359    /// # Arguments
1360    ///
1361    /// * `touchEvent` - Touch event object.
1362    ///
1363    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1364    ///
1365    /// Available since API-level: 12
1366    #[cfg(feature = "api-12")]
1367    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1368    pub fn OH_Input_DestroyTouchEvent(touchEvent: *mut *mut Input_TouchEvent);
1369    /// Sets the action for a touch event.
1370    ///
1371    /// # Arguments
1372    ///
1373    /// * `touchEvent` - Touch event object.
1374    ///
1375    /// * `action` - Touch action.
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_SetTouchEventAction(touchEvent: *mut Input_TouchEvent, action: i32);
1383    /// Obtains the action of a touch event.
1384    ///
1385    /// # Arguments
1386    ///
1387    /// * `touchEvent` - Touch event object.
1388    ///
1389    /// # Returns
1390    ///
1391    /// * Touch action.
1392    ///
1393    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1394    ///
1395    /// Available since API-level: 12
1396    #[cfg(feature = "api-12")]
1397    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1398    pub fn OH_Input_GetTouchEventAction(touchEvent: *const Input_TouchEvent) -> i32;
1399    /// Sets the finger ID for the touch event.
1400    ///
1401    /// # Arguments
1402    ///
1403    /// * `touchEvent` - Touch event object.
1404    ///
1405    /// * `id` - Finger ID.
1406    ///
1407    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1408    ///
1409    /// Available since API-level: 12
1410    #[cfg(feature = "api-12")]
1411    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1412    pub fn OH_Input_SetTouchEventFingerId(touchEvent: *mut Input_TouchEvent, id: i32);
1413    /// Obtains the finger ID of a touch event.
1414    ///
1415    /// # Arguments
1416    ///
1417    /// * `touchEvent` - Touch event object.
1418    ///
1419    /// # Returns
1420    ///
1421    /// * Finger ID.
1422    ///
1423    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1424    ///
1425    /// Available since API-level: 12
1426    #[cfg(feature = "api-12")]
1427    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1428    pub fn OH_Input_GetTouchEventFingerId(touchEvent: *const Input_TouchEvent) -> i32;
1429    /// Sets the X coordinate for a touch event.
1430    ///
1431    /// # Arguments
1432    ///
1433    /// * `touchEvent` - Touch event object.
1434    ///
1435    /// * `displayX` - X coordinate.
1436    ///
1437    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1438    ///
1439    /// Available since API-level: 12
1440    #[cfg(feature = "api-12")]
1441    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1442    pub fn OH_Input_SetTouchEventDisplayX(touchEvent: *mut Input_TouchEvent, displayX: i32);
1443    /// Obtains the X coordinate of a touch event.
1444    ///
1445    /// # Arguments
1446    ///
1447    /// * `touchEvent` - Touch event object.
1448    ///
1449    /// # Returns
1450    ///
1451    /// * X coordinate.
1452    ///
1453    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1454    ///
1455    /// Available since API-level: 12
1456    #[cfg(feature = "api-12")]
1457    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1458    pub fn OH_Input_GetTouchEventDisplayX(touchEvent: *const Input_TouchEvent) -> i32;
1459    /// Sets the Y coordinate for a touch event.
1460    ///
1461    /// # Arguments
1462    ///
1463    /// * `touchEvent` - Touch event object.
1464    ///
1465    /// * `displayY` - Y coordinate.
1466    ///
1467    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1468    ///
1469    /// Available since API-level: 12
1470    #[cfg(feature = "api-12")]
1471    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1472    pub fn OH_Input_SetTouchEventDisplayY(touchEvent: *mut Input_TouchEvent, displayY: i32);
1473    /// Obtains the Y coordinate of a touch event.
1474    ///
1475    /// # Arguments
1476    ///
1477    /// * `touchEvent` - Touch event object.
1478    ///
1479    /// # Returns
1480    ///
1481    /// * Y coordinate.
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_GetTouchEventDisplayY(touchEvent: *const Input_TouchEvent) -> i32;
1489    /// Sets the time when a touch event occurs.
1490    ///
1491    /// # Arguments
1492    ///
1493    /// * `touchEvent` - Touch event object.
1494    ///
1495    /// * `actionTime` - Time when the touch event occurs.
1496    ///
1497    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1498    ///
1499    /// Available since API-level: 12
1500    #[cfg(feature = "api-12")]
1501    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1502    pub fn OH_Input_SetTouchEventActionTime(touchEvent: *mut Input_TouchEvent, actionTime: i64);
1503    /// Obtains the time when a touch event occurs.
1504    ///
1505    /// # Arguments
1506    ///
1507    /// * `touchEvent` - touch event object.
1508    ///
1509    /// # Returns
1510    ///
1511    /// * Returns the time when the touch event occurs.
1512    ///
1513    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1514    ///
1515    /// Available since API-level: 12
1516    #[cfg(feature = "api-12")]
1517    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1518    pub fn OH_Input_GetTouchEventActionTime(touchEvent: *const Input_TouchEvent) -> i64;
1519    /// Sets the windowId for a touch event.
1520    ///
1521    /// # Arguments
1522    ///
1523    /// * `touchEvent` - Touch event object.
1524    ///
1525    /// * `windowId` - The windowId for a touch event.
1526    ///
1527    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1528    ///
1529    /// Available since API-level: 15
1530    #[cfg(feature = "api-15")]
1531    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
1532    pub fn OH_Input_SetTouchEventWindowId(touchEvent: *mut Input_TouchEvent, windowId: i32);
1533    /// Obtains the windowId of a touch event.
1534    ///
1535    /// # Arguments
1536    ///
1537    /// * `touchEvent` - Touch event object.
1538    ///
1539    /// # Returns
1540    ///
1541    /// * windowId.
1542    ///
1543    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1544    ///
1545    /// Available since API-level: 15
1546    #[cfg(feature = "api-15")]
1547    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
1548    pub fn OH_Input_GetTouchEventWindowId(touchEvent: *const Input_TouchEvent) -> i32;
1549    /// Sets the displayId for a touch event.
1550    ///
1551    /// # Arguments
1552    ///
1553    /// * `touchEvent` - Touch event object.
1554    ///
1555    /// * `displayId` - The displayId for a touch event.
1556    ///
1557    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1558    ///
1559    /// Available since API-level: 15
1560    #[cfg(feature = "api-15")]
1561    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
1562    pub fn OH_Input_SetTouchEventDisplayId(touchEvent: *mut Input_TouchEvent, displayId: i32);
1563    /// Obtains the displayId of a touch event.
1564    ///
1565    /// # Arguments
1566    ///
1567    /// * `touchEvent` - Touch event object.
1568    ///
1569    /// # Returns
1570    ///
1571    /// * displayId.
1572    ///
1573    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1574    ///
1575    /// Available since API-level: 15
1576    #[cfg(feature = "api-15")]
1577    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
1578    pub fn OH_Input_GetTouchEventDisplayId(touchEvent: *const Input_TouchEvent) -> i32;
1579    /// Set the global X coordinate of the touch event.
1580    ///
1581    /// # Arguments
1582    ///
1583    /// * `touchEvent` - Touch event object.
1584    ///
1585    /// * `globalX` - Global X coordinate.
1586    ///
1587    /// Available since API-level: 20
1588    #[cfg(feature = "api-20")]
1589    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1590    pub fn OH_Input_SetTouchEventGlobalX(touchEvent: *mut Input_TouchEvent, globalX: i32);
1591    /// Queries the global X coordinate of the touch event.
1592    ///
1593    /// # Arguments
1594    ///
1595    /// * `touchEvent` - Touch event object.
1596    ///
1597    /// # Returns
1598    ///
1599    /// * Global X coordinate.
1600    ///
1601    /// Available since API-level: 20
1602    #[cfg(feature = "api-20")]
1603    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1604    pub fn OH_Input_GetTouchEventGlobalX(touchEvent: *const Input_TouchEvent) -> i32;
1605    /// Set the global Y coordinate of the touch event.
1606    ///
1607    /// # Arguments
1608    ///
1609    /// * `touchEvent` - Touch event object.
1610    ///
1611    /// * `globalY` - Global Y coordinate.
1612    ///
1613    /// Available since API-level: 20
1614    #[cfg(feature = "api-20")]
1615    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1616    pub fn OH_Input_SetTouchEventGlobalY(touchEvent: *mut Input_TouchEvent, globalY: i32);
1617    /// Queries the global Y coordinate of the touch event.
1618    ///
1619    /// # Arguments
1620    ///
1621    /// * `touchEvent` - Touch event object.
1622    ///
1623    /// # Returns
1624    ///
1625    /// * Global Y coordinate.
1626    ///
1627    /// Available since API-level: 20
1628    #[cfg(feature = "api-20")]
1629    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1630    pub fn OH_Input_GetTouchEventGlobalY(touchEvent: *const Input_TouchEvent) -> i32;
1631    /// Cancels event injection and revokes authorization.
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_CancelInjection();
1640    /// Requests for injection authorization.
1641    ///
1642    /// # Arguments
1643    ///
1644    /// * `callback` - - callback used to return the result.
1645    ///
1646    /// # Returns
1647    ///
1648    /// * OH_Input_RequestInjection function result code.
1649    /// [`INPUT_SUCCESS`] Success.
1650    ///
1651    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
1652    ///
1653    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
1654    ///
1655    /// [`INPUT_SERVICE_EXCEPTION`] Service error.
1656    ///
1657    /// [`INPUT_INJECTION_AUTHORIZING`] Authorizing.
1658    ///
1659    /// [`INPUT_INJECTION_OPERATION_FREQUENT`] Too many operations.
1660    ///
1661    /// [`INPUT_INJECTION_AUTHORIZED`] Authorized.
1662    ///
1663    /// [`INPUT_INJECTION_AUTHORIZED_OTHERS`] Authorized to other applications.
1664    ///
1665    ///
1666    /// Available since API-level: 20
1667    #[cfg(feature = "api-20")]
1668    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1669    pub fn OH_Input_RequestInjection(callback: Input_InjectAuthorizeCallback) -> Input_Result;
1670    /// Queries the injection authorization status.
1671    ///
1672    /// # Arguments
1673    ///
1674    /// * `status` - Injection authorization status. For details, see [`Input_InjectionStatus`].
1675    ///
1676    /// # Returns
1677    ///
1678    /// * OH_Input_QueryAuthorizedStatus function result code.
1679    /// [`INPUT_SUCCESS`] Success.
1680    ///
1681    /// [`INPUT_PARAMETER_ERROR`] The status is NULL
1682    ///
1683    /// [`INPUT_SERVICE_EXCEPTION`] Service error.
1684    ///
1685    ///
1686    /// Available since API-level: 20
1687    #[cfg(feature = "api-20")]
1688    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
1689    pub fn OH_Input_QueryAuthorizedStatus(status: *mut Input_InjectionStatus) -> Input_Result;
1690    /// Creates an axis event object.
1691    ///
1692    ///
1693    /// # Returns
1694    ///
1695    /// * If the operation is successful, a [`Input_AxisEvent`] object is returned.
1696    /// If the operation fails, null is returned.
1697    ///
1698    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1699    ///
1700    /// Available since API-level: 12
1701    #[cfg(feature = "api-12")]
1702    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1703    pub fn OH_Input_CreateAxisEvent() -> *mut Input_AxisEvent;
1704    /// Destroys an axis event object.
1705    ///
1706    /// # Arguments
1707    ///
1708    /// * `axisEvent` - Pointer to the axis event object.
1709    ///
1710    /// # Returns
1711    ///
1712    /// * OH_Input_DestroyAxisEvent function result code.
1713    /// [`INPUT_SUCCESS`] Destroys axisEvent success.
1714    ///
1715    /// [`INPUT_PARAMETER_ERROR`]The axisEvent is NULL or the *axisEvent is NULL.
1716    ///
1717    ///
1718    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1719    ///
1720    /// Available since API-level: 12
1721    #[cfg(feature = "api-12")]
1722    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1723    pub fn OH_Input_DestroyAxisEvent(axisEvent: *mut *mut Input_AxisEvent) -> Input_Result;
1724    /// Sets the axis event action.
1725    ///
1726    /// # Arguments
1727    ///
1728    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1729    ///
1730    /// * `action` - Axis event action. The values are defined in [`InputEvent_AxisAction`].
1731    ///
1732    /// # Returns
1733    ///
1734    /// * OH_Input_SetAxisEventAction function result code.
1735    /// [`INPUT_SUCCESS`] Sets the axis event action success.
1736    ///
1737    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1738    ///
1739    ///
1740    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1741    ///
1742    /// Available since API-level: 12
1743    #[cfg(feature = "api-12")]
1744    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1745    pub fn OH_Input_SetAxisEventAction(
1746        axisEvent: *mut Input_AxisEvent,
1747        action: InputEvent_AxisAction,
1748    ) -> Input_Result;
1749    /// Obtains the axis event action.
1750    ///
1751    /// # Arguments
1752    ///
1753    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1754    ///
1755    /// * `action` - Axis event action. The values are defined in [`InputEvent_AxisAction`].
1756    ///
1757    /// # Returns
1758    ///
1759    /// * OH_Input_GetAxisEventAction function result code.
1760    /// [`INPUT_SUCCESS`] Obtains the axis event action success.
1761    ///
1762    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the action is NULL.
1763    ///
1764    ///
1765    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1766    ///
1767    /// Available since API-level: 12
1768    #[cfg(feature = "api-12")]
1769    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1770    pub fn OH_Input_GetAxisEventAction(
1771        axisEvent: *const Input_AxisEvent,
1772        action: *mut InputEvent_AxisAction,
1773    ) -> Input_Result;
1774    /// Sets the X coordinate of an axis event.
1775    ///
1776    /// # Arguments
1777    ///
1778    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1779    ///
1780    /// * `displayX` - X coordinate of the axis event.
1781    ///
1782    /// # Returns
1783    ///
1784    /// * OH_Input_SetAxisEventDisplayX function result code.
1785    /// [`INPUT_SUCCESS`] Sets the X coordinate of the axis event success.
1786    ///
1787    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1788    ///
1789    ///
1790    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1791    ///
1792    /// Available since API-level: 12
1793    #[cfg(feature = "api-12")]
1794    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1795    pub fn OH_Input_SetAxisEventDisplayX(
1796        axisEvent: *mut Input_AxisEvent,
1797        displayX: f32,
1798    ) -> Input_Result;
1799    /// Obtains the X coordinate of an axis event.
1800    ///
1801    /// # Arguments
1802    ///
1803    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1804    ///
1805    /// * `displayX` - X coordinate of the axis event.
1806    ///
1807    /// # Returns
1808    ///
1809    /// * OH_Input_GetAxisEventDisplayX function result code.
1810    /// [`INPUT_SUCCESS`] Obtains the X coordinate of the axis event success.
1811    ///
1812    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the displayX is NULL.
1813    ///
1814    ///
1815    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1816    ///
1817    /// Available since API-level: 12
1818    #[cfg(feature = "api-12")]
1819    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1820    pub fn OH_Input_GetAxisEventDisplayX(
1821        axisEvent: *const Input_AxisEvent,
1822        displayX: *mut f32,
1823    ) -> Input_Result;
1824    /// Sets the Y coordinate of an axis event.
1825    ///
1826    /// # Arguments
1827    ///
1828    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1829    ///
1830    /// * `displayY` - Y coordinate of the axis event.
1831    ///
1832    /// # Returns
1833    ///
1834    /// * OH_Input_SetAxisEventDisplayY function result code.
1835    /// [`INPUT_SUCCESS`] Sets the Y coordinate of the axis event success.
1836    ///
1837    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1838    ///
1839    ///
1840    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1841    ///
1842    /// Available since API-level: 12
1843    #[cfg(feature = "api-12")]
1844    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1845    pub fn OH_Input_SetAxisEventDisplayY(
1846        axisEvent: *mut Input_AxisEvent,
1847        displayY: f32,
1848    ) -> Input_Result;
1849    /// Obtains the Y coordinate of an axis event.
1850    ///
1851    /// # Arguments
1852    ///
1853    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1854    ///
1855    /// * `displayY` - Y coordinate of the axis event.
1856    ///
1857    /// # Returns
1858    ///
1859    /// * OH_Input_GetAxisEventDisplayY function result code.
1860    /// [`INPUT_SUCCESS`] Obtains the Y coordinate of the axis event success.
1861    ///
1862    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the displayY is NULL.
1863    ///
1864    ///
1865    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1866    ///
1867    /// Available since API-level: 12
1868    #[cfg(feature = "api-12")]
1869    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1870    pub fn OH_Input_GetAxisEventDisplayY(
1871        axisEvent: *const Input_AxisEvent,
1872        displayY: *mut f32,
1873    ) -> Input_Result;
1874    /// Sets the axis value of the axis type specified by the axis event.
1875    ///
1876    /// # Arguments
1877    ///
1878    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1879    ///
1880    /// * `axisType` - Axis type. The values are defined in [`InputEvent_AxisType`].
1881    ///
1882    /// * `axisValue` - Axis value.
1883    ///
1884    /// # Returns
1885    ///
1886    /// * OH_Input_SetAxisEventAxisValue function result code.
1887    /// [`INPUT_SUCCESS`] Sets the axis value of the axis event success.
1888    ///
1889    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1890    ///
1891    ///
1892    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1893    ///
1894    /// Available since API-level: 12
1895    #[cfg(feature = "api-12")]
1896    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1897    pub fn OH_Input_SetAxisEventAxisValue(
1898        axisEvent: *mut Input_AxisEvent,
1899        axisType: InputEvent_AxisType,
1900        axisValue: f64,
1901    ) -> Input_Result;
1902    /// Obtains the axis value for the specified axis type of the axis event.
1903    ///
1904    /// # Arguments
1905    ///
1906    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1907    ///
1908    /// * `axisType` - Axis type. The values are defined in [`InputEvent_AxisType`].
1909    ///
1910    /// * `axisValue` - Axis value.
1911    ///
1912    /// # Returns
1913    ///
1914    /// * OH_Input_GetAxisEventAxisValue function result code.
1915    /// [`INPUT_SUCCESS`] Obtains the axis value of the axis event success.
1916    ///
1917    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the axisValue is NULL,
1918    /// or the axisType not found in the axisEvent.
1919    ///
1920    ///
1921    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1922    ///
1923    /// Available since API-level: 12
1924    #[cfg(feature = "api-12")]
1925    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1926    pub fn OH_Input_GetAxisEventAxisValue(
1927        axisEvent: *const Input_AxisEvent,
1928        axisType: InputEvent_AxisType,
1929        axisValue: *mut f64,
1930    ) -> Input_Result;
1931    /// Sets the time when an axis event occurs.
1932    ///
1933    /// # Arguments
1934    ///
1935    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1936    ///
1937    /// * `actionTime` - Time when an axis event occurs.
1938    ///
1939    /// # Returns
1940    ///
1941    /// * OH_Input_SetAxisEventActionTime function result code.
1942    /// [`INPUT_SUCCESS`] Sets the time when an axis event occurs success.
1943    ///
1944    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1945    ///
1946    ///
1947    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1948    ///
1949    /// Available since API-level: 12
1950    #[cfg(feature = "api-12")]
1951    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1952    pub fn OH_Input_SetAxisEventActionTime(
1953        axisEvent: *mut Input_AxisEvent,
1954        actionTime: i64,
1955    ) -> Input_Result;
1956    /// Obtains the time when an axis event occurs.
1957    ///
1958    /// # Arguments
1959    ///
1960    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1961    ///
1962    /// * `actionTime` - Time when an axis event occurs.
1963    ///
1964    /// # Returns
1965    ///
1966    /// * OH_Input_GetAxisEventActionTime function result code.
1967    /// [`INPUT_SUCCESS`] Obtains the time when an axis event occurs success.
1968    ///
1969    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the actionTime is NULL.
1970    ///
1971    ///
1972    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1973    ///
1974    /// Available since API-level: 12
1975    #[cfg(feature = "api-12")]
1976    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
1977    pub fn OH_Input_GetAxisEventActionTime(
1978        axisEvent: *const Input_AxisEvent,
1979        actionTime: *mut i64,
1980    ) -> Input_Result;
1981    /// Sets the axis event type.
1982    ///
1983    /// # Arguments
1984    ///
1985    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
1986    ///
1987    /// * `axisEventType` - Axis event type. The values are defined in [`InputEvent_AxisEventType`].
1988    ///
1989    /// # Returns
1990    ///
1991    /// * OH_Input_SetAxisEventType function result code.
1992    /// [`INPUT_SUCCESS`] Sets the axis event type success.
1993    ///
1994    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
1995    ///
1996    ///
1997    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
1998    ///
1999    /// Available since API-level: 12
2000    #[cfg(feature = "api-12")]
2001    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2002    pub fn OH_Input_SetAxisEventType(
2003        axisEvent: *mut Input_AxisEvent,
2004        axisEventType: InputEvent_AxisEventType,
2005    ) -> Input_Result;
2006    /// Obtains the axis event type.
2007    ///
2008    /// # Arguments
2009    ///
2010    /// * `axisEvent` - Axis event object.
2011    ///
2012    /// * `axisEventType` - Axis event type. The values are defined in [`InputEvent_AxisEventType`].
2013    ///
2014    /// # Returns
2015    ///
2016    /// * OH_Input_GetAxisEventType function result code.
2017    /// [`INPUT_SUCCESS`] Obtains the axis event type success.
2018    ///
2019    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the axisEventType is NULL.
2020    ///
2021    ///
2022    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2023    ///
2024    /// Available since API-level: 12
2025    #[cfg(feature = "api-12")]
2026    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2027    pub fn OH_Input_GetAxisEventType(
2028        axisEvent: *const Input_AxisEvent,
2029        axisEventType: *mut InputEvent_AxisEventType,
2030    ) -> Input_Result;
2031    /// Sets the axis event source type.
2032    ///
2033    /// # Arguments
2034    ///
2035    /// * `axisEvent` - Axis event object.
2036    ///
2037    /// * `sourceType` - Axis event source type. The values are defined in [`InputEvent_SourceType`].
2038    ///
2039    /// # Returns
2040    ///
2041    /// * OH_Input_SetAxisEventSourceType function result code.
2042    /// [`INPUT_SUCCESS`] Sets the axis event source type success.
2043    ///
2044    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
2045    ///
2046    ///
2047    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2048    ///
2049    /// Available since API-level: 12
2050    #[cfg(feature = "api-12")]
2051    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2052    pub fn OH_Input_SetAxisEventSourceType(
2053        axisEvent: *mut Input_AxisEvent,
2054        sourceType: InputEvent_SourceType,
2055    ) -> Input_Result;
2056    /// Obtains the axis event source type.
2057    ///
2058    /// # Arguments
2059    ///
2060    /// * `axisEvent` - Axis event object.
2061    ///
2062    /// * `sourceType` - Axis event source type. The values are defined in [`InputEvent_SourceType`].
2063    ///
2064    /// # Returns
2065    ///
2066    /// * OH_Input_GetAxisEventSourceType function result code.
2067    /// [`INPUT_SUCCESS`] Obtains the axis event source type success.
2068    ///
2069    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the sourceType is NULL.
2070    ///
2071    ///
2072    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2073    ///
2074    /// Available since API-level: 12
2075    #[cfg(feature = "api-12")]
2076    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2077    pub fn OH_Input_GetAxisEventSourceType(
2078        axisEvent: *const Input_AxisEvent,
2079        sourceType: *mut InputEvent_SourceType,
2080    ) -> Input_Result;
2081    /// Sets the windowId of an axis event.
2082    ///
2083    /// # Arguments
2084    ///
2085    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
2086    ///
2087    /// * `windowId` - The windowId for the axis event.
2088    ///
2089    /// # Returns
2090    ///
2091    /// * OH_Input_SetAxisEventWindowId function result code.
2092    /// [`INPUT_SUCCESS`] Sets the Y coordinate of the axis event success.
2093    ///
2094    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
2095    ///
2096    ///
2097    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2098    ///
2099    /// Available since API-level: 15
2100    #[cfg(feature = "api-15")]
2101    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
2102    pub fn OH_Input_SetAxisEventWindowId(
2103        axisEvent: *mut Input_AxisEvent,
2104        windowId: i32,
2105    ) -> Input_Result;
2106    /// Obtains the windowId of an axis event.
2107    ///
2108    /// # Arguments
2109    ///
2110    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
2111    ///
2112    /// * `windowId` - The windowId for the axis event.
2113    ///
2114    /// # Returns
2115    ///
2116    /// * OH_Input_GetAxisEventWindowId function result code.
2117    /// [`INPUT_SUCCESS`] Obtains the Y coordinate of the axis event success.
2118    ///
2119    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the displayY is NULL.
2120    ///
2121    ///
2122    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2123    ///
2124    /// Available since API-level: 15
2125    #[cfg(feature = "api-15")]
2126    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
2127    pub fn OH_Input_GetAxisEventWindowId(
2128        axisEvent: *const Input_AxisEvent,
2129        windowId: *mut i32,
2130    ) -> Input_Result;
2131    /// Sets the displayId of an axis event.
2132    ///
2133    /// # Arguments
2134    ///
2135    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
2136    ///
2137    /// * `displayId` - The displayId for the axis event.
2138    ///
2139    /// # Returns
2140    ///
2141    /// * OH_Input_SetAxisEventDisplayId function result code.
2142    /// [`INPUT_SUCCESS`] Sets the Y coordinate of the axis event success.
2143    ///
2144    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
2145    ///
2146    ///
2147    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2148    ///
2149    /// Available since API-level: 15
2150    #[cfg(feature = "api-15")]
2151    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
2152    pub fn OH_Input_SetAxisEventDisplayId(
2153        axisEvent: *mut Input_AxisEvent,
2154        displayId: i32,
2155    ) -> Input_Result;
2156    /// Obtains the displayId of an axis event.
2157    ///
2158    /// # Arguments
2159    ///
2160    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
2161    ///
2162    /// * `displayId` - The displayId for the axis event.
2163    ///
2164    /// # Returns
2165    ///
2166    /// * OH_Input_GetAxisEventDisplayId function result code.
2167    /// [`INPUT_SUCCESS`] Obtains the Y coordinate of the axis event success.
2168    ///
2169    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the displayY is NULL.
2170    ///
2171    ///
2172    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2173    ///
2174    /// Available since API-level: 15
2175    #[cfg(feature = "api-15")]
2176    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
2177    pub fn OH_Input_GetAxisEventDisplayId(
2178        axisEvent: *const Input_AxisEvent,
2179        displayId: *mut i32,
2180    ) -> Input_Result;
2181    /// Set the global X coordinate of the axis event.
2182    ///
2183    /// # Arguments
2184    ///
2185    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
2186    ///
2187    /// * `globalX` - Global X coordinate.
2188    ///
2189    /// # Returns
2190    ///
2191    /// * OH_Input_SetAxisEventGlobalX function result code.
2192    /// [`INPUT_SUCCESS`] Success.
2193    ///
2194    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
2195    ///
2196    ///
2197    /// Available since API-level: 20
2198    #[cfg(feature = "api-20")]
2199    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
2200    pub fn OH_Input_SetAxisEventGlobalX(
2201        axisEvent: *mut Input_AxisEvent,
2202        globalX: i32,
2203    ) -> Input_Result;
2204    /// Queries the global X coordinate of the axis event.
2205    ///
2206    /// # Arguments
2207    ///
2208    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
2209    ///
2210    /// * `globalX` - Global X coordinate.
2211    ///
2212    /// # Returns
2213    ///
2214    /// * OH_Input_GetAxisEventGlobalX function result code.
2215    /// [`INPUT_SUCCESS`] Success.
2216    ///
2217    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the globalX is NULL.
2218    ///
2219    ///
2220    /// Available since API-level: 20
2221    #[cfg(feature = "api-20")]
2222    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
2223    pub fn OH_Input_GetAxisEventGlobalX(
2224        axisEvent: *const Input_AxisEvent,
2225        globalX: *mut i32,
2226    ) -> Input_Result;
2227    /// Set the global Y coordinate of the axis event.
2228    ///
2229    /// # Arguments
2230    ///
2231    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
2232    ///
2233    /// * `globalY` - Global Y coordinate.
2234    ///
2235    /// # Returns
2236    ///
2237    /// * OH_Input_SetAxisEventGlobalY function result code.
2238    /// [`INPUT_SUCCESS`] Success.
2239    ///
2240    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL.
2241    ///
2242    ///
2243    /// Available since API-level: 20
2244    #[cfg(feature = "api-20")]
2245    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
2246    pub fn OH_Input_SetAxisEventGlobalY(
2247        axisEvent: *mut Input_AxisEvent,
2248        globalY: i32,
2249    ) -> Input_Result;
2250    /// Queries the global Y coordinate of the axis event.
2251    ///
2252    /// # Arguments
2253    ///
2254    /// * `axisEvent` - Axis event object. For details, see [`Input_AxisEvent`].
2255    ///
2256    /// * `globalY` - Global Y coordinate.
2257    ///
2258    /// # Returns
2259    ///
2260    /// * OH_Input_GetAxisEventGlobalY function result code.
2261    /// [`INPUT_SUCCESS`] Success.
2262    ///
2263    /// [`INPUT_PARAMETER_ERROR`] The axisEvent is NULL or the globalY is NULL.
2264    ///
2265    ///
2266    /// Available since API-level: 20
2267    #[cfg(feature = "api-20")]
2268    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
2269    pub fn OH_Input_GetAxisEventGlobalY(
2270        axisEvent: *const Input_AxisEvent,
2271        globalY: *mut i32,
2272    ) -> Input_Result;
2273    /// Adds a listener of key events.
2274    ///
2275    /// ohos.permission.INPUT_MONITORING
2276    /// # Arguments
2277    ///
2278    /// * `callback` - - Callback used to receive key events.
2279    ///
2280    /// # Returns
2281    ///
2282    /// * OH_Input_AddKeyEventMonitor function result code.
2283    /// [`INPUT_SUCCESS`] Adds a listener of key events success.
2284    ///
2285    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2286    ///
2287    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
2288    ///
2289    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
2290    ///
2291    ///
2292    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2293    ///
2294    /// Available since API-level: 12
2295    #[cfg(feature = "api-12")]
2296    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2297    pub fn OH_Input_AddKeyEventMonitor(callback: Input_KeyEventCallback) -> Input_Result;
2298    /// Adds a listener for mouse events, including mouse click and movement events,
2299    /// but not scroll wheel events. Scroll wheel events are axis events.
2300    ///
2301    /// ohos.permission.INPUT_MONITORING
2302    /// # Arguments
2303    ///
2304    /// * `callback` - - Callback used to receive mouse events.
2305    ///
2306    /// # Returns
2307    ///
2308    /// * OH_Input_AddMouseEventMonitor function result code.
2309    /// [`INPUT_SUCCESS`] Adds a listener of mouse events success.
2310    ///
2311    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2312    ///
2313    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
2314    ///
2315    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
2316    ///
2317    ///
2318    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2319    ///
2320    /// Available since API-level: 12
2321    #[cfg(feature = "api-12")]
2322    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2323    pub fn OH_Input_AddMouseEventMonitor(callback: Input_MouseEventCallback) -> Input_Result;
2324    /// Add a listener for touch events.
2325    ///
2326    /// ohos.permission.INPUT_MONITORING
2327    /// # Arguments
2328    ///
2329    /// * `callback` - - Callback used to receive touch events.
2330    ///
2331    /// # Returns
2332    ///
2333    /// * OH_Input_AddTouchEventMonitor function result code.
2334    /// [`INPUT_SUCCESS`] Adds a listener of touch events success.
2335    ///
2336    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2337    ///
2338    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
2339    ///
2340    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
2341    ///
2342    ///
2343    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2344    ///
2345    /// Available since API-level: 12
2346    #[cfg(feature = "api-12")]
2347    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2348    pub fn OH_Input_AddTouchEventMonitor(callback: Input_TouchEventCallback) -> Input_Result;
2349    /// Adds a listener for all types of axis events.
2350    /// The axis event types are defined in [`InputEvent_AxisEventType`].
2351    ///
2352    /// ohos.permission.INPUT_MONITORING
2353    /// # Arguments
2354    ///
2355    /// * `callback` - - Callback used to receive axis events.
2356    ///
2357    /// # Returns
2358    ///
2359    /// * OH_Input_AddAxisEventMonitorForAll function result code.
2360    /// [`INPUT_SUCCESS`] Adds a listener for all types of axis events success.
2361    ///
2362    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2363    ///
2364    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
2365    ///
2366    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
2367    ///
2368    ///
2369    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2370    ///
2371    /// Available since API-level: 12
2372    #[cfg(feature = "api-12")]
2373    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2374    pub fn OH_Input_AddAxisEventMonitorForAll(callback: Input_AxisEventCallback) -> Input_Result;
2375    /// Adds a listener for the specified type of axis events.
2376    ///
2377    /// ohos.permission.INPUT_MONITORING
2378    /// # Arguments
2379    ///
2380    /// * `axisEventType` - - Axis event type. The values are defined in [`InputEvent_AxisEventType`].
2381    ///
2382    /// * `callback` - - Callback used to receive the specified type of axis events.
2383    ///
2384    /// # Returns
2385    ///
2386    /// * OH_Input_AddAxisEventMonitor function result code.
2387    /// [`INPUT_SUCCESS`] Adds a listener for the specified types of axis events success.
2388    ///
2389    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2390    ///
2391    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
2392    ///
2393    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the monitor because the service is exception.
2394    ///
2395    ///
2396    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2397    ///
2398    /// Available since API-level: 12
2399    #[cfg(feature = "api-12")]
2400    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2401    pub fn OH_Input_AddAxisEventMonitor(
2402        axisEventType: InputEvent_AxisEventType,
2403        callback: Input_AxisEventCallback,
2404    ) -> Input_Result;
2405    /// Removes a key event listener.
2406    ///
2407    /// ohos.permission.INPUT_MONITORING
2408    /// # Arguments
2409    ///
2410    /// * `callback` - - Callback for the key event listener.
2411    ///
2412    /// # Returns
2413    ///
2414    /// * OH_Input_RemoveKeyEventMonitor function result code.
2415    /// [`INPUT_SUCCESS`] Removes a key event listener success.
2416    ///
2417    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2418    ///
2419    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
2420    ///
2421    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
2422    ///
2423    ///
2424    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2425    ///
2426    /// Available since API-level: 12
2427    #[cfg(feature = "api-12")]
2428    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2429    pub fn OH_Input_RemoveKeyEventMonitor(callback: Input_KeyEventCallback) -> Input_Result;
2430    /// Removes a mouse event listener.
2431    ///
2432    /// ohos.permission.INPUT_MONITORING
2433    /// # Arguments
2434    ///
2435    /// * `callback` - - Callback for the mouse event listener.
2436    ///
2437    /// # Returns
2438    ///
2439    /// * OH_Input_RemoveMouseEventMonitor function result code.
2440    /// [`INPUT_SUCCESS`] Removes a mouse event listener success.
2441    ///
2442    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2443    ///
2444    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
2445    ///
2446    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
2447    ///
2448    ///
2449    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2450    ///
2451    /// Available since API-level: 12
2452    #[cfg(feature = "api-12")]
2453    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2454    pub fn OH_Input_RemoveMouseEventMonitor(callback: Input_MouseEventCallback) -> Input_Result;
2455    /// Removes a touch event listener.
2456    ///
2457    /// ohos.permission.INPUT_MONITORING
2458    /// # Arguments
2459    ///
2460    /// * `callback` - - Callback for the touch event listener.
2461    ///
2462    /// # Returns
2463    ///
2464    /// * OH_Input_RemoveTouchEventMonitor function result code.
2465    /// [`INPUT_SUCCESS`] Removes a touch event listener success.
2466    ///
2467    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2468    ///
2469    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
2470    ///
2471    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
2472    ///
2473    ///
2474    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2475    ///
2476    /// Available since API-level: 12
2477    #[cfg(feature = "api-12")]
2478    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2479    pub fn OH_Input_RemoveTouchEventMonitor(callback: Input_TouchEventCallback) -> Input_Result;
2480    /// Removes the listener for all types of axis events.
2481    ///
2482    /// ohos.permission.INPUT_MONITORING
2483    /// # Arguments
2484    ///
2485    /// * `callback` - - Callback for the listener used to listen for all types of axis events.
2486    ///
2487    /// # Returns
2488    ///
2489    /// * OH_Input_RemoveAxisEventMonitorForAll function result code.
2490    /// [`INPUT_SUCCESS`] Removes the listener for all types of axis events success.
2491    ///
2492    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2493    ///
2494    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
2495    ///
2496    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
2497    ///
2498    ///
2499    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2500    ///
2501    /// Available since API-level: 12
2502    #[cfg(feature = "api-12")]
2503    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2504    pub fn OH_Input_RemoveAxisEventMonitorForAll(callback: Input_AxisEventCallback)
2505        -> Input_Result;
2506    /// Removes the listener for the specified type of axis events.
2507    ///
2508    /// ohos.permission.INPUT_MONITORING
2509    /// # Arguments
2510    ///
2511    /// * `axisEventType` - - Axis event type. The axis event type is defined in [`InputEvent_AxisEventType`].
2512    ///
2513    /// * `callback` - - Callback for the listener used to listen for the specified type of axis events.
2514    ///
2515    /// # Returns
2516    ///
2517    /// * OH_Input_RemoveAxisEventMonitor function result code.
2518    /// [`INPUT_SUCCESS`] Removes the listener for the specified type of axis events success.
2519    ///
2520    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2521    ///
2522    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL or has not been added.
2523    ///
2524    /// [`INPUT_SERVICE_EXCEPTION`] Fail to remove the monitor because the service is exception.
2525    ///
2526    ///
2527    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2528    ///
2529    /// Available since API-level: 12
2530    #[cfg(feature = "api-12")]
2531    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2532    pub fn OH_Input_RemoveAxisEventMonitor(
2533        axisEventType: InputEvent_AxisEventType,
2534        callback: Input_AxisEventCallback,
2535    ) -> Input_Result;
2536    /// Adds a key event interceptor. If multiple interceptors are added, only the first one takes effect.
2537    ///
2538    /// ohos.permission.INTERCEPT_INPUT_EVENT
2539    /// # Arguments
2540    ///
2541    /// * `callback` - - Callback used to receive key events.
2542    ///
2543    /// * `option` - - Options for event interception. If **null** is passed, the default value is used.
2544    ///
2545    /// # Returns
2546    ///
2547    /// * OH_Input_AddKeyEventInterceptor function result code.
2548    /// [`INPUT_SUCCESS`] Adds a key event interceptor success.
2549    ///
2550    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2551    ///
2552    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
2553    ///
2554    /// [`INPUT_REPEAT_INTERCEPTOR`] Interceptor repeatedly created for an application.
2555    ///
2556    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the interceptor because the service is exception.
2557    ///
2558    ///
2559    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2560    ///
2561    /// Available since API-level: 12
2562    #[cfg(feature = "api-12")]
2563    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2564    pub fn OH_Input_AddKeyEventInterceptor(
2565        callback: Input_KeyEventCallback,
2566        option: *mut Input_InterceptorOptions,
2567    ) -> Input_Result;
2568    /// Adds an interceptor for input events, including mouse, touch, and axis events.
2569    /// If multiple interceptors are added, only the first one takes effect.
2570    ///
2571    /// ohos.permission.INTERCEPT_INPUT_EVENT
2572    /// # Arguments
2573    ///
2574    /// * `callback` - - Pointer to the structure of the callback for the input event interceptor.
2575    /// For details, see [`Input_InterceptorEventCallback`].
2576    ///
2577    /// * `option` - - Options for event interception. If **null** is passed, the default value is used.
2578    ///
2579    /// # Returns
2580    ///
2581    /// * OH_Input_AddInputEventInterceptor function result code.
2582    /// [`INPUT_SUCCESS`] Adds an interceptor for input events success.
2583    ///
2584    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2585    ///
2586    /// [`INPUT_PARAMETER_ERROR`] The callback is NULL.
2587    ///
2588    /// [`INPUT_REPEAT_INTERCEPTOR`] Interceptor repeatedly created for an application.
2589    ///
2590    /// [`INPUT_SERVICE_EXCEPTION`] Failed to add the interceptor because the service is exception.
2591    ///
2592    ///
2593    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2594    ///
2595    /// Available since API-level: 12
2596    #[cfg(feature = "api-12")]
2597    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2598    pub fn OH_Input_AddInputEventInterceptor(
2599        callback: *mut Input_InterceptorEventCallback,
2600        option: *mut Input_InterceptorOptions,
2601    ) -> Input_Result;
2602    /// Removes a key event interceptor.
2603    ///
2604    /// ohos.permission.INTERCEPT_INPUT_EVENT
2605    ///
2606    /// # Returns
2607    ///
2608    /// * OH_Input_RemoveKeyEventInterceptor function result code.
2609    /// [`INPUT_SUCCESS`]Removes a key event interceptor success.
2610    ///
2611    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2612    ///
2613    /// [`INPUT_SERVICE_EXCEPTION`] Failed to remove the interceptor because the service is exception.
2614    ///
2615    ///
2616    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2617    ///
2618    /// Available since API-level: 12
2619    #[cfg(feature = "api-12")]
2620    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2621    pub fn OH_Input_RemoveKeyEventInterceptor() -> Input_Result;
2622    /// Removes an interceptor for input events, including mouse, touch, and axis events.
2623    ///
2624    /// ohos.permission.INTERCEPT_INPUT_EVENT
2625    ///
2626    /// # Returns
2627    ///
2628    /// * OH_Input_RemoveInputEventInterceptor function result code.
2629    /// [`INPUT_SUCCESS`] Removes an interceptor for input events success.
2630    ///
2631    /// [`INPUT_PERMISSION_DENIED`] Permission verification failed.
2632    ///
2633    /// [`INPUT_SERVICE_EXCEPTION`] Failed to remove the interceptor because the service is exception.
2634    ///
2635    ///
2636    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2637    ///
2638    /// Available since API-level: 12
2639    #[cfg(feature = "api-12")]
2640    #[cfg_attr(docsrs, doc(cfg(feature = "api-12")))]
2641    pub fn OH_Input_RemoveInputEventInterceptor() -> Input_Result;
2642    /// Obtains the interval since the last system input event.
2643    ///
2644    /// # Arguments
2645    ///
2646    /// * `timeInterval` - Interval, in microseconds.
2647    ///
2648    /// # Returns
2649    ///
2650    /// * OH_Input_GetIntervalSinceLastInput status code, specifically.
2651    /// [`INPUT_SUCCESS`] if the Operation is successful.
2652    ///
2653    /// [`INPUT_SERVICE_EXCEPTION`] Failed to get the interval because the service is exception.
2654    ///
2655    /// [`INPUT_PARAMETER_ERROR`] The timeInterval is NULL.
2656    ///
2657    ///
2658    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2659    ///
2660    /// Available since API-level: 14
2661    #[cfg(feature = "api-14")]
2662    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2663    pub fn OH_Input_GetIntervalSinceLastInput(timeInterval: *mut i64) -> Input_Result;
2664    /// Creates a hot key object.
2665    ///
2666    ///
2667    /// # Returns
2668    ///
2669    /// * Returns an [`Input_Hotkey`] pointer object if the operation is successful. Otherwise, a null pointer is
2670    /// returned. The possible cause is memory allocation failure.
2671    ///
2672    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2673    ///
2674    /// Available since API-level: 14
2675    #[cfg(feature = "api-14")]
2676    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2677    pub fn OH_Input_CreateHotkey() -> *mut Input_Hotkey;
2678    /// Destroys a hot key object.
2679    ///
2680    /// # Arguments
2681    ///
2682    /// * `hotkey` - Hot key object.
2683    ///
2684    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2685    ///
2686    /// Available since API-level: 14
2687    #[cfg(feature = "api-14")]
2688    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2689    pub fn OH_Input_DestroyHotkey(hotkey: *mut *mut Input_Hotkey);
2690    /// Sets a modifier key.
2691    ///
2692    /// # Arguments
2693    ///
2694    /// * `hotkey` - Hotkey key object.
2695    ///
2696    /// * `preKeys` - List of modifier keys.
2697    ///
2698    /// * `size` - Number of modifier keys. One or two modifier keys are supported.
2699    ///
2700    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2701    ///
2702    /// Available since API-level: 14
2703    #[cfg(feature = "api-14")]
2704    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2705    pub fn OH_Input_SetPreKeys(hotkey: *mut Input_Hotkey, preKeys: *mut i32, size: i32);
2706    /// Obtains a modifier key.
2707    ///
2708    /// # Arguments
2709    ///
2710    /// * `hotkey` - Hotkey key object.
2711    ///
2712    /// * `preKeys` - List of modifier keys.
2713    ///
2714    /// * `preKeyCount` - Number of modifier keys.
2715    ///
2716    /// # Returns
2717    ///
2718    /// * OH_Input_GetPreKeys status code, specifically,
2719    /// [`INPUT_SUCCESS`] if the operation is successful;
2720    ///
2721    /// [`INPUT_PARAMETER_ERROR`] The hotkey is NULL or the pressedKeys is NULL or the pressedKeyCount
2722    /// is NULL;
2723    ///
2724    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2725    ///
2726    ///
2727    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2728    ///
2729    /// Available since API-level: 14
2730    #[cfg(feature = "api-14")]
2731    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2732    pub fn OH_Input_GetPreKeys(
2733        hotkey: *const Input_Hotkey,
2734        preKeys: *mut *mut i32,
2735        preKeyCount: *mut i32,
2736    ) -> Input_Result;
2737    /// Sets a modified key.
2738    ///
2739    /// # Arguments
2740    ///
2741    /// * `hotkey` - Hotkey key object.
2742    ///
2743    /// * `finalKey` - Modified key. Only one modified key is supported.
2744    ///
2745    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2746    ///
2747    /// Available since API-level: 14
2748    #[cfg(feature = "api-14")]
2749    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2750    pub fn OH_Input_SetFinalKey(hotkey: *mut Input_Hotkey, finalKey: i32);
2751    /// Obtains a modified key.
2752    ///
2753    /// # Arguments
2754    ///
2755    /// * `hotkey` - Hotkey key object.
2756    ///
2757    /// * `finalKeyCode` - Returns the key value of the decorated key.
2758    ///
2759    /// # Returns
2760    ///
2761    /// * OH_Input_GetFinalKey status code, specifically,
2762    /// [`INPUT_SUCCESS`] if the operation is successful;
2763    ///
2764    /// [`INPUT_PARAMETER_ERROR`] The hotkey is NULL or the finalKeyCode is NULL;
2765    ///
2766    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2767    ///
2768    ///
2769    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2770    ///
2771    /// Available since API-level: 14
2772    #[cfg(feature = "api-14")]
2773    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2774    pub fn OH_Input_GetFinalKey(
2775        hotkey: *const Input_Hotkey,
2776        finalKeyCode: *mut i32,
2777    ) -> Input_Result;
2778    /// Creates an array of [`Input_Hotkey`] instances.
2779    ///
2780    /// # Arguments
2781    ///
2782    /// * `count` - Number of [`Input_Hotkey`] instances to be created. The count must be the same as the number of
2783    /// system shortcut keys.
2784    ///
2785    /// # Returns
2786    ///
2787    /// * Returns a pointer to an array of [`Input_Hotkey`] instances if the operation is successful. If the
2788    /// operation fails, a null pointer is returned. The possible cause is memory allocation failure or count is not equal
2789    /// to the number of system hotkeys.
2790    ///
2791    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2792    ///
2793    /// Available since API-level: 14
2794    #[cfg(feature = "api-14")]
2795    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2796    pub fn OH_Input_CreateAllSystemHotkeys(count: i32) -> *mut *mut Input_Hotkey;
2797    /// Destroys an array of [`Input_Hotkey`] instances and reclaims memory.
2798    ///
2799    /// # Arguments
2800    ///
2801    /// * `hotkeys` - Pointer to an array of [`Input_Hotkey`] instances created by the
2802    /// [`OH_Input_CreateAllSystemHotkeys`] method.
2803    ///
2804    /// * `count` - Count of the array to be destroyed, which must be the same as the number of system shortcut keys.
2805    ///
2806    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2807    ///
2808    /// Available since API-level: 14
2809    #[cfg(feature = "api-14")]
2810    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2811    pub fn OH_Input_DestroyAllSystemHotkeys(hotkeys: *mut *mut Input_Hotkey, count: i32);
2812    /// Obtains all hot keys supported by the system.
2813    ///
2814    /// # Arguments
2815    ///
2816    /// * `hotkey` - Array of [`Input_Hotkey`] instances.
2817    /// When calling this API for the first time, you can pass NULL to obtain the array length.
2818    ///
2819    /// * `count` - Number of hot keys supported by the system.
2820    ///
2821    /// # Returns
2822    ///
2823    /// * OH_Input_GetAllSystemHotkeys status code, specifically,
2824    /// [`INPUT_SUCCESS`] if the operation is successful;
2825    ///
2826    /// [`INPUT_PARAMETER_ERROR`] The hotkey or count is NULL, or the value of count does not match the number
2827    /// of system shortcut keys supported by the system;
2828    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2829    ///
2830    ///
2831    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2832    ///
2833    /// Available since API-level: 14
2834    #[cfg(feature = "api-14")]
2835    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2836    pub fn OH_Input_GetAllSystemHotkeys(
2837        hotkey: *mut *mut Input_Hotkey,
2838        count: *mut i32,
2839    ) -> Input_Result;
2840    /// Specifies whether to report repeated key events.
2841    ///
2842    /// # Arguments
2843    ///
2844    /// * `hotkey` - Shortcut key object.
2845    ///
2846    /// * `isRepeat` - Whether to report repeated key events.
2847    /// The value <b>true</b> means to report repeated key events, and the value <b>false</b> means the opposite.
2848    ///
2849    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2850    ///
2851    /// Available since API-level: 14
2852    #[cfg(feature = "api-14")]
2853    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2854    pub fn OH_Input_SetRepeat(hotkey: *mut Input_Hotkey, isRepeat: bool);
2855    /// Checks whether to report repeated key events.
2856    ///
2857    /// # Arguments
2858    ///
2859    /// * `hotkey` - Shortcut key object.
2860    ///
2861    /// * `isRepeat` - Whether a key event is repeated.
2862    ///
2863    /// # Returns
2864    ///
2865    /// * OH_Input_GetRepeat status code, specifically,
2866    /// [`INPUT_SUCCESS`] if the operation is successful;
2867    ///
2868    /// [`INPUT_PARAMETER_ERROR`] otherwise;
2869    ///
2870    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2871    ///
2872    ///
2873    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2874    ///
2875    /// Available since API-level: 14
2876    #[cfg(feature = "api-14")]
2877    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2878    pub fn OH_Input_GetRepeat(hotkey: *const Input_Hotkey, isRepeat: *mut bool) -> Input_Result;
2879    /// Subscribes to shortcut key events.
2880    ///
2881    /// # Arguments
2882    ///
2883    /// * `hotkey` - Shortcut key object.
2884    ///
2885    /// * `callback` - Callback used to return shortcut key events.
2886    ///
2887    /// # Returns
2888    ///
2889    /// * OH_Input_AddHotkeyMonitor status code, specifically,
2890    /// [`INPUT_SUCCESS`] if the operation is successful;
2891    ///
2892    /// [`INPUT_PARAMETER_ERROR`] if hotkey or callback is NULL;
2893    ///
2894    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported;
2895    ///
2896    /// [`INPUT_OCCUPIED_BY_SYSTEM`] The hotkey has been used by the system. You can call the [`GetAllSystemHotkeys`] interface to query all system shortcut keys.
2897    ///
2898    /// [`INPUT_OCCUPIED_BY_OTHER`] The hotkey has been subscribed to by another.
2899    ///
2900    ///
2901    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2902    ///
2903    /// Available since API-level: 14
2904    #[cfg(feature = "api-14")]
2905    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2906    pub fn OH_Input_AddHotkeyMonitor(
2907        hotkey: *const Input_Hotkey,
2908        callback: Input_HotkeyCallback,
2909    ) -> Input_Result;
2910    /// Unsubscribes from shortcut key events.
2911    ///
2912    /// # Arguments
2913    ///
2914    /// * `hotkey` - Shortcut key object.
2915    ///
2916    /// * `callback` - Callback used to return shortcut key events.
2917    ///
2918    /// # Returns
2919    ///
2920    /// * OH_Input_RemoveHotkeyMonitor status code, specifically,
2921    /// [`INPUT_SUCCESS`] if the operation is successful;
2922    ///
2923    /// [`INPUT_PARAMETER_ERROR`] if hotkey or callback is NULL;
2924    ///
2925    /// [`INPUT_DEVICE_NOT_SUPPORTED`] Capability not supported.
2926    ///
2927    ///
2928    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2929    ///
2930    /// Available since API-level: 14
2931    #[cfg(feature = "api-14")]
2932    #[cfg_attr(docsrs, doc(cfg(feature = "api-14")))]
2933    pub fn OH_Input_RemoveHotkeyMonitor(
2934        hotkey: *const Input_Hotkey,
2935        callback: Input_HotkeyCallback,
2936    ) -> Input_Result;
2937    /// Obtains the IDs of all input devices.
2938    ///
2939    /// # Arguments
2940    ///
2941    /// * `deviceIds` - Array of input device IDs.
2942    ///
2943    /// * `inSize` - Size of the array of input device IDs.
2944    ///
2945    /// * `outSize` - Length of the list of input device IDs. The value cannot be greater than the value of inSize.
2946    ///
2947    /// # Returns
2948    ///
2949    /// * OH_Input_GetDeviceIds result code, specifically,
2950    /// [`INPUT_SUCCESS`] if the operation is successful;
2951    /// [`INPUT_PARAMETER_ERROR`] if deviceIds or outSize is a null pointer or inSize is less than 0.
2952    ///
2953    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2954    ///
2955    /// Available since API-level: 13
2956    #[cfg(feature = "api-13")]
2957    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2958    pub fn OH_Input_GetDeviceIds(
2959        deviceIds: *mut i32,
2960        inSize: i32,
2961        outSize: *mut i32,
2962    ) -> Input_Result;
2963    /// Obtains the information about an input device.
2964    ///
2965    /// # Arguments
2966    ///
2967    /// * `deviceId` - Device ID.
2968    ///
2969    /// * `deviceInfo` - Pointer to an [`Input_DeviceInfo`] object.
2970    ///
2971    /// # Returns
2972    ///
2973    /// * OH_Input_GetDevice result code, specifically,
2974    /// [`INPUT_SUCCESS`] if the operation is successful;
2975    /// [`INPUT_PARAMETER_ERROR`] if the deviceInfo is a null pointer or the deviceId is invalid.
2976    /// You can use the [`OH_Input_GetDeviceIds`] interface to query the device IDs supported by the system.
2977    ///
2978    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2979    ///
2980    /// Available since API-level: 13
2981    #[cfg(feature = "api-13")]
2982    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
2983    pub fn OH_Input_GetDevice(
2984        deviceId: i32,
2985        deviceInfo: *mut *mut Input_DeviceInfo,
2986    ) -> Input_Result;
2987    /// Creates a deviceInfo object.
2988    ///
2989    ///
2990    /// # Returns
2991    ///
2992    /// * Pointer to an [`Input_DeviceInfo`] object if the operation is successful;
2993    /// a null pointer otherwise (possibly because of a memory allocation failure).
2994    ///
2995    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
2996    ///
2997    /// Available since API-level: 13
2998    #[cfg(feature = "api-13")]
2999    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3000    pub fn OH_Input_CreateDeviceInfo() -> *mut Input_DeviceInfo;
3001    /// Destroys a deviceInfo object.
3002    ///
3003    /// # Arguments
3004    ///
3005    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
3006    ///
3007    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3008    ///
3009    /// Available since API-level: 13
3010    #[cfg(feature = "api-13")]
3011    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3012    pub fn OH_Input_DestroyDeviceInfo(deviceInfo: *mut *mut Input_DeviceInfo);
3013    /// Obtains the keyboard type of an input device.
3014    ///
3015    /// # Arguments
3016    ///
3017    /// * `deviceId` - Device ID.
3018    ///
3019    /// * `keyboardType` - Pointer to the keyboard type of the input device.
3020    ///
3021    /// # Returns
3022    ///
3023    /// * OH_Input_GetKeyboardType result code, specifically,
3024    /// [`INPUT_SUCCESS`] if the operation is successful;
3025    /// [`INPUT_PARAMETER_ERROR`] if the device ID is invalid or keyboardType is a null pointer.
3026    ///
3027    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3028    ///
3029    /// Available since API-level: 13
3030    #[cfg(feature = "api-13")]
3031    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3032    pub fn OH_Input_GetKeyboardType(deviceId: i32, keyboardType: *mut i32) -> Input_Result;
3033    /// Obtains the ID of an input device.
3034    ///
3035    /// # Arguments
3036    ///
3037    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
3038    ///
3039    /// * `id` - Pointer to the ID of the input device.
3040    ///
3041    /// # Returns
3042    ///
3043    /// * OH_Input_GetDeviceId result code, specifically,
3044    /// [`INPUT_SUCCESS`] if the operation is successful;
3045    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or id is a null pointer.
3046    ///
3047    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3048    ///
3049    /// Available since API-level: 13
3050    #[cfg(feature = "api-13")]
3051    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3052    pub fn OH_Input_GetDeviceId(deviceInfo: *mut Input_DeviceInfo, id: *mut i32) -> Input_Result;
3053    /// Obtains the name of an input device.
3054    ///
3055    /// # Arguments
3056    ///
3057    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
3058    ///
3059    /// * `name` - Pointer to the name of the input device.
3060    ///
3061    /// # Returns
3062    ///
3063    /// * OH_Input_GetDeviceName result code, specifically,
3064    /// [`INPUT_SUCCESS`] if the operation is successful;
3065    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or name is a null pointer.
3066    ///
3067    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3068    ///
3069    /// Available since API-level: 13
3070    #[cfg(feature = "api-13")]
3071    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3072    pub fn OH_Input_GetDeviceName(
3073        deviceInfo: *mut Input_DeviceInfo,
3074        name: *mut *mut ::core::ffi::c_char,
3075    ) -> Input_Result;
3076    /// Obtains the capabilities of an input device, for example, a touchscreen, touchpad, or keyboard.
3077    ///
3078    /// # Arguments
3079    ///
3080    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
3081    ///
3082    /// * `capabilities` - Pointer to the capabilities of the input device.
3083    ///
3084    /// # Returns
3085    ///
3086    /// * OH_Input_GetCapabilities result code, specifically,
3087    /// [`INPUT_SUCCESS`] if the operation is successful;
3088    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or capabilities is a null pointer.
3089    ///
3090    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3091    ///
3092    /// Available since API-level: 13
3093    #[cfg(feature = "api-13")]
3094    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3095    pub fn OH_Input_GetCapabilities(
3096        deviceInfo: *mut Input_DeviceInfo,
3097        capabilities: *mut i32,
3098    ) -> Input_Result;
3099    /// Obtains the version information of an input device.
3100    ///
3101    /// # Arguments
3102    ///
3103    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
3104    ///
3105    /// * `version` - Pointer to the version information of the input device.
3106    ///
3107    /// # Returns
3108    ///
3109    /// * OH_Input_GetDeviceVersion result code, specifically,
3110    /// [`INPUT_SUCCESS`] if the operation is successful;
3111    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or version is a null pointer.
3112    ///
3113    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3114    ///
3115    /// Available since API-level: 13
3116    #[cfg(feature = "api-13")]
3117    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3118    pub fn OH_Input_GetDeviceVersion(
3119        deviceInfo: *mut Input_DeviceInfo,
3120        version: *mut i32,
3121    ) -> Input_Result;
3122    /// Obtains the product information of an input device.
3123    ///
3124    /// # Arguments
3125    ///
3126    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
3127    ///
3128    /// * `product` - Pointer to the product information of the input device.
3129    ///
3130    /// # Returns
3131    ///
3132    /// * OH_Input_GetDeviceProduct result code, specifically,
3133    /// [`INPUT_SUCCESS`] if the operation is successful;
3134    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or product is a null pointer.
3135    ///
3136    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3137    ///
3138    /// Available since API-level: 13
3139    #[cfg(feature = "api-13")]
3140    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3141    pub fn OH_Input_GetDeviceProduct(
3142        deviceInfo: *mut Input_DeviceInfo,
3143        product: *mut i32,
3144    ) -> Input_Result;
3145    /// Obtains the vendor information of an input device.
3146    ///
3147    /// # Arguments
3148    ///
3149    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
3150    ///
3151    /// * `vendor` - Pointer to the vendor information of the input device.
3152    ///
3153    /// # Returns
3154    ///
3155    /// * OH_Input_GetDeviceVendor result code, specifically,
3156    /// [`INPUT_SUCCESS`] if the operation is successful;
3157    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or vendor is a null pointer.
3158    ///
3159    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3160    ///
3161    /// Available since API-level: 13
3162    #[cfg(feature = "api-13")]
3163    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3164    pub fn OH_Input_GetDeviceVendor(
3165        deviceInfo: *mut Input_DeviceInfo,
3166        vendor: *mut i32,
3167    ) -> Input_Result;
3168    /// Obtains the physical address of an input device.
3169    ///
3170    /// # Arguments
3171    ///
3172    /// * `deviceInfo` - information object. For details, see [`Input_DeviceInfo`].
3173    ///
3174    /// * `address` - Pointer to the physical address of the input device.
3175    ///
3176    /// # Returns
3177    ///
3178    /// * OH_Input_GetDeviceAddress result code, specifically,
3179    /// [`INPUT_SUCCESS`] if the operation is successful;
3180    /// [`INPUT_PARAMETER_ERROR`] if deviceInfo or address is a null pointer.
3181    ///
3182    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3183    ///
3184    /// Available since API-level: 13
3185    #[cfg(feature = "api-13")]
3186    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3187    pub fn OH_Input_GetDeviceAddress(
3188        deviceInfo: *mut Input_DeviceInfo,
3189        address: *mut *mut ::core::ffi::c_char,
3190    ) -> Input_Result;
3191    /// Registers a listener for device hot swap events.
3192    ///
3193    /// # Arguments
3194    ///
3195    /// * `listener` - Pointer to an [`Input_DeviceListener`] object.
3196    ///
3197    ///
3198    /// # Returns
3199    ///
3200    /// * OH_Input_RegisterDeviceListener status code, specifically,
3201    /// [`INPUT_SUCCESS`] if the operation is successful;
3202    ///
3203    /// [`INPUT_PARAMETER_ERROR`] if listener is NULL;
3204    ///
3205    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3206    ///
3207    /// Available since API-level: 13
3208    #[cfg(feature = "api-13")]
3209    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3210    pub fn OH_Input_RegisterDeviceListener(listener: *mut Input_DeviceListener) -> Input_Result;
3211    /// Unregisters the listener for device hot swap events.
3212    ///
3213    /// # Arguments
3214    ///
3215    /// * `listener` - Pointer to the listener for device hot swap events. For details, see [`Input_DeviceListener`].
3216    ///
3217    ///
3218    /// # Returns
3219    ///
3220    /// * OH_Input_UnregisterDeviceListener status code, specifically,
3221    /// [`INPUT_SUCCESS`] if the operation is successful;
3222    ///
3223    /// [`INPUT_PARAMETER_ERROR`] if listener is NULL or no listener is registered;
3224    /// [`INPUT_SERVICE_EXCEPTION`] if the service is abnormal.
3225    ///
3226    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3227    ///
3228    /// Available since API-level: 13
3229    #[cfg(feature = "api-13")]
3230    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3231    pub fn OH_Input_UnregisterDeviceListener(listener: *mut Input_DeviceListener) -> Input_Result;
3232    /// Unregisters the listener for all device hot swap events.
3233    ///
3234    ///
3235    /// # Returns
3236    ///
3237    /// * OH_Input_UnregisterDeviceListeners status code, specifically,
3238    /// [`INPUT_SUCCESS`] if the operation is successful;
3239    ///
3240    /// [`INPUT_SERVICE_EXCEPTION`] if the service is abnormal.
3241    ///
3242    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3243    ///
3244    /// Available since API-level: 13
3245    #[cfg(feature = "api-13")]
3246    #[cfg_attr(docsrs, doc(cfg(feature = "api-13")))]
3247    pub fn OH_Input_UnregisterDeviceListeners() -> Input_Result;
3248    /// Obtains the function key status.
3249    ///
3250    /// # Arguments
3251    ///
3252    /// * `keyCode` - Function key value. Supported function keys include capsLock, NumLock, and ScrollLock.
3253    ///
3254    /// * `state` - Function key status. The value 0 indicates that the function key is disabled,
3255    /// and the value 1 indicates the opposite.
3256    ///
3257    /// # Returns
3258    ///
3259    /// * OH_Input_GetFunctionKeyState function api result code
3260    /// [`INPUT_SUCCESS`] if the operation is successful;
3261    /// [`INPUT_PARAMETER_ERROR`] if keyCode is invalid or state is a null pointer.
3262    /// [`INPUT_KEYBOARD_DEVICE_NOT_EXIST`] no keyboard device connected.
3263    ///
3264    /// Required System Capabilities: SystemCapability.MultimodalInput.Input.Core
3265    ///
3266    /// Available since API-level: 15
3267    #[cfg(feature = "api-15")]
3268    #[cfg_attr(docsrs, doc(cfg(feature = "api-15")))]
3269    pub fn OH_Input_GetFunctionKeyState(keyCode: i32, state: *mut i32) -> Input_Result;
3270    /// Queries the maximum number of touch points supported by the current device.
3271    /// If -1 is returned, the number is unknown.
3272    ///
3273    /// # Arguments
3274    ///
3275    /// * `count` - Maximum number of touch points supported.
3276    ///
3277    /// # Returns
3278    ///
3279    /// * OH_Input_QueryMaxTouchPoints function api result code
3280    /// [`INPUT_SUCCESS`] if the operation is successful;
3281    /// [`INPUT_PARAMETER_ERROR`] if count is a null pointer.
3282    ///
3283    /// Available since API-level: 20
3284    #[cfg(feature = "api-20")]
3285    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
3286    pub fn OH_Input_QueryMaxTouchPoints(count: *mut i32) -> Input_Result;
3287    /// Get pointer location.
3288    ///
3289    /// # Arguments
3290    ///
3291    /// * `displayId` - The displayId for the pointer location.
3292    ///
3293    /// * `displayX` - The displayX for the pointer location.
3294    ///
3295    /// * `displayY` - The displayY for the pointer location.
3296    ///
3297    /// # Returns
3298    ///
3299    /// * OH_Input_GetPointerLocation function api result code
3300    /// [`INPUT_SUCCESS`] if the operation is successful;
3301    /// [`INPUT_PARAMETER_ERROR`] if parameter is a null pointer;
3302    /// [`INPUT_APP_NOT_FOCUSED`] if the app is not the focused app;
3303    /// [`INPUT_DEVICE_NO_POINTER`] if the device has no pointer;
3304    /// [`INPUT_SERVICE_EXCEPTION`] if the service is exception.
3305    ///
3306    /// Available since API-level: 20
3307    #[cfg(feature = "api-20")]
3308    #[cfg_attr(docsrs, doc(cfg(feature = "api-20")))]
3309    pub fn OH_Input_GetPointerLocation(
3310        displayId: *mut i32,
3311        displayX: *mut f64,
3312        displayY: *mut f64,
3313    ) -> Input_Result;
3314}