1#![allow(non_snake_case)]
4#![allow(non_upper_case_globals)]
5#![allow(non_camel_case_types)]
6#![allow(clippy::missing_safety_doc)]
7#![allow(clippy::useless_transmute)]
9#![allow(clippy::unnecessary_cast)]
10
11pub use ohos_image_native_sys::OH_PixelmapNative;
12
13#[link(name = "ohinput")]
14unsafe extern "C" {}
15
16#[doc = " Unknown axis type, which is usually used as the initial value.\n @since 12"]
17pub const InputEvent_AxisType_AXIS_TYPE_UNKNOWN: InputEvent_AxisType = 0;
18#[doc = " Vertical scroll axis. When you scroll the mouse wheel or slide with one or two fingers on the touchpad, the\n status of the vertical scroll axis changes.\n @since 12"]
19pub const InputEvent_AxisType_AXIS_TYPE_SCROLL_VERTICAL: InputEvent_AxisType = 1;
20#[doc = " Horizontal scroll axis. When you scroll the mouse wheel or slide with two fingers on the touchpad, the status of\n the horizontal scroll axis changes.\n @since 12"]
21pub const InputEvent_AxisType_AXIS_TYPE_SCROLL_HORIZONTAL: InputEvent_AxisType = 2;
22#[doc = " Pinch axis, which is used to describe a two-finger pinch gesture on the touchpad.\n @since 12"]
23pub const InputEvent_AxisType_AXIS_TYPE_PINCH: InputEvent_AxisType = 3;
24#[doc = " Rotation axis, which is used to describe a two-finger rotation gesture on the touchpad.\n @since 12"]
25pub const InputEvent_AxisType_AXIS_TYPE_ROTATE: InputEvent_AxisType = 4;
26#[doc = " @brief Defines the axis type of an input device.\n\n @since 12"]
27pub type InputEvent_AxisType = u32;
28#[doc = " @brief Two-finger pinch event. The value can be **AXIS_TYPE_PINCH** or **AXIS_TYPE_ROTATE**, both of which are\n of the {@link InputEvent_AxisType} type.\n\n @since 12"]
29pub const InputEvent_AxisEventType_AXIS_EVENT_TYPE_PINCH: InputEvent_AxisEventType = 1;
30#[doc = " @brief Scroll event. The value can be **AXIS_TYPE_SCROLL_VERTICAL** or **AXIS_TYPE_SCROLL_HORIZONTAL**, both of\n which are of the {@link InputEvent_AxisType} type. For a mouse wheel event, only **AXIS_TYPE_SCROLL_VERTICAL**\n is supported.\n\n @since 12"]
31pub const InputEvent_AxisEventType_AXIS_EVENT_TYPE_SCROLL: InputEvent_AxisEventType = 2;
32#[doc = " @brief Event type of the input device.\n\n @since 12"]
33pub type InputEvent_AxisEventType = u32;
34#[doc = " The axis event is canceled.\n @since 12"]
35pub const InputEvent_AxisAction_AXIS_ACTION_CANCEL: InputEvent_AxisAction = 0;
36#[doc = " The axis event begins.\n @since 12"]
37pub const InputEvent_AxisAction_AXIS_ACTION_BEGIN: InputEvent_AxisAction = 1;
38#[doc = " The axis event is updated.\n @since 12"]
39pub const InputEvent_AxisAction_AXIS_ACTION_UPDATE: InputEvent_AxisAction = 2;
40#[doc = " The axis event ends.\n @since 12"]
41pub const InputEvent_AxisAction_AXIS_ACTION_END: InputEvent_AxisAction = 3;
42#[doc = " @brief Action of the input device.\n\n @since 12"]
43pub type InputEvent_AxisAction = u32;
44#[doc = " Unknown key"]
45pub const Input_KeyCode_KEYCODE_UNKNOWN: Input_KeyCode = -1;
46#[doc = " Function (Fn) key"]
47pub const Input_KeyCode_KEYCODE_FN: Input_KeyCode = 0;
48#[doc = " Function (Home) key\n @since 22"]
49#[cfg(feature = "api-22")]
50pub const Input_KeyCode_KEYCODE_HOME: Input_KeyCode = 1;
51#[doc = " Back button\n @since 22"]
52#[cfg(feature = "api-22")]
53pub const Input_KeyCode_KEYCODE_BACK: Input_KeyCode = 2;
54#[doc = " Search key\n @since 22"]
55#[cfg(feature = "api-22")]
56pub const Input_KeyCode_KEYCODE_SEARCH: Input_KeyCode = 9;
57#[doc = " Media: Play/Pause key<br>Difference between this key and **KEYCODE_PLAYPAUSE**:<br>**KEYCODE_PLAYPAUSE** is an\n earlier definition, while **KEYCODE_MEDIA_PLAY_PAUSE** is designed for modern media key devices.\n @since 22"]
58#[cfg(feature = "api-22")]
59pub const Input_KeyCode_KEYCODE_MEDIA_PLAY_PAUSE: Input_KeyCode = 10;
60#[doc = " Media: Stop Key\n @since 22"]
61#[cfg(feature = "api-22")]
62pub const Input_KeyCode_KEYCODE_MEDIA_STOP: Input_KeyCode = 11;
63#[doc = " Media: Next key\n @since 22"]
64#[cfg(feature = "api-22")]
65pub const Input_KeyCode_KEYCODE_MEDIA_NEXT: Input_KeyCode = 12;
66#[doc = " Media: Previous key\n @since 22"]
67#[cfg(feature = "api-22")]
68pub const Input_KeyCode_KEYCODE_MEDIA_PREVIOUS: Input_KeyCode = 13;
69#[doc = " Media: Rewind key\n @since 22"]
70#[cfg(feature = "api-22")]
71pub const Input_KeyCode_KEYCODE_MEDIA_REWIND: Input_KeyCode = 14;
72#[doc = " Media: Fast Forward key\n @since 22"]
73#[cfg(feature = "api-22")]
74pub const Input_KeyCode_KEYCODE_MEDIA_FAST_FORWARD: Input_KeyCode = 15;
75#[doc = " Volume Up key"]
76pub const Input_KeyCode_KEYCODE_VOLUME_UP: Input_KeyCode = 16;
77#[doc = " Volume Down key"]
78pub const Input_KeyCode_KEYCODE_VOLUME_DOWN: Input_KeyCode = 17;
79#[doc = " Power key"]
80pub const Input_KeyCode_KEYCODE_POWER: Input_KeyCode = 18;
81#[doc = " Camera key"]
82pub const Input_KeyCode_KEYCODE_CAMERA: Input_KeyCode = 19;
83#[doc = " Speaker Mute key"]
84pub const Input_KeyCode_KEYCODE_VOLUME_MUTE: Input_KeyCode = 22;
85#[doc = " Mute key"]
86pub const Input_KeyCode_KEYCODE_MUTE: Input_KeyCode = 23;
87#[doc = " Brightness Up key"]
88pub const Input_KeyCode_KEYCODE_BRIGHTNESS_UP: Input_KeyCode = 40;
89#[doc = " Brightness Down key"]
90pub const Input_KeyCode_KEYCODE_BRIGHTNESS_DOWN: Input_KeyCode = 41;
91#[doc = " Key 0"]
92pub const Input_KeyCode_KEYCODE_0: Input_KeyCode = 2000;
93#[doc = " Key 1"]
94pub const Input_KeyCode_KEYCODE_1: Input_KeyCode = 2001;
95#[doc = " Key 2"]
96pub const Input_KeyCode_KEYCODE_2: Input_KeyCode = 2002;
97#[doc = " Key 3"]
98pub const Input_KeyCode_KEYCODE_3: Input_KeyCode = 2003;
99#[doc = " Key 4"]
100pub const Input_KeyCode_KEYCODE_4: Input_KeyCode = 2004;
101#[doc = " Key 5"]
102pub const Input_KeyCode_KEYCODE_5: Input_KeyCode = 2005;
103#[doc = " Key 6"]
104pub const Input_KeyCode_KEYCODE_6: Input_KeyCode = 2006;
105#[doc = " Key 7"]
106pub const Input_KeyCode_KEYCODE_7: Input_KeyCode = 2007;
107#[doc = " Key 8"]
108pub const Input_KeyCode_KEYCODE_8: Input_KeyCode = 2008;
109#[doc = " Key 9"]
110pub const Input_KeyCode_KEYCODE_9: Input_KeyCode = 2009;
111#[doc = " Key *"]
112pub const Input_KeyCode_KEYCODE_STAR: Input_KeyCode = 2010;
113#[doc = " Key #"]
114pub const Input_KeyCode_KEYCODE_POUND: Input_KeyCode = 2011;
115#[doc = " Up key on D-pad"]
116pub const Input_KeyCode_KEYCODE_DPAD_UP: Input_KeyCode = 2012;
117#[doc = " Down key on D-pad"]
118pub const Input_KeyCode_KEYCODE_DPAD_DOWN: Input_KeyCode = 2013;
119#[doc = " Left key on D-pad"]
120pub const Input_KeyCode_KEYCODE_DPAD_LEFT: Input_KeyCode = 2014;
121#[doc = " Right key on D-pad"]
122pub const Input_KeyCode_KEYCODE_DPAD_RIGHT: Input_KeyCode = 2015;
123#[doc = " Center key on D-pad"]
124pub const Input_KeyCode_KEYCODE_DPAD_CENTER: Input_KeyCode = 2016;
125#[doc = " Key A"]
126pub const Input_KeyCode_KEYCODE_A: Input_KeyCode = 2017;
127#[doc = " Key B"]
128pub const Input_KeyCode_KEYCODE_B: Input_KeyCode = 2018;
129#[doc = " Key C"]
130pub const Input_KeyCode_KEYCODE_C: Input_KeyCode = 2019;
131#[doc = " Key D"]
132pub const Input_KeyCode_KEYCODE_D: Input_KeyCode = 2020;
133#[doc = " Key E"]
134pub const Input_KeyCode_KEYCODE_E: Input_KeyCode = 2021;
135#[doc = " Key F"]
136pub const Input_KeyCode_KEYCODE_F: Input_KeyCode = 2022;
137#[doc = " Key G"]
138pub const Input_KeyCode_KEYCODE_G: Input_KeyCode = 2023;
139#[doc = " Key H"]
140pub const Input_KeyCode_KEYCODE_H: Input_KeyCode = 2024;
141#[doc = " Key I"]
142pub const Input_KeyCode_KEYCODE_I: Input_KeyCode = 2025;
143#[doc = " Key J"]
144pub const Input_KeyCode_KEYCODE_J: Input_KeyCode = 2026;
145#[doc = " Key K"]
146pub const Input_KeyCode_KEYCODE_K: Input_KeyCode = 2027;
147#[doc = " Key L"]
148pub const Input_KeyCode_KEYCODE_L: Input_KeyCode = 2028;
149#[doc = " Key M"]
150pub const Input_KeyCode_KEYCODE_M: Input_KeyCode = 2029;
151#[doc = " Key N"]
152pub const Input_KeyCode_KEYCODE_N: Input_KeyCode = 2030;
153#[doc = " Key O"]
154pub const Input_KeyCode_KEYCODE_O: Input_KeyCode = 2031;
155#[doc = " Key P"]
156pub const Input_KeyCode_KEYCODE_P: Input_KeyCode = 2032;
157#[doc = " Key Q"]
158pub const Input_KeyCode_KEYCODE_Q: Input_KeyCode = 2033;
159#[doc = " Key R"]
160pub const Input_KeyCode_KEYCODE_R: Input_KeyCode = 2034;
161#[doc = " Key S"]
162pub const Input_KeyCode_KEYCODE_S: Input_KeyCode = 2035;
163#[doc = " Key T"]
164pub const Input_KeyCode_KEYCODE_T: Input_KeyCode = 2036;
165#[doc = " Key U"]
166pub const Input_KeyCode_KEYCODE_U: Input_KeyCode = 2037;
167#[doc = " Key V"]
168pub const Input_KeyCode_KEYCODE_V: Input_KeyCode = 2038;
169#[doc = " Key W"]
170pub const Input_KeyCode_KEYCODE_W: Input_KeyCode = 2039;
171#[doc = " Key X"]
172pub const Input_KeyCode_KEYCODE_X: Input_KeyCode = 2040;
173#[doc = " Key Y"]
174pub const Input_KeyCode_KEYCODE_Y: Input_KeyCode = 2041;
175#[doc = " Key Z"]
176pub const Input_KeyCode_KEYCODE_Z: Input_KeyCode = 2042;
177#[doc = " Key ,"]
178pub const Input_KeyCode_KEYCODE_COMMA: Input_KeyCode = 2043;
179#[doc = " Key ."]
180pub const Input_KeyCode_KEYCODE_PERIOD: Input_KeyCode = 2044;
181#[doc = " Left Alt key"]
182pub const Input_KeyCode_KEYCODE_ALT_LEFT: Input_KeyCode = 2045;
183#[doc = " Right Alt key"]
184pub const Input_KeyCode_KEYCODE_ALT_RIGHT: Input_KeyCode = 2046;
185#[doc = " Left Shift key"]
186pub const Input_KeyCode_KEYCODE_SHIFT_LEFT: Input_KeyCode = 2047;
187#[doc = " Right Shift key"]
188pub const Input_KeyCode_KEYCODE_SHIFT_RIGHT: Input_KeyCode = 2048;
189#[doc = " Tab key"]
190pub const Input_KeyCode_KEYCODE_TAB: Input_KeyCode = 2049;
191#[doc = " Space key"]
192pub const Input_KeyCode_KEYCODE_SPACE: Input_KeyCode = 2050;
193#[doc = " Symbol key"]
194pub const Input_KeyCode_KEYCODE_SYM: Input_KeyCode = 2051;
195#[doc = " Browser function key, used to launch the browser application."]
196pub const Input_KeyCode_KEYCODE_EXPLORER: Input_KeyCode = 2052;
197#[doc = " Email function key, used to launch the email application."]
198pub const Input_KeyCode_KEYCODE_ENVELOPE: Input_KeyCode = 2053;
199#[doc = " Enter key"]
200pub const Input_KeyCode_KEYCODE_ENTER: Input_KeyCode = 2054;
201#[doc = " Delete key"]
202pub const Input_KeyCode_KEYCODE_DEL: Input_KeyCode = 2055;
203#[doc = " Key *"]
204pub const Input_KeyCode_KEYCODE_GRAVE: Input_KeyCode = 2056;
205#[doc = " Key -"]
206pub const Input_KeyCode_KEYCODE_MINUS: Input_KeyCode = 2057;
207#[doc = " Key ="]
208pub const Input_KeyCode_KEYCODE_EQUALS: Input_KeyCode = 2058;
209#[doc = " Key ["]
210pub const Input_KeyCode_KEYCODE_LEFT_BRACKET: Input_KeyCode = 2059;
211#[doc = " Key ]"]
212pub const Input_KeyCode_KEYCODE_RIGHT_BRACKET: Input_KeyCode = 2060;
213#[doc = " Key \\|"]
214pub const Input_KeyCode_KEYCODE_BACKSLASH: Input_KeyCode = 2061;
215#[doc = " Key ;"]
216pub const Input_KeyCode_KEYCODE_SEMICOLON: Input_KeyCode = 2062;
217#[doc = " Key '"]
218pub const Input_KeyCode_KEYCODE_APOSTROPHE: Input_KeyCode = 2063;
219#[doc = " Key /"]
220pub const Input_KeyCode_KEYCODE_SLASH: Input_KeyCode = 2064;
221#[doc = " Key @"]
222pub const Input_KeyCode_KEYCODE_AT: Input_KeyCode = 2065;
223#[doc = " Key +"]
224pub const Input_KeyCode_KEYCODE_PLUS: Input_KeyCode = 2066;
225#[doc = " Menu key"]
226pub const Input_KeyCode_KEYCODE_MENU: Input_KeyCode = 2067;
227#[doc = " Page Up key"]
228pub const Input_KeyCode_KEYCODE_PAGE_UP: Input_KeyCode = 2068;
229#[doc = " Page Down key"]
230pub const Input_KeyCode_KEYCODE_PAGE_DOWN: Input_KeyCode = 2069;
231#[doc = " Esc key"]
232pub const Input_KeyCode_KEYCODE_ESCAPE: Input_KeyCode = 2070;
233#[doc = " Forward Delete key"]
234pub const Input_KeyCode_KEYCODE_FORWARD_DEL: Input_KeyCode = 2071;
235#[doc = " Left Ctrl key"]
236pub const Input_KeyCode_KEYCODE_CTRL_LEFT: Input_KeyCode = 2072;
237#[doc = " Right Ctrl key"]
238pub const Input_KeyCode_KEYCODE_CTRL_RIGHT: Input_KeyCode = 2073;
239#[doc = " Caps Lock key"]
240pub const Input_KeyCode_KEYCODE_CAPS_LOCK: Input_KeyCode = 2074;
241#[doc = " Scroll Lock key"]
242pub const Input_KeyCode_KEYCODE_SCROLL_LOCK: Input_KeyCode = 2075;
243#[doc = " Left Meta key"]
244pub const Input_KeyCode_KEYCODE_META_LEFT: Input_KeyCode = 2076;
245#[doc = " Right Meta key"]
246pub const Input_KeyCode_KEYCODE_META_RIGHT: Input_KeyCode = 2077;
247#[doc = " Function key"]
248pub const Input_KeyCode_KEYCODE_FUNCTION: Input_KeyCode = 2078;
249#[doc = " System Request/Print Screen key"]
250pub const Input_KeyCode_KEYCODE_SYSRQ: Input_KeyCode = 2079;
251#[doc = " Break/Pause key"]
252pub const Input_KeyCode_KEYCODE_BREAK: Input_KeyCode = 2080;
253#[doc = " Move to Home key"]
254pub const Input_KeyCode_KEYCODE_MOVE_HOME: Input_KeyCode = 2081;
255#[doc = " Move to End key"]
256pub const Input_KeyCode_KEYCODE_MOVE_END: Input_KeyCode = 2082;
257#[doc = " Insert key"]
258pub const Input_KeyCode_KEYCODE_INSERT: Input_KeyCode = 2083;
259#[doc = " Forward key"]
260pub const Input_KeyCode_KEYCODE_FORWARD: Input_KeyCode = 2084;
261#[doc = " Media: Play key"]
262pub const Input_KeyCode_KEYCODE_MEDIA_PLAY: Input_KeyCode = 2085;
263#[doc = " Media: Pause key"]
264pub const Input_KeyCode_KEYCODE_MEDIA_PAUSE: Input_KeyCode = 2086;
265#[doc = " Media: Close key"]
266pub const Input_KeyCode_KEYCODE_MEDIA_CLOSE: Input_KeyCode = 2087;
267#[doc = " Media: Reject key"]
268pub const Input_KeyCode_KEYCODE_MEDIA_EJECT: Input_KeyCode = 2088;
269#[doc = " Media: Record key"]
270pub const Input_KeyCode_KEYCODE_MEDIA_RECORD: Input_KeyCode = 2089;
271#[doc = " F1 key"]
272pub const Input_KeyCode_KEYCODE_F1: Input_KeyCode = 2090;
273#[doc = " F2 key"]
274pub const Input_KeyCode_KEYCODE_F2: Input_KeyCode = 2091;
275#[doc = " F3 key"]
276pub const Input_KeyCode_KEYCODE_F3: Input_KeyCode = 2092;
277#[doc = " F4 key"]
278pub const Input_KeyCode_KEYCODE_F4: Input_KeyCode = 2093;
279#[doc = " F5 key"]
280pub const Input_KeyCode_KEYCODE_F5: Input_KeyCode = 2094;
281#[doc = " F6 key"]
282pub const Input_KeyCode_KEYCODE_F6: Input_KeyCode = 2095;
283#[doc = " F7 key"]
284pub const Input_KeyCode_KEYCODE_F7: Input_KeyCode = 2096;
285#[doc = " F8 key"]
286pub const Input_KeyCode_KEYCODE_F8: Input_KeyCode = 2097;
287#[doc = " F9 key"]
288pub const Input_KeyCode_KEYCODE_F9: Input_KeyCode = 2098;
289#[doc = " F10 key"]
290pub const Input_KeyCode_KEYCODE_F10: Input_KeyCode = 2099;
291#[doc = " F11 key"]
292pub const Input_KeyCode_KEYCODE_F11: Input_KeyCode = 2100;
293#[doc = " F12 key"]
294pub const Input_KeyCode_KEYCODE_F12: Input_KeyCode = 2101;
295#[doc = " Number Lock key"]
296pub const Input_KeyCode_KEYCODE_NUM_LOCK: Input_KeyCode = 2102;
297#[doc = " Key 0 on numeric keypad"]
298pub const Input_KeyCode_KEYCODE_NUMPAD_0: Input_KeyCode = 2103;
299#[doc = " Key 1 on numeric keypad"]
300pub const Input_KeyCode_KEYCODE_NUMPAD_1: Input_KeyCode = 2104;
301#[doc = " Key 2 on numeric keypad"]
302pub const Input_KeyCode_KEYCODE_NUMPAD_2: Input_KeyCode = 2105;
303#[doc = " Key 3 on numeric keypad"]
304pub const Input_KeyCode_KEYCODE_NUMPAD_3: Input_KeyCode = 2106;
305#[doc = " Key 4 on numeric keypad"]
306pub const Input_KeyCode_KEYCODE_NUMPAD_4: Input_KeyCode = 2107;
307#[doc = " Key 5 on numeric keypad"]
308pub const Input_KeyCode_KEYCODE_NUMPAD_5: Input_KeyCode = 2108;
309#[doc = " Key 6 on numeric keypad"]
310pub const Input_KeyCode_KEYCODE_NUMPAD_6: Input_KeyCode = 2109;
311#[doc = " Key 7 on numeric keypad"]
312pub const Input_KeyCode_KEYCODE_NUMPAD_7: Input_KeyCode = 2110;
313#[doc = " Key 8 on numeric keypad"]
314pub const Input_KeyCode_KEYCODE_NUMPAD_8: Input_KeyCode = 2111;
315#[doc = " Key 9 on numeric keypad"]
316pub const Input_KeyCode_KEYCODE_NUMPAD_9: Input_KeyCode = 2112;
317#[doc = " Key / on numeric keypad"]
318pub const Input_KeyCode_KEYCODE_NUMPAD_DIVIDE: Input_KeyCode = 2113;
319#[doc = " Key * on numeric keypad"]
320pub const Input_KeyCode_KEYCODE_NUMPAD_MULTIPLY: Input_KeyCode = 2114;
321#[doc = " Key - on numeric keypad"]
322pub const Input_KeyCode_KEYCODE_NUMPAD_SUBTRACT: Input_KeyCode = 2115;
323#[doc = " Key + on numeric keypad"]
324pub const Input_KeyCode_KEYCODE_NUMPAD_ADD: Input_KeyCode = 2116;
325#[doc = " Key . on numeric keypad"]
326pub const Input_KeyCode_KEYCODE_NUMPAD_DOT: Input_KeyCode = 2117;
327#[doc = " Key , on numeric keypad"]
328pub const Input_KeyCode_KEYCODE_NUMPAD_COMMA: Input_KeyCode = 2118;
329#[doc = " Enter key on numeric keypad"]
330pub const Input_KeyCode_KEYCODE_NUMPAD_ENTER: Input_KeyCode = 2119;
331#[doc = " Key = on numeric keypad"]
332pub const Input_KeyCode_KEYCODE_NUMPAD_EQUALS: Input_KeyCode = 2120;
333#[doc = " Key ( on numeric keypad"]
334pub const Input_KeyCode_KEYCODE_NUMPAD_LEFT_PAREN: Input_KeyCode = 2121;
335#[doc = " Key ) on numeric keypad"]
336pub const Input_KeyCode_KEYCODE_NUMPAD_RIGHT_PAREN: Input_KeyCode = 2122;
337#[doc = " Multi-task key\n @since 22"]
338#[cfg(feature = "api-22")]
339pub const Input_KeyCode_KEYCODE_VIRTUAL_MULTITASK: Input_KeyCode = 2210;
340#[doc = " Joystick key A\n @since 22"]
341#[cfg(feature = "api-22")]
342pub const Input_KeyCode_KEYCODE_BUTTON_A: Input_KeyCode = 2301;
343#[doc = " Joystick key B\n @since 22"]
344#[cfg(feature = "api-22")]
345pub const Input_KeyCode_KEYCODE_BUTTON_B: Input_KeyCode = 2302;
346#[doc = " Joystick key X\n @since 22"]
347#[cfg(feature = "api-22")]
348pub const Input_KeyCode_KEYCODE_BUTTON_X: Input_KeyCode = 2304;
349#[doc = " Joystick key Y\n @since 22"]
350#[cfg(feature = "api-22")]
351pub const Input_KeyCode_KEYCODE_BUTTON_Y: Input_KeyCode = 2305;
352#[doc = " Joystick key L1\n @since 22"]
353#[cfg(feature = "api-22")]
354pub const Input_KeyCode_KEYCODE_BUTTON_L1: Input_KeyCode = 2307;
355#[doc = " Joystick key R1\n @since 22"]
356#[cfg(feature = "api-22")]
357pub const Input_KeyCode_KEYCODE_BUTTON_R1: Input_KeyCode = 2308;
358#[doc = " Joystick key L2\n @since 22"]
359#[cfg(feature = "api-22")]
360pub const Input_KeyCode_KEYCODE_BUTTON_L2: Input_KeyCode = 2309;
361#[doc = " Joystick key R2\n @since 22"]
362#[cfg(feature = "api-22")]
363pub const Input_KeyCode_KEYCODE_BUTTON_R2: Input_KeyCode = 2310;
364#[doc = " Joystick key Select\n @since 22"]
365#[cfg(feature = "api-22")]
366pub const Input_KeyCode_KEYCODE_BUTTON_SELECT: Input_KeyCode = 2311;
367#[doc = " Joystick key Start\n @since 22"]
368#[cfg(feature = "api-22")]
369pub const Input_KeyCode_KEYCODE_BUTTON_START: Input_KeyCode = 2312;
370#[doc = " Joystick key Mode\n @since 22"]
371#[cfg(feature = "api-22")]
372pub const Input_KeyCode_KEYCODE_BUTTON_MODE: Input_KeyCode = 2313;
373#[doc = " Joystick key THUMBL\n @since 22"]
374#[cfg(feature = "api-22")]
375pub const Input_KeyCode_KEYCODE_BUTTON_THUMBL: Input_KeyCode = 2314;
376#[doc = " Joystick key THUMBR\n @since 22"]
377#[cfg(feature = "api-22")]
378pub const Input_KeyCode_KEYCODE_BUTTON_THUMBR: Input_KeyCode = 2315;
379#[doc = "Sleep key\n @since 22"]
380#[cfg(feature = "api-22")]
381pub const Input_KeyCode_KEYCODE_SLEEP: Input_KeyCode = 2600;
382#[doc = " Zenkaku/Hankaku key\n @since 22"]
383#[cfg(feature = "api-22")]
384pub const Input_KeyCode_KEYCODE_ZENKAKU_HANKAKU: Input_KeyCode = 2601;
385#[doc = "International Keyboard Extension key\n @since 22"]
386#[cfg(feature = "api-22")]
387pub const Input_KeyCode_KEYCODE_102ND: Input_KeyCode = 2602;
388#[doc = " Ro key\n @since 22"]
389#[cfg(feature = "api-22")]
390pub const Input_KeyCode_KEYCODE_RO: Input_KeyCode = 2603;
391#[doc = " Katakana key\n @since 22"]
392#[cfg(feature = "api-22")]
393pub const Input_KeyCode_KEYCODE_KATAKANA: Input_KeyCode = 2604;
394#[doc = " Hiragana key\n @since 22"]
395#[cfg(feature = "api-22")]
396pub const Input_KeyCode_KEYCODE_HIRAGANA: Input_KeyCode = 2605;
397#[doc = " Henkan key\n @since 22"]
398#[cfg(feature = "api-22")]
399pub const Input_KeyCode_KEYCODE_HENKAN: Input_KeyCode = 2606;
400#[doc = " Katakana/Hiragana key\n @since 22"]
401#[cfg(feature = "api-22")]
402pub const Input_KeyCode_KEYCODE_KATAKANA_HIRAGANA: Input_KeyCode = 2607;
403#[doc = " Muhenkan key\n @since 22"]
404#[cfg(feature = "api-22")]
405pub const Input_KeyCode_KEYCODE_MUHENKAN: Input_KeyCode = 2608;
406#[doc = " Linefeed key\n @since 22"]
407#[cfg(feature = "api-22")]
408pub const Input_KeyCode_KEYCODE_LINEFEED: Input_KeyCode = 2609;
409#[doc = " Macro key\n @since 22"]
410#[cfg(feature = "api-22")]
411pub const Input_KeyCode_KEYCODE_MACRO: Input_KeyCode = 2610;
412#[doc = " Plus/Minus key on the numeric keypad\n @since 22"]
413#[cfg(feature = "api-22")]
414pub const Input_KeyCode_KEYCODE_NUMPAD_PLUSMINUS: Input_KeyCode = 2611;
415#[doc = " Scale key\n @since 22"]
416#[cfg(feature = "api-22")]
417pub const Input_KeyCode_KEYCODE_SCALE: Input_KeyCode = 2612;
418#[doc = " Hanguel key\n @since 22"]
419#[cfg(feature = "api-22")]
420pub const Input_KeyCode_KEYCODE_HANGUEL: Input_KeyCode = 2613;
421#[doc = " Hanja key\n @since 22"]
422#[cfg(feature = "api-22")]
423pub const Input_KeyCode_KEYCODE_HANJA: Input_KeyCode = 2614;
424#[doc = " Yen key\n @since 22"]
425#[cfg(feature = "api-22")]
426pub const Input_KeyCode_KEYCODE_YEN: Input_KeyCode = 2615;
427#[doc = " Stop key\n @since 22"]
428#[cfg(feature = "api-22")]
429pub const Input_KeyCode_KEYCODE_STOP: Input_KeyCode = 2616;
430#[doc = " Again key\n @since 22"]
431#[cfg(feature = "api-22")]
432pub const Input_KeyCode_KEYCODE_AGAIN: Input_KeyCode = 2617;
433#[doc = " Props key\n @since 22"]
434#[cfg(feature = "api-22")]
435pub const Input_KeyCode_KEYCODE_PROPS: Input_KeyCode = 2618;
436#[doc = " Undo key\n @since 22"]
437#[cfg(feature = "api-22")]
438pub const Input_KeyCode_KEYCODE_UNDO: Input_KeyCode = 2619;
439#[doc = " Copy key\n @since 22"]
440#[cfg(feature = "api-22")]
441pub const Input_KeyCode_KEYCODE_COPY: Input_KeyCode = 2620;
442#[doc = " Open key\n @since 22"]
443#[cfg(feature = "api-22")]
444pub const Input_KeyCode_KEYCODE_OPEN: Input_KeyCode = 2621;
445#[doc = " Paste key\n @since 22"]
446#[cfg(feature = "api-22")]
447pub const Input_KeyCode_KEYCODE_PASTE: Input_KeyCode = 2622;
448#[doc = " Find key\n @since 22"]
449#[cfg(feature = "api-22")]
450pub const Input_KeyCode_KEYCODE_FIND: Input_KeyCode = 2623;
451#[doc = " Cut key\n @since 22"]
452#[cfg(feature = "api-22")]
453pub const Input_KeyCode_KEYCODE_CUT: Input_KeyCode = 2624;
454#[doc = " Help key\n @since 22"]
455#[cfg(feature = "api-22")]
456pub const Input_KeyCode_KEYCODE_HELP: Input_KeyCode = 2625;
457#[doc = " Calculator special function key, used to launch the calculator application.\n @since 22"]
458#[cfg(feature = "api-22")]
459pub const Input_KeyCode_KEYCODE_CALC: Input_KeyCode = 2626;
460#[doc = " File key\n @since 22"]
461#[cfg(feature = "api-22")]
462pub const Input_KeyCode_KEYCODE_FILE: Input_KeyCode = 2627;
463#[doc = " Bookmarks key\n @since 22"]
464#[cfg(feature = "api-22")]
465pub const Input_KeyCode_KEYCODE_BOOKMARKS: Input_KeyCode = 2628;
466#[doc = " Page Down key\n @since 22"]
467#[cfg(feature = "api-22")]
468pub const Input_KeyCode_KEYCODE_NEXT: Input_KeyCode = 2629;
469#[doc = " Media: Play/Pause key<br>Difference between this key and **KEYCODE_MEDIA_PLAY_PAUSE**:<br>**KEYCODE_PLAYPAUSE**\n is an earlier definition, while **KEYCODE_MEDIA_PLAY_PAUSE** is designed for modern media key devices.\n @since 22"]
470#[cfg(feature = "api-22")]
471pub const Input_KeyCode_KEYCODE_PLAYPAUSE: Input_KeyCode = 2630;
472#[doc = " Page Up key\n @since 22"]
473#[cfg(feature = "api-22")]
474pub const Input_KeyCode_KEYCODE_PREVIOUS: Input_KeyCode = 2631;
475#[doc = " Stop CD key\n @since 22"]
476#[cfg(feature = "api-22")]
477pub const Input_KeyCode_KEYCODE_STOPCD: Input_KeyCode = 2632;
478#[doc = " Configuration key\n @since 22"]
479#[cfg(feature = "api-22")]
480pub const Input_KeyCode_KEYCODE_CONFIG: Input_KeyCode = 2634;
481#[doc = " Refresh key\n @since 22"]
482#[cfg(feature = "api-22")]
483pub const Input_KeyCode_KEYCODE_REFRESH: Input_KeyCode = 2635;
484#[doc = " Exit key\n @since 22"]
485#[cfg(feature = "api-22")]
486pub const Input_KeyCode_KEYCODE_EXIT: Input_KeyCode = 2636;
487#[doc = " Edit key\n @since 22"]
488#[cfg(feature = "api-22")]
489pub const Input_KeyCode_KEYCODE_EDIT: Input_KeyCode = 2637;
490#[doc = " Scroll Up key\n @since 22"]
491#[cfg(feature = "api-22")]
492pub const Input_KeyCode_KEYCODE_SCROLLUP: Input_KeyCode = 2638;
493#[doc = " Scroll Down key\n @since 22"]
494#[cfg(feature = "api-22")]
495pub const Input_KeyCode_KEYCODE_SCROLLDOWN: Input_KeyCode = 2639;
496#[doc = " New key\n @since 22"]
497#[cfg(feature = "api-22")]
498pub const Input_KeyCode_KEYCODE_NEW: Input_KeyCode = 2640;
499#[doc = " Redo key\n @since 22"]
500#[cfg(feature = "api-22")]
501pub const Input_KeyCode_KEYCODE_REDO: Input_KeyCode = 2641;
502#[doc = " Close key\n @since 22"]
503#[cfg(feature = "api-22")]
504pub const Input_KeyCode_KEYCODE_CLOSE: Input_KeyCode = 2642;
505#[doc = " Play key\n @since 22"]
506#[cfg(feature = "api-22")]
507pub const Input_KeyCode_KEYCODE_PLAY: Input_KeyCode = 2643;
508#[doc = "Bass Boost key\n @since 22"]
509#[cfg(feature = "api-22")]
510pub const Input_KeyCode_KEYCODE_BASSBOOST: Input_KeyCode = 2644;
511#[doc = " Print key\n @since 22"]
512#[cfg(feature = "api-22")]
513pub const Input_KeyCode_KEYCODE_PRINT: Input_KeyCode = 2645;
514#[doc = " Chat key\n @since 22"]
515#[cfg(feature = "api-22")]
516pub const Input_KeyCode_KEYCODE_CHAT: Input_KeyCode = 2646;
517#[doc = " Finance key\n @since 22"]
518#[cfg(feature = "api-22")]
519pub const Input_KeyCode_KEYCODE_FINANCE: Input_KeyCode = 2647;
520#[doc = " Cancel key\n @since 22"]
521#[cfg(feature = "api-22")]
522pub const Input_KeyCode_KEYCODE_CANCEL: Input_KeyCode = 2648;
523#[doc = " Keyboard Illumination Toggle key\n @since 22"]
524#[cfg(feature = "api-22")]
525pub const Input_KeyCode_KEYCODE_KBDILLUM_TOGGLE: Input_KeyCode = 2649;
526#[doc = " Keyboard Illumination Down key\n @since 22"]
527#[cfg(feature = "api-22")]
528pub const Input_KeyCode_KEYCODE_KBDILLUM_DOWN: Input_KeyCode = 2650;
529#[doc = " Keyboard Illumination Up key\n @since 22"]
530#[cfg(feature = "api-22")]
531pub const Input_KeyCode_KEYCODE_KBDILLUM_UP: Input_KeyCode = 2651;
532#[doc = " Send key\n @since 22"]
533#[cfg(feature = "api-22")]
534pub const Input_KeyCode_KEYCODE_SEND: Input_KeyCode = 2652;
535#[doc = " Reply key\n @since 22"]
536#[cfg(feature = "api-22")]
537pub const Input_KeyCode_KEYCODE_REPLY: Input_KeyCode = 2653;
538#[doc = " Forward Mail key\n @since 22"]
539#[cfg(feature = "api-22")]
540pub const Input_KeyCode_KEYCODE_FORWARDMAIL: Input_KeyCode = 2654;
541#[doc = " Save key\n @since 22"]
542#[cfg(feature = "api-22")]
543pub const Input_KeyCode_KEYCODE_SAVE: Input_KeyCode = 2655;
544#[doc = " Documents key\n @since 22"]
545#[cfg(feature = "api-22")]
546pub const Input_KeyCode_KEYCODE_DOCUMENTS: Input_KeyCode = 2656;
547#[doc = " Next Video key\n @since 22"]
548#[cfg(feature = "api-22")]
549pub const Input_KeyCode_KEYCODE_VIDEO_NEXT: Input_KeyCode = 2657;
550#[doc = " Previous Video key\n @since 22"]
551#[cfg(feature = "api-22")]
552pub const Input_KeyCode_KEYCODE_VIDEO_PREV: Input_KeyCode = 2658;
553#[doc = " Brightness Cycle key\n @since 22"]
554#[cfg(feature = "api-22")]
555pub const Input_KeyCode_KEYCODE_BRIGHTNESS_CYCLE: Input_KeyCode = 2659;
556#[doc = " Brightness Zero key\n @since 22"]
557#[cfg(feature = "api-22")]
558pub const Input_KeyCode_KEYCODE_BRIGHTNESS_ZERO: Input_KeyCode = 2660;
559#[doc = " Display Off Key\n @since 22"]
560#[cfg(feature = "api-22")]
561pub const Input_KeyCode_KEYCODE_DISPLAY_OFF: Input_KeyCode = 2661;
562#[doc = " Misc Button key\n @since 22"]
563#[cfg(feature = "api-22")]
564pub const Input_KeyCode_KEYCODE_BTN_MISC: Input_KeyCode = 2662;
565#[doc = " Goto key\n @since 22"]
566#[cfg(feature = "api-22")]
567pub const Input_KeyCode_KEYCODE_GOTO: Input_KeyCode = 2663;
568#[doc = " Info key\n @since 22"]
569#[cfg(feature = "api-22")]
570pub const Input_KeyCode_KEYCODE_INFO: Input_KeyCode = 2664;
571#[doc = " Program key\n @since 22"]
572#[cfg(feature = "api-22")]
573pub const Input_KeyCode_KEYCODE_PROGRAM: Input_KeyCode = 2665;
574#[doc = " PVR key\n @since 22"]
575#[cfg(feature = "api-22")]
576pub const Input_KeyCode_KEYCODE_PVR: Input_KeyCode = 2666;
577#[doc = " Subtitle key\n @since 22"]
578#[cfg(feature = "api-22")]
579pub const Input_KeyCode_KEYCODE_SUBTITLE: Input_KeyCode = 2667;
580#[doc = " Full Screen key\n @since 22"]
581#[cfg(feature = "api-22")]
582pub const Input_KeyCode_KEYCODE_FULL_SCREEN: Input_KeyCode = 2668;
583#[doc = " Keyboard\n @since 22"]
584#[cfg(feature = "api-22")]
585pub const Input_KeyCode_KEYCODE_KEYBOARD: Input_KeyCode = 2669;
586#[doc = " Aspect Ratio key\n @since 22"]
587#[cfg(feature = "api-22")]
588pub const Input_KeyCode_KEYCODE_ASPECT_RATIO: Input_KeyCode = 2670;
589#[doc = " Port Control key\n @since 22"]
590#[cfg(feature = "api-22")]
591pub const Input_KeyCode_KEYCODE_PC: Input_KeyCode = 2671;
592#[doc = " TV key\n @since 22"]
593#[cfg(feature = "api-22")]
594pub const Input_KeyCode_KEYCODE_TV: Input_KeyCode = 2672;
595#[doc = " TV key 2\n @since 22"]
596#[cfg(feature = "api-22")]
597pub const Input_KeyCode_KEYCODE_TV2: Input_KeyCode = 2673;
598#[doc = " VCR key\n @since 22"]
599#[cfg(feature = "api-22")]
600pub const Input_KeyCode_KEYCODE_VCR: Input_KeyCode = 2674;
601#[doc = " VCR key 2\n @since 22"]
602#[cfg(feature = "api-22")]
603pub const Input_KeyCode_KEYCODE_VCR2: Input_KeyCode = 2675;
604#[doc = " SAT key\n @since 22"]
605#[cfg(feature = "api-22")]
606pub const Input_KeyCode_KEYCODE_SAT: Input_KeyCode = 2676;
607#[doc = " CD key\n @since 22"]
608#[cfg(feature = "api-22")]
609pub const Input_KeyCode_KEYCODE_CD: Input_KeyCode = 2677;
610#[doc = " Tape key\n @since 22"]
611#[cfg(feature = "api-22")]
612pub const Input_KeyCode_KEYCODE_TAPE: Input_KeyCode = 2678;
613#[doc = " Tuner key\n @since 22"]
614#[cfg(feature = "api-22")]
615pub const Input_KeyCode_KEYCODE_TUNER: Input_KeyCode = 2679;
616#[doc = " Player key\n @since 22"]
617#[cfg(feature = "api-22")]
618pub const Input_KeyCode_KEYCODE_PLAYER: Input_KeyCode = 2680;
619#[doc = " DVD key\n @since 22"]
620#[cfg(feature = "api-22")]
621pub const Input_KeyCode_KEYCODE_DVD: Input_KeyCode = 2681;
622#[doc = " Audio key\n @since 22"]
623#[cfg(feature = "api-22")]
624pub const Input_KeyCode_KEYCODE_AUDIO: Input_KeyCode = 2682;
625#[doc = " Video key\n @since 22"]
626#[cfg(feature = "api-22")]
627pub const Input_KeyCode_KEYCODE_VIDEO: Input_KeyCode = 2683;
628#[doc = " Memo key\n @since 22"]
629#[cfg(feature = "api-22")]
630pub const Input_KeyCode_KEYCODE_MEMO: Input_KeyCode = 2684;
631#[doc = " Calendar key\n @since 22"]
632#[cfg(feature = "api-22")]
633pub const Input_KeyCode_KEYCODE_CALENDAR: Input_KeyCode = 2685;
634#[doc = " Red indicator\n @since 22"]
635#[cfg(feature = "api-22")]
636pub const Input_KeyCode_KEYCODE_RED: Input_KeyCode = 2686;
637#[doc = " Green indicator\n @since 22"]
638#[cfg(feature = "api-22")]
639pub const Input_KeyCode_KEYCODE_GREEN: Input_KeyCode = 2687;
640#[doc = " Yellow indicator\n @since 22"]
641#[cfg(feature = "api-22")]
642pub const Input_KeyCode_KEYCODE_YELLOW: Input_KeyCode = 2688;
643#[doc = " Blue indicator\n @since 22"]
644#[cfg(feature = "api-22")]
645pub const Input_KeyCode_KEYCODE_BLUE: Input_KeyCode = 2689;
646#[doc = " Channel Up key\n @since 22"]
647#[cfg(feature = "api-22")]
648pub const Input_KeyCode_KEYCODE_CHANNELUP: Input_KeyCode = 2690;
649#[doc = " Channel Down key\n @since 22"]
650#[cfg(feature = "api-22")]
651pub const Input_KeyCode_KEYCODE_CHANNELDOWN: Input_KeyCode = 2691;
652#[doc = " Last key\n @since 22"]
653#[cfg(feature = "api-22")]
654pub const Input_KeyCode_KEYCODE_LAST: Input_KeyCode = 2692;
655#[doc = " Restart key\n @since 22"]
656#[cfg(feature = "api-22")]
657pub const Input_KeyCode_KEYCODE_RESTART: Input_KeyCode = 2693;
658#[doc = " Slow key\n @since 22"]
659#[cfg(feature = "api-22")]
660pub const Input_KeyCode_KEYCODE_SLOW: Input_KeyCode = 2694;
661#[doc = " Shuffle key\n @since 22"]
662#[cfg(feature = "api-22")]
663pub const Input_KeyCode_KEYCODE_SHUFFLE: Input_KeyCode = 2695;
664#[doc = " Videophone key\n @since 22"]
665#[cfg(feature = "api-22")]
666pub const Input_KeyCode_KEYCODE_VIDEOPHONE: Input_KeyCode = 2696;
667#[doc = " Games key\n @since 22"]
668#[cfg(feature = "api-22")]
669pub const Input_KeyCode_KEYCODE_GAMES: Input_KeyCode = 2697;
670#[doc = " Zoom In key\n @since 22"]
671#[cfg(feature = "api-22")]
672pub const Input_KeyCode_KEYCODE_ZOOMIN: Input_KeyCode = 2698;
673#[doc = " Zoom Out key\n @since 22"]
674#[cfg(feature = "api-22")]
675pub const Input_KeyCode_KEYCODE_ZOOMOUT: Input_KeyCode = 2699;
676#[doc = " Zoom Reset key\n @since 22"]
677#[cfg(feature = "api-22")]
678pub const Input_KeyCode_KEYCODE_ZOOMRESET: Input_KeyCode = 2700;
679#[doc = " Word Processor key\n @since 22"]
680#[cfg(feature = "api-22")]
681pub const Input_KeyCode_KEYCODE_WORDPROCESSOR: Input_KeyCode = 2701;
682#[doc = " Editor key\n @since 22"]
683#[cfg(feature = "api-22")]
684pub const Input_KeyCode_KEYCODE_EDITOR: Input_KeyCode = 2702;
685#[doc = " Spreadsheet key\n @since 22"]
686#[cfg(feature = "api-22")]
687pub const Input_KeyCode_KEYCODE_SPREADSHEET: Input_KeyCode = 2703;
688#[doc = " Graphics Editor key\n @since 22"]
689#[cfg(feature = "api-22")]
690pub const Input_KeyCode_KEYCODE_GRAPHICSEDITOR: Input_KeyCode = 2704;
691#[doc = " Presentation key\n @since 22"]
692#[cfg(feature = "api-22")]
693pub const Input_KeyCode_KEYCODE_PRESENTATION: Input_KeyCode = 2705;
694#[doc = " Database key\n @since 22"]
695#[cfg(feature = "api-22")]
696pub const Input_KeyCode_KEYCODE_DATABASE: Input_KeyCode = 2706;
697#[doc = " News key\n @since 22"]
698#[cfg(feature = "api-22")]
699pub const Input_KeyCode_KEYCODE_NEWS: Input_KeyCode = 2707;
700#[doc = " Voice mailbox\n @since 22"]
701#[cfg(feature = "api-22")]
702pub const Input_KeyCode_KEYCODE_VOICEMAIL: Input_KeyCode = 2708;
703#[doc = " Address book key\n @since 22"]
704#[cfg(feature = "api-22")]
705pub const Input_KeyCode_KEYCODE_ADDRESSBOOK: Input_KeyCode = 2709;
706#[doc = " Messenger key\n @since 22"]
707#[cfg(feature = "api-22")]
708pub const Input_KeyCode_KEYCODE_MESSENGER: Input_KeyCode = 2710;
709#[doc = " Brightness Toggle key\n @since 22"]
710#[cfg(feature = "api-22")]
711pub const Input_KeyCode_KEYCODE_BRIGHTNESS_TOGGLE: Input_KeyCode = 2711;
712#[doc = " Spell Check key\n @since 22"]
713#[cfg(feature = "api-22")]
714pub const Input_KeyCode_KEYCODE_SPELLCHECK: Input_KeyCode = 2712;
715#[doc = " Coffee key, which is used to launch screen lock or screen saver\n @since 22"]
716#[cfg(feature = "api-22")]
717pub const Input_KeyCode_KEYCODE_COFFEE: Input_KeyCode = 2713;
718#[doc = " Media Repeat key\n @since 22"]
719#[cfg(feature = "api-22")]
720pub const Input_KeyCode_KEYCODE_MEDIA_REPEAT: Input_KeyCode = 2714;
721#[doc = " Images key\n @since 22"]
722#[cfg(feature = "api-22")]
723pub const Input_KeyCode_KEYCODE_IMAGES: Input_KeyCode = 2715;
724#[doc = " Button Configuration key\n @since 22"]
725#[cfg(feature = "api-22")]
726pub const Input_KeyCode_KEYCODE_BUTTONCONFIG: Input_KeyCode = 2716;
727#[doc = " Task Manager\n @since 22"]
728#[cfg(feature = "api-22")]
729pub const Input_KeyCode_KEYCODE_TASKMANAGER: Input_KeyCode = 2717;
730#[doc = " Log key\n @since 22"]
731#[cfg(feature = "api-22")]
732pub const Input_KeyCode_KEYCODE_JOURNAL: Input_KeyCode = 2718;
733#[doc = " Control Panel key\n @since 22"]
734#[cfg(feature = "api-22")]
735pub const Input_KeyCode_KEYCODE_CONTROLPANEL: Input_KeyCode = 2719;
736#[doc = " App Select key\n @since 22"]
737#[cfg(feature = "api-22")]
738pub const Input_KeyCode_KEYCODE_APPSELECT: Input_KeyCode = 2720;
739#[doc = " Screen Saver key\n @since 22"]
740#[cfg(feature = "api-22")]
741pub const Input_KeyCode_KEYCODE_SCREENSAVER: Input_KeyCode = 2721;
742#[doc = " Assistant key\n @since 22"]
743#[cfg(feature = "api-22")]
744pub const Input_KeyCode_KEYCODE_ASSISTANT: Input_KeyCode = 2722;
745#[doc = " Next Keyboard Layout key\n @since 22"]
746#[cfg(feature = "api-22")]
747pub const Input_KeyCode_KEYCODE_KBD_LAYOUT_NEXT: Input_KeyCode = 2723;
748#[doc = " Min Brightness key\n @since 22"]
749#[cfg(feature = "api-22")]
750pub const Input_KeyCode_KEYCODE_BRIGHTNESS_MIN: Input_KeyCode = 2724;
751#[doc = " Max Brightness key\n @since 22"]
752#[cfg(feature = "api-22")]
753pub const Input_KeyCode_KEYCODE_BRIGHTNESS_MAX: Input_KeyCode = 2725;
754#[doc = " Keyboard Input Assist_Previous, used to view input method input history.\n @since 22"]
755#[cfg(feature = "api-22")]
756pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_PREV: Input_KeyCode = 2726;
757#[doc = " Keyboard Input Assist_Next, used to view input method input extensions.\n @since 22"]
758#[cfg(feature = "api-22")]
759pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_NEXT: Input_KeyCode = 2727;
760#[doc = " Keyboard Input Assist_Previous, used to switch to the previous input method in the input group.\n @since 22"]
761#[cfg(feature = "api-22")]
762pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_PREVGROUP: Input_KeyCode = 2728;
763#[doc = " Keyboard Input Assist_Next, used to switch to the next input method in the input group.\n @since 22"]
764#[cfg(feature = "api-22")]
765pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_NEXTGROUP: Input_KeyCode = 2729;
766#[doc = " Keyboard Input-assisted Accept key\n @since 22"]
767#[cfg(feature = "api-22")]
768pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_ACCEPT: Input_KeyCode = 2730;
769#[doc = " Keyboard Input-assisted Cancel key\n @since 22"]
770#[cfg(feature = "api-22")]
771pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_CANCEL: Input_KeyCode = 2731;
772#[doc = " Mouse AI Assistant key\n @since 26.0.0"]
773#[cfg(feature = "api-26")]
774pub const Input_KeyCode_KEYCODE_MOUSE_ASSISTANT: Input_KeyCode = 2732;
775#[doc = " Mouse Smart Selection key\n @since 26.0.0"]
776#[cfg(feature = "api-26")]
777pub const Input_KeyCode_KEYCODE_MOUSE_INTELLIGENCE_SELECTION: Input_KeyCode = 2733;
778#[doc = " Phone touchscreen single-click event, used in Always-On Display state.\n @since 26.0.0"]
779#[cfg(feature = "api-26")]
780pub const Input_KeyCode_KEYCODE_AOD_SINGLE_CLICK: Input_KeyCode = 2740;
781#[doc = " Front key, which is used to launch the windshield defogger\n @since 22"]
782#[cfg(feature = "api-22")]
783pub const Input_KeyCode_KEYCODE_FRONT: Input_KeyCode = 2800;
784#[doc = " Setup key\n @since 22"]
785#[cfg(feature = "api-22")]
786pub const Input_KeyCode_KEYCODE_SETUP: Input_KeyCode = 2801;
787#[doc = " Wakeup key\n @since 22"]
788#[cfg(feature = "api-22")]
789pub const Input_KeyCode_KEYCODE_WAKEUP: Input_KeyCode = 2802;
790#[doc = " Send File key\n @since 22"]
791#[cfg(feature = "api-22")]
792pub const Input_KeyCode_KEYCODE_SENDFILE: Input_KeyCode = 2803;
793#[doc = " Delete File key\n @since 22"]
794#[cfg(feature = "api-22")]
795pub const Input_KeyCode_KEYCODE_DELETEFILE: Input_KeyCode = 2804;
796#[doc = " XFER key, which is used to start file transfer\n @since 22"]
797#[cfg(feature = "api-22")]
798pub const Input_KeyCode_KEYCODE_XFER: Input_KeyCode = 2805;
799#[doc = " Program key 1\n @since 22"]
800#[cfg(feature = "api-22")]
801pub const Input_KeyCode_KEYCODE_PROG1: Input_KeyCode = 2806;
802#[doc = " Program key 2\n @since 22"]
803#[cfg(feature = "api-22")]
804pub const Input_KeyCode_KEYCODE_PROG2: Input_KeyCode = 2807;
805#[doc = " DOS key\n @since 22"]
806#[cfg(feature = "api-22")]
807pub const Input_KeyCode_KEYCODE_MSDOS: Input_KeyCode = 2808;
808#[doc = " Screen Lock key\n @since 22"]
809#[cfg(feature = "api-22")]
810pub const Input_KeyCode_KEYCODE_SCREENLOCK: Input_KeyCode = 2809;
811#[doc = " Directional Rotation Display key\n @since 22"]
812#[cfg(feature = "api-22")]
813pub const Input_KeyCode_KEYCODE_DIRECTION_ROTATE_DISPLAY: Input_KeyCode = 2810;
814#[doc = " Window Cycle key\n @since 22"]
815#[cfg(feature = "api-22")]
816pub const Input_KeyCode_KEYCODE_CYCLEWINDOWS: Input_KeyCode = 2811;
817#[doc = " Computer key\n @since 22"]
818#[cfg(feature = "api-22")]
819pub const Input_KeyCode_KEYCODE_COMPUTER: Input_KeyCode = 2812;
820#[doc = " Eject CD key\n @since 22"]
821#[cfg(feature = "api-22")]
822pub const Input_KeyCode_KEYCODE_EJECTCLOSECD: Input_KeyCode = 2813;
823#[doc = " ISO key\n @since 22"]
824#[cfg(feature = "api-22")]
825pub const Input_KeyCode_KEYCODE_ISO: Input_KeyCode = 2814;
826#[doc = " Move key\n @since 22"]
827#[cfg(feature = "api-22")]
828pub const Input_KeyCode_KEYCODE_MOVE: Input_KeyCode = 2815;
829#[doc = " F13 key\n @since 22"]
830#[cfg(feature = "api-22")]
831pub const Input_KeyCode_KEYCODE_F13: Input_KeyCode = 2816;
832#[doc = " F14 key\n @since 22"]
833#[cfg(feature = "api-22")]
834pub const Input_KeyCode_KEYCODE_F14: Input_KeyCode = 2817;
835#[doc = " F15 key\n @since 22"]
836#[cfg(feature = "api-22")]
837pub const Input_KeyCode_KEYCODE_F15: Input_KeyCode = 2818;
838#[doc = " F16 key\n @since 22"]
839#[cfg(feature = "api-22")]
840pub const Input_KeyCode_KEYCODE_F16: Input_KeyCode = 2819;
841#[doc = " F17 key\n @since 22"]
842#[cfg(feature = "api-22")]
843pub const Input_KeyCode_KEYCODE_F17: Input_KeyCode = 2820;
844#[doc = " F18 key\n @since 22"]
845#[cfg(feature = "api-22")]
846pub const Input_KeyCode_KEYCODE_F18: Input_KeyCode = 2821;
847#[doc = " F19 key\n @since 22"]
848#[cfg(feature = "api-22")]
849pub const Input_KeyCode_KEYCODE_F19: Input_KeyCode = 2822;
850#[doc = " F20 key\n @since 22"]
851#[cfg(feature = "api-22")]
852pub const Input_KeyCode_KEYCODE_F20: Input_KeyCode = 2823;
853#[doc = " F21 key\n @since 22"]
854#[cfg(feature = "api-22")]
855pub const Input_KeyCode_KEYCODE_F21: Input_KeyCode = 2824;
856#[doc = " F22 key\n @since 22"]
857#[cfg(feature = "api-22")]
858pub const Input_KeyCode_KEYCODE_F22: Input_KeyCode = 2825;
859#[doc = " F23 key\n @since 22"]
860#[cfg(feature = "api-22")]
861pub const Input_KeyCode_KEYCODE_F23: Input_KeyCode = 2826;
862#[doc = " F24 key\n @since 22"]
863#[cfg(feature = "api-22")]
864pub const Input_KeyCode_KEYCODE_F24: Input_KeyCode = 2827;
865#[doc = " Program key 3\n @since 22"]
866#[cfg(feature = "api-22")]
867pub const Input_KeyCode_KEYCODE_PROG3: Input_KeyCode = 2828;
868#[doc = " Program key 4\n @since 22"]
869#[cfg(feature = "api-22")]
870pub const Input_KeyCode_KEYCODE_PROG4: Input_KeyCode = 2829;
871#[doc = " Dashboard\n @since 22"]
872#[cfg(feature = "api-22")]
873pub const Input_KeyCode_KEYCODE_DASHBOARD: Input_KeyCode = 2830;
874#[doc = " Suspend key\n @since 22"]
875#[cfg(feature = "api-22")]
876pub const Input_KeyCode_KEYCODE_SUSPEND: Input_KeyCode = 2831;
877#[doc = " HP key\n @since 22"]
878#[cfg(feature = "api-22")]
879pub const Input_KeyCode_KEYCODE_HP: Input_KeyCode = 2832;
880#[doc = " Sound key\n @since 22"]
881#[cfg(feature = "api-22")]
882pub const Input_KeyCode_KEYCODE_SOUND: Input_KeyCode = 2833;
883#[doc = " Question key\n @since 22"]
884#[cfg(feature = "api-22")]
885pub const Input_KeyCode_KEYCODE_QUESTION: Input_KeyCode = 2834;
886#[doc = " Connect key\n @since 22"]
887#[cfg(feature = "api-22")]
888pub const Input_KeyCode_KEYCODE_CONNECT: Input_KeyCode = 2836;
889#[doc = " Sport key\n @since 22"]
890#[cfg(feature = "api-22")]
891pub const Input_KeyCode_KEYCODE_SPORT: Input_KeyCode = 2837;
892#[doc = " Shop key\n @since 22"]
893#[cfg(feature = "api-22")]
894pub const Input_KeyCode_KEYCODE_SHOP: Input_KeyCode = 2838;
895#[doc = " Alternate key\n @since 22"]
896#[cfg(feature = "api-22")]
897pub const Input_KeyCode_KEYCODE_ALTERASE: Input_KeyCode = 2839;
898#[doc = " Cycle output between available videos (monitor/LCD/TV output/more)\n @since 22"]
899#[cfg(feature = "api-22")]
900pub const Input_KeyCode_KEYCODE_SWITCHVIDEOMODE: Input_KeyCode = 2841;
901#[doc = " Battery key\n @since 22"]
902#[cfg(feature = "api-22")]
903pub const Input_KeyCode_KEYCODE_BATTERY: Input_KeyCode = 2842;
904#[doc = " Bluetooth key\n @since 22"]
905#[cfg(feature = "api-22")]
906pub const Input_KeyCode_KEYCODE_BLUETOOTH: Input_KeyCode = 2843;
907#[doc = " WLAN key\n @since 22"]
908#[cfg(feature = "api-22")]
909pub const Input_KeyCode_KEYCODE_WLAN: Input_KeyCode = 2844;
910#[doc = " Ultra-wideband key\n @since 22"]
911#[cfg(feature = "api-22")]
912pub const Input_KeyCode_KEYCODE_UWB: Input_KeyCode = 2845;
913#[doc = " Mobile Network Control key\n @since 22"]
914#[cfg(feature = "api-22")]
915pub const Input_KeyCode_KEYCODE_WWAN_WIMAX: Input_KeyCode = 2846;
916#[doc = " RF Kill key\n @since 22"]
917#[cfg(feature = "api-22")]
918pub const Input_KeyCode_KEYCODE_RFKILL: Input_KeyCode = 2847;
919#[doc = " Channel key\n @since 22"]
920#[cfg(feature = "api-22")]
921pub const Input_KeyCode_KEYCODE_CHANNEL: Input_KeyCode = 3001;
922#[doc = "Button 0\n @since 22"]
923#[cfg(feature = "api-22")]
924pub const Input_KeyCode_KEYCODE_BTN_0: Input_KeyCode = 3100;
925#[doc = " Button 1\n @since 22"]
926#[cfg(feature = "api-22")]
927pub const Input_KeyCode_KEYCODE_BTN_1: Input_KeyCode = 3101;
928#[doc = " Button 2\n @since 22"]
929#[cfg(feature = "api-22")]
930pub const Input_KeyCode_KEYCODE_BTN_2: Input_KeyCode = 3102;
931#[doc = " Button 3\n @since 22"]
932#[cfg(feature = "api-22")]
933pub const Input_KeyCode_KEYCODE_BTN_3: Input_KeyCode = 3103;
934#[doc = " Button 4\n @since 22"]
935#[cfg(feature = "api-22")]
936pub const Input_KeyCode_KEYCODE_BTN_4: Input_KeyCode = 3104;
937#[doc = " Button 5\n @since 22"]
938#[cfg(feature = "api-22")]
939pub const Input_KeyCode_KEYCODE_BTN_5: Input_KeyCode = 3105;
940#[doc = " Button 6\n @since 22"]
941#[cfg(feature = "api-22")]
942pub const Input_KeyCode_KEYCODE_BTN_6: Input_KeyCode = 3106;
943#[doc = " Button 7\n @since 22"]
944#[cfg(feature = "api-22")]
945pub const Input_KeyCode_KEYCODE_BTN_7: Input_KeyCode = 3107;
946#[doc = " Button 8\n @since 22"]
947#[cfg(feature = "api-22")]
948pub const Input_KeyCode_KEYCODE_BTN_8: Input_KeyCode = 3108;
949#[doc = " Button 9\n @since 22"]
950#[cfg(feature = "api-22")]
951pub const Input_KeyCode_KEYCODE_BTN_9: Input_KeyCode = 3109;
952#[doc = " Single tapping the smart watch's X-TAP sensor\n @since 22"]
953#[cfg(feature = "api-22")]
954pub const Input_KeyCode_KEYCODE_DAGGER_CLICK: Input_KeyCode = 3211;
955#[doc = " Double tapping the smart watch's X-TAP sensor\n @since 22"]
956#[cfg(feature = "api-22")]
957pub const Input_KeyCode_KEYCODE_DAGGER_DOUBLE_CLICK: Input_KeyCode = 3212;
958#[doc = " Long-pressing the smart watch's X-TAP sensor\n @since 22"]
959#[cfg(feature = "api-22")]
960pub const Input_KeyCode_KEYCODE_DAGGER_LONG_PRESS: Input_KeyCode = 3213;
961#[doc = " Left button of the smart watch\n @since 22"]
962#[cfg(feature = "api-22")]
963pub const Input_KeyCode_KEYCODE_DIV: Input_KeyCode = 3220;
964#[doc = " Custom Shortcut Keys\n @since 26.0.0"]
965#[cfg(feature = "api-26")]
966pub const Input_KeyCode_KEYCODE_XKEY: Input_KeyCode = 3232;
967#[doc = " Smart control Key slide-up\n @since 26.0.0"]
968#[cfg(feature = "api-26")]
969pub const Input_KeyCode_KEYCODE_FINGERPRINT_SLIDE_UP: Input_KeyCode = 3233;
970#[doc = " Smart control Key slide-down\n @since 26.0.0"]
971#[cfg(feature = "api-26")]
972pub const Input_KeyCode_KEYCODE_FINGERPRINT_SLIDE_DOWN: Input_KeyCode = 3234;
973#[doc = " @brief Enumerates the key codes.\n\n @since 12"]
974pub type Input_KeyCode = i32;
975#[doc = " Default\n @since 22"]
976#[cfg(feature = "api-22")]
977pub const Input_PointerStyle_DEFAULT: Input_PointerStyle = 0;
978#[doc = " East arrow\n @since 22"]
979#[cfg(feature = "api-22")]
980pub const Input_PointerStyle_EAST: Input_PointerStyle = 1;
981#[doc = " West arrow\n @since 22"]
982#[cfg(feature = "api-22")]
983pub const Input_PointerStyle_WEST: Input_PointerStyle = 2;
984#[doc = " South arrow\n @since 22"]
985#[cfg(feature = "api-22")]
986pub const Input_PointerStyle_SOUTH: Input_PointerStyle = 3;
987#[doc = " North arrow\n @since 22"]
988#[cfg(feature = "api-22")]
989pub const Input_PointerStyle_NORTH: Input_PointerStyle = 4;
990#[doc = " West-east arrow\n @since 22"]
991#[cfg(feature = "api-22")]
992pub const Input_PointerStyle_WEST_EAST: Input_PointerStyle = 5;
993#[doc = " North-south arrow\n @since 22"]
994#[cfg(feature = "api-22")]
995pub const Input_PointerStyle_NORTH_SOUTH: Input_PointerStyle = 6;
996#[doc = " North-east arrow\n @since 22"]
997#[cfg(feature = "api-22")]
998pub const Input_PointerStyle_NORTH_EAST: Input_PointerStyle = 7;
999#[doc = " North-west arrow\n @since 22"]
1000#[cfg(feature = "api-22")]
1001pub const Input_PointerStyle_NORTH_WEST: Input_PointerStyle = 8;
1002#[doc = " South-east arrow\n @since 22"]
1003#[cfg(feature = "api-22")]
1004pub const Input_PointerStyle_SOUTH_EAST: Input_PointerStyle = 9;
1005#[doc = "South-west arrow\n @since 22"]
1006#[cfg(feature = "api-22")]
1007pub const Input_PointerStyle_SOUTH_WEST: Input_PointerStyle = 10;
1008#[doc = " North-east and south-west adjustment\n @since 22"]
1009#[cfg(feature = "api-22")]
1010pub const Input_PointerStyle_NORTH_EAST_SOUTH_WEST: Input_PointerStyle = 11;
1011#[doc = " North-west and south-east adjustment\n @since 22"]
1012#[cfg(feature = "api-22")]
1013pub const Input_PointerStyle_NORTH_WEST_SOUTH_EAST: Input_PointerStyle = 12;
1014#[doc = " Cross (accurate selection)\n @since 22"]
1015#[cfg(feature = "api-22")]
1016pub const Input_PointerStyle_CROSS: Input_PointerStyle = 13;
1017#[doc = " Copy.\n @since 22"]
1018#[cfg(feature = "api-22")]
1019pub const Input_PointerStyle_CURSOR_COPY: Input_PointerStyle = 14;
1020#[doc = " Forbid\n @since 22"]
1021#[cfg(feature = "api-22")]
1022pub const Input_PointerStyle_CURSOR_FORBID: Input_PointerStyle = 15;
1023#[doc = " Color picker\n @since 22"]
1024#[cfg(feature = "api-22")]
1025pub const Input_PointerStyle_COLOR_SUCKER: Input_PointerStyle = 16;
1026#[doc = " Grabbing hand\n @since 22"]
1027#[cfg(feature = "api-22")]
1028pub const Input_PointerStyle_HAND_GRABBING: Input_PointerStyle = 17;
1029#[doc = " Opening hand\n @since 22"]
1030#[cfg(feature = "api-22")]
1031pub const Input_PointerStyle_HAND_OPEN: Input_PointerStyle = 18;
1032#[doc = " Hand-shaped pointer\n @since 22"]
1033#[cfg(feature = "api-22")]
1034pub const Input_PointerStyle_HAND_POINTING: Input_PointerStyle = 19;
1035#[doc = " Help\n @since 22"]
1036#[cfg(feature = "api-22")]
1037pub const Input_PointerStyle_HELP: Input_PointerStyle = 20;
1038#[doc = " Move\n @since 22"]
1039#[cfg(feature = "api-22")]
1040pub const Input_PointerStyle_MOVE: Input_PointerStyle = 21;
1041#[doc = " Left and right resizing\n @since 22"]
1042#[cfg(feature = "api-22")]
1043pub const Input_PointerStyle_RESIZE_LEFT_RIGHT: Input_PointerStyle = 22;
1044#[doc = " Up and down resizing\n @since 22"]
1045#[cfg(feature = "api-22")]
1046pub const Input_PointerStyle_RESIZE_UP_DOWN: Input_PointerStyle = 23;
1047#[doc = " Screenshot crosshair\n @since 22"]
1048#[cfg(feature = "api-22")]
1049pub const Input_PointerStyle_SCREENSHOT_CHOOSE: Input_PointerStyle = 24;
1050#[doc = " Screenshot\n @since 22"]
1051#[cfg(feature = "api-22")]
1052pub const Input_PointerStyle_SCREENSHOT_CURSOR: Input_PointerStyle = 25;
1053#[doc = " Text selection\n @since 22"]
1054#[cfg(feature = "api-22")]
1055pub const Input_PointerStyle_TEXT_CURSOR: Input_PointerStyle = 26;
1056#[doc = " Zoom in\n @since 22"]
1057#[cfg(feature = "api-22")]
1058pub const Input_PointerStyle_ZOOM_IN: Input_PointerStyle = 27;
1059#[doc = " Zoom out\n @since 22"]
1060#[cfg(feature = "api-22")]
1061pub const Input_PointerStyle_ZOOM_OUT: Input_PointerStyle = 28;
1062#[doc = " Scrolling east\n @since 22"]
1063#[cfg(feature = "api-22")]
1064pub const Input_PointerStyle_MIDDLE_BTN_EAST: Input_PointerStyle = 29;
1065#[doc = " Scrolling west\n @since 22"]
1066#[cfg(feature = "api-22")]
1067pub const Input_PointerStyle_MIDDLE_BTN_WEST: Input_PointerStyle = 30;
1068#[doc = " Scrolling south\n @since 22"]
1069#[cfg(feature = "api-22")]
1070pub const Input_PointerStyle_MIDDLE_BTN_SOUTH: Input_PointerStyle = 31;
1071#[doc = " Scrolling north\n @since 22"]
1072#[cfg(feature = "api-22")]
1073pub const Input_PointerStyle_MIDDLE_BTN_NORTH: Input_PointerStyle = 32;
1074#[doc = " Scrolling north-south\n @since 22"]
1075#[cfg(feature = "api-22")]
1076pub const Input_PointerStyle_MIDDLE_BTN_NORTH_SOUTH: Input_PointerStyle = 33;
1077#[doc = " Scrolling north-east\n @since 22"]
1078#[cfg(feature = "api-22")]
1079pub const Input_PointerStyle_MIDDLE_BTN_NORTH_EAST: Input_PointerStyle = 34;
1080#[doc = " Scrolling north-west\n @since 22"]
1081#[cfg(feature = "api-22")]
1082pub const Input_PointerStyle_MIDDLE_BTN_NORTH_WEST: Input_PointerStyle = 35;
1083#[doc = " Scrolling south-east\n @since 22"]
1084#[cfg(feature = "api-22")]
1085pub const Input_PointerStyle_MIDDLE_BTN_SOUTH_EAST: Input_PointerStyle = 36;
1086#[doc = " Scrolling south-west\n @since 22"]
1087#[cfg(feature = "api-22")]
1088pub const Input_PointerStyle_MIDDLE_BTN_SOUTH_WEST: Input_PointerStyle = 37;
1089#[doc = " Moving as a cone in four directions\n @since 22"]
1090#[cfg(feature = "api-22")]
1091pub const Input_PointerStyle_MIDDLE_BTN_NORTH_SOUTH_WEST_EAST: Input_PointerStyle = 38;
1092#[doc = " Horizontal text selection\n @since 22"]
1093#[cfg(feature = "api-22")]
1094pub const Input_PointerStyle_HORIZONTAL_TEXT_CURSOR: Input_PointerStyle = 39;
1095#[doc = " Cross\n @since 22"]
1096#[cfg(feature = "api-22")]
1097pub const Input_PointerStyle_CURSOR_CROSS: Input_PointerStyle = 40;
1098#[doc = " Circle\n @since 22"]
1099#[cfg(feature = "api-22")]
1100pub const Input_PointerStyle_CURSOR_CIRCLE: Input_PointerStyle = 41;
1101#[doc = " Loading\n @since 22"]
1102#[cfg(feature = "api-22")]
1103pub const Input_PointerStyle_LOADING: Input_PointerStyle = 42;
1104#[doc = " Running in the background\n @since 22"]
1105#[cfg(feature = "api-22")]
1106pub const Input_PointerStyle_RUNNING: Input_PointerStyle = 43;
1107#[doc = " Scrolling east-west\n @since 22"]
1108#[cfg(feature = "api-22")]
1109pub const Input_PointerStyle_MIDDLE_BTN_EAST_WEST: Input_PointerStyle = 44;
1110#[doc = " Running in the background (extension 1)\n @since 22"]
1111#[cfg(feature = "api-22")]
1112pub const Input_PointerStyle_RUNNING_LEFT: Input_PointerStyle = 45;
1113#[doc = " Running in the background (extension 2)\n @since 22"]
1114#[cfg(feature = "api-22")]
1115pub const Input_PointerStyle_RUNNING_RIGHT: Input_PointerStyle = 46;
1116#[doc = " Custom circular pointer\n @since 22"]
1117#[cfg(feature = "api-22")]
1118pub const Input_PointerStyle_AECH_DEVELOPER_DEFINED_ICON: Input_PointerStyle = 47;
1119#[doc = " Screen recording\n @since 22"]
1120#[cfg(feature = "api-22")]
1121pub const Input_PointerStyle_SCREENRECORDER_CURSOR: Input_PointerStyle = 48;
1122#[doc = " Floating This pointer can be used only when the stylus enters the air mouse mode and cannot be directly set.<br>\n In air mouse mode, you can rotate the stylus in the air to control the movement of the virtual pointer on the\n screen and press the button on the stylus to turn pages up or down. This mode is used PPT presentation and air\n gesture control.\n @since 22"]
1123#[cfg(feature = "api-22")]
1124pub const Input_PointerStyle_LASER_CURSOR: Input_PointerStyle = 49;
1125#[doc = " Click This pointer can be used only when the stylus enters the air mouse mode and cannot be directly set.<br>In\n air mouse mode, you can rotate the stylus in the air to control the movement of the virtual pointer on the screen\n and press the button on the stylus to turn pages up or down. This mode is used PPT presentation and air gesture\n control.\n @since 22"]
1126#[cfg(feature = "api-22")]
1127pub const Input_PointerStyle_LASER_CURSOR_DOT: Input_PointerStyle = 50;
1128#[doc = " Laser pointer This pointer can be used only when the stylus enters the air mouse mode and cannot be directly set.\n <br>In air mouse mode, you can rotate the stylus in the air to control the movement of the virtual pointer on\n the screen and press the button on the stylus to turn pages up or down. This mode is used PPT presentation and\n air gesture control.\n @since 22"]
1129#[cfg(feature = "api-22")]
1130pub const Input_PointerStyle_LASER_CURSOR_DOT_RED: Input_PointerStyle = 51;
1131#[doc = " Custom pointer. You can use the {@link OH_Input_SetCustomCursor} to set a custom pointer, but not the\n {@link OH_Input_SetPointerStyle}.\n @since 22"]
1132#[cfg(feature = "api-22")]
1133pub const Input_PointerStyle_DEVELOPER_DEFINED_ICON: Input_PointerStyle = -100;
1134#[doc = " @brief Enumerates the pointer styles.\n\n @since 22"]
1135#[cfg(feature = "api-22")]
1136pub type Input_PointerStyle = i32;
1137#[doc = " Default state."]
1138pub const Input_KeyStateAction_KEY_DEFAULT: Input_KeyStateAction = -1;
1139#[doc = " Key press."]
1140pub const Input_KeyStateAction_KEY_PRESSED: Input_KeyStateAction = 0;
1141#[doc = " Key release."]
1142pub const Input_KeyStateAction_KEY_RELEASED: Input_KeyStateAction = 1;
1143#[doc = " Key switch enabled."]
1144pub const Input_KeyStateAction_KEY_SWITCH_ON: Input_KeyStateAction = 2;
1145#[doc = " Key switch disabled."]
1146pub const Input_KeyStateAction_KEY_SWITCH_OFF: Input_KeyStateAction = 3;
1147#[doc = " @brief Provides the enum values of the key status.\n\n @since 12"]
1148pub type Input_KeyStateAction = i32;
1149#[doc = " Button action canceled."]
1150pub const Input_KeyEventAction_KEY_ACTION_CANCEL: Input_KeyEventAction = 0;
1151#[doc = " Key press."]
1152pub const Input_KeyEventAction_KEY_ACTION_DOWN: Input_KeyEventAction = 1;
1153#[doc = " Key release."]
1154pub const Input_KeyEventAction_KEY_ACTION_UP: Input_KeyEventAction = 2;
1155#[doc = " @brief Provides the enum values of the key event type.\n\n @since 12"]
1156pub type Input_KeyEventAction = u32;
1157#[doc = " Cancellation of the mouse action."]
1158pub const Input_MouseEventAction_MOUSE_ACTION_CANCEL: Input_MouseEventAction = 0;
1159#[doc = " Moving of the mouse pointer."]
1160pub const Input_MouseEventAction_MOUSE_ACTION_MOVE: Input_MouseEventAction = 1;
1161#[doc = " Pressing of the mouse button."]
1162pub const Input_MouseEventAction_MOUSE_ACTION_BUTTON_DOWN: Input_MouseEventAction = 2;
1163#[doc = " Release of the mouse button."]
1164pub const Input_MouseEventAction_MOUSE_ACTION_BUTTON_UP: Input_MouseEventAction = 3;
1165#[doc = " Beginning of the mouse axis event."]
1166pub const Input_MouseEventAction_MOUSE_ACTION_AXIS_BEGIN: Input_MouseEventAction = 4;
1167#[doc = " Updating of the mouse axis event."]
1168pub const Input_MouseEventAction_MOUSE_ACTION_AXIS_UPDATE: Input_MouseEventAction = 5;
1169#[doc = " End of the mouse axis event."]
1170pub const Input_MouseEventAction_MOUSE_ACTION_AXIS_END: Input_MouseEventAction = 6;
1171#[doc = " @brief Provides the enum values of mouse actions.\n\n @since 12"]
1172pub type Input_MouseEventAction = u32;
1173#[doc = " Vertical scroll axis."]
1174pub const InputEvent_MouseAxis_MOUSE_AXIS_SCROLL_VERTICAL: InputEvent_MouseAxis = 0;
1175#[doc = " Horizontal scroll axis."]
1176pub const InputEvent_MouseAxis_MOUSE_AXIS_SCROLL_HORIZONTAL: InputEvent_MouseAxis = 1;
1177#[doc = " @brief Provides the enum values of mouse axis event types.\n\n @since 12"]
1178pub type InputEvent_MouseAxis = u32;
1179#[doc = " Invalid button."]
1180pub const Input_MouseEventButton_MOUSE_BUTTON_NONE: Input_MouseEventButton = -1;
1181#[doc = " Left button."]
1182pub const Input_MouseEventButton_MOUSE_BUTTON_LEFT: Input_MouseEventButton = 0;
1183#[doc = " Middle button."]
1184pub const Input_MouseEventButton_MOUSE_BUTTON_MIDDLE: Input_MouseEventButton = 1;
1185#[doc = " Right button."]
1186pub const Input_MouseEventButton_MOUSE_BUTTON_RIGHT: Input_MouseEventButton = 2;
1187#[doc = " Forward button."]
1188pub const Input_MouseEventButton_MOUSE_BUTTON_FORWARD: Input_MouseEventButton = 3;
1189#[doc = " Back button."]
1190pub const Input_MouseEventButton_MOUSE_BUTTON_BACK: Input_MouseEventButton = 4;
1191#[doc = " @brief Provides the enum values of mouse buttons.\n\n @since 12"]
1192pub type Input_MouseEventButton = i32;
1193#[doc = " Touch cancellation."]
1194pub const Input_TouchEventAction_TOUCH_ACTION_CANCEL: Input_TouchEventAction = 0;
1195#[doc = " Touch press."]
1196pub const Input_TouchEventAction_TOUCH_ACTION_DOWN: Input_TouchEventAction = 1;
1197#[doc = " Touch moving."]
1198pub const Input_TouchEventAction_TOUCH_ACTION_MOVE: Input_TouchEventAction = 2;
1199#[doc = " Touch release."]
1200pub const Input_TouchEventAction_TOUCH_ACTION_UP: Input_TouchEventAction = 3;
1201#[doc = " @brief Provides the enum values of touch actions.\n\n @since 12"]
1202pub type Input_TouchEventAction = u32;
1203#[doc = " Keyboard without keys."]
1204#[cfg(feature = "api-13")]
1205pub const Input_KeyboardType_KEYBOARD_TYPE_NONE: Input_KeyboardType = 0;
1206#[doc = " Keyboard with unknown keys."]
1207#[cfg(feature = "api-13")]
1208pub const Input_KeyboardType_KEYBOARD_TYPE_UNKNOWN: Input_KeyboardType = 1;
1209#[doc = " Full keyboard."]
1210#[cfg(feature = "api-13")]
1211pub const Input_KeyboardType_KEYBOARD_TYPE_ALPHABETIC: Input_KeyboardType = 2;
1212#[doc = " Numeric keypad."]
1213#[cfg(feature = "api-13")]
1214pub const Input_KeyboardType_KEYBOARD_TYPE_DIGITAL: Input_KeyboardType = 3;
1215#[doc = " Stylus."]
1216#[cfg(feature = "api-13")]
1217pub const Input_KeyboardType_KEYBOARD_TYPE_STYLUS: Input_KeyboardType = 4;
1218#[doc = " Remote control."]
1219#[cfg(feature = "api-13")]
1220pub const Input_KeyboardType_KEYBOARD_TYPE_REMOTE_CONTROL: Input_KeyboardType = 5;
1221#[doc = " @brief Provides the enum values of keyboard types of the input device.\n\n @since 13"]
1222#[cfg(feature = "api-13")]
1223pub type Input_KeyboardType = u32;
1224#[doc = " Permission not granted."]
1225#[cfg(feature = "api-20")]
1226pub const Input_InjectionStatus_UNAUTHORIZED: Input_InjectionStatus = 0;
1227#[doc = " Permission being granted."]
1228#[cfg(feature = "api-20")]
1229pub const Input_InjectionStatus_AUTHORIZING: Input_InjectionStatus = 1;
1230#[doc = " Permission granted."]
1231#[cfg(feature = "api-20")]
1232pub const Input_InjectionStatus_AUTHORIZED: Input_InjectionStatus = 2;
1233#[doc = " @brief Provides the enum values of injection permission states.\n\n @since 20"]
1234#[cfg(feature = "api-20")]
1235pub type Input_InjectionStatus = u32;
1236#[doc = " Source that generates events similar to mouse pointer movement, button press and release, and wheel scrolling.\n @since 12"]
1237pub const InputEvent_SourceType_SOURCE_TYPE_MOUSE: InputEvent_SourceType = 1;
1238#[doc = " Source that generates a touchscreen multi-touch event.\n @since 12"]
1239pub const InputEvent_SourceType_SOURCE_TYPE_TOUCHSCREEN: InputEvent_SourceType = 2;
1240#[doc = " Source that generates a touchpad multi-touch event.\n @since 12"]
1241pub const InputEvent_SourceType_SOURCE_TYPE_TOUCHPAD: InputEvent_SourceType = 3;
1242#[doc = " @brief Provides the enum values of event source types.\n\n @since 12"]
1243pub type InputEvent_SourceType = u32;
1244#[repr(C)]
1245#[derive(Debug, Copy, Clone)]
1246pub struct Input_KeyState {
1247 _unused: [u8; 0],
1248}
1249#[repr(C)]
1250#[derive(Debug, Copy, Clone)]
1251pub struct Input_KeyEvent {
1252 _unused: [u8; 0],
1253}
1254#[repr(C)]
1255#[derive(Debug, Copy, Clone)]
1256pub struct Input_MouseEvent {
1257 _unused: [u8; 0],
1258}
1259#[repr(C)]
1260#[derive(Debug, Copy, Clone)]
1261pub struct Input_TouchEvent {
1262 _unused: [u8; 0],
1263}
1264#[repr(C)]
1265#[derive(Debug, Copy, Clone)]
1266pub struct Input_AxisEvent {
1267 _unused: [u8; 0],
1268}
1269#[cfg(feature = "api-14")]
1270#[repr(C)]
1271#[derive(Debug, Copy, Clone)]
1272pub struct Input_Hotkey {
1273 _unused: [u8; 0],
1274}
1275#[cfg(feature = "api-22")]
1276#[repr(C)]
1277#[derive(Debug, Copy, Clone)]
1278pub struct Input_CursorInfo {
1279 _unused: [u8; 0],
1280}
1281#[doc = " Operation succeeded."]
1282pub const Input_Result_INPUT_SUCCESS: Input_Result = 0;
1283#[doc = " Permission verification failed."]
1284pub const Input_Result_INPUT_PERMISSION_DENIED: Input_Result = 201;
1285#[doc = " Non-system application."]
1286pub const Input_Result_INPUT_NOT_SYSTEM_APPLICATION: Input_Result = 202;
1287#[doc = " Parameter check fails."]
1288pub const Input_Result_INPUT_PARAMETER_ERROR: Input_Result = 401;
1289#[doc = " Function not supported."]
1290pub const Input_Result_INPUT_DEVICE_NOT_SUPPORTED: Input_Result = 801;
1291#[doc = " Service error."]
1292pub const Input_Result_INPUT_SERVICE_EXCEPTION: Input_Result = 3800001;
1293#[doc = " Interceptor repeatedly created."]
1294pub const Input_Result_INPUT_REPEAT_INTERCEPTOR: Input_Result = 4200001;
1295#[doc = " Input device occupied by a system application.\n @since 14"]
1296#[cfg(feature = "api-14")]
1297pub const Input_Result_INPUT_OCCUPIED_BY_SYSTEM: Input_Result = 4200002;
1298#[doc = " Input device occupied by another application.\n @since 14"]
1299#[cfg(feature = "api-14")]
1300pub const Input_Result_INPUT_OCCUPIED_BY_OTHER: Input_Result = 4200003;
1301#[doc = " Keyboard not connected.\n @since 15"]
1302#[cfg(feature = "api-15")]
1303pub const Input_Result_INPUT_KEYBOARD_DEVICE_NOT_EXIST: Input_Result = 3900002;
1304#[doc = " Authorization in progress.\n @since 20"]
1305#[cfg(feature = "api-20")]
1306pub const Input_Result_INPUT_INJECTION_AUTHORIZING: Input_Result = 3900005;
1307#[doc = " Repeated request.\n @since 20"]
1308#[cfg(feature = "api-20")]
1309pub const Input_Result_INPUT_INJECTION_OPERATION_FREQUENT: Input_Result = 3900006;
1310#[doc = " Permission granted to the current application.\n @since 20"]
1311#[cfg(feature = "api-20")]
1312pub const Input_Result_INPUT_INJECTION_AUTHORIZED: Input_Result = 3900007;
1313#[doc = " Permission granted to other applications.\n @since 20"]
1314#[cfg(feature = "api-20")]
1315pub const Input_Result_INPUT_INJECTION_AUTHORIZED_OTHERS: Input_Result = 3900008;
1316#[doc = " Application not in focus.\n @since 20"]
1317#[cfg(feature = "api-20")]
1318pub const Input_Result_INPUT_APP_NOT_FOCUSED: Input_Result = 3900009;
1319#[doc = " No mouse device.\n @since 20"]
1320#[cfg(feature = "api-20")]
1321pub const Input_Result_INPUT_DEVICE_NO_POINTER: Input_Result = 3900010;
1322#[doc = " Invalid window ID.\n @since 22"]
1323#[cfg(feature = "api-22")]
1324pub const Input_Result_INPUT_INVALID_WINDOWID: Input_Result = 26500001;
1325#[doc = " @brief Provides return value enumerations.\n\n @since 12"]
1326pub type Input_Result = u32;
1327#[doc = " Finger\n @since 24"]
1328#[cfg(feature = "api-24")]
1329pub const Input_TouchEventToolType_TOOL_TYPE_FINGER: Input_TouchEventToolType = 0;
1330#[doc = " Pen\n @since 24"]
1331#[cfg(feature = "api-24")]
1332pub const Input_TouchEventToolType_TOOL_TYPE_PEN: Input_TouchEventToolType = 1;
1333#[doc = " Rubber\n @since 24"]
1334#[cfg(feature = "api-24")]
1335pub const Input_TouchEventToolType_TOOL_TYPE_RUBBER: Input_TouchEventToolType = 2;
1336#[doc = " Brush\n @since 24"]
1337#[cfg(feature = "api-24")]
1338pub const Input_TouchEventToolType_TOOL_TYPE_BRUSH: Input_TouchEventToolType = 3;
1339#[doc = " Pencil\n @since 24"]
1340#[cfg(feature = "api-24")]
1341pub const Input_TouchEventToolType_TOOL_TYPE_PENCIL: Input_TouchEventToolType = 4;
1342#[doc = " Air brush\n @since 24"]
1343#[cfg(feature = "api-24")]
1344pub const Input_TouchEventToolType_TOOL_TYPE_AIRBRUSH: Input_TouchEventToolType = 5;
1345#[doc = " Mouse\n @since 24"]
1346#[cfg(feature = "api-24")]
1347pub const Input_TouchEventToolType_TOOL_TYPE_MOUSE: Input_TouchEventToolType = 6;
1348#[doc = " lens\n @since 24"]
1349#[cfg(feature = "api-24")]
1350pub const Input_TouchEventToolType_TOOL_TYPE_LENS: Input_TouchEventToolType = 7;
1351#[doc = " @brief Enumerates touch tool types of an input device.\n\n @since 24"]
1352#[cfg(feature = "api-24")]
1353pub type Input_TouchEventToolType = u32;
1354#[doc = " @brief Defines the callback used to return hotkey events.\n\n @since 14"]
1355#[cfg(feature = "api-14")]
1356pub type Input_HotkeyCallback =
1357 ::std::option::Option<unsafe extern "C" fn(hotkey: *mut Input_Hotkey)>;
1358#[cfg(feature = "api-13")]
1359#[repr(C)]
1360#[derive(Debug, Copy, Clone)]
1361pub struct Input_DeviceInfo {
1362 _unused: [u8; 0],
1363}
1364#[cfg(feature = "api-22")]
1365#[repr(C)]
1366#[derive(Debug, Copy, Clone)]
1367pub struct Input_CustomCursor {
1368 _unused: [u8; 0],
1369}
1370#[cfg(feature = "api-22")]
1371#[repr(C)]
1372#[derive(Debug, Copy, Clone)]
1373pub struct Input_CursorConfig {
1374 _unused: [u8; 0],
1375}
1376#[doc = " @brief Defines a lifecycle callback for **keyEvent**. If the callback is triggered, **keyEvent** will be destroyed.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @since 12"]
1377pub type Input_KeyEventCallback =
1378 ::std::option::Option<unsafe extern "C" fn(keyEvent: *const Input_KeyEvent)>;
1379#[doc = " @brief Defines a lifecycle callback for **mouseEvent**. If the callback is triggered, **mouseEvent** will be\n destroyed.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @since 12"]
1380pub type Input_MouseEventCallback =
1381 ::std::option::Option<unsafe extern "C" fn(mouseEvent: *const Input_MouseEvent)>;
1382#[doc = " @brief Defines the lifecycle callback for **TouchEvent**. If the callback is triggered, **TouchEvent** will be\n destroyed.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @since 12"]
1383pub type Input_TouchEventCallback =
1384 ::std::option::Option<unsafe extern "C" fn(touchEvent: *const Input_TouchEvent)>;
1385#[doc = " @brief Defines a lifecycle callback for **axisEvent**. If the callback is triggered, **axisEvent** will be destroyed.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @since 12"]
1386pub type Input_AxisEventCallback =
1387 ::std::option::Option<unsafe extern "C" fn(axisEvent: *const Input_AxisEvent)>;
1388#[doc = " @brief Callback used to receive input device hot-plug events.\n\n @param deviceId Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID\n may change.\n @since 13"]
1389#[cfg(feature = "api-13")]
1390pub type Input_DeviceAddedCallback = ::std::option::Option<unsafe extern "C" fn(deviceId: i32)>;
1391#[doc = " @brief Callback used to receive input device hot-unplug events.\n\n @param deviceId Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID\n may change.\n @since 13"]
1392#[cfg(feature = "api-13")]
1393pub type Input_DeviceRemovedCallback = ::std::option::Option<unsafe extern "C" fn(deviceId: i32)>;
1394#[doc = " @brief Defines a callback used to receive the injection permission authorization status.\n\n @param authorizedStatus Injection permission authorization status.\n @since 20"]
1395#[cfg(feature = "api-20")]
1396pub type Input_InjectAuthorizeCallback =
1397 ::std::option::Option<unsafe extern "C" fn(authorizedStatus: Input_InjectionStatus)>;
1398#[doc = " @brief Defines the structure for the interceptor of event callbacks,\n including mouseCallback, touchCallback, and axisCallback.\n @since 12"]
1399#[repr(C)]
1400#[derive(Debug, Copy, Clone)]
1401pub struct Input_InterceptorEventCallback {
1402 #[doc = " Defines a lifecycle callback for **mouseEvent**."]
1403 pub mouseCallback: Input_MouseEventCallback,
1404 #[doc = " Defines a lifecycle callback for **touchEvent**."]
1405 pub touchCallback: Input_TouchEventCallback,
1406 #[doc = " Defines a lifecycle callback for **axisEvent**."]
1407 pub axisCallback: Input_AxisEventCallback,
1408}
1409#[doc = " @brief Defines the struct for listening for device hot swapping. It is applicable to applications that need to\n respond to input device connection and disconnection in real time, such as games and music players. By listening for\n device hot swapping events, applications can update the input status in a timely manner, improving user experience\n and avoiding exceptions caused by device disconnection.\n\n @since 13"]
1410#[cfg(feature = "api-13")]
1411#[repr(C)]
1412#[derive(Debug, Copy, Clone)]
1413pub struct Input_DeviceListener {
1414 #[doc = " Defines a callback used to receive device hot-plug events."]
1415 pub deviceAddedCallback: Input_DeviceAddedCallback,
1416 #[doc = " Defines a callback used to receive device hot-unplug events."]
1417 pub deviceRemovedCallback: Input_DeviceRemovedCallback,
1418}
1419#[repr(C)]
1420#[derive(Debug, Copy, Clone)]
1421pub struct Input_InterceptorOptions {
1422 _unused: [u8; 0],
1423}
1424extern "C" {
1425 #[doc = " @brief Queries a key status enum object.\n\n @param keyState Key status enum object. For details, see {@link Input_KeyStateAction}.\n @return If the operation is successful, {@link INPUT_SUCCESS} is returned; if parameter verification fails,\n {@link INPUT_PARAMETER_ERROR} is returned.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1426 pub fn OH_Input_GetKeyState(keyState: *mut Input_KeyState) -> Input_Result;
1427}
1428extern "C" {
1429 #[doc = " @brief Creates a key status enum object. You can call {@link OH_Input_DestroyKeyState()} to destroy a key status\n enum object.\n\n @return If the operations is successful, {@link Input_KeyState} is returned. Otherwise, a null pointer is returned.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1430 pub fn OH_Input_CreateKeyState() -> *mut Input_KeyState;
1431}
1432extern "C" {
1433 #[doc = " @brief Destroys a key status enum object.\n\n @param keyState Key status enum object. For details, see {@link Input_KeyStateAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1434 pub fn OH_Input_DestroyKeyState(keyState: *mut *mut Input_KeyState);
1435}
1436extern "C" {
1437 #[doc = " @brief Sets the key value of a key status enum object.\n\n @param keyState Key status enum object. For details, see {@link Input_KeyStateAction}.\n @param keyCode Key code. For details, see {@link KeyCode}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1438 pub fn OH_Input_SetKeyCode(keyState: *mut Input_KeyState, keyCode: i32);
1439}
1440extern "C" {
1441 #[doc = " @brief Obtains the key value of a key status enum object.\n\n @param keyState Key status enum object. For details, see {@link Input_KeyStateAction}.\n @return Key value of the key status enum object. For details, see {@link Input_KeyStateAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1442 pub fn OH_Input_GetKeyCode(keyState: *const Input_KeyState) -> i32;
1443}
1444extern "C" {
1445 #[doc = " @brief Sets whether the key specific to a key status enum object is pressed.\n\n @param keyState Key status enum object. For details, see {@link Input_KeyStateAction}.\n @param keyAction Whether a key is pressed. For details, see {@link Input_KeyEventAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1446 pub fn OH_Input_SetKeyPressed(keyState: *mut Input_KeyState, keyAction: i32);
1447}
1448extern "C" {
1449 #[doc = " @brief Checks whether the key specific to a key status enum object is pressed.\n\n @param keyState Key status enum object. For details, see {@link Input_KeyStateAction}.\n @return Key pressing status of the key status enum object. For details, see {@link Input_KeyStateAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1450 pub fn OH_Input_GetKeyPressed(keyState: *const Input_KeyState) -> i32;
1451}
1452extern "C" {
1453 #[doc = " @brief Sets the key switch of the key status enum object.\n\n @param keyState Key status enum object. For details, see {@link Input_KeyStateAction}.\n @param keySwitch Key switch.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1454 pub fn OH_Input_SetKeySwitch(keyState: *mut Input_KeyState, keySwitch: i32);
1455}
1456extern "C" {
1457 #[doc = " @brief Injects a key event.\n <br>This API does not take effect if the user has not granted authorization and the caller does not have the ohos.\n permission.CONTROL_DEVICE permission.\n <br>Since API version 20, you are advised to use {@link OH_Input_RequestInjection()} to request the required\n permission before calling this API. If the status returned by {@link OH_Input_QueryAuthorizedStatus()} is\n {@link AUTHORIZED}, then you can call this API.\n <br>Since API version 22, if the key press event (**KEY_ACTION_DOWN**) of a modifier key (**KEYCODE_META_LEFT**, **\n KEYCODE_META_RIGHT**, **KEYCODE_CTRL_LEFT**, **KEYCODE_CTRL_RIGHT**, **KEYCODE_ALT_LEFT**, **KEYCODE_ALT_RIGHT**, **\n KEYCODE_SHIFT_LEFT**, **KEYCODE_SHIFT_RIGHT**, **KEYCODE_CAPS_LOCK**, **KEYCODE_SCROLL_LOCK**, or **KEYCODE_NUM_LOCK*\n *) is injected, the release event (**KEY_ACTION_UP**) of the key needs to be injected in a timely manner to avoid\n the key being pressed for a long time.\n <br>Since API version 26.0.0, callers that have the ohos.permission.CONTROL_DEVICE permission can use this API\n directly.\n\n @permission ohos.permission.CONTROL_DEVICE\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}. You can call\n {@link OH_Input_SetKeyEventKeyCode()} and {@link OH_Input_SetKeyEventAction()} to set the key value and key\n event type of the key event object.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @return Return value of the **OH_Input_InjectKeyEvent** function.\n <br>- {@link INPUT_SUCCESS} if the operation is successful;\n <br>- {@link INPUT_PERMISSION_DENIED} if the required permission is missing;\n <br>- {@link INPUT_PARAMETER_ERROR} if the input parameter is incorrect.\n @since 12"]
1458 pub fn OH_Input_InjectKeyEvent(keyEvent: *const Input_KeyEvent) -> i32;
1459}
1460extern "C" {
1461 #[doc = " @brief Obtains the key switch of the key status enum object.\n\n @param keyState Key status enum object. For details, see {@link Input_KeyStateAction}.\n @return Key switch of the key status enum object. For details, see {@link Input_KeyStateAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1462 pub fn OH_Input_GetKeySwitch(keyState: *const Input_KeyState) -> i32;
1463}
1464extern "C" {
1465 #[doc = " @brief Creates a key event object. You can call {@link OH_Input_DestroyKeyEvent()} to destroy a key event object.\n\n @return {@link Input_KeyEvent} pointer object if the operation is successful; a null pointer otherwise.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1466 pub fn OH_Input_CreateKeyEvent() -> *mut Input_KeyEvent;
1467}
1468extern "C" {
1469 #[doc = " @brief Destroys a key event object.\n\n @param keyEvent Key event object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1470 pub fn OH_Input_DestroyKeyEvent(keyEvent: *mut *mut Input_KeyEvent);
1471}
1472extern "C" {
1473 #[doc = " @brief Sets the key event type.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @param action Key event type. For details, see {@link Input_KeyEventAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1474 pub fn OH_Input_SetKeyEventAction(keyEvent: *mut Input_KeyEvent, action: i32);
1475}
1476extern "C" {
1477 #[doc = " @brief Obtains the key event action.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @return Key event type. For details, see {@link Input_KeyEventAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1478 pub fn OH_Input_GetKeyEventAction(keyEvent: *const Input_KeyEvent) -> i32;
1479}
1480extern "C" {
1481 #[doc = " @brief Sets the key code value for a key event.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @param keyCode Key value. For details, see {@link KeyCode}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1482 pub fn OH_Input_SetKeyEventKeyCode(keyEvent: *mut Input_KeyEvent, keyCode: i32);
1483}
1484extern "C" {
1485 #[doc = " @brief Obtains the key code value of a key event.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @return Key code of a key event. For details, see {@link Input_KeyCode}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1486 pub fn OH_Input_GetKeyEventKeyCode(keyEvent: *const Input_KeyEvent) -> i32;
1487}
1488extern "C" {
1489 #[doc = " @brief Sets the time when a key event occurs.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @param actionTime Time when the key event occurred, representing the number of microseconds elapsed since system\n startup, in microseconds (μs).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1490 pub fn OH_Input_SetKeyEventActionTime(keyEvent: *mut Input_KeyEvent, actionTime: i64);
1491}
1492extern "C" {
1493 #[doc = " @brief Obtains the time when a key event occurs.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @return Returns the time when the key event occurred, representing the number of microseconds elapsed since system\n startup, in microseconds (μs).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1494 pub fn OH_Input_GetKeyEventActionTime(keyEvent: *const Input_KeyEvent) -> i64;
1495}
1496extern "C" {
1497 #[doc = " @brief Sets the window ID of a key event.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @param windowId Window ID of the key event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1498 #[cfg(feature = "api-15")]
1499 pub fn OH_Input_SetKeyEventWindowId(keyEvent: *mut Input_KeyEvent, windowId: i32);
1500}
1501extern "C" {
1502 #[doc = " @brief Obtains the window ID of a key event.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @return Window ID of the key event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1503 #[cfg(feature = "api-15")]
1504 pub fn OH_Input_GetKeyEventWindowId(keyEvent: *const Input_KeyEvent) -> i32;
1505}
1506extern "C" {
1507 #[doc = " @brief Sets the screen ID of a key event.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @param displayId Screen ID of the key event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1508 #[cfg(feature = "api-15")]
1509 pub fn OH_Input_SetKeyEventDisplayId(keyEvent: *mut Input_KeyEvent, displayId: i32);
1510}
1511extern "C" {
1512 #[doc = " @brief Obtains the screen ID of a key event.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @return Screen ID of the key event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1513 #[cfg(feature = "api-15")]
1514 pub fn OH_Input_GetKeyEventDisplayId(keyEvent: *const Input_KeyEvent) -> i32;
1515}
1516extern "C" {
1517 #[doc = " @brief Obtains the ID of a key event.\n\n @param keyEvent **KeyEvent** object, which can be created through {@link OH_Input_CreateKeyEvent()}.\n <br>If the key event object is no longer needed, destroy it by calling {@link OH_Input_DestroyKeyEvent()}.\n @param eventId ID of the key event.\n @return Return value of the **OH_Input_GetKeyEventId** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 21"]
1518 #[cfg(feature = "api-21")]
1519 pub fn OH_Input_GetKeyEventId(
1520 keyEvent: *const Input_KeyEvent,
1521 eventId: *mut i32,
1522 ) -> Input_Result;
1523}
1524extern "C" {
1525 #[doc = " @brief Adds a hook function for key event interception.\n <br>You can call {@link OH_Input_RemoveKeyEventHook()} to remove a hook function that has been added. Multiple hook\n functions can be set for an application, but only one hook function can be set for a process. The most recently\n added hook function has a higher priority.\n\n @permission ohos.permission.HOOK_KEY_EVENT\n @param callback Hook function, which is used to intercept all key events to be distributed.\n @return Return value of the **OH_Input_AddKeyEventHook** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails;\n <br>{@link INPUT_DEVICE_NOT_SUPPORTED} if the function is not supported.\n <br>{@link INPUT_PERMISSION_DENIED} if the permission verification fails;\n <br>{@link INPUT_REPEAT_INTERCEPTOR} if the hook function is set repeatedly (only one hook function can be set\n for a process);\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @since 21"]
1526 #[cfg(feature = "api-21")]
1527 pub fn OH_Input_AddKeyEventHook(callback: Input_KeyEventCallback) -> Input_Result;
1528}
1529extern "C" {
1530 #[doc = " @brief Removes the hook function for key event interception.\n <br>This API is usually used together with {@link OH_Input_AddKeyEventHook()}.\n\n @param callback Hook function, which is used to intercept all key events to be distributed.\n @return Return value of the **OH_Input_RemoveKeyEventHook** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful; (if a hook is not added, a success message is also\n returned when the hook is removed);\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @since 21"]
1531 #[cfg(feature = "api-21")]
1532 pub fn OH_Input_RemoveKeyEventHook(callback: Input_KeyEventCallback) -> Input_Result;
1533}
1534extern "C" {
1535 #[doc = " @brief Redispatches key events.\n <br>Only key events intercepted by the hook function can be redispatched, and these events must maintain the\n original priority sequence.\n <br>After this API is called, key events will be redispatched within 3 seconds. If the redispatch is not completed\n within 3 seconds, {@link INPUT_PARAMETER_ERROR} is reported.\n <br>Successful redispatch requires correct mapping of events. If one or more {@link KEY_ACTION_DOWN} events are\n redispatched, the {@link KEY_ACTION_UP} or {@link KEY_ACTION_CANCEL} event can be redispatched.\n <br>If only the {@link KEY_ACTION_UP} or {@link KEY_ACTION_CANCEL} key events are redispatched, the API call is\n successful, but the dispatch is not actually performed.\n <br>If the redispatched event is not intercepted by the hook function, the API call is successful, but the dispatch\n is not actually performed.\n\n @param eventId ID of the key event, which can be obtained through {@link OH_Input_GetKeyEventId()}.\n @return Return value of the **OH_Input_DispatchToNextHandler** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails; (you can call\n {@link OH_Input_GetKeyEventId()} to check whether the input eventId is correct);\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @since 21"]
1536 #[cfg(feature = "api-21")]
1537 pub fn OH_Input_DispatchToNextHandler(eventId: i32) -> Input_Result;
1538}
1539extern "C" {
1540 #[doc = " @brief Injects a mouse event by using coordinates in the relative coordinate system with the upper-left corner of\n the specified screen as the origin.\n <br>This API does not take effect if the user has not granted authorization and the caller does not have the ohos.\n permission.CONTROL_DEVICE permission.\n <br>Since API version 20, you are advised to use {@link OH_Input_RequestInjection()} to request the required\n permission before calling this API. If the status returned by {@link OH_Input_QueryAuthorizedStatus()} is\n {@link AUTHORIZED}, then you can call this API.\n <br>Since API version 26.0.0, callers that have the ohos.permission.CONTROL_DEVICE permission can use this API\n directly.\n\n @permission ohos.permission.CONTROL_DEVICE\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Return value of the **OH_Input_InjectMouseEvent** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter is incorrect;\n <br>{@link INPUT_PERMISSION_DENIED} if the permission is denied.\n @since 12"]
1541 pub fn OH_Input_InjectMouseEvent(mouseEvent: *const Input_MouseEvent) -> i32;
1542}
1543extern "C" {
1544 #[doc = " @brief Injects a mouse event by using coordinates in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n <br>This API does not take effect if the user has not granted authorization and the caller does not have the ohos.\n permission.CONTROL_DEVICE permission.\n <br>Since API version 20, you are advised to use {@link OH_Input_RequestInjection()} to request the required\n permission before calling this API. If the status returned by {@link OH_Input_QueryAuthorizedStatus()} is\n {@link AUTHORIZED}, then you can call this API.\n <br>Since API version 26.0.0, callers that have the ohos.permission.CONTROL_DEVICE permission can use this API\n directly.\n\n @permission ohos.permission.CONTROL_DEVICE\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Return value of the **OH_Input_InjectMouseEventGlobal** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter is incorrect;\n <br>{@link INPUT_PERMISSION_DENIED} if the permission is denied.\n @since 20"]
1545 #[cfg(feature = "api-20")]
1546 pub fn OH_Input_InjectMouseEventGlobal(mouseEvent: *const Input_MouseEvent) -> i32;
1547}
1548extern "C" {
1549 #[doc = " @brief Creates a mouse event object. You can call {@link OH_Input_DestroyMouseEvent()} to destroy a mouse event\n object.\n\n @return {@link Input_MouseEvent} pointer object if the operation is successful; a null pointer otherwise.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1550 pub fn OH_Input_CreateMouseEvent() -> *mut Input_MouseEvent;
1551}
1552extern "C" {
1553 #[doc = " @brief Destroys a mouse event object.\n\n @param mouseEvent Mouse event object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1554 pub fn OH_Input_DestroyMouseEvent(mouseEvent: *mut *mut Input_MouseEvent);
1555}
1556extern "C" {
1557 #[doc = " @brief Sets the action for a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param action Mouse action. For details, see {@link Input_MouseEventAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1558 pub fn OH_Input_SetMouseEventAction(mouseEvent: *mut Input_MouseEvent, action: i32);
1559}
1560extern "C" {
1561 #[doc = " @brief Obtains the action of a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Mouse action. Returns -1 if mouseEvent is NULL.\n For details, see {@link Input_MouseEventAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1562 pub fn OH_Input_GetMouseEventAction(mouseEvent: *const Input_MouseEvent) -> i32;
1563}
1564extern "C" {
1565 #[doc = " @brief Sets the X coordinate of the mouse event in the relative coordinate system with the upper-left corner of the\n specified screen as the origin.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param displayX X-coordinate in the relative coordinate system with the upper left corner of the specified screen as\n the origin, in pixels (px).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1566 pub fn OH_Input_SetMouseEventDisplayX(mouseEvent: *mut Input_MouseEvent, displayX: i32);
1567}
1568extern "C" {
1569 #[doc = " @brief Obtains the X coordinate of the mouse event in the relative coordinate system with the upper-left corner of\n the specified screen as the origin.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return The X coordinate of the mouse event in the relative coordinate system with the upper left corner of the\n specified screen as the origin, in pixels (px). Returns -1 if mouseEvent is NULL.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1570 pub fn OH_Input_GetMouseEventDisplayX(mouseEvent: *const Input_MouseEvent) -> i32;
1571}
1572extern "C" {
1573 #[doc = " @brief Sets the Y coordinate of the mouse event in the relative coordinate system with the upper-left corner of the\n specified screen as the origin.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param displayY Y coordinate of the mouse event in the relative coordinate system with the upper left corner of the\n specified screen as the origin, in pixels (px).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1574 pub fn OH_Input_SetMouseEventDisplayY(mouseEvent: *mut Input_MouseEvent, displayY: i32);
1575}
1576extern "C" {
1577 #[doc = " @brief Obtains the Y coordinate of the mouse event in the relative coordinate system with the upper-left corner of\n the specified screen as the origin.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Y-coordinate of the mouse event in the relative coordinate system with the upper left corner of the\n specified screen as the origin, in pixels (px). Returns -1 if mouseEvent is NULL.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1578 pub fn OH_Input_GetMouseEventDisplayY(mouseEvent: *const Input_MouseEvent) -> i32;
1579}
1580extern "C" {
1581 #[doc = " @brief Sets the button for a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param button Mouse button. For details, see {@link Input_MouseEventButton}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1582 pub fn OH_Input_SetMouseEventButton(mouseEvent: *mut Input_MouseEvent, button: i32);
1583}
1584extern "C" {
1585 #[doc = " @brief Obtains the button of a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Mouse button. Returns -1 if mouseEvent is NULL.\n For details, see {@link Input_MouseEventButton}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1586 pub fn OH_Input_GetMouseEventButton(mouseEvent: *const Input_MouseEvent) -> i32;
1587}
1588extern "C" {
1589 #[doc = " @brief Sets the axis type for a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param axisType Mouse axis type, such as vertical axis and horizontal axis. For details, see\n {@link InputEvent_MouseAxis}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1590 pub fn OH_Input_SetMouseEventAxisType(mouseEvent: *mut Input_MouseEvent, axisType: i32);
1591}
1592extern "C" {
1593 #[doc = " @brief Obtains the axis type of a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Enumerates mouse axis types. Returns -1 if mouseEvent is NULL.\n For details, see {@link InputEvent_MouseAxis}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1594 pub fn OH_Input_GetMouseEventAxisType(mouseEvent: *const Input_MouseEvent) -> i32;
1595}
1596extern "C" {
1597 #[doc = " @brief Sets the axis value for a mouse axis event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param axisValue Axis event value. A positive number means scrolling forward (for example, 1.0 equals one unit\n forward), and a negative number means scrolling backward (for example, -1.0 equals one unit backward).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1598 pub fn OH_Input_SetMouseEventAxisValue(mouseEvent: *mut Input_MouseEvent, axisValue: f32);
1599}
1600extern "C" {
1601 #[doc = " @brief Obtains the axis value of a mouse axis event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Axis event value. Returns -1 if mouseEvent is NULL.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1602 pub fn OH_Input_GetMouseEventAxisValue(mouseEvent: *const Input_MouseEvent) -> f32;
1603}
1604extern "C" {
1605 #[doc = " @brief Sets the time when a mouse event occurs.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param actionTime Time when the mouse event occurred, representing the number of microseconds elapsed since system\n startup, in microseconds (μs).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1606 pub fn OH_Input_SetMouseEventActionTime(mouseEvent: *mut Input_MouseEvent, actionTime: i64);
1607}
1608extern "C" {
1609 #[doc = " @brief Obtains the time when a mouse event occurs.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Returns the time when the mouse event occurred, representing the number of microseconds elapsed since system\n startup, in microseconds (μs).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1610 pub fn OH_Input_GetMouseEventActionTime(mouseEvent: *const Input_MouseEvent) -> i64;
1611}
1612extern "C" {
1613 #[doc = " @brief Sets the window ID of a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param windowId Window ID of the mouse event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1614 #[cfg(feature = "api-15")]
1615 pub fn OH_Input_SetMouseEventWindowId(mouseEvent: *mut Input_MouseEvent, windowId: i32);
1616}
1617extern "C" {
1618 #[doc = " @brief Obtains the window ID of a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Window ID of the mouse event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1619 #[cfg(feature = "api-15")]
1620 pub fn OH_Input_GetMouseEventWindowId(mouseEvent: *const Input_MouseEvent) -> i32;
1621}
1622extern "C" {
1623 #[doc = " @brief Sets the screen ID of a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @param displayId Screen ID of the mouse event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1624 #[cfg(feature = "api-15")]
1625 pub fn OH_Input_SetMouseEventDisplayId(mouseEvent: *mut Input_MouseEvent, displayId: i32);
1626}
1627extern "C" {
1628 #[doc = " @brief Obtains the screen ID of a mouse event.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return Screen ID if the operation is successful; **-1** if **mouseEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1629 #[cfg(feature = "api-15")]
1630 pub fn OH_Input_GetMouseEventDisplayId(mouseEvent: *const Input_MouseEvent) -> i32;
1631}
1632extern "C" {
1633 #[doc = " @brief Sets the X coordinate of the mouse event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param mouseEvent Mouse Event object, which can be created through the {@link OH_Input_CreateMouseEvent()} API.\n <br>After use, the Mouse Event object must be destroyed through the {@link OH_Input_DestroyMouseEvent()} API.\n @param globalX X coordinate of the Mouse Event in the global coordinate system with the origin at the upper left\n corner of the primary screen, in pixels (px).\n @since 20"]
1634 #[cfg(feature = "api-20")]
1635 pub fn OH_Input_SetMouseEventGlobalX(mouseEvent: *mut Input_MouseEvent, globalX: i32);
1636}
1637extern "C" {
1638 #[doc = " @brief Obtains the X coordinate of the mouse event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return X-coordinate in the global coordinate system with the origin at the upper left corner of the primary screen,\n in pixels (px).\n @since 20"]
1639 #[cfg(feature = "api-20")]
1640 pub fn OH_Input_GetMouseEventGlobalX(mouseEvent: *const Input_MouseEvent) -> i32;
1641}
1642extern "C" {
1643 #[doc = " @brief Sets the Y coordinate of the mouse event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param mouseEvent Mouse Event object, which can be created through the {@link OH_Input_CreateMouseEvent()} API.\n <br>After use, the Mouse Event object must be destroyed through the {@link OH_Input_DestroyMouseEvent()} API.\n @param globalY Y-coordinate of the mouse event in the global coordinate system with the origin at the upper left\n corner of the primary screen, in pixels (px).\n @since 20"]
1644 #[cfg(feature = "api-20")]
1645 pub fn OH_Input_SetMouseEventGlobalY(mouseEvent: *mut Input_MouseEvent, globalY: i32);
1646}
1647extern "C" {
1648 #[doc = " @brief Obtains the Y coordinate of the mouse event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param mouseEvent Mouse event object. You can call {@link OH_Input_CreateMouseEvent()} to create a mouse event\n object.\n <br>If the mouse event object is no longer needed, destroy it by calling {@link OH_Input_DestroyMouseEvent()}.\n @return The Y coordinate of the mouse event in the global coordinate system with the origin at the upper left corner\n of the primary screen, in pixels (px).\n @since 20"]
1649 #[cfg(feature = "api-20")]
1650 pub fn OH_Input_GetMouseEventGlobalY(mouseEvent: *const Input_MouseEvent) -> i32;
1651}
1652extern "C" {
1653 #[doc = " @brief Injects a touch event by using coordinates in the relative coordinate system with the upper-left corner of\n the specified screen as the origin.\n <br>This API does not take effect if the user has not granted authorization and the caller does not have the ohos.\n permission.CONTROL_DEVICE permission.\n <br>Since API version 20, you are advised to use {@link OH_Input_RequestInjection()} to request the required\n permission before calling this API. If the status returned by {@link OH_Input_QueryAuthorizedStatus()} is\n {@link AUTHORIZED}, then you can call this API.\n <br>Since API version 26.0.0, callers that have the ohos.permission.CONTROL_DEVICE permission can use this API\n directly.\n\n @permission ohos.permission.CONTROL_DEVICE\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Return value of the OH_Input_InjectTouchEvent function.\n <br>{@link INPUT_SUCCESS} indicates successful injection.\n <br>{@link INPUT_PARAMETER_ERROR} indicates a parameter error.\n @since 12"]
1654 pub fn OH_Input_InjectTouchEvent(touchEvent: *const Input_TouchEvent) -> i32;
1655}
1656extern "C" {
1657 #[doc = " @brief Injects a touch event by using coordinates in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n <br>This API does not take effect if the event injection authorization is not granted and the caller does not have\n the ohos.permission.CONTROL_DEVICE permission.\n <br>Since API version 20, you are advised to use {@link OH_Input_RequestInjection()} to request the required\n permission before calling this API. If the status returned by {@link OH_Input_QueryAuthorizedStatus()} is\n {@link AUTHORIZED}, then you can call this API.\n <br>Since API version 26.0.0, callers that have the ohos.permission.CONTROL_DEVICE permission can use this API\n directly.\n\n @permission ohos.permission.CONTROL_DEVICE\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Return value of the **OH_Input_InjectTouchEventGlobal** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter is incorrect;\n <br>{@link INPUT_PERMISSION_DENIED} if the permission is denied.\n @since 20"]
1658 #[cfg(feature = "api-20")]
1659 pub fn OH_Input_InjectTouchEventGlobal(touchEvent: *const Input_TouchEvent) -> i32;
1660}
1661extern "C" {
1662 #[doc = " @brief Creates a **TouchEvent** object. You can call {@link OH_Input_DestroyTouchEvent()} to destroy a touch event\n object.\n\n @return {@link Input_TouchEvent} pointer object if the operation is successful; a null pointer otherwise.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1663 pub fn OH_Input_CreateTouchEvent() -> *mut Input_TouchEvent;
1664}
1665extern "C" {
1666 #[doc = " @brief Destroys a **TouchEvent** object.\n\n @param touchEvent **TouchEvent** object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1667 pub fn OH_Input_DestroyTouchEvent(touchEvent: *mut *mut Input_TouchEvent);
1668}
1669extern "C" {
1670 #[doc = " @brief Sets the action of a touch event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param action Action of the touch event. For details, see {@link Input_TouchEventAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1671 pub fn OH_Input_SetTouchEventAction(touchEvent: *mut Input_TouchEvent, action: i32);
1672}
1673extern "C" {
1674 #[doc = " @brief Obtains the action of a touch event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Action of the touch event. For details, see {@link Input_TouchEventAction}.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1675 pub fn OH_Input_GetTouchEventAction(touchEvent: *const Input_TouchEvent) -> i32;
1676}
1677extern "C" {
1678 #[doc = " @brief Sets the finger ID of a touch event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param id Finger ID of a touch event. The ID of the first finger touching the screen is 0, the second is 1, and so\n on incrementally.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1679 pub fn OH_Input_SetTouchEventFingerId(touchEvent: *mut Input_TouchEvent, id: i32);
1680}
1681extern "C" {
1682 #[doc = " @brief Obtains the finger ID of a touch event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Finger ID of a touch event. The ID of the first finger touching the screen is 0, the second is 1, and so on\n incrementally.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1683 pub fn OH_Input_GetTouchEventFingerId(touchEvent: *const Input_TouchEvent) -> i32;
1684}
1685extern "C" {
1686 #[doc = " @brief Sets the X coordinate of the touch event in the relative coordinate system with the upper-left corner of the\n specified screen as the origin.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param displayX X coordinate of the touch screen input event in the relative coordinate system with the upper left\n corner of the specified screen as the origin, in pixels (px).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1687 pub fn OH_Input_SetTouchEventDisplayX(touchEvent: *mut Input_TouchEvent, displayX: i32);
1688}
1689extern "C" {
1690 #[doc = " @brief Obtains the X coordinate of the touch event in the relative coordinate system with the upper-left corner of\n the specified screen as the origin.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return The X coordinate of the touch screen input event in the relative coordinate system with the upper left\n corner of the specified screen as the origin, in pixels (px).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1691 pub fn OH_Input_GetTouchEventDisplayX(touchEvent: *const Input_TouchEvent) -> i32;
1692}
1693extern "C" {
1694 #[doc = " @brief Sets the Y coordinate of the touch event in the relative coordinate system with the upper-left corner of the\n specified screen as the origin.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param displayY Y-coordinate of the touch screen input event in the relative coordinate system with the upper left\n corner of the specified screen as the origin, in pixels (px).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1695 pub fn OH_Input_SetTouchEventDisplayY(touchEvent: *mut Input_TouchEvent, displayY: i32);
1696}
1697extern "C" {
1698 #[doc = " @brief Obtains the Y coordinate of the touch event in the relative coordinate system with the upper-left corner of\n the specified screen as the origin.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return The Y coordinate of the touch screen input event in the relative coordinate system with the upper left\n corner of the specified screen as the origin, in pixels (px).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1699 pub fn OH_Input_GetTouchEventDisplayY(touchEvent: *const Input_TouchEvent) -> i32;
1700}
1701extern "C" {
1702 #[doc = " @brief Sets the time when the touch event occurs.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param actionTime Time when the touch screen input event occurred, indicating the number of microseconds elapsed\n since system startup, in microseconds (μs).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1703 pub fn OH_Input_SetTouchEventActionTime(touchEvent: *mut Input_TouchEvent, actionTime: i64);
1704}
1705extern "C" {
1706 #[doc = " @brief Obtains the time when the touch event occurs.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Time when a touch event occurs.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1707 pub fn OH_Input_GetTouchEventActionTime(touchEvent: *const Input_TouchEvent) -> i64;
1708}
1709extern "C" {
1710 #[doc = " @brief Sets the window ID of a touch event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param windowId Window ID of a touch event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1711 #[cfg(feature = "api-15")]
1712 pub fn OH_Input_SetTouchEventWindowId(touchEvent: *mut Input_TouchEvent, windowId: i32);
1713}
1714extern "C" {
1715 #[doc = " @brief Obtains the window ID of a touch event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Window ID of a touch event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1716 #[cfg(feature = "api-15")]
1717 pub fn OH_Input_GetTouchEventWindowId(touchEvent: *const Input_TouchEvent) -> i32;
1718}
1719extern "C" {
1720 #[doc = " @brief Sets the screen ID of a touch event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param displayId Screen ID of a touch event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1721 #[cfg(feature = "api-15")]
1722 pub fn OH_Input_SetTouchEventDisplayId(touchEvent: *mut Input_TouchEvent, displayId: i32);
1723}
1724extern "C" {
1725 #[doc = " @brief Obtains the screen ID of a touch event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Screen ID of a touch event.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1726 #[cfg(feature = "api-15")]
1727 pub fn OH_Input_GetTouchEventDisplayId(touchEvent: *const Input_TouchEvent) -> i32;
1728}
1729extern "C" {
1730 #[doc = " @brief Sets the X coordinate of the touch event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param touchEvent Touch screen input event object, which can be created through the\n {@link OH_Input_CreateTouchEvent()} interface.\n <br>After use, the touch screen input event object must be destroyed using the\n {@link OH_Input_DestroyTouchEvent()} interface.\n @param globalX X coordinate of the touch screen input event in the global coordinate system with the upper left\n corner of the primary screen as the origin, in pixels (px).\n @since 20"]
1731 #[cfg(feature = "api-20")]
1732 pub fn OH_Input_SetTouchEventGlobalX(touchEvent: *mut Input_TouchEvent, globalX: i32);
1733}
1734extern "C" {
1735 #[doc = " @brief Obtains the X coordinate of the touch event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return The X coordinate in the global coordinate system with the upper left corner of the primary screen as the\n origin, in pixels (px).\n @since 20"]
1736 #[cfg(feature = "api-20")]
1737 pub fn OH_Input_GetTouchEventGlobalX(touchEvent: *const Input_TouchEvent) -> i32;
1738}
1739extern "C" {
1740 #[doc = " @brief Sets the Y coordinate of the touch event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param touchEvent Touch screen input event object, which can be created through the\n {@link OH_Input_CreateTouchEvent()} interface.\n <br>After use, the touch screen input event object must be destroyed using the\n {@link OH_Input_DestroyTouchEvent()} interface.\n @param globalY Y coordinate of the touch screen input event in the global coordinate system with the upper left\n corner of the primary screen as the origin, in pixels (px).\n @since 20"]
1741 #[cfg(feature = "api-20")]
1742 pub fn OH_Input_SetTouchEventGlobalY(touchEvent: *mut Input_TouchEvent, globalY: i32);
1743}
1744extern "C" {
1745 #[doc = " @brief Obtains the Y coordinate of the touch event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return The Y coordinate in the global coordinate system with the upper left corner of the primary screen as the\n origin for the touch screen input event, in pixels (px).\n @since 20"]
1746 #[cfg(feature = "api-20")]
1747 pub fn OH_Input_GetTouchEventGlobalY(touchEvent: *const Input_TouchEvent) -> i32;
1748}
1749extern "C" {
1750 #[doc = " @brief Sets the pressure for a touchscreen input event. If the pressure value is not set or is not within the valid\n range, the default value **0.0** is used.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param pressure Pressure value. The value range is [0.0, 1.0]. Currently, the minimum pressure that can be sensed by\n the touchscreen is 0.0, and the maximum pressure is 1.0. This value has no unit.\n @return Return value of the **OH_Input_SetTouchEventPressure** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 24"]
1751 #[cfg(feature = "api-24")]
1752 pub fn OH_Input_SetTouchEventPressure(
1753 touchEvent: *mut Input_TouchEvent,
1754 pressure: f64,
1755 ) -> Input_Result;
1756}
1757extern "C" {
1758 #[doc = " @brief Obtains the pressure of a touchscreen input event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Pressure value, without a unit. When touchEvent is NULL, return the default pressure 0.0.\n @since 24"]
1759 #[cfg(feature = "api-24")]
1760 pub fn OH_Input_GetTouchEventPressure(touchEvent: *const Input_TouchEvent) -> f64;
1761}
1762extern "C" {
1763 #[doc = " @brief Sets the X coordinate of the touch event in the relative coordinate system with the upper-left corner of the\n specified window as the origin. If the X coordinate is not set, the default value **0** is used.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param windowX X-coordinate in the relative coordinate system with the origin at the upper left corner of the\n specified window, in pixels (px).\n @since 24"]
1764 #[cfg(feature = "api-24")]
1765 pub fn OH_Input_SetTouchEventWindowX(touchEvent: *mut Input_TouchEvent, windowX: i32);
1766}
1767extern "C" {
1768 #[doc = " @brief Obtains the X coordinate of the touch event in the relative coordinate system with the upper-left corner of\n the specified window as the origin.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return X coordinate in the relative coordinate system with the upper left corner of the specified window as the\n origin, in pixels (px). When touchEvent is NULL, return the default value 0.\n @since 24"]
1769 #[cfg(feature = "api-24")]
1770 pub fn OH_Input_GetTouchEventWindowX(touchEvent: *const Input_TouchEvent) -> i32;
1771}
1772extern "C" {
1773 #[doc = " @brief Sets the Y coordinate of the touch event in the relative coordinate system with the upper-left corner of the\n specified window as the origin. If the Y coordinate is not set, the default value **0** is used.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param windowY Y-coordinate in the relative coordinate system with the origin at the upper left corner of the window,\n in pixels (px).\n @since 24"]
1774 #[cfg(feature = "api-24")]
1775 pub fn OH_Input_SetTouchEventWindowY(touchEvent: *mut Input_TouchEvent, windowY: i32);
1776}
1777extern "C" {
1778 #[doc = " @brief Obtains the Y coordinate of the touch event in the relative coordinate system with the upper-left corner of\n the specified window as the origin.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Y-coordinate in the relative coordinate system with the origin at the upper left corner of the window, in\n pixels (px). When touchEvent is NULL, return the default value 0.\n @since 24"]
1779 #[cfg(feature = "api-24")]
1780 pub fn OH_Input_GetTouchEventWindowY(touchEvent: *const Input_TouchEvent) -> i32;
1781}
1782extern "C" {
1783 #[doc = " @brief Sets the time when the most recent down event occurred for the finger or other touchscreen devices associated\n with the current touchscreen event. If the time is not set, the default value **0** is used.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param downTime The time when the most recent press event of the finger or other touch screen peripheral\n corresponding to the current touch screen event occurred, representing the number of microseconds elapsed since\n system startup, in microseconds (μs).\n @since 24"]
1784 #[cfg(feature = "api-24")]
1785 pub fn OH_Input_SetTouchEventDownTime(touchEvent: *mut Input_TouchEvent, downTime: i64);
1786}
1787extern "C" {
1788 #[doc = " @brief Obtains the time when the most recent down event occurred for the finger or other touchscreen devices\n associated with the current touchscreen event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return The time when the most recent press event of the finger or other touch peripherals corresponding to the\n current touch screen input occurred, representing the number of microseconds elapsed since system startup, in\n microseconds (μs). When touchEvent is NULL, return 0.\n @since 24"]
1789 #[cfg(feature = "api-24")]
1790 pub fn OH_Input_GetTouchEventDownTime(touchEvent: *const Input_TouchEvent) -> i64;
1791}
1792extern "C" {
1793 #[doc = " @brief Sets the tool type for a touchscreen input event. If **toolType** is not set, the default value **\n Input_TouchEventToolType.TOOL_TYPE_FINGER** is used.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @param toolType Tool type.\n @return Return value of the **OH_Input_SetTouchEventToolType** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 24"]
1794 #[cfg(feature = "api-24")]
1795 pub fn OH_Input_SetTouchEventToolType(
1796 touchEvent: *mut Input_TouchEvent,
1797 toolType: Input_TouchEventToolType,
1798 ) -> Input_Result;
1799}
1800extern "C" {
1801 #[doc = " @brief Obtains the tool type of a touchscreen input event.\n\n @param touchEvent **TouchEvent** object, which can be created through {@link OH_Input_CreateTouchEvent()}.\n <br>If the **TouchEvent** object is no longer needed, destroy it by calling {@link OH_Input_DestroyTouchEvent()}.\n @return Tool type.{@link TOOL_TYPE_FINGER} When touchEvent is NULL, return the default toolType.\n @since 24"]
1802 #[cfg(feature = "api-24")]
1803 pub fn OH_Input_GetTouchEventToolType(
1804 touchEvent: *const Input_TouchEvent,
1805 ) -> Input_TouchEventToolType;
1806}
1807extern "C" {
1808 #[doc = " @brief Requests the permission for {@link OH_Input_InjectKeyEvent}, {@link OH_Input_InjectTouchEvent}, and\n {@link OH_Input_InjectMouseEvent}.\n <br>Since API version 26.0.0, if the ohos.permission.CONTROL_DEVICE permission has been granted, you do not need to\n request the injection permission. The behavior of this API is independent of the ohos.permission.CONTROL_DEVICE\n permission.\n\n @param callback Callback used to return the permission authorization status. For details, see\n {@link Input_InjectAuthorizeCallback}.\n @return Return value. For details, see {@link Input_Result}.\n <br>INPUT_SUCCESS = 0: Operation success. The application waits for the user authorization result and returns\n the authorization status through a callback.\n <br>INPUT_PARAMETER_ERROR = 401: Parameter error. The callback parameter is empty.\n <br>INPUT_DEVICE_NOT_SUPPORTED = 801: Function not supported.\n <br>INPUT_SERVICE_EXCEPTION = 3800001: Service error.\n <br>INPUT_INJECTION_AUTHORIZING = 3900005: Permission being granted.\n <br>INPUT_INJECTION_OPERATION_FREQUENT = 3900006: Repeated request. The application continuously requests\n permission authorization at an interval of no more than 3 seconds.\n <br>INPUT_INJECTION_AUTHORIZED = 3900007: Permission granted.\n <br>INPUT_INJECTION_AUTHORIZED_OTHERS = 3900008: Permission granted to other applications.\n @since 20"]
1809 #[cfg(feature = "api-20")]
1810 pub fn OH_Input_RequestInjection(callback: Input_InjectAuthorizeCallback) -> Input_Result;
1811}
1812extern "C" {
1813 #[doc = " @brief Stops event injection and revokes authorization.\n\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1814 pub fn OH_Input_CancelInjection();
1815}
1816extern "C" {
1817 #[doc = " @brief Queries the injection permission authorization status of the current application.\n <br>Since API version 26.0.0, this API returns only the dialog authorization status. It does not indicate whether\n the caller has injection capability due to holding the ohos.permission.CONTROL_DEVICE permission.\n\n @param status Injection permission authorization status of the current application. See\n {@link Input_InjectionStatus}.\n @return Return value. For details, see {@link Input_Result}.\n <br>INPUT_SUCCESS = 0: Operation success.\n <br>INPUT_PARAMETER_ERROR = 401: Parameter error. The status parameter is empty.\n <br>INPUT_SERVICE_EXCEPTION = 3800001: Service error.\n @since 20"]
1818 #[cfg(feature = "api-20")]
1819 pub fn OH_Input_QueryAuthorizedStatus(status: *mut Input_InjectionStatus) -> Input_Result;
1820}
1821extern "C" {
1822 #[doc = " @brief Creates an axis event object. You can call {@link OH_Input_DestroyAxisEvent()} to destroy an axis event\n object.\n\n @return {@link Input_AxisEvent} object if the operation is successful; **null** otherwise.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1823 pub fn OH_Input_CreateAxisEvent() -> *mut Input_AxisEvent;
1824}
1825extern "C" {
1826 #[doc = " @brief Destroys an axis event object.\n\n @param axisEvent Pointer to the axis event object.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1827 pub fn OH_Input_DestroyAxisEvent(axisEvent: *mut *mut Input_AxisEvent) -> Input_Result;
1828}
1829extern "C" {
1830 #[doc = " @brief Sets the action for an axis event.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param action Axis event action. For details, see {@link InputEvent_AxisAction}.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1831 pub fn OH_Input_SetAxisEventAction(
1832 axisEvent: *mut Input_AxisEvent,
1833 action: InputEvent_AxisAction,
1834 ) -> Input_Result;
1835}
1836extern "C" {
1837 #[doc = " @brief Obtains the action of an axis event.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param action Axis event action. For details, see {@link InputEvent_AxisAction}.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n action** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1838 pub fn OH_Input_GetAxisEventAction(
1839 axisEvent: *const Input_AxisEvent,
1840 action: *mut InputEvent_AxisAction,
1841 ) -> Input_Result;
1842}
1843extern "C" {
1844 #[doc = " @brief Sets the X coordinate of the axis event in the relative coordinate system with the upper-left corner of the\n specified screen as the origin.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param displayX X coordinate in the relative coordinate system with the upper left corner of the specified screen as\n the origin, in pixels (px).\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1845 pub fn OH_Input_SetAxisEventDisplayX(
1846 axisEvent: *mut Input_AxisEvent,
1847 displayX: f32,
1848 ) -> Input_Result;
1849}
1850extern "C" {
1851 #[doc = " @brief Obtains the X coordinate of the axis event in the relative coordinate system with the upper-left corner of\n the specified screen as the origin.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param displayX Output parameter, returns the X coordinate of the axis event in the relative coordinate system with\n the upper left corner of the specified screen as the origin, in pixels (px).\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n displayX** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1852 pub fn OH_Input_GetAxisEventDisplayX(
1853 axisEvent: *const Input_AxisEvent,
1854 displayX: *mut f32,
1855 ) -> Input_Result;
1856}
1857extern "C" {
1858 #[doc = " @brief Sets the Y coordinate of the axis event in the relative coordinate system with the upper-left corner of the\n specified screen as the origin.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param displayY Y coordinate in the relative coordinate system with the upper left corner of the specified screen as\n the origin, in pixels (px).\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1859 pub fn OH_Input_SetAxisEventDisplayY(
1860 axisEvent: *mut Input_AxisEvent,
1861 displayY: f32,
1862 ) -> Input_Result;
1863}
1864extern "C" {
1865 #[doc = " @brief Obtains the Y coordinate of the axis event in the relative coordinate system with the upper-left corner of\n the specified screen as the origin.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param displayY Output parameter, returns the Y coordinate of the axis event in the relative coordinate system with\n the upper left corner of the specified screen as the origin, in pixels (px).\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n displayY** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1866 pub fn OH_Input_GetAxisEventDisplayY(
1867 axisEvent: *const Input_AxisEvent,
1868 displayY: *mut f32,
1869 ) -> Input_Result;
1870}
1871extern "C" {
1872 #[doc = " @brief Sets the axis value of the axis type specified by the axis event.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param axisType Axis type. For details, see {@link InputEvent_AxisType}.\n @param axisValue Value of the axis event. A positive value indicates scrolling forward (for example, 1.0 means\n scrolling forward by one unit), a negative value indicates scrolling backward (for example, -1.0 means scrolling\n backward by one unit), and zero indicates no scrolling.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1873 pub fn OH_Input_SetAxisEventAxisValue(
1874 axisEvent: *mut Input_AxisEvent,
1875 axisType: InputEvent_AxisType,
1876 axisValue: f64,
1877 ) -> Input_Result;
1878}
1879extern "C" {
1880 #[doc = " @brief Obtains the axis value for the specified axis type of the axis event.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param axisType Axis type. For details, see {@link InputEvent_AxisType}.\n @param axisValue Axis event value. A positive number means scrolling forward (for example, 1.0 equals one unit\n forward), and a negative number means scrolling backward (for example, -1.0 equals one unit backward).\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n axisValue** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1881 pub fn OH_Input_GetAxisEventAxisValue(
1882 axisEvent: *const Input_AxisEvent,
1883 axisType: InputEvent_AxisType,
1884 axisValue: *mut f64,
1885 ) -> Input_Result;
1886}
1887extern "C" {
1888 #[doc = " @brief Sets the time when an axis event occurs.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param actionTime Time when the axis event occurred, representing the number of microseconds elapsed since system\n startup, in microseconds (μs).\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1889 pub fn OH_Input_SetAxisEventActionTime(
1890 axisEvent: *mut Input_AxisEvent,
1891 actionTime: i64,
1892 ) -> Input_Result;
1893}
1894extern "C" {
1895 #[doc = " @brief Obtains the time when an axis event occurs.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param actionTime Output parameter, returns the time when the axis event occurred, representing the number of\n microseconds elapsed since system startup, in microseconds (μs).\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n actionTime** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1896 pub fn OH_Input_GetAxisEventActionTime(
1897 axisEvent: *const Input_AxisEvent,
1898 actionTime: *mut i64,
1899 ) -> Input_Result;
1900}
1901extern "C" {
1902 #[doc = " @brief Sets the axis event type.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param axisEventType Axis event type. For details, see {@link InputEvent_AxisEventType}.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1903 pub fn OH_Input_SetAxisEventType(
1904 axisEvent: *mut Input_AxisEvent,
1905 axisEventType: InputEvent_AxisEventType,
1906 ) -> Input_Result;
1907}
1908extern "C" {
1909 #[doc = " @brief Obtains the axis event type.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param axisEventType Axis event type. For details, see {@link InputEvent_AxisEventType}.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n axisEventType** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1910 pub fn OH_Input_GetAxisEventType(
1911 axisEvent: *const Input_AxisEvent,
1912 axisEventType: *mut InputEvent_AxisEventType,
1913 ) -> Input_Result;
1914}
1915extern "C" {
1916 #[doc = " @brief Sets the axis event source type.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param sourceType Axis event source type. For details, see {@link InputEvent_SourceType}.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1917 pub fn OH_Input_SetAxisEventSourceType(
1918 axisEvent: *mut Input_AxisEvent,
1919 sourceType: InputEvent_SourceType,
1920 ) -> Input_Result;
1921}
1922extern "C" {
1923 #[doc = " @brief Obtains the axis event source type.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param sourceType Axis event source type. For details, see {@link InputEvent_SourceType}.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n sourceType** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1924 pub fn OH_Input_GetAxisEventSourceType(
1925 axisEvent: *const Input_AxisEvent,
1926 sourceType: *mut InputEvent_SourceType,
1927 ) -> Input_Result;
1928}
1929extern "C" {
1930 #[doc = " @brief Sets the window ID of an axis event.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param windowId Window ID of an axis event.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1931 #[cfg(feature = "api-15")]
1932 pub fn OH_Input_SetAxisEventWindowId(
1933 axisEvent: *mut Input_AxisEvent,
1934 windowId: i32,
1935 ) -> Input_Result;
1936}
1937extern "C" {
1938 #[doc = " @brief Obtains the window ID of an axis event.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param windowId Window ID of the axis event.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n windowId** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1939 #[cfg(feature = "api-15")]
1940 pub fn OH_Input_GetAxisEventWindowId(
1941 axisEvent: *const Input_AxisEvent,
1942 windowId: *mut i32,
1943 ) -> Input_Result;
1944}
1945extern "C" {
1946 #[doc = " @brief Sets the screen ID of an axis event.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param displayId Screen ID of an axis event.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1947 #[cfg(feature = "api-15")]
1948 pub fn OH_Input_SetAxisEventDisplayId(
1949 axisEvent: *mut Input_AxisEvent,
1950 displayId: i32,
1951 ) -> Input_Result;
1952}
1953extern "C" {
1954 #[doc = " @brief Obtains the screen ID of an axis event.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param displayId Screen ID of the axis event.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PARAMETER_ERROR} if **axisEvent** or **\n displayId** is null.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
1955 #[cfg(feature = "api-15")]
1956 pub fn OH_Input_GetAxisEventDisplayId(
1957 axisEvent: *const Input_AxisEvent,
1958 displayId: *mut i32,
1959 ) -> Input_Result;
1960}
1961extern "C" {
1962 #[doc = " @brief Sets the X coordinate of the axis event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param axisEvent Axis event object, which can be created through the {@link OH_Input_CreateAxisEvent()} API.\n <br>After use, the axis event object must be destroyed through the {@link OH_Input_DestroyAxisEvent()} API.\n @param globalX X coordinate of the axis event in the global coordinate system with the upper left corner of the\n primary screen as the origin, in pixels (px).\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **axisEvent** is a null pointer.\n @since 20"]
1963 #[cfg(feature = "api-20")]
1964 pub fn OH_Input_SetAxisEventGlobalX(
1965 axisEvent: *mut Input_AxisEvent,
1966 globalX: i32,
1967 ) -> Input_Result;
1968}
1969extern "C" {
1970 #[doc = " @brief Obtains the X coordinate of the axis event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param globalX X-coordinate of the axis event in the global coordinate system with the upper left corner of the\n primary screen as the origin, in pixels (px).\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **axisEvent** or **globalX** is a null pointer.\n @since 20"]
1971 #[cfg(feature = "api-20")]
1972 pub fn OH_Input_GetAxisEventGlobalX(
1973 axisEvent: *const Input_AxisEvent,
1974 globalX: *mut i32,
1975 ) -> Input_Result;
1976}
1977extern "C" {
1978 #[doc = " @brief Sets the Y coordinate of the axis event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param axisEvent Axis event object, which can be created using the {@link OH_Input_CreateAxisEvent()} interface.\n <br>After use, the axis event object must be destroyed using the {@link OH_Input_DestroyAxisEvent()} interface.\n @param globalY Y-coordinate of the axis event in the global coordinate system with the origin at the upper left\n corner of the primary screen, in pixels (px).\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **axisEvent** is a null pointer.\n @since 20"]
1979 #[cfg(feature = "api-20")]
1980 pub fn OH_Input_SetAxisEventGlobalY(
1981 axisEvent: *mut Input_AxisEvent,
1982 globalY: i32,
1983 ) -> Input_Result;
1984}
1985extern "C" {
1986 #[doc = " @brief Obtains the Y coordinate of the axis event in the global coordinate system with the upper-left corner of the\n primary screen as the origin.\n\n @param axisEvent Axis event object. You can call {@link OH_Input_CreateAxisEvent()} to create an axis event object.\n <br>If the axis event object is no longer needed, destroy it by calling {@link OH_Input_DestroyAxisEvent()}.\n @param globalY Y-coordinate of the axis event in the global coordinate system with the upper left corner of the\n primary screen as the origin, in pixels (px).\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **axisEvent** or **globalY** is a null pointer.\n @since 20"]
1987 #[cfg(feature = "api-20")]
1988 pub fn OH_Input_GetAxisEventGlobalY(
1989 axisEvent: *const Input_AxisEvent,
1990 globalY: *mut i32,
1991 ) -> Input_Result;
1992}
1993extern "C" {
1994 #[doc = " @brief Adds a listener for key events. Only the initial addition takes effect. Subsequent attempts will be ignored.\n\n @permission ohos.permission.INPUT_MONITORING\n @param callback Callback used to receive key events.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PERMISSION_DENIED} if permission\n verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty; {@link INPUT_SERVICE_EXCEPTION} if the service is\n abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1995 pub fn OH_Input_AddKeyEventMonitor(callback: Input_KeyEventCallback) -> Input_Result;
1996}
1997extern "C" {
1998 #[doc = " @brief Adds a listener for mouse events, including mouse click and movement events, but not scroll wheel events.\n Scroll wheel events are axis events.\n <br>This API can be called only when the screen recording scenario is in use. Otherwise, the call does not take\n effect.\n\n @permission ohos.permission.INPUT_MONITORING\n @param callback Callback used to receive mouse events.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PERMISSION_DENIED} if permission\n verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty; {@link INPUT_SERVICE_EXCEPTION} if the service is\n abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
1999 pub fn OH_Input_AddMouseEventMonitor(callback: Input_MouseEventCallback) -> Input_Result;
2000}
2001extern "C" {
2002 #[doc = " @brief Adds a listener for touch input events.\n\n @permission ohos.permission.INPUT_MONITORING\n @param callback Callback used to receive touch events.\n @return {@link INPUT_SUCCESS} if the operation is successful; {@link INPUT_PERMISSION_DENIED} if permission\n verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty; {@link INPUT_SERVICE_EXCEPTION} if the service is\n abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2003 pub fn OH_Input_AddTouchEventMonitor(callback: Input_TouchEventCallback) -> Input_Result;
2004}
2005extern "C" {
2006 #[doc = " @brief Adds a listener for all types of axis events, which are defined in {@link InputEvent_AxisEventType}.\n\n @permission ohos.permission.INPUT_MONITORING\n @param callback Callback used to receive axis events.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2007 pub fn OH_Input_AddAxisEventMonitorForAll(callback: Input_AxisEventCallback) -> Input_Result;
2008}
2009extern "C" {
2010 #[doc = " @brief Adds a listener for the specified type of axis events, which are defined in {@link InputEvent_AxisEventType}.\n\n @permission ohos.permission.INPUT_MONITORING\n @param axisEventType Axis event type, which is defined in {@link InputEvent_AxisEventType}.\n @param callback Callback used to receive axis events of a specified type.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2011 pub fn OH_Input_AddAxisEventMonitor(
2012 axisEventType: InputEvent_AxisEventType,
2013 callback: Input_AxisEventCallback,
2014 ) -> Input_Result;
2015}
2016extern "C" {
2017 #[doc = " @brief Removes the listener for key events.\n\n @permission ohos.permission.INPUT_MONITORING\n @param callback Callback for key events.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty or no listener is added;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2018 pub fn OH_Input_RemoveKeyEventMonitor(callback: Input_KeyEventCallback) -> Input_Result;
2019}
2020extern "C" {
2021 #[doc = " @brief Removes the listener for mouse events.\n\n @permission ohos.permission.INPUT_MONITORING\n @param callback Callback for mouse events.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty or no listener is added;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2022 pub fn OH_Input_RemoveMouseEventMonitor(callback: Input_MouseEventCallback) -> Input_Result;
2023}
2024extern "C" {
2025 #[doc = " @brief Removes the listener for touch events.\n\n @permission ohos.permission.INPUT_MONITORING\n @param callback Callback for touch events.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty or no listener is added;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2026 pub fn OH_Input_RemoveTouchEventMonitor(callback: Input_TouchEventCallback) -> Input_Result;
2027}
2028extern "C" {
2029 #[doc = " @brief Removes the listener for all types of axis events.\n\n @permission ohos.permission.INPUT_MONITORING\n @param callback Callback for the all types of axis events.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty or no listener is added;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2030 pub fn OH_Input_RemoveAxisEventMonitorForAll(callback: Input_AxisEventCallback)
2031 -> Input_Result;
2032}
2033extern "C" {
2034 #[doc = " @brief Removes the listener for the specified type of axis events, which are defined in\n {@link InputEvent_AxisEventType}.\n\n @permission ohos.permission.INPUT_MONITORING\n @param axisEventType Axis event type, which is defined in {@link InputEvent_AxisEventType}.\n @param callback Callback for the specified type of axis events.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty or no listener is added;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2035 pub fn OH_Input_RemoveAxisEventMonitor(
2036 axisEventType: InputEvent_AxisEventType,
2037 callback: Input_AxisEventCallback,
2038 ) -> Input_Result;
2039}
2040extern "C" {
2041 #[doc = " @brief Adds a key event interceptor. Only the first addition takes effect. Subsequent requests will return error\n code {@link INPUT_REPEAT_INTERCEPTOR}. Key events are intercepted only when the application gains focus.\n\n @permission ohos.permission.INTERCEPT_INPUT_EVENT\n @param callback Callback used to receive key events.\n @param option Options for event interception. If **null** is passed, the default value is used.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty or no listener is added;\n <br>{@link INPUT_REPEAT_INTERCEPTOR} if an interceptor is repeatedly added;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2042 pub fn OH_Input_AddKeyEventInterceptor(
2043 callback: Input_KeyEventCallback,
2044 option: *mut Input_InterceptorOptions,
2045 ) -> Input_Result;
2046}
2047extern "C" {
2048 #[doc = " @brief Adds an interceptor for input events, including mouse, touch, and axis events. Only the first addition takes\n effect. Subsequent requests will return error code {@link INPUT_REPEAT_INTERCEPTOR}. Key events are intercepted only\n when the application window is hit.\n\n @permission ohos.permission.INTERCEPT_INPUT_EVENT\n @param callback Pointer to the structure of the interceptor event callback. For details, see\n {@link Input_InterceptorEventCallback}.\n @param option Options for event interception. If **null** is passed, the default value is used.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_PARAMETER_ERROR} if the callback is empty or no listener is added;\n <br>{@link INPUT_REPEAT_INTERCEPTOR} if an interceptor is repeatedly added;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2049 pub fn OH_Input_AddInputEventInterceptor(
2050 callback: *mut Input_InterceptorEventCallback,
2051 option: *mut Input_InterceptorOptions,
2052 ) -> Input_Result;
2053}
2054extern "C" {
2055 #[doc = " @brief Removes the interceptor for key events.\n\n @permission ohos.permission.INTERCEPT_INPUT_EVENT\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2056 pub fn OH_Input_RemoveKeyEventInterceptor() -> Input_Result;
2057}
2058extern "C" {
2059 #[doc = " @brief Removes the interceptor for input events, including mouse, touch, and axis events.\n\n @permission ohos.permission.INTERCEPT_INPUT_EVENT\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PERMISSION_DENIED} if permission verification fails;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
2060 pub fn OH_Input_RemoveInputEventInterceptor() -> Input_Result;
2061}
2062extern "C" {
2063 #[doc = " @brief Obtains the interval since the last system input event.\n\n @param timeInterval Time interval, in microseconds (μs).\n @return Return value of the **OH_Input_GetIntervalSinceLastInput** function.\n <br>{@link INPUT_SUCCESS} if the interval is obtained successfully;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter is incorrect.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2064 #[cfg(feature = "api-14")]
2065 pub fn OH_Input_GetIntervalSinceLastInput(timeInterval: *mut i64) -> Input_Result;
2066}
2067extern "C" {
2068 #[doc = " @brief Creates a hotkey object. You can call {@link OH_Input_DestroyHotkey()} to destroy a hotkey object.\n\n @return If the operation is successful, a pointer to an {@link Input_Hotkey} object is returned. Otherwise, a null\n pointer is returned, possibly due to memory allocation failure.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2069 #[cfg(feature = "api-14")]
2070 pub fn OH_Input_CreateHotkey() -> *mut Input_Hotkey;
2071}
2072extern "C" {
2073 #[doc = " @brief Destroys a hotkey object.\n\n @param hotkey Hotkey object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2074 #[cfg(feature = "api-14")]
2075 pub fn OH_Input_DestroyHotkey(hotkey: *mut *mut Input_Hotkey);
2076}
2077extern "C" {
2078 #[doc = " @brief Sets the modifier keys.\n\n @param hotkey Hotkey object.\n @param preKeys List of modifier keys.\n @param size Number of modifier keys. One or two modifier keys are supported.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2079 #[cfg(feature = "api-14")]
2080 pub fn OH_Input_SetPreKeys(hotkey: *mut Input_Hotkey, preKeys: *mut i32, size: i32);
2081}
2082extern "C" {
2083 #[doc = " @brief Obtains the modifier key.\n\n @param hotkey Hotkey object.\n @param preKeys List of modifier keys.\n @param preKeyCount Number of modifier keys.\n @return Return value of the **OH_Input_GetPreKeys** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} otherwise.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2084 #[cfg(feature = "api-14")]
2085 pub fn OH_Input_GetPreKeys(
2086 hotkey: *const Input_Hotkey,
2087 preKeys: *mut *mut i32,
2088 preKeyCount: *mut i32,
2089 ) -> Input_Result;
2090}
2091extern "C" {
2092 #[doc = " @brief Sets the modified key.\n\n @param hotkey Hotkey object.\n @param finalKey Modifier key value. Only one modifier key value is allowed.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2093 #[cfg(feature = "api-14")]
2094 pub fn OH_Input_SetFinalKey(hotkey: *mut Input_Hotkey, finalKey: i32);
2095}
2096extern "C" {
2097 #[doc = " @brief Obtains the modified key.\n\n @param hotkey Hotkey object.\n @param finalKeyCode Modified key.\n @return Return value of the **OH_Input_GetFinalKey** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} otherwise.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2098 #[cfg(feature = "api-14")]
2099 pub fn OH_Input_GetFinalKey(
2100 hotkey: *const Input_Hotkey,
2101 finalKeyCode: *mut i32,
2102 ) -> Input_Result;
2103}
2104extern "C" {
2105 #[doc = " @brief Creates an {@link Input_Hotkey} array. You can call {@link OH_Input_GetAllSystemHotkeys()} to obtain a valid *\n *count** parameter. You can call {@link OH_Input_DestroyAllSystemHotkeys()} to destroy the array of the\n {@link Input_Hotkey} instance and reclaim the memory.\n\n @param count Number of {@link Input_Hotkey} instances.\n @return Return value of the **OH_Input_CreateAllSystemHotkeys** function.\n <br>which is {@link INPUT_SUCCESS} if the operation is successful.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2106 #[cfg(feature = "api-14")]
2107 pub fn OH_Input_CreateAllSystemHotkeys(count: i32) -> *mut *mut Input_Hotkey;
2108}
2109extern "C" {
2110 #[doc = " @brief Destroys an {@link Input_Hotkey} array and reclaims the memory.\n\n @param hotkeys Double pointer to the {@link Input_Hotkey} array.\n @param count Number of {@link Input_Hotkey} instances.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2111 #[cfg(feature = "api-14")]
2112 pub fn OH_Input_DestroyAllSystemHotkeys(hotkeys: *mut *mut Input_Hotkey, count: i32);
2113}
2114extern "C" {
2115 #[doc = " @brief Obtains all configured hotkeys.\n\n @param hotkey {@link Input_Hotkey} array. When calling this API for the first time, you can pass **NULL** to obtain\n the array length.\n @param count Number of supported hotkeys.\n @return Return value of the **OH_Input_GetAllSystemHotkeys** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} otherwise.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2116 #[cfg(feature = "api-14")]
2117 pub fn OH_Input_GetAllSystemHotkeys(
2118 hotkey: *mut *mut Input_Hotkey,
2119 count: *mut i32,
2120 ) -> Input_Result;
2121}
2122extern "C" {
2123 #[doc = " @brief Specifies whether to report repeated key events.\n\n @param hotkey Hotkey object.\n @param isRepeat Whether to report repeated key events. The value **true** means to report repeated key events, and\n the value **false** means the opposite.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2124 #[cfg(feature = "api-14")]
2125 pub fn OH_Input_SetRepeat(hotkey: *mut Input_Hotkey, isRepeat: bool);
2126}
2127extern "C" {
2128 #[doc = " @brief Checks whether to report repeated key events.\n\n @param hotkey Hotkey object.\n @param isRepeat Whether the reported key event is repeated. The value **true** indicates that the key event is\n repeated, and the value **false** indicates that the key event is not repeated.\n @return Return value of the **OH_Input_GetRepeat** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} otherwise.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2129 #[cfg(feature = "api-14")]
2130 pub fn OH_Input_GetRepeat(hotkey: *const Input_Hotkey, isRepeat: *mut bool) -> Input_Result;
2131}
2132extern "C" {
2133 #[doc = " @brief Subscribes to hotkey events.\n\n @param hotkey Hotkey object.\n @param callback Defines the callback used to return hotkey events.\n @return Return value of the **OH_Input_AddHotkeyMonitor** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if parameter verification fails;\n <br>{@link INPUT_OCCUPIED_BY_SYSTEM} if the hotkey has been occupied by the system (you can use\n {@link OH_Input_GetAllSystemHotkeys()} to query allsystem hotkeys);\n <br>{@link INPUT_OCCUPIED_BY_OTHER} if the hotkey has been occupied by another application;\n <br>{@link INPUT_DEVICE_NOT_SUPPORTED} if the function is not supported.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2134 #[cfg(feature = "api-14")]
2135 pub fn OH_Input_AddHotkeyMonitor(
2136 hotkey: *const Input_Hotkey,
2137 callback: Input_HotkeyCallback,
2138 ) -> Input_Result;
2139}
2140extern "C" {
2141 #[doc = " @brief Unsubscribes from hotkey events.\n\n @param hotkey Hotkey object.\n @param callback Defines the callback used to return hotkey events.\n @return Return value of the **OH_Input_RemoveHotkeyMonitor** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if parameter verification fails.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
2142 #[cfg(feature = "api-14")]
2143 pub fn OH_Input_RemoveHotkeyMonitor(
2144 hotkey: *const Input_Hotkey,
2145 callback: Input_HotkeyCallback,
2146 ) -> Input_Result;
2147}
2148extern "C" {
2149 #[doc = " @brief Obtains the IDs of all input devices.\n\n @param deviceIds List of input device IDs.\n @param inSize Size of the input device ID list.\n @param outSize Length of the output device ID list. The value must be less than or equal to the value of **inSize**.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceIds** or **outSize** is a null pointer or **inSize** is less than\n **0**.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2150 #[cfg(feature = "api-13")]
2151 pub fn OH_Input_GetDeviceIds(
2152 deviceIds: *mut i32,
2153 inSize: i32,
2154 outSize: *mut i32,
2155 ) -> Input_Result;
2156}
2157extern "C" {
2158 #[doc = " @brief Obtains information about the input device.\n\n @param deviceId Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID\n may change.\n @param deviceInfo Pointer to the {@link Input_DeviceInfo} object.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceInfo** is a null pointer or **deviceId** is invalid;\n <br>You can use {@link OH_Input_GetDeviceIds()} to query the device IDs supported by the system.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2159 #[cfg(feature = "api-13")]
2160 pub fn OH_Input_GetDevice(
2161 deviceId: i32,
2162 deviceInfo: *mut *mut Input_DeviceInfo,
2163 ) -> Input_Result;
2164}
2165extern "C" {
2166 #[doc = " @brief Creates a **deviceInfo** object. You can call {@link OH_Input_DestroyDeviceInfo()} to destroy an input device\n information object.\n\n @return Pointer to the {@link Input_DeviceInfo} object if the operation is successful; a null pointer otherwise (\n possibly because of a memory allocation failure).\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2167 #[cfg(feature = "api-13")]
2168 pub fn OH_Input_CreateDeviceInfo() -> *mut Input_DeviceInfo;
2169}
2170extern "C" {
2171 #[doc = " @brief Destroys a **deviceInfo** object.\n\n @param deviceInfo **deviceInfo** object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2172 #[cfg(feature = "api-13")]
2173 pub fn OH_Input_DestroyDeviceInfo(deviceInfo: *mut *mut Input_DeviceInfo);
2174}
2175extern "C" {
2176 #[doc = " @brief Obtains the keyboard type of the input device.\n\n @param deviceId Unique ID of the input device. If a physical device is repeatedly reinstalled or restarted, its ID\n may change.\n @param keyboardType Pointer to the keyboard type of the input device.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the device ID is invalid or **keyboardType** is a null pointer.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2177 #[cfg(feature = "api-13")]
2178 pub fn OH_Input_GetKeyboardType(deviceId: i32, keyboardType: *mut i32) -> Input_Result;
2179}
2180extern "C" {
2181 #[doc = " @brief Obtains the ID of an input device.\n\n @param deviceInfo Input device information. For details, see {@link Input_DeviceInfo}.\n @param id Pointer to the input device ID.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceInfo** or **ID** is a null pointer.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2182 #[cfg(feature = "api-13")]
2183 pub fn OH_Input_GetDeviceId(deviceInfo: *mut Input_DeviceInfo, id: *mut i32) -> Input_Result;
2184}
2185extern "C" {
2186 #[doc = " @brief Obtains the name of an input device.\n\n @param deviceInfo Input device information. For details, see {@link Input_DeviceInfo}.\n @param name Pointer to the input device name.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceInfo** or **name** is a null pointer.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2187 #[cfg(feature = "api-13")]
2188 pub fn OH_Input_GetDeviceName(
2189 deviceInfo: *mut Input_DeviceInfo,
2190 name: *mut *mut ::std::os::raw::c_char,
2191 ) -> Input_Result;
2192}
2193extern "C" {
2194 #[doc = " @brief Obtains the capabilities of an input device, for example, a touchscreen, touchpad, or keyboard.\n\n @param deviceInfo Input device information. For details, see {@link Input_DeviceInfo}.\n @param capabilities Pointer to the capability information of the input device.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceInfo** or **capabilities** is a null pointer.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2195 #[cfg(feature = "api-13")]
2196 pub fn OH_Input_GetCapabilities(
2197 deviceInfo: *mut Input_DeviceInfo,
2198 capabilities: *mut i32,
2199 ) -> Input_Result;
2200}
2201extern "C" {
2202 #[doc = " @brief Obtains the version information of an input device.\n\n @param deviceInfo Input device information. For details, see {@link Input_DeviceInfo}.\n @param version Pointer to the version information of the input device.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceInfo** or **version** is a null pointer.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2203 #[cfg(feature = "api-13")]
2204 pub fn OH_Input_GetDeviceVersion(
2205 deviceInfo: *mut Input_DeviceInfo,
2206 version: *mut i32,
2207 ) -> Input_Result;
2208}
2209extern "C" {
2210 #[doc = " @brief Obtains the product information of an input device.\n\n @param deviceInfo Input device information. For details, see {@link Input_DeviceInfo}.\n @param product Pointer to the product information of the input device.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceInfo** or **product** is a null pointer.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2211 #[cfg(feature = "api-13")]
2212 pub fn OH_Input_GetDeviceProduct(
2213 deviceInfo: *mut Input_DeviceInfo,
2214 product: *mut i32,
2215 ) -> Input_Result;
2216}
2217extern "C" {
2218 #[doc = " @brief Obtains the vendor information of an input device.\n\n @param deviceInfo Input device information. For details, see {@link Input_DeviceInfo}.\n @param vendor Pointer to the vendor information of the input device.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceInfo** or **vendor** is a null pointer.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2219 #[cfg(feature = "api-13")]
2220 pub fn OH_Input_GetDeviceVendor(
2221 deviceInfo: *mut Input_DeviceInfo,
2222 vendor: *mut i32,
2223 ) -> Input_Result;
2224}
2225extern "C" {
2226 #[doc = " @brief Obtains the physical address of an input device.\n\n @param deviceInfo Input device information. For details, see {@link Input_DeviceInfo}.\n @param address Pointer to the physical address of the input device.\n @return {@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **deviceInfo** or **address** is a null pointer.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2227 #[cfg(feature = "api-13")]
2228 pub fn OH_Input_GetDeviceAddress(
2229 deviceInfo: *mut Input_DeviceInfo,
2230 address: *mut *mut ::std::os::raw::c_char,
2231 ) -> Input_Result;
2232}
2233extern "C" {
2234 #[doc = " @brief Registers a listener for device hot swap events.\n\n @param listener Pointer to the {@link Input_DeviceListener} object.\n @return Return value of the **OH_Input_RegisterDeviceListener** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the listener is null;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2235 #[cfg(feature = "api-13")]
2236 pub fn OH_Input_RegisterDeviceListener(listener: *mut Input_DeviceListener) -> Input_Result;
2237}
2238extern "C" {
2239 #[doc = " @brief Unregisters the listener for device hot swap events.\n\n @param listener Pointer to the {@link Input_DeviceListener} object.\n @return Return value of the **OH_Input_UnregisterDeviceListener** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if **listener** is null or the listener is not registered;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2240 #[cfg(feature = "api-13")]
2241 pub fn OH_Input_UnregisterDeviceListener(listener: *mut Input_DeviceListener) -> Input_Result;
2242}
2243extern "C" {
2244 #[doc = " @brief Unregisters the listener for all device hot swap events.\n\n @return Return value of the **OH_Input_UnregisterDeviceListener** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
2245 #[cfg(feature = "api-13")]
2246 pub fn OH_Input_UnregisterDeviceListeners() -> Input_Result;
2247}
2248extern "C" {
2249 #[doc = " @brief Obtains the function key status.\n\n @param keyCode Function key. Currently, only the **CapsLock** key is supported. The key value is **1**.\n @param state Function key status. The value **0** indicates that the function key is disabled, and the value **1**\n indicates that the function key is enabled.\n @return Return value of the **OH_Input_GetFunctionKeyState** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter is incorrect;\n <br>{@link INPUT_KEYBOARD_DEVICE_NOT_EXIST} if the keyboard device does not exist.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 15"]
2250 #[cfg(feature = "api-15")]
2251 pub fn OH_Input_GetFunctionKeyState(keyCode: i32, state: *mut i32) -> Input_Result;
2252}
2253extern "C" {
2254 #[doc = " @brief Queries the maximum number of touch points supported by the device.\n\n @param count Maximum number of touch points supported by the device. The value range is [0, 10]. The value **-1**\n indicates that the number of touch points is unknown.\n @return Return value of the **OH_Input_QueryMaxTouchPoints** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 20"]
2255 #[cfg(feature = "api-20")]
2256 pub fn OH_Input_QueryMaxTouchPoints(count: *mut i32) -> Input_Result;
2257}
2258extern "C" {
2259 #[doc = " @brief Obtains the coordinates of the mouse pointer on the current screen.\n <br>Since API version 26.0.0, non-focused applications that have the ohos.permission.INPUT_DEVICE_CONFIGURATOR\n permission can call this API.\n\n @param displayId Screen ID of the current screen.\n @param displayX X coordinate of the mouse on the current screen, in pixels (px).\n @param displayY Y coordinate of the mouse on the current screen, in pixels (px).\n @return Return value of the **GetPointerLocation** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter is incorrect;\n <br>{@link INPUT_SERVICE_EXCEPTION} if a service exception occurs;\n <br>{@link INPUT_APP_NOT_FOCUSED} if the current application is not in focus;\n <br>{@link INPUT_DEVICE_NO_POINTER} if no mouse device is available.\n @since 20"]
2260 #[cfg(feature = "api-20")]
2261 pub fn OH_Input_GetPointerLocation(
2262 displayId: *mut i32,
2263 displayX: *mut f64,
2264 displayY: *mut f64,
2265 ) -> Input_Result;
2266}
2267extern "C" {
2268 #[doc = " @brief Creates a mouse pointer information object. You can call {@link OH_Input_CursorInfo_Destroy()} to destroy a\n mouse pointer information object.\n\n @return An {@link Input_CursorInfo} object if the operation is successful; a null pointer otherwise (possibly\n because of a memory allocation failure).\n @since 22"]
2269 #[cfg(feature = "api-22")]
2270 pub fn OH_Input_CursorInfo_Create() -> *mut Input_CursorInfo;
2271}
2272extern "C" {
2273 #[doc = " @brief Destroys the mouse pointer information object.\n\n @param cursorInfo Mouse pointer information object.\n @since 22"]
2274 #[cfg(feature = "api-22")]
2275 pub fn OH_Input_CursorInfo_Destroy(cursorInfo: *mut *mut Input_CursorInfo);
2276}
2277extern "C" {
2278 #[doc = " @brief Obtains the pointer visible status of the specified mouse pointer information object.\n\n @param cursorInfo Mouse pointer information object. You can call {@link OH_Input_GetMouseEventCursorInfo()} to query\n the mouse pointer information of a specified mouse event, or call {@link OH_Input_GetCursorInfo()} to query the\n current mouse pointer information.\n @param visible Visible status of the mouse pointer. The value **true** indicates that the mouse pointer is visible,\n and the value **false** indicates the opposite.\n @return Return value of the **OH_Input_CursorInfo_IsVisible** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 22"]
2279 #[cfg(feature = "api-22")]
2280 pub fn OH_Input_CursorInfo_IsVisible(
2281 cursorInfo: *mut Input_CursorInfo,
2282 visible: *mut bool,
2283 ) -> Input_Result;
2284}
2285extern "C" {
2286 #[doc = " @brief Obtains the pointer style of the specified mouse pointer information object.\n\n @param cursorInfo Mouse pointer information object. You can call {@link OH_Input_GetMouseEventCursorInfo()} to query\n the mouse pointer information of a specified mouse event, or call {@link OH_Input_GetCursorInfo()} to query the\n current mouse pointer information.\n @param style Cursor style of the cursorInfo.\n @return Return value of the **OH_Input_CursorInfo_GetStyle** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails or the pointer is invisible.\n @since 22"]
2287 #[cfg(feature = "api-22")]
2288 pub fn OH_Input_CursorInfo_GetStyle(
2289 cursorInfo: *mut Input_CursorInfo,
2290 style: *mut Input_PointerStyle,
2291 ) -> Input_Result;
2292}
2293extern "C" {
2294 #[doc = " @brief Obtains the pointer size level of the specified mouse pointer information object.\n\n @param cursorInfo Mouse pointer information object. You can call {@link OH_Input_GetMouseEventCursorInfo()} to query\n the mouse pointer information of a specified mouse event, or call {@link OH_Input_GetCursorInfo()} to query the\n current mouse pointer information.\n @param sizeLevel Pointer size level of the mouse pointer information object. The value is an integer ranging from 1\n to 7. A larger value indicates a higher pointer size level. The size of the custom pointer\n {@link DEVELOPER_DEFINED_ICON} is subject to the actual bitmap size.\n @return Return value of the **OH_Input_CursorInfo_GetSizeLevel** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails or the pointer is invisible.\n @since 22"]
2295 #[cfg(feature = "api-22")]
2296 pub fn OH_Input_CursorInfo_GetSizeLevel(
2297 cursorInfo: *mut Input_CursorInfo,
2298 sizeLevel: *mut i32,
2299 ) -> Input_Result;
2300}
2301extern "C" {
2302 #[doc = " @brief Gets the cursor color corresponding to a specified mouse cursor info object, represented as a 32-bit ARGB\n integer.\n\n @param cursorInfo Mouse pointer information object. You can call {@link OH_Input_GetMouseEventCursorInfo()} to query\n the mouse pointer information of a specified mouse event, or call {@link OH_Input_GetCursorInfo()} to query the\n current mouse pointer information.\n @param color Cursor color of the mouse cursor info, represented by a 32-bit ARGB integer. For application-defined\n custom cursors {@link DEVELOPER_DEFINED_ICON}, the actual bitmap color shall prevail.\n @return Return value of the **OH_Input_CursorInfo_GetColor** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails or the pointer is invisible.\n @since 22"]
2303 #[cfg(feature = "api-22")]
2304 pub fn OH_Input_CursorInfo_GetColor(
2305 cursorInfo: *mut Input_CursorInfo,
2306 color: *mut u32,
2307 ) -> Input_Result;
2308}
2309extern "C" {
2310 #[doc = " @brief Obtains the mouse pointer information of the mouse event, including the pointer visible status, pointer style,\n pointer size level, and pointer color.\n\n @param mouseEvent Mouse event object. You can obtain the mouse event object from the callback of\n {@link OH_Input_AddMouseEventMonitor()} or {@link OH_Input_AddInputEventInterceptor()}.\n @param cursorInfo Mouse pointer information object. You can call {@link OH_Input_CursorInfo_Create()} to create a\n mouse pointer information object.\n @return Return value of the **OH_Input_GetMouseEventCursorInfo** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 22"]
2311 #[cfg(feature = "api-22")]
2312 pub fn OH_Input_GetMouseEventCursorInfo(
2313 mouseEvent: *const Input_MouseEvent,
2314 cursorInfo: *mut Input_CursorInfo,
2315 ) -> Input_Result;
2316}
2317extern "C" {
2318 #[doc = " @brief Obtains the mouse pointer information, including the pointer visible status, pointer style, pointer size\n level, and pointer color. If the **pixelmap** parameter is not empty and the pointer style is\n {@link DEVELOPER_DEFINED_ICON}, the **PixelMap** object of the pointer is returned.\n\n @param cursorInfo Mouse pointer information object. You can call {@link OH_Input_CursorInfo_Create()} to create a\n mouse pointer information object.\n @param pixelmap **PixelMap** object. If this parameter is not empty and the pointer is a custom one, the **PixelMap**\n object of the pointer is returned. Otherwise, the **PixelMap** object is not returned. Firstly, create an **\n OH_PixelmapInitializationOptions** object through {@link OH_PixelmapInitializationOptions_Create}. Then, set the\n width to a value greater than **0** through {@link OH_PixelmapInitializationOptions_SetWidth}, set the height to\n a value greater than **0** through {@link OH_PixelmapInitializationOptions_SetHeight}. Finally, create a **\n PixelMap** object by calling {@link OH_PixelmapNative_CreateEmptyPixelmap} with the **\n OH_PixelmapInitializationOptions** object passed in.\n <br>When the **PixelMap** object is no longer needed, you need to call {@link OH_PixelmapNative_Release} to\n release the object and then call {@link OH_PixelmapNative_Destroy} to destroy it.\n @return Return value of the **OH_Input_GetCursorInfo** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @since 22"]
2319 #[cfg(feature = "api-22")]
2320 pub fn OH_Input_GetCursorInfo(
2321 cursorInfo: *mut Input_CursorInfo,
2322 pixelmap: *mut *mut OH_PixelmapNative,
2323 ) -> Input_Result;
2324}
2325extern "C" {
2326 #[doc = " @brief Sets the visible status of the mouse pointer in the current window.\n\n @param visible Whether the mouse pointer is visible. The value **true** indicates that the mouse pointer is visible,\n and the value **false** indicates the opposite.\n @return Return value of the **OH_Input_SetPointerVisible** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_DEVICE_NOT_SUPPORTED} if the device is not supported;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @since 22"]
2327 #[cfg(feature = "api-22")]
2328 pub fn OH_Input_SetPointerVisible(visible: bool) -> Input_Result;
2329}
2330extern "C" {
2331 #[doc = " @brief Gets the mouse cursor style of a specified window. This API only supports getting the mouse cursor style of\n windows within the current application process.\n\n @param windowId Window ID. The value is an integer greater than or equal to **-1**. The value **-1** indicates the\n global window.\n <br>Only the ID of the current window or global window can be specified. If any other ID is specified, the\n default pointer style of the global window is returned. You can obtain the ID of the current window through\n {@link getWindowProperties}.\n @param pointerStyle Mouse cursor style, which is an enum value of {@link Input_PointerStyle}.\n @return Return value of the **OH_Input_GetPointerStyle** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @since 22"]
2332 #[cfg(feature = "api-22")]
2333 pub fn OH_Input_GetPointerStyle(windowId: i32, pointerStyle: *mut i32) -> Input_Result;
2334}
2335extern "C" {
2336 #[doc = " @brief Sets the mouse cursor style for a specified window. This API only supports setting the mouse cursor style for\n windows within the current application process.\n\n @param windowId Window ID. The value is an integer greater than or equal to 0.\n <br>Only the ID of the current window can be specified. If any other ID is specified, the API call is successful,\n but the setting does not take effect. You can obtain the ID of the current window through\n {@link getWindowProperties}.\n @param pointerStyle Mouse pointer style. The value is an enumerated value of {@link Input_PointerStyle}.\n @return Return value of the **OH_Input_SetPointerStyle** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @since 22"]
2337 #[cfg(feature = "api-22")]
2338 pub fn OH_Input_SetPointerStyle(windowId: i32, pointerStyle: i32) -> Input_Result;
2339}
2340extern "C" {
2341 #[doc = " @brief Creates a custom mouse pointer object. You can call {@link OH_Input_CustomCursor_Destroy()} to destroy a\n custom mouse pointer resource object.\n\n @param pixelMap Pixel map of the custom mouse pointer object. For details, see {@link OH_PixelmapNative}. The\n minimum value is the minimum size of the resource image. The maximum value is 256 x 256 px.\n @param anchorX Horizontal coordinate of the custom mouse cursor focus. This coordinate is limited by the size of the\n custom mouse cursor. The minimum value is 0, and the maximum value is the maximum width of the resource image,\n in pixels (px).\n @param anchorY Vertical coordinate of the custom mouse cursor focus. This coordinate is limited by the size of the\n custom mouse cursor. The minimum value is 0, and the maximum value is the maximum height of the resource image,\n in pixels (px).\n @return {@link Input_CustomCursor} object. The pointer to the custom mouse pointer object is returned if the\n operation is successful, and a null pointer is returned if an exception occurs.\n @since 22"]
2342 #[cfg(feature = "api-22")]
2343 pub fn OH_Input_CustomCursor_Create(
2344 pixelMap: *mut OH_PixelmapNative,
2345 anchorX: i32,
2346 anchorY: i32,
2347 ) -> *mut Input_CustomCursor;
2348}
2349extern "C" {
2350 #[doc = " @brief Destroys a custom mouse pointer object.\n\n @param customCursor Custom mouse pointer object. For details, see {@link Input_CustomCursor}.\n @since 22"]
2351 #[cfg(feature = "api-22")]
2352 pub fn OH_Input_CustomCursor_Destroy(customCursor: *mut *mut Input_CustomCursor);
2353}
2354extern "C" {
2355 #[doc = " @brief Obtains the pixel map of a custom mouse pointer object.\n\n @param customCursor Custom mouse pointer object. For details, see {@link Input_CustomCursor}.\n @param pixelMap Pixel map of the custom mouse pointer object. For details, see {@link OH_PixelmapNative}.\n @return Return value of the **OH_Input_CustomCursor_GetPixelMap** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 22"]
2356 #[cfg(feature = "api-22")]
2357 pub fn OH_Input_CustomCursor_GetPixelMap(
2358 customCursor: *mut Input_CustomCursor,
2359 pixelMap: *mut *mut OH_PixelmapNative,
2360 ) -> Input_Result;
2361}
2362extern "C" {
2363 #[doc = " @brief Obtains the focus coordinates of a custom mouse pointer object.\n\n @param customCursor Custom mouse pointer object. For details, see {@link Input_CustomCursor}.\n @param anchorX Horizontal coordinate of the focus point of the custom mouse cursor resource, in pixels (px).\n @param anchorY Vertical coordinate of the focus point of the custom mouse cursor resource, in pixels (px).\n @return Return value of the **OH_Input_CustomCursor_GetAnchor** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 22"]
2364 #[cfg(feature = "api-22")]
2365 pub fn OH_Input_CustomCursor_GetAnchor(
2366 customCursor: *mut Input_CustomCursor,
2367 anchorX: *mut i32,
2368 anchorY: *mut i32,
2369 ) -> Input_Result;
2370}
2371extern "C" {
2372 #[doc = " @brief Creates a custom mouse pointer configuration object. You can call {@link OH_Input_CursorConfig_Destroy()} to\n destroy a custom mouse pointer configuration object.\n\n @param followSystem Whether to adjust the mouse cursor size based on system settings. false means using the custom\n mouse cursor style size, true means adjusting the mouse cursor size based on system settings. The adjustable\n range is: [cursor resource image size, 256×256], in pixels (px).\n @return Custom mouse pointer configuration object. For details, see {@link Input_CursorConfig}.\n @since 22"]
2373 #[cfg(feature = "api-22")]
2374 pub fn OH_Input_CursorConfig_Create(followSystem: bool) -> *mut Input_CursorConfig;
2375}
2376extern "C" {
2377 #[doc = " @brief Destroys a custom mouse pointer configuration object.\n\n @param cursorConfig Custom mouse pointer configuration object. For details, see {@link Input_CursorConfig}.\n @since 22"]
2378 #[cfg(feature = "api-22")]
2379 pub fn OH_Input_CursorConfig_Destroy(cursorConfig: *mut *mut Input_CursorConfig);
2380}
2381extern "C" {
2382 #[doc = " @brief Queries whether the custom mouse pointer configuration follows the system setting to adjust the pointer size.\n\n @param cursorConfig Custom mouse pointer configuration object. For details, see {@link Input_CursorConfig}.\n @param followSystem Whether to adjust the pointer size based on the system setting. The value **true** means to\n adjust the pointer size based on the system setting, and the value **false** means to use the size of custom\n mouse pointer.\n @return Return value of the **OH_Input_CursorConfig_IsFollowSystem** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails.\n @since 22"]
2383 #[cfg(feature = "api-22")]
2384 pub fn OH_Input_CursorConfig_IsFollowSystem(
2385 cursorConfig: *mut Input_CursorConfig,
2386 followSystem: *mut bool,
2387 ) -> Input_Result;
2388}
2389extern "C" {
2390 #[doc = " @brief Sets the custom mouse pointer style.\n <br>The cursor may revert to the system style in the following scenarios: application window layout changes, hotspot\n switching, page navigation, the cursor leaving and re-entering the window, or the cursor moving between different\n areas of the window. In these cases, the developer needs to set the cursor style again. This API only supports\n setting the custom mouse cursor style for windows within the current application process.\n\n @param windowId Window ID. The value must be an integer greater than or equal to **0**. Only the pointer style of\n the current window can be specified.\n @param customCursor Custom mouse pointer object. For details, see {@link Input_CustomCursor}.\n @param cursorConfig Custom mouse pointer configuration object. For details, see {@link Input_CursorConfig}.\n @return Return value of the **OH_Input_SetCustomCursor** function.\n <br>{@link INPUT_SUCCESS} if the operation is successful;\n <br>{@link INPUT_PARAMETER_ERROR} if the parameter verification fails;\n <br>{@link INPUT_INVALID_WINDOWID} if the window ID is invalid;\n <br>{@link INPUT_DEVICE_NOT_SUPPORTED} if the device is not supported;\n <br>{@link INPUT_SERVICE_EXCEPTION} if the service is abnormal.\n @since 22"]
2391 #[cfg(feature = "api-22")]
2392 pub fn OH_Input_SetCustomCursor(
2393 windowId: i32,
2394 customCursor: *mut Input_CustomCursor,
2395 cursorConfig: *mut Input_CursorConfig,
2396 ) -> Input_Result;
2397}
2398extern "C" {
2399 #[doc = " @brief Binds a specified input device to a specified screen.\n\n @permission ohos.permission.INPUT_DEVICE_CONFIGURATOR\n @param inputDeviceId ID of the input device.\n @param displayId ID of the screen.\n @return Return values of the OH_Input_BindInputDeviceToDisplay function:\n <br>{@link INPUT_SUCCESS} indicates that the operation is successful.\n <br>{@link INPUT_PERMISSION_DENIED} indicates that the permission verification fails.\n <br>{@link INPUT_PARAMETER_ERROR} indicates that the parameter check fails (the input device does not exist, the\n display device does not exist, or the input device is not a stylus device).\n <br>{@link INPUT_SERVICE_EXCEPTION} indicates that the service is abnormal. Try again.\n @since 26.0.0"]
2400 #[cfg(feature = "api-26")]
2401 pub fn OH_Input_BindInputDeviceToDisplay(inputDeviceId: i32, displayId: i32) -> Input_Result;
2402}