# Native XComponent
## 概述
描述ArkUI XComponent持有的surface和触摸事件,该事件可用于EGL/OpenGLES和媒体数据输入,并显示在ArkUI XComponent上,具体使用请参考[Native XComponent](../../ui/napi-xcomponent-guidelines.md)。
> **说明:**
>
> 该模块从API Version 8 开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
## 汇总
### 文件
| 名称 | 描述 |
| ---------------------------------------- | ---------------------------------------- |
| [native_interface_xcomponent.h](native__interface__xcomponent_8h.md) | 声明用于访问Native XComponent的API。 |
| [native_xcomponent_key_event.h](native__xcomponent__key__event_8h.md) | 声明用于访问Native XComponent键盘事件所使用到的枚举类型。 |
### 结构体
| 名称 | 描述 |
| ---------------------------------------- | --------------------- |
| [OH_NativeXComponent_TouchPoint](_o_h___native_x_component___touch_point.md) | 触摸事件中触摸点的信息。 |
| [OH_NativeXComponent_TouchEvent](_o_h___native_x_component___touch_event.md) | 触摸事件。 |
| [OH_NativeXComponent_MouseEvent](_o_h___native_x_component___mouse_event.md) | 鼠标事件。 |
| [OH_NativeXComponent_Callback](_o_h___native_x_component___callback.md) | 注册surface生命周期和触摸事件回调。 |
| [OH_NativeXComponent_MouseEvent_Callback](_o_h___native_x_component___mouse_event___callback.md) | 注册鼠标事件的回调。 |
| [OH_NativeXComponent_ExpectedRateRange](_o_h___native_x_component___expected_rate_range.md) | 定义期望帧率范围。 |
### 类型定义
| 名称 | 描述 |
| ---------------------------------------- | ------------------------------------ |
| [OH_NativeXComponent](#oh_nativexcomponent) | 提供封装的OH_NativeXComponent实例。 |
| [OH_NativeXComponent_Callback](#oh_nativexcomponent_callback) | 注册surface生命周期和触摸事件回调。 |
| [OH_NativeXComponent_MouseEvent_Callback](#oh_nativexcomponent_mouseevent_callback) | 注册鼠标事件的回调。 |
| [OH_NativeXComponent_KeyEvent](#oh_nativexcomponent_keyevent) | 提供封装的OH_NativeXComponent_KeyEvent实例。 |
### 枚举
| 名称 | 描述 |
| ---------------------------------------- | ---------- |
| { OH_NATIVEXCOMPONENT_RESULT_SUCCESS = 0, OH_NATIVEXCOMPONENT_RESULT_FAILED = -1, OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER = -2 } | 枚举API访问状态。 |
| [OH_NativeXComponent_TouchEventType](#oh_nativexcomponent_toucheventtype) {
OH_NATIVEXCOMPONENT_DOWN = 0, OH_NATIVEXCOMPONENT_UP, OH_NATIVEXCOMPONENT_MOVE, OH_NATIVEXCOMPONENT_CANCEL,
OH_NATIVEXCOMPONENT_UNKNOWN
} | 触摸事件类型。 |
| [OH_NativeXComponent_TouchPointToolType](#oh_nativexcomponent_touchpointtooltype) {
OH_NATIVEXCOMPONENT_TOOL_TYPE_UNKNOWN = 0, OH_NATIVEXCOMPONENT_TOOL_TYPE_FINGER, OH_NATIVEXCOMPONENT_TOOL_TYPE_PEN, OH_NATIVEXCOMPONENT_TOOL_TYPE_RUBBER,
OH_NATIVEXCOMPONENT_TOOL_TYPE_BRUSH, OH_NATIVEXCOMPONENT_TOOL_TYPE_PENCIL, OH_NATIVEXCOMPONENT_TOOL_TYPE_AIRBRUSH, OH_NATIVEXCOMPONENT_TOOL_TYPE_MOUSE,
OH_NATIVEXCOMPONENT_TOOL_TYPE_LENS
} | 触摸点工具类型。 |
| [OH_NativeXComponent_EventSourceType](#oh_nativexcomponent_eventsourcetype) {
OH_NATIVEXCOMPONENT_SOURCE_TYPE_UNKNOWN = 0, OH_NATIVEXCOMPONENT_SOURCE_TYPE_MOUSE, OH_NATIVEXCOMPONENT_SOURCE_TYPE_TOUCHSCREEN, OH_NATIVEXCOMPONENT_SOURCE_TYPE_TOUCHPAD,
OH_NATIVEXCOMPONENT_SOURCE_TYPE_JOYSTICK, OH_NATIVEXCOMPONENT_SOURCE_TYPE_KEYBOARD
} | 触摸事件源类型。 |
| [OH_NativeXComponent_MouseEventAction](#oh_nativexcomponent_mouseeventaction) { OH_NATIVEXCOMPONENT_MOUSE_NONE = 0, OH_NATIVEXCOMPONENT_MOUSE_PRESS, OH_NATIVEXCOMPONENT_MOUSE_RELEASE, OH_NATIVEXCOMPONENT_MOUSE_MOVE } | 鼠标事件动作。 |
| [OH_NativeXComponent_MouseEventButton](#oh_nativexcomponent_mouseeventbutton) {
OH_NATIVEXCOMPONENT_NONE_BUTTON = 0, OH_NATIVEXCOMPONENT_LEFT_BUTTON = 0x01, OH_NATIVEXCOMPONENT_RIGHT_BUTTON = 0x02, OH_NATIVEXCOMPONENT_MIDDLE_BUTTON = 0x04,
OH_NATIVEXCOMPONENT_BACK_BUTTON = 0x08, OH_NATIVEXCOMPONENT_FORWARD_BUTTON = 0x10
} | 鼠标事件按键。 |
| [OH_NativeXComponent_KeyCode](#oh_nativexcomponent_keycode) {
KEY_UNKNOWN = -1, KEY_FN = 0, KEY_HOME = 1, KEY_BACK = 2,KEY_MEDIA_PLAY_PAUSE = 10, KEY_MEDIA_STOP = 11, KEY_MEDIA_NEXT = 12, KEY_MEDIA_PREVIOUS = 13,
KEY_MEDIA_REWIND = 14, KEY_MEDIA_FAST_FORWARD = 15, KEY_VOLUME_UP = 16, KEY_VOLUME_DOWN = 17,
KEY_POWER = 18, KEY_CAMERA = 19, KEY_VOLUME_MUTE = 22, KEY_MUTE = 23,KEY_BRIGHTNESS_UP = 40, KEY_BRIGHTNESS_DOWN = 41, KEY_0 = 2000, KEY_1 = 2001,
KEY_2 = 2002, KEY_3 = 2003, KEY_4 = 2004, KEY_5 = 2005,
KEY_6 = 2006, KEY_7 = 2007, KEY_8 = 2008, KEY_9 = 2009,
KEY_STAR = 2010, KEY_POUND = 2011, KEY_DPAD_UP = 2012, KEY_DPAD_DOWN = 2013,KEY_DPAD_LEFT = 2014, KEY_DPAD_RIGHT = 2015, KEY_DPAD_CENTER = 2016,
KEY_A = 2017,
KEY_B = 2018, KEY_C = 2019, KEY_D = 2020, KEY_E = 2021,
KEY_F = 2022, KEY_G = 2023, KEY_H = 2024, KEY_I = 2025,
KEY_J = 2026, KEY_K = 2027, KEY_L = 2028, KEY_M = 2029,
KEY_N = 2030, KEY_O = 2031, KEY_P = 2032, KEY_Q = 2033,
KEY_R = 2034, KEY_S = 2035, KEY_T = 2036, KEY_U = 2037,
KEY_V = 2038, KEY_W = 2039, KEY_X = 2040, KEY_Y = 2041,
KEY_Z = 2042, KEY_COMMA = 2043, KEY_PERIOD = 2044, KEY_ALT_LEFT = 2045,
KEY_ALT_RIGHT = 2046, KEY_SHIFT_LEFT = 2047, KEY_SHIFT_RIGHT = 2048, KEY_TAB = 2049,
KEY_SPACE = 2050, KEY_SYM = 2051, KEY_EXPLORER = 2052, KEY_ENVELOPE = 2053,
KEY_ENTER = 2054, KEY_DEL = 2055, KEY_GRAVE = 2056, KEY_MINUS = 2057,
KEY_EQUALS = 2058, KEY_LEFT_BRACKET = 2059, KEY_RIGHT_BRACKET = 2060, KEY_BACKSLASH = 2061,
KEY_SEMICOLON = 2062, KEY_APOSTROPHE = 2063, KEY_SLASH = 2064, KEY_AT = 2065,
KEY_PLUS = 2066, KEY_MENU = 2067, KEY_PAGE_UP = 2068, KEY_PAGE_DOWN = 2069,
KEY_ESCAPE = 2070, KEY_FORWARD_DEL = 2071, KEY_CTRL_LEFT = 2072, KEY_CTRL_RIGHT = 2073,
KEY_CAPS_LOCK = 2074, KEY_SCROLL_LOCK = 2075, KEY_META_LEFT = 2076, KEY_META_RIGHT = 2077,
KEY_FUNCTION = 2078, KEY_SYSRQ = 2079, KEY_BREAK = 2080, KEY_MOVE_HOME = 2081,
KEY_MOVE_END = 2082, KEY_INSERT = 2083, KEY_FORWARD = 2084, KEY_MEDIA_PLAY = 2085,
KEY_MEDIA_PAUSE = 2086, KEY_MEDIA_CLOSE = 2087, KEY_MEDIA_EJECT = 2088, KEY_MEDIA_RECORD = 2089,
KEY_F1 = 2090, KEY_F2 = 2091, KEY_F3 = 2092, KEY_F4 = 2093,
KEY_F5 = 2094, KEY_F6 = 2095, KEY_F7 = 2096, KEY_F8 = 2097,
KEY_F9 = 2098, KEY_F10 = 2099, KEY_F11 = 2100, KEY_F12 = 2101,
KEY_NUM_LOCK = 2102, KEY_NUMPAD_0 = 2103, KEY_NUMPAD_1 = 2104, KEY_NUMPAD_2 = 2105,
KEY_NUMPAD_3 = 2106, KEY_NUMPAD_4 = 2107, KEY_NUMPAD_5 = 2108, KEY_NUMPAD_6 = 2109,
KEY_NUMPAD_7 = 2110, KEY_NUMPAD_8 = 2111, KEY_NUMPAD_9 = 2112, KEY_NUMPAD_DIVIDE = 2113,
KEY_NUMPAD_MULTIPLY = 2114, KEY_NUMPAD_SUBTRACT = 2115, KEY_NUMPAD_ADD = 2116, KEY_NUMPAD_DOT = 2117,
KEY_NUMPAD_COMMA = 2118, KEY_NUMPAD_ENTER = 2119, KEY_NUMPAD_EQUALS = 2120, KEY_NUMPAD_LEFT_PAREN = 2121,
KEY_NUMPAD_RIGHT_PAREN = 2122, KEY_VIRTUAL_MULTITASK = 2210, KEY_SLEEP = 2600, KEY_ZENKAKU_HANKAKU = 2601,
KEY_102ND = 2602, KEY_RO = 2603, KEY_KATAKANA = 2604, KEY_HIRAGANA = 2605,
KEY_HENKAN = 2606, KEY_KATAKANA_HIRAGANA = 2607, KEY_MUHENKAN = 2608, KEY_LINEFEED = 2609,
KEY_MACRO = 2610, KEY_NUMPAD_PLUSMINUS = 2611, KEY_SCALE = 2612, KEY_HANGUEL = 2613,
KEY_HANJA = 2614, KEY_YEN = 2615, KEY_STOP = 2616, KEY_AGAIN = 2617,
KEY_PROPS = 2618, KEY_UNDO = 2619, KEY_COPY = 2620, KEY_OPEN = 2621,
KEY_PASTE = 2622, KEY_FIND = 2623, KEY_CUT = 2624, KEY_HELP = 2625,
KEY_CALC = 2626, KEY_FILE = 2627, KEY_BOOKMARKS = 2628, KEY_NEXT = 2629,
KEY_PLAYPAUSE = 2630, KEY_PREVIOUS = 2631, KEY_STOPCD = 2632, KEY_CONFIG = 2634,
KEY_REFRESH = 2635, KEY_EXIT = 2636, KEY_EDIT = 2637, KEY_SCROLLUP = 2638,
KEY_SCROLLDOWN = 2639, KEY_NEW = 2640, KEY_REDO = 2641, KEY_CLOSE = 2642,
KEY_PLAY = 2643, KEY_BASSBOOST = 2644, KEY_PRINT = 2645, KEY_CHAT = 2646,
KEY_FINANCE = 2647, KEY_CANCEL = 2648, KEY_KBDILLUM_TOGGLE = 2649, KEY_KBDILLUM_DOWN = 2650,
KEY_KBDILLUM_UP = 2651, KEY_SEND = 2652, KEY_REPLY = 2653, KEY_FORWARDMAIL = 2654,
KEY_SAVE = 2655, KEY_DOCUMENTS = 2656, KEY_VIDEO_NEXT = 2657, KEY_VIDEO_PREV = 2658,
KEY_BRIGHTNESS_CYCLE = 2659, KEY_BRIGHTNESS_ZERO = 2660, KEY_DISPLAY_OFF = 2661, KEY_BTN_MISC = 2662,
KEY_GOTO = 2663, KEY_INFO = 2664, KEY_PROGRAM = 2665, KEY_PVR = 2666,
KEY_SUBTITLE = 2667, KEY_FULL_SCREEN = 2668, KEY_KEYBOARD = 2669, KEY_ASPECT_RATIO = 2670,
KEY_PC = 2671, KEY_TV = 2672, KEY_TV2 = 2673, KEY_VCR = 2674,
KEY_VCR2 = 2675, KEY_SAT = 2676, KEY_CD = 2677, KEY_TAPE = 2678,
KEY_TUNER = 2679, KEY_PLAYER = 2680, KEY_DVD = 2681, KEY_AUDIO = 2682,
KEY_VIDEO = 2683, KEY_MEMO = 2684, KEY_CALENDAR = 2685, KEY_RED = 2686,
KEY_GREEN = 2687, KEY_YELLOW = 2688, KEY_BLUE = 2689, KEY_CHANNELUP = 2690,
KEY_CHANNELDOWN = 2691, KEY_LAST = 2692, KEY_RESTART = 2693, KEY_SLOW = 2694,
KEY_SHUFFLE = 2695, KEY_VIDEOPHONE = 2696, KEY_GAMES = 2697, KEY_ZOOMIN = 2698,
KEY_ZOOMOUT = 2699, KEY_ZOOMRESET = 2700, KEY_WORDPROCESSOR = 2701, KEY_EDITOR = 2702,
KEY_SPREADSHEET = 2703, KEY_GRAPHICSEDITOR = 2704, KEY_PRESENTATION = 2705, KEY_DATABASE = 2706,
KEY_NEWS = 2707, KEY_VOICEMAIL = 2708, KEY_ADDRESSBOOK = 2709, KEY_MESSENGER = 2710,
KEY_BRIGHTNESS_TOGGLE = 2711, KEY_SPELLCHECK = 2712, KEY_COFFEE = 2713, KEY_MEDIA_REPEAT = 2714,
KEY_IMAGES = 2715, KEY_BUTTONCONFIG = 2716, KEY_TASKMANAGER = 2717, KEY_JOURNAL = 2718,
KEY_CONTROLPANEL = 2719, KEY_APPSELECT = 2720, KEY_SCREENSAVER = 2721, KEY_ASSISTANT = 2722,
KEY_KBD_LAYOUT_NEXT = 2723, KEY_BRIGHTNESS_MIN = 2724, KEY_BRIGHTNESS_MAX = 2725, KEY_KBDINPUTASSIST_PREV = 2726,
KEY_KBDINPUTASSIST_NEXT = 2727, KEY_KBDINPUTASSIST_PREVGROUP = 2728, KEY_KBDINPUTASSIST_NEXTGROUP = 2729, KEY_KBDINPUTASSIST_ACCEPT = 2730,
KEY_KBDINPUTASSIST_CANCEL = 2731, KEY_FRONT = 2800, KEY_SETUP = 2801, KEY_WAKEUP = 2802,
KEY_SENDFILE = 2803, KEY_DELETEFILE = 2804, KEY_XFER = 2805, KEY_PROG1 = 2806,
KEY_PROG2 = 2807, KEY_MSDOS = 2808, KEY_SCREENLOCK = 2809, KEY_DIRECTION_ROTATE_DISPLAY = 2810,
KEY_CYCLEWINDOWS = 2811, KEY_COMPUTER = 2812, KEY_EJECTCLOSECD = 2813, KEY_ISO = 2814,
KEY_MOVE = 2815, KEY_F13 = 2816, KEY_F14 = 2817, KEY_F15 = 2818,
KEY_F16 = 2819, KEY_F17 = 2820, KEY_F18 = 2821, KEY_F19 = 2822,
KEY_F20 = 2823, KEY_F21 = 2824, KEY_F22 = 2825, KEY_F23 = 2826,
KEY_F24 = 2827, KEY_PROG3 = 2828, KEY_PROG4 = 2829, KEY_DASHBOARD = 2830,
KEY_SUSPEND = 2831, KEY_HP = 2832, KEY_SOUND = 2833, KEY_QUESTION = 2834,
KEY_CONNECT = 2836, KEY_SPORT = 2837, KEY_SHOP = 2838, KEY_ALTERASE = 2839,
KEY_SWITCHVIDEOMODE = 2841, KEY_BATTERY = 2842, KEY_BLUETOOTH = 2843, KEY_WLAN = 2844,
KEY_UWB = 2845, KEY_WWAN_WIMAX = 2846, KEY_RFKILL = 2847, KEY_CHANNEL = 3001,
KEY_BTN_0 = 3100, KEY_BTN_1 = 3101, KEY_BTN_2 = 3102, KEY_BTN_3 = 3103,
KEY_BTN_4 = 3104, KEY_BTN_5 = 3105, KEY_BTN_6 = 3106, KEY_BTN_7 = 3107,
KEY_BTN_8 = 3108, KEY_BTN_9 = 3109
} | 按键事件的键码。 |
| [OH_NativeXComponent_KeyAction](#oh_nativexcomponent_keyaction) { OH_NATIVEXCOMPONENT_KEY_ACTION_UNKNOWN = -1, OH_NATIVEXCOMPONENT_KEY_ACTION_DOWN = 0, OH_NATIVEXCOMPONENT_KEY_ACTION_UP } | 按键事件动作。 |
### 函数
| 名称 | 描述 |
| ---------------------------------------- | -------------------------------------- |
| [OH_NativeXComponent_GetXComponentId](#oh_nativexcomponent_getxcomponentid) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, char \*id, uint64_t \*size) | 获取ArkUI XComponent的id。 |
| [OH_NativeXComponent_GetXComponentSize](#oh_nativexcomponent_getxcomponentsize) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, const void \*window, uint64_t \*width, uint64_t \*height) | 获取ArkUI XComponent持有的surface的大小。 |
| [OH_NativeXComponent_GetXComponentOffset](#oh_nativexcomponent_getxcomponentoffset) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, const void \*window, double \*x, double \*y) | 获取XComponent持有的surface相对其父组件左顶点的偏移量。 |
| [OH_NativeXComponent_GetTouchEvent](#oh_nativexcomponent_gettouchevent) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, const void \*window, [OH_NativeXComponent_TouchEvent](_o_h___native_x_component___touch_event.md) \*touchEvent) | 获取ArkUI XComponent调度的触摸事件。 |
| [OH_NativeXComponent_GetTouchPointToolType](#oh_nativexcomponent_gettouchpointtooltype) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, uint32_t pointIndex, [OH_NativeXComponent_TouchPointToolType](#oh_nativexcomponent_touchpointtooltype) \*toolType) | 获取ArkUI XComponent触摸点工具类型。 |
| [OH_NativeXComponent_GetTouchPointTiltX](#oh_nativexcomponent_gettouchpointtiltx) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, uint32_t pointIndex, float \*tiltX) | 获取ArkUI XComponent触摸点倾斜与X轴角度。 |
| [OH_NativeXComponent_GetTouchPointTiltY](#oh_nativexcomponent_gettouchpointtilty) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, uint32_t pointIndex, float \*tiltY) | 获取ArkUI XComponent触摸点倾斜与Y轴角度。 |
| [OH_NativeXComponent_GetMouseEvent](#oh_nativexcomponent_getmouseevent) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, const void \*window, [OH_NativeXComponent_MouseEvent](_o_h___native_x_component___mouse_event.md) \*mouseEvent) | 获取ArkUI XComponent调度的鼠标事件。 |
| [OH_NativeXComponent_RegisterCallback](#oh_nativexcomponent_registercallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, [OH_NativeXComponent_Callback](_o_h___native_x_component___callback.md) \*callback) | 为此OH_NativeXComponent实例注册回调。 |
| [OH_NativeXComponent_RegisterMouseEventCallback](#oh_nativexcomponent_registermouseeventcallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, [OH_NativeXComponent_MouseEvent_Callback](_o_h___native_x_component___mouse_event___callback.md) \*callback) | 为此OH_NativeXComponent实例注册鼠标事件回调。 |
| [OH_NativeXComponent_RegisterFocusEventCallback](#oh_nativexcomponent_registerfocuseventcallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, void(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, void \*window)) | 为此OH_NativeXComponent实例注册获焦事件回调。 |
| [OH_NativeXComponent_RegisterKeyEventCallback](#oh_nativexcomponent_registerkeyeventcallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, void(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, void \*window)) | 为此OH_NativeXComponent实例注册按键事件回调。 |
| [OH_NativeXComponent_RegisterKeyEventCallbackWithResult](#oh_nativexcomponent_registerkeyeventcallbackwithresult) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, bool(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, void \*window)) | 为此OH_NativeXComponent实例注册有返回值的按键事件回调。 |
| [OH_NativeXComponent_RegisterBlurEventCallback](#oh_nativexcomponent_registerblureventcallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, void(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, void \*window)) | 为此OH_NativeXComponent实例注册失焦事件回调。 |
| [OH_NativeXComponent_GetKeyEvent](#oh_nativexcomponent_getkeyevent) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, [OH_NativeXComponent_KeyEvent](#oh_nativexcomponent_keyevent) \*\*keyEvent) | 获取ArkUI XComponent调度的按键事件。 |
| [OH_NativeXComponent_GetKeyEventAction](#oh_nativexcomponent_getkeyeventaction) ([OH_NativeXComponent_KeyEvent](#oh_nativexcomponent_keyevent) \*keyEvent, [OH_NativeXComponent_KeyAction](#oh_nativexcomponent_keyaction) \*action) | 获取传入按键事件的动作。 |
| [OH_NativeXComponent_GetKeyEventCode](#oh_nativexcomponent_getkeyeventcode) ([OH_NativeXComponent_KeyEvent](#oh_nativexcomponent_keyevent) \*keyEvent, [OH_NativeXComponent_KeyCode](#oh_nativexcomponent_keycode) \*code) | 获取传入按键事件的按键码。 |
| [OH_NativeXComponent_GetKeyEventSourceType](#oh_nativexcomponent_getkeyeventsourcetype) ([OH_NativeXComponent_KeyEvent](#oh_nativexcomponent_keyevent) \*keyEvent, [OH_NativeXComponent_EventSourceType](#oh_nativexcomponent_eventsourcetype) \*sourceType) | 获取传入按键事件的事件源类型。 |
| [OH_NativeXComponent_GetKeyEventDeviceId](#oh_nativexcomponent_getkeyeventdeviceid) ([OH_NativeXComponent_KeyEvent](#oh_nativexcomponent_keyevent) \*keyEvent, int64_t \*deviceId) | 获取传入按键事件的设备id。 |
| [OH_NativeXComponent_GetKeyEventTimeStamp](#oh_nativexcomponent_getkeyeventtimestamp) ([OH_NativeXComponent_KeyEvent](#oh_nativexcomponent_keyevent) \*keyEvent, int64_t \*timeStamp) | 获取传入按键事件的时间戳。 |
| [OH_NativeXComponent_SetExpectedFrameRateRange](#oh_nativexcomponent_setexpectedframeraterange) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, [OH_NativeXComponent_ExpectedRateRange](_o_h___native_x_component___expected_rate_range.md) \*range) | 设置期望帧率范围。 |
| [OH_NativeXComponent_RegisterOnFrameCallback](#oh_nativexcomponent_registeronframecallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, void(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, uint64_t timestamp, uint64_t targetTimestamp)) | 为此OH_NativeXComponent实例注册显示更新回调,并使能每帧回调此函数。 |
| [OH_NativeXComponent_UnregisterOnFrameCallback](#oh_nativexcomponent_unregisteronframecallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component) | 为此OH_NativeXComponent实例取消注册回调函数,并关闭每帧回调此函数。 |
| int32_t [OH_NativeXComponent_AttachNativeRootNode](#oh_nativexcomponent_attachnativerootnode) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, [ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) root) | 将通过ArkUI的native接口创建出来的UI组件挂载到当前XComponent上。 |
| int32_t [OH_NativeXComponent_DetachNativeRootNode](#oh_nativexcomponent_detachnativerootnode) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, [ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) root) | 将ArkUI的native组件从当前XComponent上卸载. |
| int32_t [OH_NativeXComponent_RegisterUIInputEventCallback](#oh_nativexcomponent_registeruiinputeventcallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, void(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, [ArkUI_UIInputEvent](_ark_u_i___event_module.md#arkui_uiinputevent) \*event, [ArkUI_UIInputEvent_Type](_ark_u_i___event_module.md#arkui_uiinputevent_type) type), [ArkUI_UIInputEvent_Type](_ark_u_i___event_module.md#arkui_uiinputevent_type) type) | 为此OH_NativeXComponent实例注册UI输入事件回调,并使能收到UI输入事件时回调此函数。 |
| int32_t [OH_NativeXComponent_RegisterOnTouchInterceptCallback](#oh_nativexcomponent_registerontouchinterceptcallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, [HitTestMode](_ark_u_i___native_module.md#hittestmode)(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, [ArkUI_UIInputEvent](_ark_u_i___event_module.md#arkui_uiinputevent) \*event)) | 为此OH_NativeXComponent实例注册自定义事件拦截回调,并使能在做触摸测试时回调此函数。 |
| int32_t [OH_NativeXComponent_SetNeedSoftKeyboard](#oh_nativexcomponent_setneedsoftkeyboard) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, bool isNeedSoftKeyboard) | 为此OH_NativeXComponent实例设置是否需要软键盘。 |
| int32_t [OH_NativeXComponent_RegisterSurfaceShowCallback](#oh_nativexcomponent_registersurfaceshowcallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, void(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, void \*window)) | 为此OH_NativeXComponent实例注册surface显示回调,该回调在应用从后台返回前台后触发。 |
| int32_t [OH_NativeXComponent_RegisterSurfaceHideCallback](#oh_nativexcomponent_registersurfacehidecallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, void(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, void \*window)) | 为此OH_NativeXComponent实例注册surface隐藏回调,该回调在应用从前台来到后台后触发。 |
| int32_t [OH_NativeXComponent_GetTouchEventSourceType](#oh_nativexcomponent_gettoucheventsourcetype) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, int32_t pointId, [OH_NativeXComponent_EventSourceType](#oh_nativexcomponent_eventsourcetype) \*sourceType) | 获取ArkUI XComponent触摸事件的输入设备类型。 |
| [OH_NativeXComponent](#oh_nativexcomponent) \* [OH_NativeXComponent_GetNativeXComponent](#oh_nativexcomponent_getnativexcomponent) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node) | 基于Native接口创建的组件实例获取OH_NativeXComponent类型的指针。 |
| int32_t OH_NativeXComponent_GetNativeAccessibilityProvider(OH_NativeXComponent* component, ArkUI_AccessibilityProvider** handle); | |
| int32_t [OH_NativeXComponent_RegisterKeyEventCallbackWithResult](#oh_nativexcomponent_registerkeyeventcallbackwithresult) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, bool(\*callback)([OH_NativeXComponent](#oh_nativexcomponent) \*component, void \*window)) | 为此OH_NativeXComponent实例注册有返回值的按键事件回调。 |
### 变量
| 名称 | 描述 |
| ---------------------------------------- | ------------------------------ |
| **OH_XCOMPONENT_ID_LEN_MAX** = 128 | ArkUI XComponent的id最大长度。 |
| **OH_MAX_TOUCH_POINTS_NUMBER** = 10 | 触摸事件中的可识别的触摸点个数最大值。 |
| [OH_NativeXComponent_TouchPoint::id](#id-12) = 0 | 手指的唯一标识符。 |
| [OH_NativeXComponent_TouchPoint::screenX](#screenx-13) = 0.0 | 触摸点相对于XComponent所在应用窗口左上角的x坐标。 |
| [OH_NativeXComponent_TouchPoint::screenY](#screeny-13) = 0.0 | 触摸点相对于XComponent所在应用窗口左上角的y坐标。 |
| [OH_NativeXComponent_TouchPoint::x](#x-13) = 0.0 | 触摸点相对于XComponent组件左边缘的x坐标。 |
| [OH_NativeXComponent_TouchPoint::y](#y-13) = 0.0 | 触摸点相对于XComponent组件上边缘的y坐标。 |
| [OH_NativeXComponent_TouchPoint::type](#type-12) = OH_NativeXComponent_TouchEventType::OH_NATIVEXCOMPONENT_UNKNOWN | 触摸事件的触摸类型。 |
| [OH_NativeXComponent_TouchPoint::size](#size-12) = 0.0 | 指垫和屏幕之间的接触面积。 |
| [OH_NativeXComponent_TouchPoint::force](#force-12) = 0.0 | 当前触摸事件的压力。 |
| [OH_NativeXComponent_TouchPoint::timeStamp](#timestamp-12) = 0 | 当前触摸事件的时间戳。 |
| [OH_NativeXComponent_TouchPoint::isPressed](#ispressed) = false | 当前点是否被按下。 |
| [OH_NativeXComponent_TouchEvent::id](#id-22) = 0 | 手指的唯一标识符。 |
| [OH_NativeXComponent_TouchEvent::screenX](#screenx-23) = 0.0 | 触摸点相对于屏幕左边缘的x坐标。 |
| [OH_NativeXComponent_TouchEvent::screenY](#screeny-23) = 0.0 | 触摸点相对于屏幕上边缘的y坐标。 |
| [OH_NativeXComponent_TouchEvent::x](#x-23) = 0.0 | 触摸点相对于XComponent组件左边缘的x坐标。 |
| [OH_NativeXComponent_TouchEvent::y](#y-23) = 0.0 | 触摸点相对于XComponent组件上边缘的y坐标。 |
| [OH_NativeXComponent_TouchEvent::type](#type-22) = OH_NativeXComponent_TouchEventType::OH_NATIVEXCOMPONENT_UNKNOWN | 触摸事件的触摸类型。 |
| [OH_NativeXComponent_TouchEvent::size](#size-22) = 0.0 | 指垫和屏幕之间的接触面积。 |
| [OH_NativeXComponent_TouchEvent::force](#force-22) = 0.0 | 当前触摸事件的压力。 |
| [OH_NativeXComponent_TouchEvent::deviceId](#deviceid) = 0 | 产生当前触摸事件的设备的ID。 |
| [OH_NativeXComponent_TouchEvent::timeStamp](#timestamp-22) = 0 | 当前触摸事件的时间戳。 |
| [OH_NativeXComponent_TouchEvent::touchPoints](#touchpoints) [OH_MAX_TOUCH_POINTS_NUMBER] | 当前触摸点的数组。 |
| [OH_NativeXComponent_TouchEvent::numPoints](#numpoints) = 0 | 当前接触点的数量。 |
| [OH_NativeXComponent_MouseEvent::x](#x-33) = 0.0 | 点击触点相对于当前组件左上角的x轴坐标。 |
| [OH_NativeXComponent_MouseEvent::y](#y-33)= 0.0 | 点击触点相对于当前组件左上角的y轴坐标。 |
| [OH_NativeXComponent_MouseEvent::screenX](#screenx-33)= 0.0 | 点击触点相对于屏幕左上角的x轴坐标。 |
| [OH_NativeXComponent_MouseEvent::screenY](#screeny-33)= 0.0 | 点击触点相对于屏幕左上角的y轴坐标。 |
| [OH_NativeXComponent_MouseEvent::timestamp](#timestamp)= 0 | 当前鼠标事件的时间戳。 |
| [OH_NativeXComponent_MouseEvent::action](#action)= [OH_NativeXComponent_MouseEventAction::OH_NATIVEXCOMPONENT_MOUSE_NONE](#oh_nativexcomponent_mouseeventaction) | 当前鼠标事件动作。 |
| [OH_NativeXComponent_MouseEvent::button](#button)= [OH_NativeXComponent_MouseEventButton::OH_NATIVEXCOMPONENT_NONE_BUTTON](#oh_nativexcomponent_mouseeventbutton) | 鼠标事件按键。 |
| [OH_NativeXComponent_Callback::OnSurfaceCreated](#onsurfacecreated) | 创建surface时调用。 |
| [OH_NativeXComponent_Callback::OnSurfaceChanged](#onsurfacechanged) | 当surface改变时调用。 |
| [OH_NativeXComponent_Callback::OnSurfaceDestroyed](#onsurfacedestroyed) | 当surface被销毁时调用。 |
| [OH_NativeXComponent_Callback::DispatchTouchEvent](#dispatchtouchevent) | 当触摸事件被触发时调用。 |
| [OH_NativeXComponent_MouseEvent_Callback::DispatchMouseEvent](#dispatchmouseevent) | 当鼠标事件被触发时调用。 |
| [OH_NativeXComponent_MouseEvent_Callback::DispatchHoverEvent](#dispatchhoverevent) | 当悬停事件被触发时调用。 |
## 类型定义说明
### OH_NativeXComponent
```
typedef struct OH_NativeXComponent OH_NativeXComponent
```
**描述:**
提供封装的OH_NativeXComponent实例。
**起始版本:**
8
### OH_NativeXComponent_Callback
```
typedef struct OH_NativeXComponent_Callback OH_NativeXComponent_Callback
```
**描述:**
注册surface生命周期和触摸事件回调。
**起始版本:**
8
### OH_NativeXComponent_KeyEvent
```
typedef struct OH_NativeXComponent_KeyEvent OH_NativeXComponent_KeyEvent
```
**描述:**
提供封装的OH_NativeXComponent_KeyEvent实例。
**起始版本:**
10
### OH_NativeXComponent_MouseEvent_Callback
```
typedef struct OH_NativeXComponent_MouseEvent_Callback OH_NativeXComponent_MouseEvent_Callback
```
**描述:**
注册鼠标事件的回调。
**起始版本:**
9
## 枚举类型说明
### anonymous enum
```
anonymous enum
```
**描述:**
枚举API访问状态。
| 枚举值 | 描述 |
| ---------------------------------------- | ----- |
| OH_NATIVEXCOMPONENT_RESULT_SUCCESS | 成功结果。 |
| OH_NATIVEXCOMPONENT_RESULT_FAILED | 失败结果。 |
| OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER | 无效参数。 |
**起始版本:**
8
### OH_NativeXComponent_EventSourceType
```
enum OH_NativeXComponent_EventSourceType
```
**描述:**
触摸事件源类型。
| 枚举值 | 描述 |
| ------------------------------------------- | ------------------------------------------------------ |
| OH_NATIVEXCOMPONENT_SOURCE_TYPE_UNKNOWN | 未知的输入源类型。 |
| OH_NATIVEXCOMPONENT_SOURCE_TYPE_MOUSE | 表示输入源生成鼠标多点触摸事件。 |
| OH_NATIVEXCOMPONENT_SOURCE_TYPE_TOUCHSCREEN | 表示输入源生成一个触摸屏多点触摸事件。 |
| OH_NATIVEXCOMPONENT_SOURCE_TYPE_TOUCHPAD | 表示输入源生成一个触摸板多点触摸事件。 |
| OH_NATIVEXCOMPONENT_SOURCE_TYPE_JOYSTICK | 表示输入源生成一个操纵杆多点触摸事件。 |
| OH_NATIVEXCOMPONENT_SOURCE_TYPE_KEYBOARD10+ | 表示输入源生成一个键盘事件。 |
**起始版本:**
9
### OH_NativeXComponent_KeyAction
```
enum OH_NativeXComponent_KeyAction
```
**描述:**
按键事件动作。
| 枚举值 | 描述 |
| -------------------------------------- | -------- |
| OH_NATIVEXCOMPONENT_KEY_ACTION_UNKNOWN | 未知的按键动作。 |
| OH_NATIVEXCOMPONENT_KEY_ACTION_DOWN | 按键按下动作。 |
| OH_NATIVEXCOMPONENT_KEY_ACTION_UP | 按键抬起动作。 |
**起始版本:**
10
### OH_NativeXComponent_KeyCode
```
enum OH_NativeXComponent_KeyCode
```
**描述:**
按键事件的键码。
| 枚举值 | 描述 |
| ---------------------------- | --------------------------- |
| KEY_UNKNOWN | 未知按键 |
| KEY_FN | 功能(Fn)键 |
| KEY_HOME | 功能(Home)键 |
| KEY_BACK | 返回键 |
| KEY_MEDIA_PLAY_PAUSE | 多媒体键 播放/暂停 |
| KEY_MEDIA_STOP | 多媒体键 停止 |
| KEY_MEDIA_NEXT | 多媒体键 下一首 |
| KEY_MEDIA_PREVIOUS | 多媒体键 上一首 |
| KEY_MEDIA_REWIND | 多媒体键 快退 |
| KEY_MEDIA_FAST_FORWARD | 多媒体键 快进 |
| KEY_VOLUME_UP | 音量增加键 |
| KEY_VOLUME_DOWN | 音量减小键 |
| KEY_POWER | 电源键 |
| KEY_CAMERA | 拍照键 |
| KEY_VOLUME_MUTE | 扬声器静音键 |
| KEY_MUTE | 话筒静音键 |
| KEY_BRIGHTNESS_UP | 亮度调节按键 调亮 |
| KEY_BRIGHTNESS_DOWN | 亮度调节按键 调暗 |
| KEY_0 | 按键'0' |
| KEY_1 | 按键'1' |
| KEY_2 | 按键'2' |
| KEY_3 | 按键'3' |
| KEY_4 | 按键'4' |
| KEY_5 | 按键'5' |
| KEY_6 | 按键'6' |
| KEY_7 | 按键'7' |
| KEY_8 | 按键'8' |
| KEY_9 | 按键'9' |
| KEY_STAR | 按键'\*' |
| KEY_POUND | 按键'\#' |
| KEY_DPAD_UP | 导航键 向上 |
| KEY_DPAD_DOWN | 导航键 向下 |
| KEY_DPAD_LEFT | 导航键 向左 |
| KEY_DPAD_RIGHT | 导航键 向右 |
| KEY_DPAD_CENTER | 导航键 确定键 |
| KEY_A | 按键'A' |
| KEY_B | 按键'B' |
| KEY_C | 按键'C' |
| KEY_D | 按键'D' |
| KEY_E | 按键'E' |
| KEY_F | 按键'F' |
| KEY_G | 按键'G' |
| KEY_H | 按键'H' |
| KEY_I | 按键'I' |
| KEY_J | 按键'J' |
| KEY_K | 按键'K' |
| KEY_L | 按键'L' |
| KEY_M | 按键'M' |
| KEY_N | 按键'N' |
| KEY_O | 按键'O' |
| KEY_P | 按键'P' |
| KEY_Q | 按键'Q' |
| KEY_R | 按键'R' |
| KEY_S | 按键'S' |
| KEY_T | 按键'T' |
| KEY_U | 按键'U' |
| KEY_V | 按键'V' |
| KEY_W | 按键'W' |
| KEY_X | 按键'X' |
| KEY_Y | 按键'Y' |
| KEY_Z | 按键'Z' |
| KEY_COMMA | 按键',' |
| KEY_PERIOD | 按键'.' |
| KEY_ALT_LEFT | 左Alt键 |
| KEY_ALT_RIGHT | 右Alt键 |
| KEY_SHIFT_LEFT | 左Shift键 |
| KEY_SHIFT_RIGHT | 右Shift键 |
| KEY_TAB | Tab键 |
| KEY_SPACE | 空格键 |
| KEY_SYM | 符号修改器按键 |
| KEY_EXPLORER | 浏览器功能键,此键用于启动浏览器应用程序。 |
| KEY_ENVELOPE | 电子邮件功能键,此键用于启动电子邮件应用程序。 |
| KEY_ENTER | 回车键 |
| KEY_DEL | 退格键 |
| KEY_GRAVE | 按键'‘’ |
| KEY_MINUS | 按键'-' |
| KEY_EQUALS | 按键'=' |
| KEY_LEFT_BRACKET | 按键'[' |
| KEY_RIGHT_BRACKET | 按键']' |
| KEY_BACKSLASH | 按键'\' |
| KEY_SEMICOLON | 按键';' |
| KEY_APOSTROPHE | 按键''' (单引号) |
| KEY_SLASH | 按键'/' |
| KEY_AT | 按键'\@' |
| KEY_PLUS | 按键'+' |
| KEY_MENU | 菜单键 |
| KEY_PAGE_UP | 向上翻页键 |
| KEY_PAGE_DOWN | 向下翻页键 |
| KEY_ESCAPE | ESC键 |
| KEY_FORWARD_DEL | 删除键 |
| KEY_CTRL_LEFT | 左Ctrl键 |
| KEY_CTRL_RIGHT | 右Ctrl键 |
| KEY_CAPS_LOCK | 大写锁定键 |
| KEY_SCROLL_LOCK | 滚动锁定键 |
| KEY_META_LEFT | 左元修改器键 |
| KEY_META_RIGHT | 右元修改器键 |
| KEY_FUNCTION | 功能键 |
| KEY_SYSRQ | 系统请求/打印屏幕键 |
| KEY_BREAK | Break/Pause键 |
| KEY_MOVE_HOME | 光标移动到开始键 |
| KEY_MOVE_END | 光标移动到末尾键 |
| KEY_INSERT | 插入键 |
| KEY_FORWARD | 前进键 |
| KEY_MEDIA_PLAY | 多媒体键 播放 |
| KEY_MEDIA_PAUSE | 多媒体键 暂停 |
| KEY_MEDIA_CLOSE | 多媒体键 关闭 |
| KEY_MEDIA_EJECT | 多媒体键 弹出 |
| KEY_MEDIA_RECORD | 多媒体键 录音 |
| KEY_F1 | 按键'F1' |
| KEY_F2 | 按键'F2' |
| KEY_F3 | 按键'F3' |
| KEY_F4 | 按键'F4' |
| KEY_F5 | 按键'F5' |
| KEY_F6 | 按键'F6' |
| KEY_F7 | 按键'F7' |
| KEY_F8 | 按键'F8' |
| KEY_F9 | 按键'F9' |
| KEY_F10 | 按键'F10' |
| KEY_F11 | 按键'F11' |
| KEY_F12 | 按键'F12' |
| KEY_NUM_LOCK | 小键盘锁 |
| KEY_NUMPAD_0 | 小键盘按键'0' |
| KEY_NUMPAD_1 | 小键盘按键'1' |
| KEY_NUMPAD_2 | 小键盘按键'2' |
| KEY_NUMPAD_3 | 小键盘按键'3' |
| KEY_NUMPAD_4 | 小键盘按键'4' |
| KEY_NUMPAD_5 | 小键盘按键'5' |
| KEY_NUMPAD_6 | 小键盘按键'6' |
| KEY_NUMPAD_7 | 小键盘按键'7' |
| KEY_NUMPAD_8 | 小键盘按键'8' |
| KEY_NUMPAD_9 | 小键盘按键'9' |
| KEY_NUMPAD_DIVIDE | 小键盘按键'/' |
| KEY_NUMPAD_MULTIPLY | 小键盘按键'\*' |
| KEY_NUMPAD_SUBTRACT | 小键盘按键'-' |
| KEY_NUMPAD_ADD | 小键盘按键'+' |
| KEY_NUMPAD_DOT | 小键盘按键'.' |
| KEY_NUMPAD_COMMA | 小键盘按键',' |
| KEY_NUMPAD_ENTER | 小键盘按键回车 |
| KEY_NUMPAD_EQUALS | 小键盘按键'=' |
| KEY_NUMPAD_LEFT_PAREN | 小键盘按键'(' |
| KEY_NUMPAD_RIGHT_PAREN | 小键盘按键')' |
| KEY_VIRTUAL_MULTITASK | 虚拟多任务键 |
| KEY_SLEEP | 睡眠键 |
| KEY_ZENKAKU_HANKAKU | 日文全宽/半宽键 |
| KEY_102ND | 102nd按键 |
| KEY_RO | 日文Ro键 |
| KEY_KATAKANA | 日文片假名键 |
| KEY_HIRAGANA | 日文平假名键 |
| KEY_HENKAN | 日文转换键 |
| KEY_KATAKANA_HIRAGANA | 日语片假名/平假名键 |
| KEY_MUHENKAN | 日文非转换键 |
| KEY_LINEFEED | 换行键 |
| KEY_MACRO | 宏键 |
| KEY_NUMPAD_PLUSMINUS | 数字键盘上的加号/减号键 |
| KEY_SCALE | 扩展键 |
| KEY_HANGUEL | 日文韩语键 |
| KEY_HANJA | 日文汉语键 |
| KEY_YEN | 日元键 |
| KEY_STOP | 停止键 |
| KEY_AGAIN | 重复键 |
| KEY_PROPS | 道具键 |
| KEY_UNDO | 撤消键 |
| KEY_COPY | 复制键 |
| KEY_OPEN | 打开键 |
| KEY_PASTE | 粘贴键 |
| KEY_FIND | 查找键 |
| KEY_CUT | 剪切键 |
| KEY_HELP | 帮助键 |
| KEY_CALC | 计算器特殊功能键,用于启动计算器应用程序 |
| KEY_FILE | 文件按键 |
| KEY_BOOKMARKS | 书签键 |
| KEY_NEXT | 下一个按键 |
| KEY_PLAYPAUSE | 播放/暂停键 |
| KEY_PREVIOUS | 上一个按键 |
| KEY_STOPCD | CD停止键 |
| KEY_CONFIG | 配置键 |
| KEY_REFRESH | 刷新键 |
| KEY_EXIT | 退出键 |
| KEY_EDIT | 编辑键 |
| KEY_SCROLLUP | 向上滚动键 |
| KEY_SCROLLDOWN | 向下滚动键 |
| KEY_NEW | 新建键 |
| KEY_REDO | 恢复键 |
| KEY_CLOSE | 关闭键 |
| KEY_PLAY | 播放键 |
| KEY_BASSBOOST | 低音增强键 |
| KEY_PRINT | 打印键 |
| KEY_CHAT | 聊天键 |
| KEY_FINANCE | 金融键 |
| KEY_CANCEL | 取消键 |
| KEY_KBDILLUM_TOGGLE | 键盘灯光切换键 |
| KEY_KBDILLUM_DOWN | 键盘灯光调亮键 |
| KEY_KBDILLUM_UP | 键盘灯光调暗键 |
| KEY_SEND | 发送键 |
| KEY_REPLY | 答复键 |
| KEY_FORWARDMAIL | 邮件转发键 |
| KEY_SAVE | 保存键 |
| KEY_DOCUMENTS | 文件键 |
| KEY_VIDEO_NEXT | 下一个视频键 |
| KEY_VIDEO_PREV | 上一个视频键 |
| KEY_BRIGHTNESS_CYCLE | 背光渐变键 |
| KEY_BRIGHTNESS_ZERO | 亮度调节为0键 |
| KEY_DISPLAY_OFF | 显示关闭键 |
| KEY_BTN_MISC | 游戏手柄上的各种按键 |
| KEY_GOTO | 进入键 |
| KEY_INFO | 信息查看键 |
| KEY_PROGRAM | 程序键 |
| KEY_PVR | 个人录像机(PVR)键 |
| KEY_SUBTITLE | 字幕键 |
| KEY_FULL_SCREEN | 全屏键 |
| KEY_KEYBOARD | 键盘 |
| KEY_ASPECT_RATIO | 屏幕纵横比调节键 |
| KEY_PC | 端口控制键 |
| KEY_TV | TV键 |
| KEY_TV2 | TV键2 |
| KEY_VCR | 录像机开启键 |
| KEY_VCR2 | 录像机开启键2 |
| KEY_SAT | SIM卡应用工具包(SAT)键 |
| KEY_CD | CD键 |
| KEY_TAPE | 磁带键 |
| KEY_TUNER | 调谐器键 |
| KEY_PLAYER | 播放器键 |
| KEY_DVD | DVD键 |
| KEY_AUDIO | 音频键 |
| KEY_VIDEO | 视频键 |
| KEY_MEMO | 备忘录键 |
| KEY_CALENDAR | 日历键 |
| KEY_RED | 红色指示器 |
| KEY_GREEN | 绿色指示器 |
| KEY_YELLOW | 黄色指示器 |
| KEY_BLUE | 蓝色指示器 |
| KEY_CHANNELUP | 频道向上键 |
| KEY_CHANNELDOWN | 频道向下键 |
| KEY_LAST | 末尾键 |
| KEY_RESTART | 重启键 |
| KEY_SLOW | 慢速键 |
| KEY_SHUFFLE | 随机播放键 |
| KEY_VIDEOPHONE | 可视电话键 |
| KEY_GAMES | 游戏键 |
| KEY_ZOOMIN | 放大键 |
| KEY_ZOOMOUT | 缩小键 |
| KEY_ZOOMRESET | 缩放重置键 |
| KEY_WORDPROCESSOR | 文字处理键 |
| KEY_EDITOR | 编辑器键 |
| KEY_SPREADSHEET | 电子表格键 |
| KEY_GRAPHICSEDITOR | 图形编辑器键 |
| KEY_PRESENTATION | 演示文稿键 |
| KEY_DATABASE | 数据库键标 |
| KEY_NEWS | 新闻键 |
| KEY_VOICEMAIL | 语音信箱 |
| KEY_ADDRESSBOOK | 通讯簿 |
| KEY_MESSENGER | 通信键 |
| KEY_BRIGHTNESS_TOGGLE | 亮度切换键 |
| KEY_SPELLCHECK | AL拼写检查 |
| KEY_COFFEE | 终端锁/屏幕保护程序 |
| KEY_MEDIA_REPEAT | 媒体循环键 |
| KEY_IMAGES | 图像键 |
| KEY_BUTTONCONFIG | 按键配置键 |
| KEY_TASKMANAGER | 任务管理器 |
| KEY_JOURNAL | 日志按键 |
| KEY_CONTROLPANEL | 控制面板键 |
| KEY_APPSELECT | 应用程序选择键 |
| KEY_SCREENSAVER | 屏幕保护程序键 |
| KEY_ASSISTANT | 辅助键 |
| KEY_KBD_LAYOUT_NEXT | 下一个键盘布局键 |
| KEY_BRIGHTNESS_MIN | 最小亮度键 |
| KEY_BRIGHTNESS_MAX | 最大亮度键 |
| KEY_KBDINPUTASSIST_PREV | 键盘输入Assist_Previous |
| KEY_KBDINPUTASSIST_NEXT | 键盘输入Assist_Next |
| KEY_KBDINPUTASSIST_PREVGROUP | 键盘输入Assist_Previous |
| KEY_KBDINPUTASSIST_NEXTGROUP | 键盘输入Assist_Next |
| KEY_KBDINPUTASSIST_ACCEPT | 键盘输入Assist_Accept |
| KEY_KBDINPUTASSIST_CANCEL | 键盘输入Assist_Cancel |
| KEY_FRONT | 挡风玻璃除雾器开关 |
| KEY_SETUP | 设置键 |
| KEY_WAKEUP | 唤醒键 |
| KEY_SENDFILE | 发送文件按键 |
| KEY_DELETEFILE | 删除文件按键 |
| KEY_XFER | 文件传输(XFER)按键 |
| KEY_PROG1 | 程序键1 |
| KEY_PROG2 | 程序键2 |
| KEY_MSDOS | MS-DOS键(微软磁盘操作系统 |
| KEY_SCREENLOCK | 屏幕锁定键 |
| KEY_DIRECTION_ROTATE_DISPLAY | 方向旋转显示键 |
| KEY_CYCLEWINDOWS | Windows循环键 |
| KEY_COMPUTER | 按键 |
| KEY_EJECTCLOSECD | 弹出CD键 |
| KEY_ISO | ISO键 |
| KEY_MOVE | 移动键 |
| KEY_F13 | 按键'F13' |
| KEY_F14 | 按键'F14' |
| KEY_F15 | 按键'F15' |
| KEY_F16 | 按键'F16' |
| KEY_F17 | 按键'F17' |
| KEY_F18 | 按键'F18' |
| KEY_F19 | 按键'F19' |
| KEY_F20 | 按键'F20' |
| KEY_F21 | 按键'F21' |
| KEY_F22 | 按键'F22' |
| KEY_F23 | 按键'F23' |
| KEY_F24 | 按键'F24' |
| KEY_PROG3 | 程序键3 |
| KEY_PROG4 | 程序键4 |
| KEY_DASHBOARD | 仪表板 |
| KEY_SUSPEND | 挂起键 |
| KEY_HP | 高阶路径键 |
| KEY_SOUND | 音量键 |
| KEY_QUESTION | 疑问按键 |
| KEY_CONNECT | 连接键 |
| KEY_SPORT | 运动按键 |
| KEY_SHOP | 商城键 |
| KEY_ALTERASE | 交替键 |
| KEY_SWITCHVIDEOMODE | 在可用视频之间循环输出(监视器/LCD/TV输出/等) |
| KEY_BATTERY | 电池按键 |
| KEY_BLUETOOTH | 蓝牙按键 |
| KEY_WLAN | 无线局域网 |
| KEY_UWB | 超宽带(UWB) |
| KEY_WWAN_WIMAX | WWAN WiMAX按键 |
| KEY_RFKILL | 控制所有收音机的键 |
| KEY_CHANNEL | 向上频道键 |
| KEY_BTN_0 | 按键0 |
| KEY_BTN_1 | 按键1 |
| KEY_BTN_2 | 按键2 |
| KEY_BTN_3 | 按键3 |
| KEY_BTN_4 | 按键4 |
| KEY_BTN_5 | 按键5 |
| KEY_BTN_6 | 按键6 |
| KEY_BTN_7 | 按键7 |
| KEY_BTN_8 | 按键8 |
| KEY_BTN_9 | 按键9 |
**起始版本:**
10
### OH_NativeXComponent_MouseEventAction
```
enum OH_NativeXComponent_MouseEventAction
```
**描述:**
鼠标事件动作。
| 枚举值 | 描述 |
| --------------------------------- | ---------------- |
| OH_NATIVEXCOMPONENT_MOUSE_NONE | 无效鼠标事件 。 |
| OH_NATIVEXCOMPONENT_MOUSE_PRESS | 鼠标按键按下时触发鼠标事件。 |
| OH_NATIVEXCOMPONENT_MOUSE_RELEASE | 鼠标按键松开时触发鼠标事件。 |
| OH_NATIVEXCOMPONENT_MOUSE_MOVE | 鼠标在屏幕上移动时触发鼠标事件。 |
**起始版本:**
9
### OH_NativeXComponent_MouseEventButton
```
enum OH_NativeXComponent_MouseEventButton
```
**描述:**
鼠标事件按键。
| 枚举值 | 描述 |
| ---------------------------------- | ----------------- |
| OH_NATIVEXCOMPONENT_NONE_BUTTON | 鼠标无按键操作时触发鼠标事件。 |
| OH_NATIVEXCOMPONENT_LEFT_BUTTON | 按下鼠标左键时触发鼠标事件。 |
| OH_NATIVEXCOMPONENT_RIGHT_BUTTON | 按下鼠标右键时触发鼠标事件。 |
| OH_NATIVEXCOMPONENT_MIDDLE_BUTTON | 按下鼠标中键时触发鼠标事件。 |
| OH_NATIVEXCOMPONENT_BACK_BUTTON | 按下鼠标左侧后退键时触发鼠标事件。 |
| OH_NATIVEXCOMPONENT_FORWARD_BUTTON | 按下鼠标左侧前进键时触发鼠标事件。 |
**起始版本:**
9
### OH_NativeXComponent_TouchEventType
```
enum OH_NativeXComponent_TouchEventType
```
**描述:**
触摸事件类型。
| 枚举值 | 描述 |
| --------------------------- | --------------------- |
| OH_NATIVEXCOMPONENT_DOWN | 手指按下时触发触摸事件。 |
| OH_NATIVEXCOMPONENT_UP | 手指抬起时触发触摸事件。 |
| OH_NATIVEXCOMPONENT_MOVE | 手指按下状态下在屏幕上移动时触发触摸事件。 |
| OH_NATIVEXCOMPONENT_CANCEL | 触摸事件取消时触发事件。 |
| OH_NATIVEXCOMPONENT_UNKNOWN | 无效的触摸类型。 |
**起始版本:**
8
### OH_NativeXComponent_TouchPointToolType
```
enum OH_NativeXComponent_TouchPointToolType
```
**描述:**
触摸点工具类型
| 枚举值 | 描述 |
| -------------------------------------- | -------- |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_UNKNOWN | 未识别工具类型。 |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_FINGER | 表示用手指。 |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_PEN | 表示用触笔。 |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_RUBBER | 表示用橡皮擦。 |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_BRUSH | 表示用画笔。 |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_PENCIL | 表示用铅笔。 |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_AIRBRUSH | 表示用气笔。 |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_MOUSE | 表示用鼠标。 |
| OH_NATIVEXCOMPONENT_TOOL_TYPE_LENS | 表示用晶状体。 |
**起始版本:**
9
## 函数说明
### OH_NativeXComponent_AttachNativeRootNode()
```
int32_t OH_NativeXComponent_AttachNativeRootNode (OH_NativeXComponent * component, ArkUI_NodeHandle root )
```
**描述:**
将通过ArkUI的native接口创建出来的UI组件挂载到当前XComponent上。
**起始版本:** 12
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| root | 指向Native接口创建的组件实例的指针。 |
**返回:**
0:成功。
-2:参数异常。
### OH_NativeXComponent_DetachNativeRootNode()
```
int32_t OH_NativeXComponent_DetachNativeRootNode (OH_NativeXComponent * component, ArkUI_NodeHandle root )
```
**描述:**
将ArkUI的native组件从当前XComponent上卸载.
**起始版本:** 12
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| root | 指向Native接口创建的组件实例的指针。 |
**返回:**
0:成功。
-2:参数异常。
### OH_NativeXComponent_GetKeyEvent()
```
int32_t OH_NativeXComponent_GetKeyEvent (OH_NativeXComponent * component, OH_NativeXComponent_KeyEvent ** keyEvent )
```
**描述:**
获取ArkUI XComponent调度的按键事件。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| keyEvent | 表示指向当前按键事件指针的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_GetKeyEventAction()
```
int32_t OH_NativeXComponent_GetKeyEventAction (OH_NativeXComponent_KeyEvent * keyEvent, OH_NativeXComponent_KeyAction * action )
```
**描述:**
获取传入按键事件的动作。
**参数:**
| 名称 | 描述 |
| -------- | -------------------------------------- |
| keyEvent | 表示指向OH_NativeXComponent_KeyEvent实例的指针。 |
| action | 表示指向按键事件动作的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_GetKeyEventCode()
```
int32_t OH_NativeXComponent_GetKeyEventCode (OH_NativeXComponent_KeyEvent * keyEvent, OH_NativeXComponent_KeyCode * code )
```
**描述:**
获取传入按键事件的按键码。
**参数:**
| 名称 | 描述 |
| -------- | -------------------------------------- |
| keyEvent | 表示指向OH_NativeXComponent_KeyEvent实例的指针。 |
| code | 表示指向按键事件按键码的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_GetKeyEventDeviceId()
```
int32_t OH_NativeXComponent_GetKeyEventDeviceId (OH_NativeXComponent_KeyEvent * keyEvent, int64_t * deviceId )
```
**描述:**
获取传入按键事件的设备id。
**参数:**
| 名称 | 描述 |
| -------- | -------------------------------------- |
| keyEvent | 表示指向OH_NativeXComponent_KeyEvent实例的指针。 |
| deviceId | 表示指向按键事件设备id的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_GetKeyEventSourceType()
```
int32_t OH_NativeXComponent_GetKeyEventSourceType (OH_NativeXComponent_KeyEvent * keyEvent, OH_NativeXComponent_EventSourceType * sourceType )
```
**描述:**
获取传入按键事件的事件源类型。
**参数:**
| 名称 | 描述 |
| ---------- | -------------------------------------- |
| keyEvent | 表示指向OH_NativeXComponent_KeyEvent实例的指针。 |
| sourceType | 表示指向按键事件事件源类型的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_GetKeyEventTimeStamp()
```
int32_t OH_NativeXComponent_GetKeyEventTimeStamp (OH_NativeXComponent_KeyEvent * keyEvent, int64_t * timeStamp )
```
**描述:**
获取传入按键事件的时间戳。
**参数:**
| 名称 | 描述 |
| --------- | -------------------------------------- |
| keyEvent | 表示指向OH_NativeXComponent_KeyEvent实例的指针。 |
| timeStamp | 表示指向按键事件时间戳的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_GetMouseEvent()
```
int32_t OH_NativeXComponent_GetMouseEvent (OH_NativeXComponent * component, const void * window, OH_NativeXComponent_MouseEvent * mouseEvent )
```
**描述:**
获取ArkUI XComponent调度的鼠标事件
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| window | 表示NativeWindow句柄 |
| mouseEvent | 指示指向当前鼠标事件的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
9
### OH_NativeXComponent_GetNativeXComponent()
```
OH_NativeXComponent* OH_NativeXComponent_GetNativeXComponent (ArkUI_NodeHandle node)
```
**描述:**
基于Native接口创建的组件实例获取OH_NativeXComponent类型的指针。
**起始版本:** 12
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| node | 指向Native接口创建的组件实例的指针。 |
**返回:**
表示指向OH_NativeXComponent实例的指针。
### OH_NativeXComponent_GetTouchEvent()
```
int32_t OH_NativeXComponent_GetTouchEvent (OH_NativeXComponent * component, const void * window, OH_NativeXComponent_TouchEvent * touchEvent )
```
**描述:**
获取ArkUI XComponent调度的触摸事件。
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| window | 表示NativeWindow句柄。 |
| touchEvent | 指示指向当前触摸事件的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
8
### OH_NativeXComponent_GetTouchPointTiltX()
```
int32_t OH_NativeXComponent_GetTouchPointTiltX (OH_NativeXComponent * component, uint32_t pointIndex, float * tiltX )
```
**描述:**
获取ArkUI XComponent触摸点倾斜与X轴角度。
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| pointIndex | 表示触摸点的指针索引。 |
| tiltX | 表示指向X倾斜度的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
9
### OH_NativeXComponent_GetTouchPointTiltY()
```
int32_t OH_NativeXComponent_GetTouchPointTiltY (OH_NativeXComponent * component, uint32_t pointIndex, float * tiltY )
```
**描述:**
获取ArkUI XComponent触摸点倾斜与Y轴角度。
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| pointIndex | 表示触摸点的指针索引。 |
| tiltY | 表示指向Y倾斜度的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
9
### OH_NativeXComponent_GetTouchPointWindowX()
```
int32_t OH_NativeXComponent_GetTouchPointWindowX(OH_NativeXComponent * component, uint32_t pointIndex, float * windowX )
```
**描述:**
获取ArkUI XComponent触摸点相对于应用窗口左上角的X坐标。
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| pointIndex | 表示触摸点的指针索引。 |
| windowX | 表示指向触摸点相对于应用窗口左上角的X坐标的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
12
### OH_NativeXComponent_GetTouchPointWindowY()
```
int32_t OH_NativeXComponent_GetTouchPointWindowY(OH_NativeXComponent * component, uint32_t pointIndex, float * windowY )
```
**描述:**
获取ArkUI XComponent触摸点相对于应用窗口左上角的Y坐标。
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| pointIndex | 表示触摸点的指针索引。 |
| windowY | 表示指向触摸点相对于应用窗口左上角的Y坐标的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
12
### OH_NativeXComponent_GetTouchPointDisplayX()
```
int32_t OH_NativeXComponent_GetTouchPointDisplayX(OH_NativeXComponent * component, uint32_t pointIndex, float * displayX )
```
**描述:**
获取ArkUI XComponent触摸点相对于应用所在屏幕左上角的X坐标。
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| pointIndex | 表示触摸点的指针索引。 |
| displayX | 表示指向触摸点相对于应用所在屏幕左上角的X坐标的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
12
### OH_NativeXComponent_GetTouchPointDisplayY()
```
int32_t OH_NativeXComponent_GetTouchPointDisplayY(OH_NativeXComponent * component, uint32_t pointIndex, float * displayY )
```
**描述:**
获取ArkUI XComponent触摸点相对于应用所在屏幕左上角的Y坐标。
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| pointIndex | 表示触摸点的指针索引。 |
| displayY | 表示指向触摸点相对于应用所在屏幕左上角的Y坐标的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
12
### OH_NativeXComponent_GetTouchPointToolType()
```
int32_t OH_NativeXComponent_GetTouchPointToolType (OH_NativeXComponent * component, uint32_t pointIndex, OH_NativeXComponent_TouchPointToolType * toolType )
```
**描述:**
获取ArkUI XComponent触摸点工具类型。
**参数:**
| 名称 | 描述 |
| ---------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| pointIndex | 表示触摸点的指针索引。 |
| toolType | 表示指向工具类型的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
9
### OH_NativeXComponent_GetXComponentId()
```
int32_t OH_NativeXComponent_GetXComponentId (OH_NativeXComponent * component, char * id, uint64_t * size )
```
**描述:**
获取ArkUI XComponent的id。
**参数:**
| 名称 | 描述 |
| --------- | ------------------------------------------------------------ |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| id | 指示用于保存此OH_NativeXComponent实例的ID的字符缓冲区。 请注意,空终止符将附加到字符缓冲区,因此字符缓冲区的大小应至少比真实id长度大一个单位。 建议字符缓冲区的大小为[OH_XCOMPONENT_ID_LEN_MAX + 1]。 |
| size | 指示指向id长度的指针,用于接收id的长度信息。 |
**返回:**
返回执行的状态代码。
**起始版本:**
8
### OH_NativeXComponent_GetXComponentOffset()
```
int32_t OH_NativeXComponent_GetXComponentOffset (OH_NativeXComponent * component, const void * window, double * x, double * y )
```
**描述:**
获取ArkUI XComponent持有的surface相对其父组件左顶点的偏移量。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| window | 表示NativeWindow句柄。 |
| x | 指示指向当前surface相对于XComponent父组件左顶点x坐标的指针。 |
| y | 指示指向当前surface相对于XComponent父组件左顶点y坐标的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
8
### OH_NativeXComponent_GetXComponentSize()
```
int32_t OH_NativeXComponent_GetXComponentSize (OH_NativeXComponent * component, const void * window, uint64_t * width, uint64_t * height )
```
**描述:**
获取ArkUI XComponent持有的surface的大小。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| window | 表示NativeWindow句柄。 |
| width | 指示指向当前surface宽度的指针。 |
| height | 指示指向当前surface高度的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
8
### OH_NativeXComponent_RegisterBlurEventCallback()
```
int32_t OH_NativeXComponent_RegisterBlurEventCallback (OH_NativeXComponent * component, void(*callback)(OH_NativeXComponent *component, void *window))
```
**描述:**
为此OH_NativeXComponent实例注册失焦事件回调。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向失焦事件回调的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_RegisterCallback()
```
int32_t OH_NativeXComponent_RegisterCallback (OH_NativeXComponent * component, OH_NativeXComponent_Callback * callback )
```
**描述:**
为此OH_NativeXComponent实例注册回调。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向surface生命周期和触摸事件回调的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
8
### OH_NativeXComponent_RegisterFocusEventCallback()
```
int32_t OH_NativeXComponent_RegisterFocusEventCallback (OH_NativeXComponent * component, void(*callback)(OH_NativeXComponent *component, void *window))
```
**描述:**
为此OH_NativeXComponent实例注册获焦事件回调。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向获焦事件回调的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_RegisterKeyEventCallback()
```
int32_t OH_NativeXComponent_RegisterKeyEventCallback (OH_NativeXComponent * component, void(*callback)(OH_NativeXComponent *component, void *window))
```
**描述:**
为此OH_NativeXComponent实例注册按键事件回调。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向按键事件回调的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
10
### OH_NativeXComponent_RegisterKeyEventCallbackWithResult()
```
int32_t OH_NativeXComponent_RegisterKeyEventCallbackWithResult (OH_NativeXComponent * component, bool(*callback)(OH_NativeXComponent *component, void *window))
```
**描述:**
为此OH_NativeXComponent实例注册带有返回值的按键事件回调。通过此接口注册的按键事件回调都必须返回一个结果,即true或false。当返回值为true时,该事件将不会继续分发;当返回值为false时,该事件将按照事件处理流程继续分发。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向按键事件回调的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
14
### OH_NativeXComponent_RegisterMouseEventCallback()
```
int32_t OH_NativeXComponent_RegisterMouseEventCallback (OH_NativeXComponent * component, OH_NativeXComponent_MouseEvent_Callback * callback )
```
**描述:**
为此OH_NativeXComponent实例注册鼠标事件回调。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向鼠标事件回调的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
9
### OH_NativeXComponent_RegisterOnFrameCallback()
```
int32_t OH_NativeXComponent_RegisterOnFrameCallback (OH_NativeXComponent* component, void (*callback)(OH_NativeXComponent *component, uint64_t timestamp, uint64_t targetTimestamp))
```
**描述:**
为此OH_NativeXComponent实例注册显示更新回调,并使能每帧回调此函数。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向显示更新回调的指针。 |
| timestamp | 当前帧到达的时间(单位:纳秒)。 |
| targetTimestamp | 下一帧预期到达的时间(单位:纳秒)。 |
**返回:**
返回执行的状态代码。
**起始版本:**
11
### OH_NativeXComponent_RegisterOnTouchInterceptCallback()
```
int32_t OH_NativeXComponent_RegisterOnTouchInterceptCallback (OH_NativeXComponent * component, HitTestMode(*callback)(OH_NativeXComponent *component, ArkUI_UIInputEvent *event))
```
**描述:**
为此OH_NativeXComponent实例注册自定义事件拦截回调,并使能在做触摸测试时回调此函数。
**起始版本:** 12
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向自定义事件拦截回调的指针。 |
**返回:**
0 - 成功。 401 - 参数异常。
### OH_NativeXComponent_RegisterUIInputEventCallback()
```
int32_t OH_NativeXComponent_RegisterUIInputEventCallback (OH_NativeXComponent * component, void(*callback)(OH_NativeXComponent *component, ArkUI_UIInputEvent *event, ArkUI_UIInputEvent_Type type), ArkUI_UIInputEvent_Type type )
```
**描述:**
为此OH_NativeXComponent实例注册UI输入事件回调,并使能收到UI输入事件时回调此函数。
**起始版本:** 12
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向UI输入事件回调的指针。 |
| type | 指示当前UI输入事件的类型。 |
**返回:**
返回执行的状态代码。
### OH_NativeXComponent_SetExpectedFrameRateRange()
```
int32_t OH_NativeXComponent_SetExpectedFrameRateRange (OH_NativeXComponent * component, OH_NativeXComponent_ExpectedRateRange * range )
```
**描述:**
设置期望帧率范围。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| range | 表示指向期望帧率范围的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
11
### OH_NativeXComponent_UnregisterOnFrameCallback()
```
int32_t OH_NativeXComponent_UnregisterOnFrameCallback (OH_NativeXComponent * component)
```
**描述:**
为此OH_NativeXComponent实例取消注册回调函数,并关闭每帧回调此函数。
**参数:**
| 名称 | 描述 |
| -------- | -------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
11
### OH_NativeXComponent_SetNeedSoftKeyboard()
```
int32_t OH_NativeXComponent_SetNeedSoftKeyboard(OH_NativeXComponent* component, bool isNeedSoftKeyboard)
```
**描述:**
为此OH_NativeXComponent实例设置是否需要软键盘。
**参数:**
| 名称 | 描述 |
| ------------------ | --------------------------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| isNeedSoftKeyboard | 表示此OH_NativeXComponent实例是否需要软键盘。 |
**返回:**
返回执行的状态代码。
**起始版本:**
12
### OH_NativeXComponent_RegisterSurfaceShowCallback()
```
int32_t OH_NativeXComponent_RegisterSurfaceShowCallback (OH_NativeXComponent * component, void(*callback)(OH_NativeXComponent *component, void *window))
```
**描述:**
为此OH_NativeXComponent实例注册surface显示回调,该回调在应用从后台返回前台后触发。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向surface显示回调的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
12
### OH_NativeXComponent_RegisterSurfaceHideCallback()
```
int32_t OH_NativeXComponent_RegisterSurfaceHideCallback (OH_NativeXComponent * component, void(*callback)(OH_NativeXComponent *component, void *window))
```
**描述:**
为此OH_NativeXComponent实例注册surface隐藏回调,该回调在应用从前台来到后台后触发。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| callback | 指示指向surface隐藏回调的指针。 |
**返回:**
返回执行的状态代码。
**起始版本:**
12
### OH_NativeXComponent_GetTouchEventSourceType()
```
int32_t OH_NativeXComponent_GetTouchEventSourceType (OH_NativeXComponent* component, int32_t pointId, OH_NativeXComponent_EventSourceType* sourceType);
```
**描述:**
获取ArkUI XComponent触摸事件的输入设备类型。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| pointId | 表示触摸点的id。
**说明:**
仅当传入的id为触发该touch事件的触点id时,可正确返回输入设备类型,否则返回OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER。 |
| sourceType | 指示指向返回设备类型的指针。 |
**返回:**
OH_NATIVEXCOMPONENT_RESULT_SUCCESS - 成功。
OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER - 参数异常。
OH_NATIVEXCOMPONENT_RESULT_FAILED - 其他错误。
**起始版本:**
12
### OH_NativeXComponent_GetNativeAccessibilityProvider()
```
int32_t OH_NativeXComponent_GetNativeAccessibilityProvider(
OH_NativeXComponent* component, ArkUI_AccessibilityProvider** handle);
```
**描述:**
获取ArkUI XComponent无障碍接入句柄指针。
**参数:**
| 名称 | 描述 |
| --------- | --------------------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| handle | 返回无障碍接入句柄指针。 |
**返回:**
OH_NATIVEXCOMPONENT_RESULT_SUCCESS - 成功。
OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER - 参数异常。
OH_NATIVEXCOMPONENT_RESULT_FAILED - 其他错误。
**起始版本:**
13
## 变量说明
### OH_XCOMPONENT_ID_LEN_MAX
```
const uint32_t OH_XCOMPONENT_ID_LEN_MAX = 128
```
**描述:**
ArkUI XComponent的id最大长度。
**起始版本:**
8
### OH_MAX_TOUCH_POINTS_NUMBER
```
const uint32_t OH_MAX_TOUCH_POINTS_NUMBER = 10
```
**描述:**
触摸事件中的可识别的触摸点个数最大值。
**起始版本:**
8
### action
```
OH_NativeXComponent_MouseEventAction OH_NativeXComponent_MouseEvent::action
```
**描述:**
当前鼠标事件动作。
**起始版本:**
8
### button
```
OH_NativeXComponent_MouseEventButton OH_NativeXComponent_MouseEvent::button
```
**描述:**
鼠标事件按键。
**起始版本:**
8
### deviceId
```
int64_t OH_NativeXComponent_TouchEvent::deviceId = 0
```
**描述:**
产生当前触摸事件的设备的ID。
**起始版本:**
8
### DispatchHoverEvent
```
void(* OH_NativeXComponent_MouseEvent_Callback::DispatchHoverEvent) (OH_NativeXComponent *component, bool isHover)
```
**描述:**
当悬停事件被触发时调用。
**起始版本:**
8
### DispatchMouseEvent
```
void(* OH_NativeXComponent_MouseEvent_Callback::DispatchMouseEvent) (OH_NativeXComponent *component, void *window)
```
**描述:**
当鼠标事件被触发时调用。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| window | 表示NatievWindow句柄。 |
**起始版本:**
8
### DispatchTouchEvent
```
void(* OH_NativeXComponent_Callback::DispatchTouchEvent) (OH_NativeXComponent *component, void *window)
```
**描述:**
当触摸事件被触发时调用。
**起始版本:**
8
### force [1/2]
```
float OH_NativeXComponent_TouchPoint::force = 0.0
```
**描述:**
当前触摸事件的压力。
**起始版本:**
8
### force [2/2]
```
float OH_NativeXComponent_TouchEvent::force = 0.0
```
**描述:**
当前触摸事件的压力。
**起始版本:**
8
### id [1/2]
```
int32_t OH_NativeXComponent_TouchPoint::id = 0
```
**描述:**
手指的唯一标识符。
**起始版本:**
8
### id [2/2]
```
int32_t OH_NativeXComponent_TouchEvent::id = 0
```
**描述:**
手指的唯一标识符。
**起始版本:**
8
### isPressed
```
bool OH_NativeXComponent_TouchPoint::isPressed = false
```
**描述:**
当前点是否被按下。
**起始版本:**
8
### numPoints
```
uint32_t OH_NativeXComponent_TouchEvent::numPoints = 0
```
**描述:**
当前接触点的数量。
**起始版本:**
8
### OnSurfaceChanged
```
void(* OH_NativeXComponent_Callback::OnSurfaceChanged) (OH_NativeXComponent *component, void *window)
```
**描述:**
当surface改变时调用。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| window | 表示NatievWindow句柄。 |
**起始版本:**
8
### OnSurfaceCreated
```
void(* OH_NativeXComponent_Callback::OnSurfaceCreated) (OH_NativeXComponent *component, void *window)
```
**描述:**
创建surface时调用。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| window | 表示NatievWindow句柄。 |
**起始版本:**
8
### OnSurfaceDestroyed
```
void(* OH_NativeXComponent_Callback::OnSurfaceDestroyed) (OH_NativeXComponent *component, void *window)
```
**描述:**
当surface被销毁时调用。
**参数:**
| 名称 | 描述 |
| --------- | ----------------------------- |
| component | 表示指向OH_NativeXComponent实例的指针。 |
| window | 表示NatievWindow句柄。 |
**起始版本:**
8
### screenX [1/3]
```
float OH_NativeXComponent_TouchPoint::screenX = 0.0
```
**描述:**
触摸点相对于XComponent所在应用窗口左上角的x坐标。
**起始版本:**
8
### screenX [2/3]
```
float OH_NativeXComponent_TouchEvent::screenX = 0.0
```
**描述:**
触摸点相对于所在应用窗口左上角的x坐标。
**起始版本:**
8
### screenX [3/3]
```
float OH_NativeXComponent_MouseEvent::screenX
```
**描述:**
点击触点相对于所在应用屏幕左上角的x轴坐标。
**起始版本:**
8
### screenY [1/3]
```
float OH_NativeXComponent_TouchPoint::screenY = 0.0
```
**描述:**
触摸点相对于XComponent所在应用窗口左上角的y坐标。
**起始版本:**
8
### screenY [2/3]
```
float OH_NativeXComponent_TouchEvent::screenY = 0.0
```
**描述:**
触摸点相对于所在应用窗口左上角的y坐标。
**起始版本:**
8
### screenY [3/3]
```
float OH_NativeXComponent_MouseEvent::screenY
```
**描述:**
点击触点相对于所在应用屏幕左上角的y轴坐标。
**起始版本:**
8
### size [1/2]
```
double OH_NativeXComponent_TouchPoint::size = 0.0
```
**描述:**
指垫和屏幕之间的接触面积。
**起始版本:**
8
### size [2/2]
```
double OH_NativeXComponent_TouchEvent::size = 0.0
```
**描述:**
指垫和屏幕之间的接触面积。
**起始版本:**
8
### timeStamp [1/2]
```
long long OH_NativeXComponent_TouchPoint::timeStamp = 0
```
**描述:**
当前触摸事件的时间戳。
**起始版本:**
8
### timeStamp [2/2]
```
long long OH_NativeXComponent_TouchEvent::timeStamp = 0
```
**描述:**
当前触摸事件的时间戳。
**起始版本:**
8
### timestamp
```
int64_t OH_NativeXComponent_MouseEvent::timestamp
```
**描述:**
当前鼠标事件的时间戳。
**起始版本:**
8
### touchPoints
```
OH_NativeXComponent_TouchPoint OH_NativeXComponent_TouchEvent::touchPoints[OH_MAX_TOUCH_POINTS_NUMBER]
```
**描述:**
当前触摸点的数组。
**起始版本:**
8
### type [1/2]
```
OH_NativeXComponent_TouchEventType OH_NativeXComponent_TouchPoint::type = OH_NativeXComponent_TouchEventType::OH_NATIVEXCOMPONENT_UNKNOWN
```
**描述:**
触摸事件的触摸类型。
**起始版本:**
8
### type [2/2]
```
OH_NativeXComponent_TouchEventType OH_NativeXComponent_TouchEvent::type = OH_NativeXComponent_TouchEventType::OH_NATIVEXCOMPONENT_UNKNOWN
```
**描述:**
触摸事件的触摸类型。
**起始版本:**
8
### x [1/3]
```
float OH_NativeXComponent_TouchPoint::x = 0.0
```
**描述:**
触摸点相对于XComponent组件左边缘的x坐标。
**起始版本:**
8
### x [2/3]
```
float OH_NativeXComponent_TouchEvent::x = 0.0
```
**描述:**
触摸点相对于XComponent组件左边缘的x坐标。
**起始版本:**
8
### x [3/3]
```
float OH_NativeXComponent_MouseEvent::x
```
**描述:**
点击触点相对于当前组件左上角的x轴坐标。
**起始版本:**
8
### y [1/3]
```
float OH_NativeXComponent_TouchPoint::y = 0.0
```
**描述:**
触摸点相对于XComponent组件上边缘的y坐标。
**起始版本:**
8
### y [2/3]
```
float OH_NativeXComponent_TouchEvent::y = 0.0
```
**描述:**
触摸点相对于XComponent组件上边缘的y坐标。
**起始版本:**
8
### y [3/3]
```
float OH_NativeXComponent_MouseEvent::y
```
**描述:**
点击触点相对于当前组件左上角的y轴坐标。
**起始版本:**
8
### expected
```
int32_t OH_NativeXComponent_ExpectedRateRange::expected
```
**描述:**
期望帧率。
**起始版本:**
11
### max
```
int32_t OH_NativeXComponent_ExpectedRateRange::max
```
**描述:**
期望帧率范围最大值。
**起始版本:**
11
### min
```
int32_t OH_NativeXComponent_ExpectedRateRange::min
```
**描述:**
期望帧率范围最小值。
**起始版本:**
11