/* automatically generated by rust-bindgen 0.65.1 */
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
#![allow(non_camel_case_types)]
#![allow(clippy::missing_safety_doc)]
// bindgen's bitfield accessors transmute/cast between identical types.
#![allow(clippy::useless_transmute)]
#![allow(clippy::unnecessary_cast)]
pub use ohos_image_native_sys::OH_PixelmapNative;
#[link(name = "ohinput")]
unsafe extern "C" {}
#[doc = " Unknown axis type, which is usually used as the initial value.\n @since 12"]
pub const InputEvent_AxisType_AXIS_TYPE_UNKNOWN: InputEvent_AxisType = 0;
#[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"]
pub const InputEvent_AxisType_AXIS_TYPE_SCROLL_VERTICAL: InputEvent_AxisType = 1;
#[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"]
pub const InputEvent_AxisType_AXIS_TYPE_SCROLL_HORIZONTAL: InputEvent_AxisType = 2;
#[doc = " Pinch axis, which is used to describe a two-finger pinch gesture on the touchpad.\n @since 12"]
pub const InputEvent_AxisType_AXIS_TYPE_PINCH: InputEvent_AxisType = 3;
#[doc = " Rotation axis, which is used to describe a two-finger rotation gesture on the touchpad.\n @since 12"]
pub const InputEvent_AxisType_AXIS_TYPE_ROTATE: InputEvent_AxisType = 4;
#[doc = " @brief Defines the axis type of an input device.\n\n @since 12"]
pub type InputEvent_AxisType = u32;
#[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"]
pub const InputEvent_AxisEventType_AXIS_EVENT_TYPE_PINCH: InputEvent_AxisEventType = 1;
#[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"]
pub const InputEvent_AxisEventType_AXIS_EVENT_TYPE_SCROLL: InputEvent_AxisEventType = 2;
#[doc = " @brief Event type of the input device.\n\n @since 12"]
pub type InputEvent_AxisEventType = u32;
#[doc = " The axis event is canceled.\n @since 12"]
pub const InputEvent_AxisAction_AXIS_ACTION_CANCEL: InputEvent_AxisAction = 0;
#[doc = " The axis event begins.\n @since 12"]
pub const InputEvent_AxisAction_AXIS_ACTION_BEGIN: InputEvent_AxisAction = 1;
#[doc = " The axis event is updated.\n @since 12"]
pub const InputEvent_AxisAction_AXIS_ACTION_UPDATE: InputEvent_AxisAction = 2;
#[doc = " The axis event ends.\n @since 12"]
pub const InputEvent_AxisAction_AXIS_ACTION_END: InputEvent_AxisAction = 3;
#[doc = " @brief Action of the input device.\n\n @since 12"]
pub type InputEvent_AxisAction = u32;
#[doc = " Unknown key"]
pub const Input_KeyCode_KEYCODE_UNKNOWN: Input_KeyCode = -1;
#[doc = " Function (Fn) key"]
pub const Input_KeyCode_KEYCODE_FN: Input_KeyCode = 0;
#[doc = " Function (Home) key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_HOME: Input_KeyCode = 1;
#[doc = " Back button\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BACK: Input_KeyCode = 2;
#[doc = " Search key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SEARCH: Input_KeyCode = 9;
#[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"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MEDIA_PLAY_PAUSE: Input_KeyCode = 10;
#[doc = " Media: Stop Key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MEDIA_STOP: Input_KeyCode = 11;
#[doc = " Media: Next key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MEDIA_NEXT: Input_KeyCode = 12;
#[doc = " Media: Previous key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MEDIA_PREVIOUS: Input_KeyCode = 13;
#[doc = " Media: Rewind key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MEDIA_REWIND: Input_KeyCode = 14;
#[doc = " Media: Fast Forward key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MEDIA_FAST_FORWARD: Input_KeyCode = 15;
#[doc = " Volume Up key"]
pub const Input_KeyCode_KEYCODE_VOLUME_UP: Input_KeyCode = 16;
#[doc = " Volume Down key"]
pub const Input_KeyCode_KEYCODE_VOLUME_DOWN: Input_KeyCode = 17;
#[doc = " Power key"]
pub const Input_KeyCode_KEYCODE_POWER: Input_KeyCode = 18;
#[doc = " Camera key"]
pub const Input_KeyCode_KEYCODE_CAMERA: Input_KeyCode = 19;
#[doc = " Speaker Mute key"]
pub const Input_KeyCode_KEYCODE_VOLUME_MUTE: Input_KeyCode = 22;
#[doc = " Mute key"]
pub const Input_KeyCode_KEYCODE_MUTE: Input_KeyCode = 23;
#[doc = " Brightness Up key"]
pub const Input_KeyCode_KEYCODE_BRIGHTNESS_UP: Input_KeyCode = 40;
#[doc = " Brightness Down key"]
pub const Input_KeyCode_KEYCODE_BRIGHTNESS_DOWN: Input_KeyCode = 41;
#[doc = " Key 0"]
pub const Input_KeyCode_KEYCODE_0: Input_KeyCode = 2000;
#[doc = " Key 1"]
pub const Input_KeyCode_KEYCODE_1: Input_KeyCode = 2001;
#[doc = " Key 2"]
pub const Input_KeyCode_KEYCODE_2: Input_KeyCode = 2002;
#[doc = " Key 3"]
pub const Input_KeyCode_KEYCODE_3: Input_KeyCode = 2003;
#[doc = " Key 4"]
pub const Input_KeyCode_KEYCODE_4: Input_KeyCode = 2004;
#[doc = " Key 5"]
pub const Input_KeyCode_KEYCODE_5: Input_KeyCode = 2005;
#[doc = " Key 6"]
pub const Input_KeyCode_KEYCODE_6: Input_KeyCode = 2006;
#[doc = " Key 7"]
pub const Input_KeyCode_KEYCODE_7: Input_KeyCode = 2007;
#[doc = " Key 8"]
pub const Input_KeyCode_KEYCODE_8: Input_KeyCode = 2008;
#[doc = " Key 9"]
pub const Input_KeyCode_KEYCODE_9: Input_KeyCode = 2009;
#[doc = " Key *"]
pub const Input_KeyCode_KEYCODE_STAR: Input_KeyCode = 2010;
#[doc = " Key #"]
pub const Input_KeyCode_KEYCODE_POUND: Input_KeyCode = 2011;
#[doc = " Up key on D-pad"]
pub const Input_KeyCode_KEYCODE_DPAD_UP: Input_KeyCode = 2012;
#[doc = " Down key on D-pad"]
pub const Input_KeyCode_KEYCODE_DPAD_DOWN: Input_KeyCode = 2013;
#[doc = " Left key on D-pad"]
pub const Input_KeyCode_KEYCODE_DPAD_LEFT: Input_KeyCode = 2014;
#[doc = " Right key on D-pad"]
pub const Input_KeyCode_KEYCODE_DPAD_RIGHT: Input_KeyCode = 2015;
#[doc = " Center key on D-pad"]
pub const Input_KeyCode_KEYCODE_DPAD_CENTER: Input_KeyCode = 2016;
#[doc = " Key A"]
pub const Input_KeyCode_KEYCODE_A: Input_KeyCode = 2017;
#[doc = " Key B"]
pub const Input_KeyCode_KEYCODE_B: Input_KeyCode = 2018;
#[doc = " Key C"]
pub const Input_KeyCode_KEYCODE_C: Input_KeyCode = 2019;
#[doc = " Key D"]
pub const Input_KeyCode_KEYCODE_D: Input_KeyCode = 2020;
#[doc = " Key E"]
pub const Input_KeyCode_KEYCODE_E: Input_KeyCode = 2021;
#[doc = " Key F"]
pub const Input_KeyCode_KEYCODE_F: Input_KeyCode = 2022;
#[doc = " Key G"]
pub const Input_KeyCode_KEYCODE_G: Input_KeyCode = 2023;
#[doc = " Key H"]
pub const Input_KeyCode_KEYCODE_H: Input_KeyCode = 2024;
#[doc = " Key I"]
pub const Input_KeyCode_KEYCODE_I: Input_KeyCode = 2025;
#[doc = " Key J"]
pub const Input_KeyCode_KEYCODE_J: Input_KeyCode = 2026;
#[doc = " Key K"]
pub const Input_KeyCode_KEYCODE_K: Input_KeyCode = 2027;
#[doc = " Key L"]
pub const Input_KeyCode_KEYCODE_L: Input_KeyCode = 2028;
#[doc = " Key M"]
pub const Input_KeyCode_KEYCODE_M: Input_KeyCode = 2029;
#[doc = " Key N"]
pub const Input_KeyCode_KEYCODE_N: Input_KeyCode = 2030;
#[doc = " Key O"]
pub const Input_KeyCode_KEYCODE_O: Input_KeyCode = 2031;
#[doc = " Key P"]
pub const Input_KeyCode_KEYCODE_P: Input_KeyCode = 2032;
#[doc = " Key Q"]
pub const Input_KeyCode_KEYCODE_Q: Input_KeyCode = 2033;
#[doc = " Key R"]
pub const Input_KeyCode_KEYCODE_R: Input_KeyCode = 2034;
#[doc = " Key S"]
pub const Input_KeyCode_KEYCODE_S: Input_KeyCode = 2035;
#[doc = " Key T"]
pub const Input_KeyCode_KEYCODE_T: Input_KeyCode = 2036;
#[doc = " Key U"]
pub const Input_KeyCode_KEYCODE_U: Input_KeyCode = 2037;
#[doc = " Key V"]
pub const Input_KeyCode_KEYCODE_V: Input_KeyCode = 2038;
#[doc = " Key W"]
pub const Input_KeyCode_KEYCODE_W: Input_KeyCode = 2039;
#[doc = " Key X"]
pub const Input_KeyCode_KEYCODE_X: Input_KeyCode = 2040;
#[doc = " Key Y"]
pub const Input_KeyCode_KEYCODE_Y: Input_KeyCode = 2041;
#[doc = " Key Z"]
pub const Input_KeyCode_KEYCODE_Z: Input_KeyCode = 2042;
#[doc = " Key ,"]
pub const Input_KeyCode_KEYCODE_COMMA: Input_KeyCode = 2043;
#[doc = " Key ."]
pub const Input_KeyCode_KEYCODE_PERIOD: Input_KeyCode = 2044;
#[doc = " Left Alt key"]
pub const Input_KeyCode_KEYCODE_ALT_LEFT: Input_KeyCode = 2045;
#[doc = " Right Alt key"]
pub const Input_KeyCode_KEYCODE_ALT_RIGHT: Input_KeyCode = 2046;
#[doc = " Left Shift key"]
pub const Input_KeyCode_KEYCODE_SHIFT_LEFT: Input_KeyCode = 2047;
#[doc = " Right Shift key"]
pub const Input_KeyCode_KEYCODE_SHIFT_RIGHT: Input_KeyCode = 2048;
#[doc = " Tab key"]
pub const Input_KeyCode_KEYCODE_TAB: Input_KeyCode = 2049;
#[doc = " Space key"]
pub const Input_KeyCode_KEYCODE_SPACE: Input_KeyCode = 2050;
#[doc = " Symbol key"]
pub const Input_KeyCode_KEYCODE_SYM: Input_KeyCode = 2051;
#[doc = " Browser function key, used to launch the browser application."]
pub const Input_KeyCode_KEYCODE_EXPLORER: Input_KeyCode = 2052;
#[doc = " Email function key, used to launch the email application."]
pub const Input_KeyCode_KEYCODE_ENVELOPE: Input_KeyCode = 2053;
#[doc = " Enter key"]
pub const Input_KeyCode_KEYCODE_ENTER: Input_KeyCode = 2054;
#[doc = " Delete key"]
pub const Input_KeyCode_KEYCODE_DEL: Input_KeyCode = 2055;
#[doc = " Key *"]
pub const Input_KeyCode_KEYCODE_GRAVE: Input_KeyCode = 2056;
#[doc = " Key -"]
pub const Input_KeyCode_KEYCODE_MINUS: Input_KeyCode = 2057;
#[doc = " Key ="]
pub const Input_KeyCode_KEYCODE_EQUALS: Input_KeyCode = 2058;
#[doc = " Key ["]
pub const Input_KeyCode_KEYCODE_LEFT_BRACKET: Input_KeyCode = 2059;
#[doc = " Key ]"]
pub const Input_KeyCode_KEYCODE_RIGHT_BRACKET: Input_KeyCode = 2060;
#[doc = " Key \\|"]
pub const Input_KeyCode_KEYCODE_BACKSLASH: Input_KeyCode = 2061;
#[doc = " Key ;"]
pub const Input_KeyCode_KEYCODE_SEMICOLON: Input_KeyCode = 2062;
#[doc = " Key '"]
pub const Input_KeyCode_KEYCODE_APOSTROPHE: Input_KeyCode = 2063;
#[doc = " Key /"]
pub const Input_KeyCode_KEYCODE_SLASH: Input_KeyCode = 2064;
#[doc = " Key @"]
pub const Input_KeyCode_KEYCODE_AT: Input_KeyCode = 2065;
#[doc = " Key +"]
pub const Input_KeyCode_KEYCODE_PLUS: Input_KeyCode = 2066;
#[doc = " Menu key"]
pub const Input_KeyCode_KEYCODE_MENU: Input_KeyCode = 2067;
#[doc = " Page Up key"]
pub const Input_KeyCode_KEYCODE_PAGE_UP: Input_KeyCode = 2068;
#[doc = " Page Down key"]
pub const Input_KeyCode_KEYCODE_PAGE_DOWN: Input_KeyCode = 2069;
#[doc = " Esc key"]
pub const Input_KeyCode_KEYCODE_ESCAPE: Input_KeyCode = 2070;
#[doc = " Forward Delete key"]
pub const Input_KeyCode_KEYCODE_FORWARD_DEL: Input_KeyCode = 2071;
#[doc = " Left Ctrl key"]
pub const Input_KeyCode_KEYCODE_CTRL_LEFT: Input_KeyCode = 2072;
#[doc = " Right Ctrl key"]
pub const Input_KeyCode_KEYCODE_CTRL_RIGHT: Input_KeyCode = 2073;
#[doc = " Caps Lock key"]
pub const Input_KeyCode_KEYCODE_CAPS_LOCK: Input_KeyCode = 2074;
#[doc = " Scroll Lock key"]
pub const Input_KeyCode_KEYCODE_SCROLL_LOCK: Input_KeyCode = 2075;
#[doc = " Left Meta key"]
pub const Input_KeyCode_KEYCODE_META_LEFT: Input_KeyCode = 2076;
#[doc = " Right Meta key"]
pub const Input_KeyCode_KEYCODE_META_RIGHT: Input_KeyCode = 2077;
#[doc = " Function key"]
pub const Input_KeyCode_KEYCODE_FUNCTION: Input_KeyCode = 2078;
#[doc = " System Request/Print Screen key"]
pub const Input_KeyCode_KEYCODE_SYSRQ: Input_KeyCode = 2079;
#[doc = " Break/Pause key"]
pub const Input_KeyCode_KEYCODE_BREAK: Input_KeyCode = 2080;
#[doc = " Move to Home key"]
pub const Input_KeyCode_KEYCODE_MOVE_HOME: Input_KeyCode = 2081;
#[doc = " Move to End key"]
pub const Input_KeyCode_KEYCODE_MOVE_END: Input_KeyCode = 2082;
#[doc = " Insert key"]
pub const Input_KeyCode_KEYCODE_INSERT: Input_KeyCode = 2083;
#[doc = " Forward key"]
pub const Input_KeyCode_KEYCODE_FORWARD: Input_KeyCode = 2084;
#[doc = " Media: Play key"]
pub const Input_KeyCode_KEYCODE_MEDIA_PLAY: Input_KeyCode = 2085;
#[doc = " Media: Pause key"]
pub const Input_KeyCode_KEYCODE_MEDIA_PAUSE: Input_KeyCode = 2086;
#[doc = " Media: Close key"]
pub const Input_KeyCode_KEYCODE_MEDIA_CLOSE: Input_KeyCode = 2087;
#[doc = " Media: Reject key"]
pub const Input_KeyCode_KEYCODE_MEDIA_EJECT: Input_KeyCode = 2088;
#[doc = " Media: Record key"]
pub const Input_KeyCode_KEYCODE_MEDIA_RECORD: Input_KeyCode = 2089;
#[doc = " F1 key"]
pub const Input_KeyCode_KEYCODE_F1: Input_KeyCode = 2090;
#[doc = " F2 key"]
pub const Input_KeyCode_KEYCODE_F2: Input_KeyCode = 2091;
#[doc = " F3 key"]
pub const Input_KeyCode_KEYCODE_F3: Input_KeyCode = 2092;
#[doc = " F4 key"]
pub const Input_KeyCode_KEYCODE_F4: Input_KeyCode = 2093;
#[doc = " F5 key"]
pub const Input_KeyCode_KEYCODE_F5: Input_KeyCode = 2094;
#[doc = " F6 key"]
pub const Input_KeyCode_KEYCODE_F6: Input_KeyCode = 2095;
#[doc = " F7 key"]
pub const Input_KeyCode_KEYCODE_F7: Input_KeyCode = 2096;
#[doc = " F8 key"]
pub const Input_KeyCode_KEYCODE_F8: Input_KeyCode = 2097;
#[doc = " F9 key"]
pub const Input_KeyCode_KEYCODE_F9: Input_KeyCode = 2098;
#[doc = " F10 key"]
pub const Input_KeyCode_KEYCODE_F10: Input_KeyCode = 2099;
#[doc = " F11 key"]
pub const Input_KeyCode_KEYCODE_F11: Input_KeyCode = 2100;
#[doc = " F12 key"]
pub const Input_KeyCode_KEYCODE_F12: Input_KeyCode = 2101;
#[doc = " Number Lock key"]
pub const Input_KeyCode_KEYCODE_NUM_LOCK: Input_KeyCode = 2102;
#[doc = " Key 0 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_0: Input_KeyCode = 2103;
#[doc = " Key 1 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_1: Input_KeyCode = 2104;
#[doc = " Key 2 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_2: Input_KeyCode = 2105;
#[doc = " Key 3 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_3: Input_KeyCode = 2106;
#[doc = " Key 4 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_4: Input_KeyCode = 2107;
#[doc = " Key 5 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_5: Input_KeyCode = 2108;
#[doc = " Key 6 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_6: Input_KeyCode = 2109;
#[doc = " Key 7 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_7: Input_KeyCode = 2110;
#[doc = " Key 8 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_8: Input_KeyCode = 2111;
#[doc = " Key 9 on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_9: Input_KeyCode = 2112;
#[doc = " Key / on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_DIVIDE: Input_KeyCode = 2113;
#[doc = " Key * on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_MULTIPLY: Input_KeyCode = 2114;
#[doc = " Key - on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_SUBTRACT: Input_KeyCode = 2115;
#[doc = " Key + on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_ADD: Input_KeyCode = 2116;
#[doc = " Key . on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_DOT: Input_KeyCode = 2117;
#[doc = " Key , on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_COMMA: Input_KeyCode = 2118;
#[doc = " Enter key on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_ENTER: Input_KeyCode = 2119;
#[doc = " Key = on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_EQUALS: Input_KeyCode = 2120;
#[doc = " Key ( on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_LEFT_PAREN: Input_KeyCode = 2121;
#[doc = " Key ) on numeric keypad"]
pub const Input_KeyCode_KEYCODE_NUMPAD_RIGHT_PAREN: Input_KeyCode = 2122;
#[doc = " Multi-task key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_VIRTUAL_MULTITASK: Input_KeyCode = 2210;
#[doc = " Joystick key A\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_A: Input_KeyCode = 2301;
#[doc = " Joystick key B\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_B: Input_KeyCode = 2302;
#[doc = " Joystick key X\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_X: Input_KeyCode = 2304;
#[doc = " Joystick key Y\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_Y: Input_KeyCode = 2305;
#[doc = " Joystick key L1\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_L1: Input_KeyCode = 2307;
#[doc = " Joystick key R1\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_R1: Input_KeyCode = 2308;
#[doc = " Joystick key L2\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_L2: Input_KeyCode = 2309;
#[doc = " Joystick key R2\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_R2: Input_KeyCode = 2310;
#[doc = " Joystick key Select\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_SELECT: Input_KeyCode = 2311;
#[doc = " Joystick key Start\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_START: Input_KeyCode = 2312;
#[doc = " Joystick key Mode\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_MODE: Input_KeyCode = 2313;
#[doc = " Joystick key THUMBL\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_THUMBL: Input_KeyCode = 2314;
#[doc = " Joystick key THUMBR\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTON_THUMBR: Input_KeyCode = 2315;
#[doc = "Sleep key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SLEEP: Input_KeyCode = 2600;
#[doc = " Zenkaku/Hankaku key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ZENKAKU_HANKAKU: Input_KeyCode = 2601;
#[doc = "International Keyboard Extension key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_102ND: Input_KeyCode = 2602;
#[doc = " Ro key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_RO: Input_KeyCode = 2603;
#[doc = " Katakana key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KATAKANA: Input_KeyCode = 2604;
#[doc = " Hiragana key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_HIRAGANA: Input_KeyCode = 2605;
#[doc = " Henkan key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_HENKAN: Input_KeyCode = 2606;
#[doc = " Katakana/Hiragana key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KATAKANA_HIRAGANA: Input_KeyCode = 2607;
#[doc = " Muhenkan key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MUHENKAN: Input_KeyCode = 2608;
#[doc = " Linefeed key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_LINEFEED: Input_KeyCode = 2609;
#[doc = " Macro key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MACRO: Input_KeyCode = 2610;
#[doc = " Plus/Minus key on the numeric keypad\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_NUMPAD_PLUSMINUS: Input_KeyCode = 2611;
#[doc = " Scale key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SCALE: Input_KeyCode = 2612;
#[doc = " Hanguel key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_HANGUEL: Input_KeyCode = 2613;
#[doc = " Hanja key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_HANJA: Input_KeyCode = 2614;
#[doc = " Yen key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_YEN: Input_KeyCode = 2615;
#[doc = " Stop key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_STOP: Input_KeyCode = 2616;
#[doc = " Again key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_AGAIN: Input_KeyCode = 2617;
#[doc = " Props key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PROPS: Input_KeyCode = 2618;
#[doc = " Undo key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_UNDO: Input_KeyCode = 2619;
#[doc = " Copy key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_COPY: Input_KeyCode = 2620;
#[doc = " Open key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_OPEN: Input_KeyCode = 2621;
#[doc = " Paste key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PASTE: Input_KeyCode = 2622;
#[doc = " Find key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_FIND: Input_KeyCode = 2623;
#[doc = " Cut key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CUT: Input_KeyCode = 2624;
#[doc = " Help key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_HELP: Input_KeyCode = 2625;
#[doc = " Calculator special function key, used to launch the calculator application.\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CALC: Input_KeyCode = 2626;
#[doc = " File key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_FILE: Input_KeyCode = 2627;
#[doc = " Bookmarks key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BOOKMARKS: Input_KeyCode = 2628;
#[doc = " Page Down key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_NEXT: Input_KeyCode = 2629;
#[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"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PLAYPAUSE: Input_KeyCode = 2630;
#[doc = " Page Up key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PREVIOUS: Input_KeyCode = 2631;
#[doc = " Stop CD key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_STOPCD: Input_KeyCode = 2632;
#[doc = " Configuration key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CONFIG: Input_KeyCode = 2634;
#[doc = " Refresh key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_REFRESH: Input_KeyCode = 2635;
#[doc = " Exit key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_EXIT: Input_KeyCode = 2636;
#[doc = " Edit key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_EDIT: Input_KeyCode = 2637;
#[doc = " Scroll Up key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SCROLLUP: Input_KeyCode = 2638;
#[doc = " Scroll Down key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SCROLLDOWN: Input_KeyCode = 2639;
#[doc = " New key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_NEW: Input_KeyCode = 2640;
#[doc = " Redo key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_REDO: Input_KeyCode = 2641;
#[doc = " Close key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CLOSE: Input_KeyCode = 2642;
#[doc = " Play key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PLAY: Input_KeyCode = 2643;
#[doc = "Bass Boost key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BASSBOOST: Input_KeyCode = 2644;
#[doc = " Print key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PRINT: Input_KeyCode = 2645;
#[doc = " Chat key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CHAT: Input_KeyCode = 2646;
#[doc = " Finance key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_FINANCE: Input_KeyCode = 2647;
#[doc = " Cancel key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CANCEL: Input_KeyCode = 2648;
#[doc = " Keyboard Illumination Toggle key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDILLUM_TOGGLE: Input_KeyCode = 2649;
#[doc = " Keyboard Illumination Down key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDILLUM_DOWN: Input_KeyCode = 2650;
#[doc = " Keyboard Illumination Up key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDILLUM_UP: Input_KeyCode = 2651;
#[doc = " Send key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SEND: Input_KeyCode = 2652;
#[doc = " Reply key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_REPLY: Input_KeyCode = 2653;
#[doc = " Forward Mail key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_FORWARDMAIL: Input_KeyCode = 2654;
#[doc = " Save key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SAVE: Input_KeyCode = 2655;
#[doc = " Documents key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DOCUMENTS: Input_KeyCode = 2656;
#[doc = " Next Video key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_VIDEO_NEXT: Input_KeyCode = 2657;
#[doc = " Previous Video key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_VIDEO_PREV: Input_KeyCode = 2658;
#[doc = " Brightness Cycle key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BRIGHTNESS_CYCLE: Input_KeyCode = 2659;
#[doc = " Brightness Zero key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BRIGHTNESS_ZERO: Input_KeyCode = 2660;
#[doc = " Display Off Key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DISPLAY_OFF: Input_KeyCode = 2661;
#[doc = " Misc Button key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_MISC: Input_KeyCode = 2662;
#[doc = " Goto key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_GOTO: Input_KeyCode = 2663;
#[doc = " Info key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_INFO: Input_KeyCode = 2664;
#[doc = " Program key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PROGRAM: Input_KeyCode = 2665;
#[doc = " PVR key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PVR: Input_KeyCode = 2666;
#[doc = " Subtitle key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SUBTITLE: Input_KeyCode = 2667;
#[doc = " Full Screen key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_FULL_SCREEN: Input_KeyCode = 2668;
#[doc = " Keyboard\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KEYBOARD: Input_KeyCode = 2669;
#[doc = " Aspect Ratio key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ASPECT_RATIO: Input_KeyCode = 2670;
#[doc = " Port Control key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PC: Input_KeyCode = 2671;
#[doc = " TV key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_TV: Input_KeyCode = 2672;
#[doc = " TV key 2\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_TV2: Input_KeyCode = 2673;
#[doc = " VCR key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_VCR: Input_KeyCode = 2674;
#[doc = " VCR key 2\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_VCR2: Input_KeyCode = 2675;
#[doc = " SAT key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SAT: Input_KeyCode = 2676;
#[doc = " CD key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CD: Input_KeyCode = 2677;
#[doc = " Tape key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_TAPE: Input_KeyCode = 2678;
#[doc = " Tuner key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_TUNER: Input_KeyCode = 2679;
#[doc = " Player key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PLAYER: Input_KeyCode = 2680;
#[doc = " DVD key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DVD: Input_KeyCode = 2681;
#[doc = " Audio key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_AUDIO: Input_KeyCode = 2682;
#[doc = " Video key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_VIDEO: Input_KeyCode = 2683;
#[doc = " Memo key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MEMO: Input_KeyCode = 2684;
#[doc = " Calendar key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CALENDAR: Input_KeyCode = 2685;
#[doc = " Red indicator\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_RED: Input_KeyCode = 2686;
#[doc = " Green indicator\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_GREEN: Input_KeyCode = 2687;
#[doc = " Yellow indicator\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_YELLOW: Input_KeyCode = 2688;
#[doc = " Blue indicator\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BLUE: Input_KeyCode = 2689;
#[doc = " Channel Up key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CHANNELUP: Input_KeyCode = 2690;
#[doc = " Channel Down key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CHANNELDOWN: Input_KeyCode = 2691;
#[doc = " Last key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_LAST: Input_KeyCode = 2692;
#[doc = " Restart key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_RESTART: Input_KeyCode = 2693;
#[doc = " Slow key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SLOW: Input_KeyCode = 2694;
#[doc = " Shuffle key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SHUFFLE: Input_KeyCode = 2695;
#[doc = " Videophone key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_VIDEOPHONE: Input_KeyCode = 2696;
#[doc = " Games key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_GAMES: Input_KeyCode = 2697;
#[doc = " Zoom In key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ZOOMIN: Input_KeyCode = 2698;
#[doc = " Zoom Out key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ZOOMOUT: Input_KeyCode = 2699;
#[doc = " Zoom Reset key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ZOOMRESET: Input_KeyCode = 2700;
#[doc = " Word Processor key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_WORDPROCESSOR: Input_KeyCode = 2701;
#[doc = " Editor key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_EDITOR: Input_KeyCode = 2702;
#[doc = " Spreadsheet key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SPREADSHEET: Input_KeyCode = 2703;
#[doc = " Graphics Editor key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_GRAPHICSEDITOR: Input_KeyCode = 2704;
#[doc = " Presentation key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PRESENTATION: Input_KeyCode = 2705;
#[doc = " Database key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DATABASE: Input_KeyCode = 2706;
#[doc = " News key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_NEWS: Input_KeyCode = 2707;
#[doc = " Voice mailbox\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_VOICEMAIL: Input_KeyCode = 2708;
#[doc = " Address book key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ADDRESSBOOK: Input_KeyCode = 2709;
#[doc = " Messenger key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MESSENGER: Input_KeyCode = 2710;
#[doc = " Brightness Toggle key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BRIGHTNESS_TOGGLE: Input_KeyCode = 2711;
#[doc = " Spell Check key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SPELLCHECK: Input_KeyCode = 2712;
#[doc = " Coffee key, which is used to launch screen lock or screen saver\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_COFFEE: Input_KeyCode = 2713;
#[doc = " Media Repeat key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MEDIA_REPEAT: Input_KeyCode = 2714;
#[doc = " Images key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_IMAGES: Input_KeyCode = 2715;
#[doc = " Button Configuration key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BUTTONCONFIG: Input_KeyCode = 2716;
#[doc = " Task Manager\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_TASKMANAGER: Input_KeyCode = 2717;
#[doc = " Log key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_JOURNAL: Input_KeyCode = 2718;
#[doc = " Control Panel key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CONTROLPANEL: Input_KeyCode = 2719;
#[doc = " App Select key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_APPSELECT: Input_KeyCode = 2720;
#[doc = " Screen Saver key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SCREENSAVER: Input_KeyCode = 2721;
#[doc = " Assistant key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ASSISTANT: Input_KeyCode = 2722;
#[doc = " Next Keyboard Layout key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBD_LAYOUT_NEXT: Input_KeyCode = 2723;
#[doc = " Min Brightness key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BRIGHTNESS_MIN: Input_KeyCode = 2724;
#[doc = " Max Brightness key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BRIGHTNESS_MAX: Input_KeyCode = 2725;
#[doc = " Keyboard Input Assist_Previous, used to view input method input history.\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_PREV: Input_KeyCode = 2726;
#[doc = " Keyboard Input Assist_Next, used to view input method input extensions.\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_NEXT: Input_KeyCode = 2727;
#[doc = " Keyboard Input Assist_Previous, used to switch to the previous input method in the input group.\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_PREVGROUP: Input_KeyCode = 2728;
#[doc = " Keyboard Input Assist_Next, used to switch to the next input method in the input group.\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_NEXTGROUP: Input_KeyCode = 2729;
#[doc = " Keyboard Input-assisted Accept key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_ACCEPT: Input_KeyCode = 2730;
#[doc = " Keyboard Input-assisted Cancel key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_KBDINPUTASSIST_CANCEL: Input_KeyCode = 2731;
#[doc = " Mouse AI Assistant key\n @since 26.0.0"]
#[cfg(feature = "api-26")]
pub const Input_KeyCode_KEYCODE_MOUSE_ASSISTANT: Input_KeyCode = 2732;
#[doc = " Mouse Smart Selection key\n @since 26.0.0"]
#[cfg(feature = "api-26")]
pub const Input_KeyCode_KEYCODE_MOUSE_INTELLIGENCE_SELECTION: Input_KeyCode = 2733;
#[doc = " Phone touchscreen single-click event, used in Always-On Display state.\n @since 26.0.0"]
#[cfg(feature = "api-26")]
pub const Input_KeyCode_KEYCODE_AOD_SINGLE_CLICK: Input_KeyCode = 2740;
#[doc = " Front key, which is used to launch the windshield defogger\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_FRONT: Input_KeyCode = 2800;
#[doc = " Setup key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SETUP: Input_KeyCode = 2801;
#[doc = " Wakeup key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_WAKEUP: Input_KeyCode = 2802;
#[doc = " Send File key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SENDFILE: Input_KeyCode = 2803;
#[doc = " Delete File key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DELETEFILE: Input_KeyCode = 2804;
#[doc = " XFER key, which is used to start file transfer\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_XFER: Input_KeyCode = 2805;
#[doc = " Program key 1\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PROG1: Input_KeyCode = 2806;
#[doc = " Program key 2\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PROG2: Input_KeyCode = 2807;
#[doc = " DOS key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MSDOS: Input_KeyCode = 2808;
#[doc = " Screen Lock key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SCREENLOCK: Input_KeyCode = 2809;
#[doc = " Directional Rotation Display key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DIRECTION_ROTATE_DISPLAY: Input_KeyCode = 2810;
#[doc = " Window Cycle key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CYCLEWINDOWS: Input_KeyCode = 2811;
#[doc = " Computer key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_COMPUTER: Input_KeyCode = 2812;
#[doc = " Eject CD key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_EJECTCLOSECD: Input_KeyCode = 2813;
#[doc = " ISO key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ISO: Input_KeyCode = 2814;
#[doc = " Move key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_MOVE: Input_KeyCode = 2815;
#[doc = " F13 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F13: Input_KeyCode = 2816;
#[doc = " F14 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F14: Input_KeyCode = 2817;
#[doc = " F15 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F15: Input_KeyCode = 2818;
#[doc = " F16 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F16: Input_KeyCode = 2819;
#[doc = " F17 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F17: Input_KeyCode = 2820;
#[doc = " F18 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F18: Input_KeyCode = 2821;
#[doc = " F19 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F19: Input_KeyCode = 2822;
#[doc = " F20 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F20: Input_KeyCode = 2823;
#[doc = " F21 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F21: Input_KeyCode = 2824;
#[doc = " F22 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F22: Input_KeyCode = 2825;
#[doc = " F23 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F23: Input_KeyCode = 2826;
#[doc = " F24 key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_F24: Input_KeyCode = 2827;
#[doc = " Program key 3\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PROG3: Input_KeyCode = 2828;
#[doc = " Program key 4\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_PROG4: Input_KeyCode = 2829;
#[doc = " Dashboard\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DASHBOARD: Input_KeyCode = 2830;
#[doc = " Suspend key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SUSPEND: Input_KeyCode = 2831;
#[doc = " HP key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_HP: Input_KeyCode = 2832;
#[doc = " Sound key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SOUND: Input_KeyCode = 2833;
#[doc = " Question key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_QUESTION: Input_KeyCode = 2834;
#[doc = " Connect key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CONNECT: Input_KeyCode = 2836;
#[doc = " Sport key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SPORT: Input_KeyCode = 2837;
#[doc = " Shop key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SHOP: Input_KeyCode = 2838;
#[doc = " Alternate key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_ALTERASE: Input_KeyCode = 2839;
#[doc = " Cycle output between available videos (monitor/LCD/TV output/more)\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_SWITCHVIDEOMODE: Input_KeyCode = 2841;
#[doc = " Battery key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BATTERY: Input_KeyCode = 2842;
#[doc = " Bluetooth key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BLUETOOTH: Input_KeyCode = 2843;
#[doc = " WLAN key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_WLAN: Input_KeyCode = 2844;
#[doc = " Ultra-wideband key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_UWB: Input_KeyCode = 2845;
#[doc = " Mobile Network Control key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_WWAN_WIMAX: Input_KeyCode = 2846;
#[doc = " RF Kill key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_RFKILL: Input_KeyCode = 2847;
#[doc = " Channel key\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_CHANNEL: Input_KeyCode = 3001;
#[doc = "Button 0\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_0: Input_KeyCode = 3100;
#[doc = " Button 1\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_1: Input_KeyCode = 3101;
#[doc = " Button 2\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_2: Input_KeyCode = 3102;
#[doc = " Button 3\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_3: Input_KeyCode = 3103;
#[doc = " Button 4\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_4: Input_KeyCode = 3104;
#[doc = " Button 5\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_5: Input_KeyCode = 3105;
#[doc = " Button 6\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_6: Input_KeyCode = 3106;
#[doc = " Button 7\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_7: Input_KeyCode = 3107;
#[doc = " Button 8\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_8: Input_KeyCode = 3108;
#[doc = " Button 9\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_BTN_9: Input_KeyCode = 3109;
#[doc = " Single tapping the smart watch's X-TAP sensor\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DAGGER_CLICK: Input_KeyCode = 3211;
#[doc = " Double tapping the smart watch's X-TAP sensor\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DAGGER_DOUBLE_CLICK: Input_KeyCode = 3212;
#[doc = " Long-pressing the smart watch's X-TAP sensor\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DAGGER_LONG_PRESS: Input_KeyCode = 3213;
#[doc = " Left button of the smart watch\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_KeyCode_KEYCODE_DIV: Input_KeyCode = 3220;
#[doc = " Custom Shortcut Keys\n @since 26.0.0"]
#[cfg(feature = "api-26")]
pub const Input_KeyCode_KEYCODE_XKEY: Input_KeyCode = 3232;
#[doc = " Smart control Key slide-up\n @since 26.0.0"]
#[cfg(feature = "api-26")]
pub const Input_KeyCode_KEYCODE_FINGERPRINT_SLIDE_UP: Input_KeyCode = 3233;
#[doc = " Smart control Key slide-down\n @since 26.0.0"]
#[cfg(feature = "api-26")]
pub const Input_KeyCode_KEYCODE_FINGERPRINT_SLIDE_DOWN: Input_KeyCode = 3234;
#[doc = " @brief Enumerates the key codes.\n\n @since 12"]
pub type Input_KeyCode = i32;
#[doc = " Default\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_DEFAULT: Input_PointerStyle = 0;
#[doc = " East arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_EAST: Input_PointerStyle = 1;
#[doc = " West arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_WEST: Input_PointerStyle = 2;
#[doc = " South arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_SOUTH: Input_PointerStyle = 3;
#[doc = " North arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_NORTH: Input_PointerStyle = 4;
#[doc = " West-east arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_WEST_EAST: Input_PointerStyle = 5;
#[doc = " North-south arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_NORTH_SOUTH: Input_PointerStyle = 6;
#[doc = " North-east arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_NORTH_EAST: Input_PointerStyle = 7;
#[doc = " North-west arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_NORTH_WEST: Input_PointerStyle = 8;
#[doc = " South-east arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_SOUTH_EAST: Input_PointerStyle = 9;
#[doc = "South-west arrow\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_SOUTH_WEST: Input_PointerStyle = 10;
#[doc = " North-east and south-west adjustment\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_NORTH_EAST_SOUTH_WEST: Input_PointerStyle = 11;
#[doc = " North-west and south-east adjustment\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_NORTH_WEST_SOUTH_EAST: Input_PointerStyle = 12;
#[doc = " Cross (accurate selection)\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_CROSS: Input_PointerStyle = 13;
#[doc = " Copy.\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_CURSOR_COPY: Input_PointerStyle = 14;
#[doc = " Forbid\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_CURSOR_FORBID: Input_PointerStyle = 15;
#[doc = " Color picker\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_COLOR_SUCKER: Input_PointerStyle = 16;
#[doc = " Grabbing hand\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_HAND_GRABBING: Input_PointerStyle = 17;
#[doc = " Opening hand\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_HAND_OPEN: Input_PointerStyle = 18;
#[doc = " Hand-shaped pointer\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_HAND_POINTING: Input_PointerStyle = 19;
#[doc = " Help\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_HELP: Input_PointerStyle = 20;
#[doc = " Move\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MOVE: Input_PointerStyle = 21;
#[doc = " Left and right resizing\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_RESIZE_LEFT_RIGHT: Input_PointerStyle = 22;
#[doc = " Up and down resizing\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_RESIZE_UP_DOWN: Input_PointerStyle = 23;
#[doc = " Screenshot crosshair\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_SCREENSHOT_CHOOSE: Input_PointerStyle = 24;
#[doc = " Screenshot\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_SCREENSHOT_CURSOR: Input_PointerStyle = 25;
#[doc = " Text selection\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_TEXT_CURSOR: Input_PointerStyle = 26;
#[doc = " Zoom in\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_ZOOM_IN: Input_PointerStyle = 27;
#[doc = " Zoom out\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_ZOOM_OUT: Input_PointerStyle = 28;
#[doc = " Scrolling east\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_EAST: Input_PointerStyle = 29;
#[doc = " Scrolling west\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_WEST: Input_PointerStyle = 30;
#[doc = " Scrolling south\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_SOUTH: Input_PointerStyle = 31;
#[doc = " Scrolling north\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_NORTH: Input_PointerStyle = 32;
#[doc = " Scrolling north-south\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_NORTH_SOUTH: Input_PointerStyle = 33;
#[doc = " Scrolling north-east\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_NORTH_EAST: Input_PointerStyle = 34;
#[doc = " Scrolling north-west\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_NORTH_WEST: Input_PointerStyle = 35;
#[doc = " Scrolling south-east\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_SOUTH_EAST: Input_PointerStyle = 36;
#[doc = " Scrolling south-west\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_SOUTH_WEST: Input_PointerStyle = 37;
#[doc = " Moving as a cone in four directions\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_NORTH_SOUTH_WEST_EAST: Input_PointerStyle = 38;
#[doc = " Horizontal text selection\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_HORIZONTAL_TEXT_CURSOR: Input_PointerStyle = 39;
#[doc = " Cross\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_CURSOR_CROSS: Input_PointerStyle = 40;
#[doc = " Circle\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_CURSOR_CIRCLE: Input_PointerStyle = 41;
#[doc = " Loading\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_LOADING: Input_PointerStyle = 42;
#[doc = " Running in the background\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_RUNNING: Input_PointerStyle = 43;
#[doc = " Scrolling east-west\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_MIDDLE_BTN_EAST_WEST: Input_PointerStyle = 44;
#[doc = " Running in the background (extension 1)\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_RUNNING_LEFT: Input_PointerStyle = 45;
#[doc = " Running in the background (extension 2)\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_RUNNING_RIGHT: Input_PointerStyle = 46;
#[doc = " Custom circular pointer\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_AECH_DEVELOPER_DEFINED_ICON: Input_PointerStyle = 47;
#[doc = " Screen recording\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_SCREENRECORDER_CURSOR: Input_PointerStyle = 48;
#[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"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_LASER_CURSOR: Input_PointerStyle = 49;
#[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"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_LASER_CURSOR_DOT: Input_PointerStyle = 50;
#[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"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_LASER_CURSOR_DOT_RED: Input_PointerStyle = 51;
#[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"]
#[cfg(feature = "api-22")]
pub const Input_PointerStyle_DEVELOPER_DEFINED_ICON: Input_PointerStyle = -100;
#[doc = " @brief Enumerates the pointer styles.\n\n @since 22"]
#[cfg(feature = "api-22")]
pub type Input_PointerStyle = i32;
#[doc = " Default state."]
pub const Input_KeyStateAction_KEY_DEFAULT: Input_KeyStateAction = -1;
#[doc = " Key press."]
pub const Input_KeyStateAction_KEY_PRESSED: Input_KeyStateAction = 0;
#[doc = " Key release."]
pub const Input_KeyStateAction_KEY_RELEASED: Input_KeyStateAction = 1;
#[doc = " Key switch enabled."]
pub const Input_KeyStateAction_KEY_SWITCH_ON: Input_KeyStateAction = 2;
#[doc = " Key switch disabled."]
pub const Input_KeyStateAction_KEY_SWITCH_OFF: Input_KeyStateAction = 3;
#[doc = " @brief Provides the enum values of the key status.\n\n @since 12"]
pub type Input_KeyStateAction = i32;
#[doc = " Button action canceled."]
pub const Input_KeyEventAction_KEY_ACTION_CANCEL: Input_KeyEventAction = 0;
#[doc = " Key press."]
pub const Input_KeyEventAction_KEY_ACTION_DOWN: Input_KeyEventAction = 1;
#[doc = " Key release."]
pub const Input_KeyEventAction_KEY_ACTION_UP: Input_KeyEventAction = 2;
#[doc = " @brief Provides the enum values of the key event type.\n\n @since 12"]
pub type Input_KeyEventAction = u32;
#[doc = " Cancellation of the mouse action."]
pub const Input_MouseEventAction_MOUSE_ACTION_CANCEL: Input_MouseEventAction = 0;
#[doc = " Moving of the mouse pointer."]
pub const Input_MouseEventAction_MOUSE_ACTION_MOVE: Input_MouseEventAction = 1;
#[doc = " Pressing of the mouse button."]
pub const Input_MouseEventAction_MOUSE_ACTION_BUTTON_DOWN: Input_MouseEventAction = 2;
#[doc = " Release of the mouse button."]
pub const Input_MouseEventAction_MOUSE_ACTION_BUTTON_UP: Input_MouseEventAction = 3;
#[doc = " Beginning of the mouse axis event."]
pub const Input_MouseEventAction_MOUSE_ACTION_AXIS_BEGIN: Input_MouseEventAction = 4;
#[doc = " Updating of the mouse axis event."]
pub const Input_MouseEventAction_MOUSE_ACTION_AXIS_UPDATE: Input_MouseEventAction = 5;
#[doc = " End of the mouse axis event."]
pub const Input_MouseEventAction_MOUSE_ACTION_AXIS_END: Input_MouseEventAction = 6;
#[doc = " @brief Provides the enum values of mouse actions.\n\n @since 12"]
pub type Input_MouseEventAction = u32;
#[doc = " Vertical scroll axis."]
pub const InputEvent_MouseAxis_MOUSE_AXIS_SCROLL_VERTICAL: InputEvent_MouseAxis = 0;
#[doc = " Horizontal scroll axis."]
pub const InputEvent_MouseAxis_MOUSE_AXIS_SCROLL_HORIZONTAL: InputEvent_MouseAxis = 1;
#[doc = " @brief Provides the enum values of mouse axis event types.\n\n @since 12"]
pub type InputEvent_MouseAxis = u32;
#[doc = " Invalid button."]
pub const Input_MouseEventButton_MOUSE_BUTTON_NONE: Input_MouseEventButton = -1;
#[doc = " Left button."]
pub const Input_MouseEventButton_MOUSE_BUTTON_LEFT: Input_MouseEventButton = 0;
#[doc = " Middle button."]
pub const Input_MouseEventButton_MOUSE_BUTTON_MIDDLE: Input_MouseEventButton = 1;
#[doc = " Right button."]
pub const Input_MouseEventButton_MOUSE_BUTTON_RIGHT: Input_MouseEventButton = 2;
#[doc = " Forward button."]
pub const Input_MouseEventButton_MOUSE_BUTTON_FORWARD: Input_MouseEventButton = 3;
#[doc = " Back button."]
pub const Input_MouseEventButton_MOUSE_BUTTON_BACK: Input_MouseEventButton = 4;
#[doc = " @brief Provides the enum values of mouse buttons.\n\n @since 12"]
pub type Input_MouseEventButton = i32;
#[doc = " Touch cancellation."]
pub const Input_TouchEventAction_TOUCH_ACTION_CANCEL: Input_TouchEventAction = 0;
#[doc = " Touch press."]
pub const Input_TouchEventAction_TOUCH_ACTION_DOWN: Input_TouchEventAction = 1;
#[doc = " Touch moving."]
pub const Input_TouchEventAction_TOUCH_ACTION_MOVE: Input_TouchEventAction = 2;
#[doc = " Touch release."]
pub const Input_TouchEventAction_TOUCH_ACTION_UP: Input_TouchEventAction = 3;
#[doc = " @brief Provides the enum values of touch actions.\n\n @since 12"]
pub type Input_TouchEventAction = u32;
#[doc = " Keyboard without keys."]
#[cfg(feature = "api-13")]
pub const Input_KeyboardType_KEYBOARD_TYPE_NONE: Input_KeyboardType = 0;
#[doc = " Keyboard with unknown keys."]
#[cfg(feature = "api-13")]
pub const Input_KeyboardType_KEYBOARD_TYPE_UNKNOWN: Input_KeyboardType = 1;
#[doc = " Full keyboard."]
#[cfg(feature = "api-13")]
pub const Input_KeyboardType_KEYBOARD_TYPE_ALPHABETIC: Input_KeyboardType = 2;
#[doc = " Numeric keypad."]
#[cfg(feature = "api-13")]
pub const Input_KeyboardType_KEYBOARD_TYPE_DIGITAL: Input_KeyboardType = 3;
#[doc = " Stylus."]
#[cfg(feature = "api-13")]
pub const Input_KeyboardType_KEYBOARD_TYPE_STYLUS: Input_KeyboardType = 4;
#[doc = " Remote control."]
#[cfg(feature = "api-13")]
pub const Input_KeyboardType_KEYBOARD_TYPE_REMOTE_CONTROL: Input_KeyboardType = 5;
#[doc = " @brief Provides the enum values of keyboard types of the input device.\n\n @since 13"]
#[cfg(feature = "api-13")]
pub type Input_KeyboardType = u32;
#[doc = " Permission not granted."]
#[cfg(feature = "api-20")]
pub const Input_InjectionStatus_UNAUTHORIZED: Input_InjectionStatus = 0;
#[doc = " Permission being granted."]
#[cfg(feature = "api-20")]
pub const Input_InjectionStatus_AUTHORIZING: Input_InjectionStatus = 1;
#[doc = " Permission granted."]
#[cfg(feature = "api-20")]
pub const Input_InjectionStatus_AUTHORIZED: Input_InjectionStatus = 2;
#[doc = " @brief Provides the enum values of injection permission states.\n\n @since 20"]
#[cfg(feature = "api-20")]
pub type Input_InjectionStatus = u32;
#[doc = " Source that generates events similar to mouse pointer movement, button press and release, and wheel scrolling.\n @since 12"]
pub const InputEvent_SourceType_SOURCE_TYPE_MOUSE: InputEvent_SourceType = 1;
#[doc = " Source that generates a touchscreen multi-touch event.\n @since 12"]
pub const InputEvent_SourceType_SOURCE_TYPE_TOUCHSCREEN: InputEvent_SourceType = 2;
#[doc = " Source that generates a touchpad multi-touch event.\n @since 12"]
pub const InputEvent_SourceType_SOURCE_TYPE_TOUCHPAD: InputEvent_SourceType = 3;
#[doc = " @brief Provides the enum values of event source types.\n\n @since 12"]
pub type InputEvent_SourceType = u32;
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_KeyState {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_KeyEvent {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_MouseEvent {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_TouchEvent {
_unused: [u8; 0],
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_AxisEvent {
_unused: [u8; 0],
}
#[cfg(feature = "api-14")]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_Hotkey {
_unused: [u8; 0],
}
#[cfg(feature = "api-22")]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_CursorInfo {
_unused: [u8; 0],
}
#[doc = " Operation succeeded."]
pub const Input_Result_INPUT_SUCCESS: Input_Result = 0;
#[doc = " Permission verification failed."]
pub const Input_Result_INPUT_PERMISSION_DENIED: Input_Result = 201;
#[doc = " Non-system application."]
pub const Input_Result_INPUT_NOT_SYSTEM_APPLICATION: Input_Result = 202;
#[doc = " Parameter check fails."]
pub const Input_Result_INPUT_PARAMETER_ERROR: Input_Result = 401;
#[doc = " Function not supported."]
pub const Input_Result_INPUT_DEVICE_NOT_SUPPORTED: Input_Result = 801;
#[doc = " Service error."]
pub const Input_Result_INPUT_SERVICE_EXCEPTION: Input_Result = 3800001;
#[doc = " Interceptor repeatedly created."]
pub const Input_Result_INPUT_REPEAT_INTERCEPTOR: Input_Result = 4200001;
#[doc = " Input device occupied by a system application.\n @since 14"]
#[cfg(feature = "api-14")]
pub const Input_Result_INPUT_OCCUPIED_BY_SYSTEM: Input_Result = 4200002;
#[doc = " Input device occupied by another application.\n @since 14"]
#[cfg(feature = "api-14")]
pub const Input_Result_INPUT_OCCUPIED_BY_OTHER: Input_Result = 4200003;
#[doc = " Keyboard not connected.\n @since 15"]
#[cfg(feature = "api-15")]
pub const Input_Result_INPUT_KEYBOARD_DEVICE_NOT_EXIST: Input_Result = 3900002;
#[doc = " Authorization in progress.\n @since 20"]
#[cfg(feature = "api-20")]
pub const Input_Result_INPUT_INJECTION_AUTHORIZING: Input_Result = 3900005;
#[doc = " Repeated request.\n @since 20"]
#[cfg(feature = "api-20")]
pub const Input_Result_INPUT_INJECTION_OPERATION_FREQUENT: Input_Result = 3900006;
#[doc = " Permission granted to the current application.\n @since 20"]
#[cfg(feature = "api-20")]
pub const Input_Result_INPUT_INJECTION_AUTHORIZED: Input_Result = 3900007;
#[doc = " Permission granted to other applications.\n @since 20"]
#[cfg(feature = "api-20")]
pub const Input_Result_INPUT_INJECTION_AUTHORIZED_OTHERS: Input_Result = 3900008;
#[doc = " Application not in focus.\n @since 20"]
#[cfg(feature = "api-20")]
pub const Input_Result_INPUT_APP_NOT_FOCUSED: Input_Result = 3900009;
#[doc = " No mouse device.\n @since 20"]
#[cfg(feature = "api-20")]
pub const Input_Result_INPUT_DEVICE_NO_POINTER: Input_Result = 3900010;
#[doc = " Invalid window ID.\n @since 22"]
#[cfg(feature = "api-22")]
pub const Input_Result_INPUT_INVALID_WINDOWID: Input_Result = 26500001;
#[doc = " @brief Provides return value enumerations.\n\n @since 12"]
pub type Input_Result = u32;
#[doc = " Finger\n @since 24"]
#[cfg(feature = "api-24")]
pub const Input_TouchEventToolType_TOOL_TYPE_FINGER: Input_TouchEventToolType = 0;
#[doc = " Pen\n @since 24"]
#[cfg(feature = "api-24")]
pub const Input_TouchEventToolType_TOOL_TYPE_PEN: Input_TouchEventToolType = 1;
#[doc = " Rubber\n @since 24"]
#[cfg(feature = "api-24")]
pub const Input_TouchEventToolType_TOOL_TYPE_RUBBER: Input_TouchEventToolType = 2;
#[doc = " Brush\n @since 24"]
#[cfg(feature = "api-24")]
pub const Input_TouchEventToolType_TOOL_TYPE_BRUSH: Input_TouchEventToolType = 3;
#[doc = " Pencil\n @since 24"]
#[cfg(feature = "api-24")]
pub const Input_TouchEventToolType_TOOL_TYPE_PENCIL: Input_TouchEventToolType = 4;
#[doc = " Air brush\n @since 24"]
#[cfg(feature = "api-24")]
pub const Input_TouchEventToolType_TOOL_TYPE_AIRBRUSH: Input_TouchEventToolType = 5;
#[doc = " Mouse\n @since 24"]
#[cfg(feature = "api-24")]
pub const Input_TouchEventToolType_TOOL_TYPE_MOUSE: Input_TouchEventToolType = 6;
#[doc = " lens\n @since 24"]
#[cfg(feature = "api-24")]
pub const Input_TouchEventToolType_TOOL_TYPE_LENS: Input_TouchEventToolType = 7;
#[doc = " @brief Enumerates touch tool types of an input device.\n\n @since 24"]
#[cfg(feature = "api-24")]
pub type Input_TouchEventToolType = u32;
#[doc = " @brief Defines the callback used to return hotkey events.\n\n @since 14"]
#[cfg(feature = "api-14")]
pub type Input_HotkeyCallback =
::std::option::Option<unsafe extern "C" fn(hotkey: *mut Input_Hotkey)>;
#[cfg(feature = "api-13")]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_DeviceInfo {
_unused: [u8; 0],
}
#[cfg(feature = "api-22")]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_CustomCursor {
_unused: [u8; 0],
}
#[cfg(feature = "api-22")]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_CursorConfig {
_unused: [u8; 0],
}
#[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"]
pub type Input_KeyEventCallback =
::std::option::Option<unsafe extern "C" fn(keyEvent: *const Input_KeyEvent)>;
#[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"]
pub type Input_MouseEventCallback =
::std::option::Option<unsafe extern "C" fn(mouseEvent: *const Input_MouseEvent)>;
#[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"]
pub type Input_TouchEventCallback =
::std::option::Option<unsafe extern "C" fn(touchEvent: *const Input_TouchEvent)>;
#[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"]
pub type Input_AxisEventCallback =
::std::option::Option<unsafe extern "C" fn(axisEvent: *const Input_AxisEvent)>;
#[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"]
#[cfg(feature = "api-13")]
pub type Input_DeviceAddedCallback = ::std::option::Option<unsafe extern "C" fn(deviceId: i32)>;
#[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"]
#[cfg(feature = "api-13")]
pub type Input_DeviceRemovedCallback = ::std::option::Option<unsafe extern "C" fn(deviceId: i32)>;
#[doc = " @brief Defines a callback used to receive the injection permission authorization status.\n\n @param authorizedStatus Injection permission authorization status.\n @since 20"]
#[cfg(feature = "api-20")]
pub type Input_InjectAuthorizeCallback =
::std::option::Option<unsafe extern "C" fn(authorizedStatus: Input_InjectionStatus)>;
#[doc = " @brief Defines the structure for the interceptor of event callbacks,\n including mouseCallback, touchCallback, and axisCallback.\n @since 12"]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_InterceptorEventCallback {
#[doc = " Defines a lifecycle callback for **mouseEvent**."]
pub mouseCallback: Input_MouseEventCallback,
#[doc = " Defines a lifecycle callback for **touchEvent**."]
pub touchCallback: Input_TouchEventCallback,
#[doc = " Defines a lifecycle callback for **axisEvent**."]
pub axisCallback: Input_AxisEventCallback,
}
#[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"]
#[cfg(feature = "api-13")]
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_DeviceListener {
#[doc = " Defines a callback used to receive device hot-plug events."]
pub deviceAddedCallback: Input_DeviceAddedCallback,
#[doc = " Defines a callback used to receive device hot-unplug events."]
pub deviceRemovedCallback: Input_DeviceRemovedCallback,
}
#[repr(C)]
#[derive(Debug, Copy, Clone)]
pub struct Input_InterceptorOptions {
_unused: [u8; 0],
}
extern "C" {
#[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"]
pub fn OH_Input_GetKeyState(keyState: *mut Input_KeyState) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_CreateKeyState() -> *mut Input_KeyState;
}
extern "C" {
#[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"]
pub fn OH_Input_DestroyKeyState(keyState: *mut *mut Input_KeyState);
}
extern "C" {
#[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"]
pub fn OH_Input_SetKeyCode(keyState: *mut Input_KeyState, keyCode: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetKeyCode(keyState: *const Input_KeyState) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetKeyPressed(keyState: *mut Input_KeyState, keyAction: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetKeyPressed(keyState: *const Input_KeyState) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetKeySwitch(keyState: *mut Input_KeyState, keySwitch: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_InjectKeyEvent(keyEvent: *const Input_KeyEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_GetKeySwitch(keyState: *const Input_KeyState) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_CreateKeyEvent() -> *mut Input_KeyEvent;
}
extern "C" {
#[doc = " @brief Destroys a key event object.\n\n @param keyEvent Key event object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
pub fn OH_Input_DestroyKeyEvent(keyEvent: *mut *mut Input_KeyEvent);
}
extern "C" {
#[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"]
pub fn OH_Input_SetKeyEventAction(keyEvent: *mut Input_KeyEvent, action: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetKeyEventAction(keyEvent: *const Input_KeyEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetKeyEventKeyCode(keyEvent: *mut Input_KeyEvent, keyCode: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetKeyEventKeyCode(keyEvent: *const Input_KeyEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetKeyEventActionTime(keyEvent: *mut Input_KeyEvent, actionTime: i64);
}
extern "C" {
#[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"]
pub fn OH_Input_GetKeyEventActionTime(keyEvent: *const Input_KeyEvent) -> i64;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_SetKeyEventWindowId(keyEvent: *mut Input_KeyEvent, windowId: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetKeyEventWindowId(keyEvent: *const Input_KeyEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_SetKeyEventDisplayId(keyEvent: *mut Input_KeyEvent, displayId: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetKeyEventDisplayId(keyEvent: *const Input_KeyEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-21")]
pub fn OH_Input_GetKeyEventId(
keyEvent: *const Input_KeyEvent,
eventId: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-21")]
pub fn OH_Input_AddKeyEventHook(callback: Input_KeyEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-21")]
pub fn OH_Input_RemoveKeyEventHook(callback: Input_KeyEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-21")]
pub fn OH_Input_DispatchToNextHandler(eventId: i32) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_InjectMouseEvent(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_InjectMouseEventGlobal(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_CreateMouseEvent() -> *mut Input_MouseEvent;
}
extern "C" {
#[doc = " @brief Destroys a mouse event object.\n\n @param mouseEvent Mouse event object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
pub fn OH_Input_DestroyMouseEvent(mouseEvent: *mut *mut Input_MouseEvent);
}
extern "C" {
#[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"]
pub fn OH_Input_SetMouseEventAction(mouseEvent: *mut Input_MouseEvent, action: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetMouseEventAction(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetMouseEventDisplayX(mouseEvent: *mut Input_MouseEvent, displayX: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetMouseEventDisplayX(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetMouseEventDisplayY(mouseEvent: *mut Input_MouseEvent, displayY: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetMouseEventDisplayY(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetMouseEventButton(mouseEvent: *mut Input_MouseEvent, button: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetMouseEventButton(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetMouseEventAxisType(mouseEvent: *mut Input_MouseEvent, axisType: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetMouseEventAxisType(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetMouseEventAxisValue(mouseEvent: *mut Input_MouseEvent, axisValue: f32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetMouseEventAxisValue(mouseEvent: *const Input_MouseEvent) -> f32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetMouseEventActionTime(mouseEvent: *mut Input_MouseEvent, actionTime: i64);
}
extern "C" {
#[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"]
pub fn OH_Input_GetMouseEventActionTime(mouseEvent: *const Input_MouseEvent) -> i64;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_SetMouseEventWindowId(mouseEvent: *mut Input_MouseEvent, windowId: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetMouseEventWindowId(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_SetMouseEventDisplayId(mouseEvent: *mut Input_MouseEvent, displayId: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetMouseEventDisplayId(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_SetMouseEventGlobalX(mouseEvent: *mut Input_MouseEvent, globalX: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_GetMouseEventGlobalX(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_SetMouseEventGlobalY(mouseEvent: *mut Input_MouseEvent, globalY: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_GetMouseEventGlobalY(mouseEvent: *const Input_MouseEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_InjectTouchEvent(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_InjectTouchEventGlobal(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_CreateTouchEvent() -> *mut Input_TouchEvent;
}
extern "C" {
#[doc = " @brief Destroys a **TouchEvent** object.\n\n @param touchEvent **TouchEvent** object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
pub fn OH_Input_DestroyTouchEvent(touchEvent: *mut *mut Input_TouchEvent);
}
extern "C" {
#[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"]
pub fn OH_Input_SetTouchEventAction(touchEvent: *mut Input_TouchEvent, action: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetTouchEventAction(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetTouchEventFingerId(touchEvent: *mut Input_TouchEvent, id: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetTouchEventFingerId(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetTouchEventDisplayX(touchEvent: *mut Input_TouchEvent, displayX: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetTouchEventDisplayX(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetTouchEventDisplayY(touchEvent: *mut Input_TouchEvent, displayY: i32);
}
extern "C" {
#[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"]
pub fn OH_Input_GetTouchEventDisplayY(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
pub fn OH_Input_SetTouchEventActionTime(touchEvent: *mut Input_TouchEvent, actionTime: i64);
}
extern "C" {
#[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"]
pub fn OH_Input_GetTouchEventActionTime(touchEvent: *const Input_TouchEvent) -> i64;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_SetTouchEventWindowId(touchEvent: *mut Input_TouchEvent, windowId: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetTouchEventWindowId(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_SetTouchEventDisplayId(touchEvent: *mut Input_TouchEvent, displayId: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetTouchEventDisplayId(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_SetTouchEventGlobalX(touchEvent: *mut Input_TouchEvent, globalX: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_GetTouchEventGlobalX(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_SetTouchEventGlobalY(touchEvent: *mut Input_TouchEvent, globalY: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_GetTouchEventGlobalY(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_SetTouchEventPressure(
touchEvent: *mut Input_TouchEvent,
pressure: f64,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_GetTouchEventPressure(touchEvent: *const Input_TouchEvent) -> f64;
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_SetTouchEventWindowX(touchEvent: *mut Input_TouchEvent, windowX: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_GetTouchEventWindowX(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_SetTouchEventWindowY(touchEvent: *mut Input_TouchEvent, windowY: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_GetTouchEventWindowY(touchEvent: *const Input_TouchEvent) -> i32;
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_SetTouchEventDownTime(touchEvent: *mut Input_TouchEvent, downTime: i64);
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_GetTouchEventDownTime(touchEvent: *const Input_TouchEvent) -> i64;
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_SetTouchEventToolType(
touchEvent: *mut Input_TouchEvent,
toolType: Input_TouchEventToolType,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-24")]
pub fn OH_Input_GetTouchEventToolType(
touchEvent: *const Input_TouchEvent,
) -> Input_TouchEventToolType;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_RequestInjection(callback: Input_InjectAuthorizeCallback) -> Input_Result;
}
extern "C" {
#[doc = " @brief Stops event injection and revokes authorization.\n\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 12"]
pub fn OH_Input_CancelInjection();
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_QueryAuthorizedStatus(status: *mut Input_InjectionStatus) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_CreateAxisEvent() -> *mut Input_AxisEvent;
}
extern "C" {
#[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"]
pub fn OH_Input_DestroyAxisEvent(axisEvent: *mut *mut Input_AxisEvent) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_SetAxisEventAction(
axisEvent: *mut Input_AxisEvent,
action: InputEvent_AxisAction,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_GetAxisEventAction(
axisEvent: *const Input_AxisEvent,
action: *mut InputEvent_AxisAction,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_SetAxisEventDisplayX(
axisEvent: *mut Input_AxisEvent,
displayX: f32,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_GetAxisEventDisplayX(
axisEvent: *const Input_AxisEvent,
displayX: *mut f32,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_SetAxisEventDisplayY(
axisEvent: *mut Input_AxisEvent,
displayY: f32,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_GetAxisEventDisplayY(
axisEvent: *const Input_AxisEvent,
displayY: *mut f32,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_SetAxisEventAxisValue(
axisEvent: *mut Input_AxisEvent,
axisType: InputEvent_AxisType,
axisValue: f64,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_GetAxisEventAxisValue(
axisEvent: *const Input_AxisEvent,
axisType: InputEvent_AxisType,
axisValue: *mut f64,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_SetAxisEventActionTime(
axisEvent: *mut Input_AxisEvent,
actionTime: i64,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_GetAxisEventActionTime(
axisEvent: *const Input_AxisEvent,
actionTime: *mut i64,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_SetAxisEventType(
axisEvent: *mut Input_AxisEvent,
axisEventType: InputEvent_AxisEventType,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_GetAxisEventType(
axisEvent: *const Input_AxisEvent,
axisEventType: *mut InputEvent_AxisEventType,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_SetAxisEventSourceType(
axisEvent: *mut Input_AxisEvent,
sourceType: InputEvent_SourceType,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_GetAxisEventSourceType(
axisEvent: *const Input_AxisEvent,
sourceType: *mut InputEvent_SourceType,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_SetAxisEventWindowId(
axisEvent: *mut Input_AxisEvent,
windowId: i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetAxisEventWindowId(
axisEvent: *const Input_AxisEvent,
windowId: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_SetAxisEventDisplayId(
axisEvent: *mut Input_AxisEvent,
displayId: i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetAxisEventDisplayId(
axisEvent: *const Input_AxisEvent,
displayId: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_SetAxisEventGlobalX(
axisEvent: *mut Input_AxisEvent,
globalX: i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_GetAxisEventGlobalX(
axisEvent: *const Input_AxisEvent,
globalX: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_SetAxisEventGlobalY(
axisEvent: *mut Input_AxisEvent,
globalY: i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_GetAxisEventGlobalY(
axisEvent: *const Input_AxisEvent,
globalY: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_AddKeyEventMonitor(callback: Input_KeyEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_AddMouseEventMonitor(callback: Input_MouseEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_AddTouchEventMonitor(callback: Input_TouchEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_AddAxisEventMonitorForAll(callback: Input_AxisEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_AddAxisEventMonitor(
axisEventType: InputEvent_AxisEventType,
callback: Input_AxisEventCallback,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_RemoveKeyEventMonitor(callback: Input_KeyEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_RemoveMouseEventMonitor(callback: Input_MouseEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_RemoveTouchEventMonitor(callback: Input_TouchEventCallback) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_RemoveAxisEventMonitorForAll(callback: Input_AxisEventCallback)
-> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_RemoveAxisEventMonitor(
axisEventType: InputEvent_AxisEventType,
callback: Input_AxisEventCallback,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_AddKeyEventInterceptor(
callback: Input_KeyEventCallback,
option: *mut Input_InterceptorOptions,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_AddInputEventInterceptor(
callback: *mut Input_InterceptorEventCallback,
option: *mut Input_InterceptorOptions,
) -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_RemoveKeyEventInterceptor() -> Input_Result;
}
extern "C" {
#[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"]
pub fn OH_Input_RemoveInputEventInterceptor() -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_GetIntervalSinceLastInput(timeInterval: *mut i64) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_CreateHotkey() -> *mut Input_Hotkey;
}
extern "C" {
#[doc = " @brief Destroys a hotkey object.\n\n @param hotkey Hotkey object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 14"]
#[cfg(feature = "api-14")]
pub fn OH_Input_DestroyHotkey(hotkey: *mut *mut Input_Hotkey);
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_SetPreKeys(hotkey: *mut Input_Hotkey, preKeys: *mut i32, size: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_GetPreKeys(
hotkey: *const Input_Hotkey,
preKeys: *mut *mut i32,
preKeyCount: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_SetFinalKey(hotkey: *mut Input_Hotkey, finalKey: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_GetFinalKey(
hotkey: *const Input_Hotkey,
finalKeyCode: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_CreateAllSystemHotkeys(count: i32) -> *mut *mut Input_Hotkey;
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_DestroyAllSystemHotkeys(hotkeys: *mut *mut Input_Hotkey, count: i32);
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_GetAllSystemHotkeys(
hotkey: *mut *mut Input_Hotkey,
count: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_SetRepeat(hotkey: *mut Input_Hotkey, isRepeat: bool);
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_GetRepeat(hotkey: *const Input_Hotkey, isRepeat: *mut bool) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_AddHotkeyMonitor(
hotkey: *const Input_Hotkey,
callback: Input_HotkeyCallback,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-14")]
pub fn OH_Input_RemoveHotkeyMonitor(
hotkey: *const Input_Hotkey,
callback: Input_HotkeyCallback,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetDeviceIds(
deviceIds: *mut i32,
inSize: i32,
outSize: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetDevice(
deviceId: i32,
deviceInfo: *mut *mut Input_DeviceInfo,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_CreateDeviceInfo() -> *mut Input_DeviceInfo;
}
extern "C" {
#[doc = " @brief Destroys a **deviceInfo** object.\n\n @param deviceInfo **deviceInfo** object.\n @syscap SystemCapability.MultimodalInput.Input.Core\n @since 13"]
#[cfg(feature = "api-13")]
pub fn OH_Input_DestroyDeviceInfo(deviceInfo: *mut *mut Input_DeviceInfo);
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetKeyboardType(deviceId: i32, keyboardType: *mut i32) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetDeviceId(deviceInfo: *mut Input_DeviceInfo, id: *mut i32) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetDeviceName(
deviceInfo: *mut Input_DeviceInfo,
name: *mut *mut ::std::os::raw::c_char,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetCapabilities(
deviceInfo: *mut Input_DeviceInfo,
capabilities: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetDeviceVersion(
deviceInfo: *mut Input_DeviceInfo,
version: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetDeviceProduct(
deviceInfo: *mut Input_DeviceInfo,
product: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetDeviceVendor(
deviceInfo: *mut Input_DeviceInfo,
vendor: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_GetDeviceAddress(
deviceInfo: *mut Input_DeviceInfo,
address: *mut *mut ::std::os::raw::c_char,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_RegisterDeviceListener(listener: *mut Input_DeviceListener) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_UnregisterDeviceListener(listener: *mut Input_DeviceListener) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-13")]
pub fn OH_Input_UnregisterDeviceListeners() -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-15")]
pub fn OH_Input_GetFunctionKeyState(keyCode: i32, state: *mut i32) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_QueryMaxTouchPoints(count: *mut i32) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-20")]
pub fn OH_Input_GetPointerLocation(
displayId: *mut i32,
displayX: *mut f64,
displayY: *mut f64,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorInfo_Create() -> *mut Input_CursorInfo;
}
extern "C" {
#[doc = " @brief Destroys the mouse pointer information object.\n\n @param cursorInfo Mouse pointer information object.\n @since 22"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorInfo_Destroy(cursorInfo: *mut *mut Input_CursorInfo);
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorInfo_IsVisible(
cursorInfo: *mut Input_CursorInfo,
visible: *mut bool,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorInfo_GetStyle(
cursorInfo: *mut Input_CursorInfo,
style: *mut Input_PointerStyle,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorInfo_GetSizeLevel(
cursorInfo: *mut Input_CursorInfo,
sizeLevel: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorInfo_GetColor(
cursorInfo: *mut Input_CursorInfo,
color: *mut u32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_GetMouseEventCursorInfo(
mouseEvent: *const Input_MouseEvent,
cursorInfo: *mut Input_CursorInfo,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_GetCursorInfo(
cursorInfo: *mut Input_CursorInfo,
pixelmap: *mut *mut OH_PixelmapNative,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_SetPointerVisible(visible: bool) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_GetPointerStyle(windowId: i32, pointerStyle: *mut i32) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_SetPointerStyle(windowId: i32, pointerStyle: i32) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CustomCursor_Create(
pixelMap: *mut OH_PixelmapNative,
anchorX: i32,
anchorY: i32,
) -> *mut Input_CustomCursor;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CustomCursor_Destroy(customCursor: *mut *mut Input_CustomCursor);
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CustomCursor_GetPixelMap(
customCursor: *mut Input_CustomCursor,
pixelMap: *mut *mut OH_PixelmapNative,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CustomCursor_GetAnchor(
customCursor: *mut Input_CustomCursor,
anchorX: *mut i32,
anchorY: *mut i32,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorConfig_Create(followSystem: bool) -> *mut Input_CursorConfig;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorConfig_Destroy(cursorConfig: *mut *mut Input_CursorConfig);
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_CursorConfig_IsFollowSystem(
cursorConfig: *mut Input_CursorConfig,
followSystem: *mut bool,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-22")]
pub fn OH_Input_SetCustomCursor(
windowId: i32,
customCursor: *mut Input_CustomCursor,
cursorConfig: *mut Input_CursorConfig,
) -> Input_Result;
}
extern "C" {
#[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"]
#[cfg(feature = "api-26")]
pub fn OH_Input_BindInputDeviceToDisplay(inputDeviceId: i32, displayId: i32) -> Input_Result;
}