1# Native XComponent 2 3 4描述ArkUI XComponent持有的surface和触摸事件,该事件可用于EGL/OpenGLES和媒体数据输入,并显示在ArkUI XComponent上。 5 6**起始版本:** 7 8 98 10 11 12## 汇总 13 14 15### 文件 16 17| 文件名称 | 描述 | 18| ------------------------------------------------------------ | ------------------------------------ | 19| [native_interface_xcomponent.h](native__interface__xcomponent_8h.md) | 声明用于访问Native XComponent的API。<br>引用文件:<ace/xcomponent/native_interface_xcomponent.h> | 20 21 22### 结构体 23 24| 结构体名称 | 描述 | 25| ------------------------------------------------------------ | ----------------------------------- | 26| [OH_NativeXComponent_TouchPoint](_o_h___native_x_component___touch_point.md) | 触摸事件中触摸点的信息。 | 27| [OH_NativeXComponent_TouchEvent](_o_h___native_x_component___touch_event.md) | 触摸事件。 | 28| [OH_NativeXComponent_MouseEvent](_o_h___native_x_component___mouse_event.md) | 鼠标事件。 | 29| [OH_NativeXComponent_Callback](_o_h___native_x_component___callback.md) | 注册surface生命周期和触摸事件回调。 | 30| [OH_NativeXComponent_MouseEvent_Callback](_o_h___native_x_component___mouse_event___callback.md) | 注册鼠标事件的回调。 | 31 32 33### 类型定义 34 35| 类型定义名称 | 描述 | 36| ------------------------------------------------------------ | ----------------------------------- | 37| [OH_NativeXComponent](#oh_nativexcomponent) | 提供封装的OH_NativeXComponent实例。 | 38| [OH_NativeXComponent_Callback](#oh_nativexcomponent_callback) | 注册surface生命周期和触摸事件回调。 | 39| [OH_NativeXComponent_MouseEvent_Callback](#oh_nativexcomponent_mouseevent_callback) | 注册鼠标事件的回调。 | 40 41 42### 枚举 43 44| 枚举名称 | 描述 | 45| ------------------------------------------------------------ | ------------------------------------ | 46| {OH_NATIVEXCOMPONENT_RESULT_SUCCESS = 0, <br>OH_NATIVEXCOMPONENT_RESULT_FAILED = -1, <br/>OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER = -2 } | [枚举](#anonymous-enum)API访问状态。 | 47| [OH_NativeXComponent_TouchEventType](#oh_nativexcomponent_toucheventtype) { <br/>OH_NATIVEXCOMPONENT_DOWN = 0, <br/>OH_NATIVEXCOMPONENT_UP, <br/>OH_NATIVEXCOMPONENT_MOVE, <br/>OH_NATIVEXCOMPONENT_CANCEL,<br/>OH_NATIVEXCOMPONENT_UNKNOWN } | 触摸事件类型。 | 48| [OH_NativeXComponent_TouchPointToolType](#oh_nativexcomponent_touchpointtooltype) {<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_UNKNOWN = 0,<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_FINGER,<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_PEN,<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_RUBBER,<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_BRUSH,<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_PENCIL,<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_AIRBRUSH,<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_MOUSE,<br/>OH_NATIVEXCOMPONENT_TOOL_TYPE_LENS } | 触摸点工具类型。 | 49| [OH_NativeXComponent_EventSourceType](#oh_nativexcomponent_eventsourcetype) {<br/>OH_NATIVEXCOMPONENT_SOURCE_TYPE_UNKNOWN = 0,<br/>OH_NATIVEXCOMPONENT_SOURCE_TYPE_MOUSE, OH_NATIVEXCOMPONENT_SOURCE_TYPE_TOUCHSCREEN,<br/>OH_NATIVEXCOMPONENT_SOURCE_TYPE_TOUCHPAD,<br/>OH_NATIVEXCOMPONENT_SOURCE_TYPE_JOYSTICK} | 触摸事件源类型。 | 50| [OH_NativeXComponent_MouseEventAction](#oh_nativexcomponent_mouseeventaction) { <br/>OH_NATIVEXCOMPONENT_MOUSE_NONE = 0, <br/>OH_NATIVEXCOMPONENT_MOUSE_PRESS, <br/>OH_NATIVEXCOMPONENT_MOUSE_RELEASE, <br/>OH_NATIVEXCOMPONENT_MOUSE_MOVE } | 鼠标事件动作。 | 51| [OH_NativeXComponent_MouseEventButton](#oh_nativexcomponent_mouseeventbutton) { <br/>OH_NATIVEXCOMPONENT_NONE_BUTTON = 0, <br/>OH_NATIVEXCOMPONENT_LEFT_BUTTON = 0x01, <br/>OH_NATIVEXCOMPONENT_RIGHT_BUTTON = 0x02, <br/>OH_NATIVEXCOMPONENT_MIDDLE_BUTTON = 0x04, <br/>OH_NATIVEXCOMPONENT_BACK_BUTTON = 0x08, <br/>OH_NATIVEXCOMPONENT_FORWARD_BUTTON = 0x10 } | 鼠标事件按键。 | 52 53 54### 函数 55 56| 函数名称 | 描述 | 57| ------------------------------------------------------------ | -------------------------------------------------- | 58| [OH_NativeXComponent_GetXComponentId](#oh_nativexcomponent_getxcomponentid) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, char \*id, uint64_t \*size) | 获取ArkUI XComponent的id。 | 59| [OH_NativeXComponent_GetXComponentSize](#oh_nativexcomponent_getxcomponentsize) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, const void \*window, uint64_t \*width, uint64_t \*height) | 获取ArkUI XComponent持有的surface的大小。 | 60| [OH_NativeXComponent_GetXComponentOffset](#oh_nativexcomponent_getxcomponentoffset) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, const void \*window, double \*x, double \*y) | 获取ArkUI XComponent组件相对屏幕左上顶点的偏移量。 | 61| [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调度的触摸事件。 | 62| [OH_NativeXComponent_GetTouchPointToolType](#oh_nativexcomponent_gettouchpointtooltype) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, uint32_t pointIndex, [OH_NativeXComponent_TouchPointToolType](#oh_nativexcomponent_touchpointtooltype) \*toolType) | 获取ArkUI XComponent触摸点工具类型。 | 63| [OH_NativeXComponent_GetTouchPointTiltX](#oh_nativexcomponent_gettouchpointtiltx) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, uint32_t pointIndex, float \*tiltX) | 获取ArkUI XComponent触摸点倾斜与X轴角度。 | 64| [OH_NativeXComponent_GetTouchPointTiltY](#oh_nativexcomponent_gettouchpointtilty) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, uint32_t pointIndex, float \*tiltY) | 获取ArkUI XComponent触摸点倾斜与Y轴角度。 | 65| [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调度的鼠标事件 | 66| [OH_NativeXComponent_RegisterCallback](#oh_nativexcomponent_registercallback) ([OH_NativeXComponent](#oh_nativexcomponent) \*component, [OH_NativeXComponent_Callback](_o_h___native_x_component___callback.md) \*callback) | 为此OH_NativeXComponent实例注册回调。 | 67| [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实例注册鼠标事件回调。 | 68 69 70### 变量 71 72| 变量名称 | 描述 | 73| ------------------------------------------------------------ | ----------------------------------------- | 74| [OH_XCOMPONENT_ID_LEN_MAX](#oh_xcomponent_id_len_max) = 128 | ArkUI XComponent的id最大长度。 | 75| [OH_MAX_TOUCH_POINTS_NUMBER](#oh_max_touch_points_number) = 10 | 触摸事件中的可识别的触摸点个数最大值。 | 76| [OH_NativeXComponent_TouchPoint::id](#id-12) = 0 | 手指的唯一标识符。 | 77| [OH_NativeXComponent_TouchPoint::screenX](#screenx-13) = 0.0 | 触摸点相对于XComponent所在应用窗口左上角的x坐标。 | 78| [OH_NativeXComponent_TouchPoint::screenY](#screeny-13) = 0.0 | 触摸点相对于XComponent所在应用窗口左上角的y坐标。 | 79| [OH_NativeXComponent_TouchPoint::x](#x-13) = 0.0 | 触摸点相对于XComponent组件左边缘的x坐标。 | 80| [OH_NativeXComponent_TouchPoint::y](#y-13) = 0.0 | 触摸点相对于XComponent组件上边缘的y坐标。 | 81| [OH_NativeXComponent_TouchPoint::type](#type-12) = OH_NativeXComponent_TouchEventType::OH_NATIVEXCOMPONENT_UNKNOWN | 触摸事件的触摸类型。 | 82| [OH_NativeXComponent_TouchPoint::size](#size-12) = 0.0 | 指垫和屏幕之间的接触面积。 | 83| [OH_NativeXComponent_TouchPoint::force](#force-12) = 0.0 | 当前触摸事件的压力。 | 84| [OH_NativeXComponent_TouchPoint::timeStamp](#timestamp-12) = 0 | 当前触摸事件的时间戳。 | 85| [OH_NativeXComponent_TouchPoint::isPressed](#ispressed) = false | 当前点是否被按下。 | 86| [OH_NativeXComponent_TouchEvent::id](#id-22) = 0 | 手指的唯一标识符。 | 87| [OH_NativeXComponent_TouchEvent::screenX](#screenx-23) = 0.0 | 触摸点相对于XComponent所在应用窗口左上角的x坐标。 | 88| [OH_NativeXComponent_TouchEvent::screenY](#screeny-23) = 0.0 | 触摸点相对于XComponent所在应用窗口左上角的y坐标。 | 89| [OH_NativeXComponent_TouchEvent::x](#x-23) = 0.0 | 触摸点相对于XComponent组件左边缘的x坐标。 | 90| [OH_NativeXComponent_TouchEvent::y](#y-23) = 0.0 | 触摸点相对于XComponent组件上边缘的y坐标。 | 91| [OH_NativeXComponent_TouchEvent::type](#type-22) = OH_NativeXComponent_TouchEventType::OH_NATIVEXCOMPONENT_UNKNOWN | 触摸事件的触摸类型。 | 92| [OH_NativeXComponent_TouchEvent::size](#size-22) = 0.0 | 指垫和屏幕之间的接触面积。 | 93| [OH_NativeXComponent_TouchEvent::force](#force-22) = 0.0 | 当前触摸事件的压力。 | 94| [OH_NativeXComponent_TouchEvent::deviceId](#deviceid) = 0 | 产生当前触摸事件的设备的ID。 | 95| [OH_NativeXComponent_TouchEvent::timeStamp](#timestamp-22) = 0 | 当前触摸事件的时间戳。 | 96| [OH_NativeXComponent_TouchEvent::touchPoints](#touchpoints) [OH_MAX_TOUCH_POINTS_NUMBER] | 当前触摸点的数组。 | 97| [OH_NativeXComponent_TouchEvent::numPoints](#numpoints) = 0 | 当前接触点的数量。 | 98| [OH_NativeXComponent_MouseEvent::x](#x-33) = 0.0 | 点击触点相对于当前组件左上角的x轴坐标。 | 99| [OH_NativeXComponent_MouseEvent::y](#y-33) = 0.0 | 点击触点相对于当前组件左上角的y轴坐标。 | 100| [OH_NativeXComponent_MouseEvent::screenX](#screenx-33) = 0.0 | 点击触点相对于XComponent所在应用窗口左上角的x轴坐标。 | 101| [OH_NativeXComponent_MouseEvent::screenY](#screeny-33) = 0.0 | 点击触点相对于XComponent所在应用窗口左上角的y轴坐标。 | 102| [OH_NativeXComponent_MouseEvent::timestamp](#timestamp) = 0 | 当前鼠标事件的时间戳。 | 103| [OH_NativeXComponent_MouseEvent::action](#action) = [OH_NativeXComponent_MouseEventAction::OH_NATIVEXCOMPONENT_MOUSE_NONE](#oh_nativexcomponent_mouseeventaction) | 当前鼠标事件动作。 | 104| [OH_NativeXComponent_MouseEvent::button](#button) = [OH_NativeXComponent_MouseEventButton::OH_NATIVEXCOMPONENT_NONE_BUTTON](#oh_nativexcomponent_mouseeventbutton) | 鼠标事件按键。 | 105| [OH_NativeXComponent_Callback::OnSurfaceCreated](#onsurfacecreated) | 创建surface时调用。 | 106| [OH_NativeXComponent_Callback::OnSurfaceChanged](#onsurfacechanged) | 当surface改变时调用。 | 107| [OH_NativeXComponent_Callback::OnSurfaceDestroyed](#onsurfacedestroyed) | 当surface被销毁时调用。 | 108| [OH_NativeXComponent_Callback::DispatchTouchEvent](#dispatchtouchevent) | 当触摸事件被触发时调用。 | 109| [OH_NativeXComponent_MouseEvent_Callback::DispatchMouseEvent](#dispatchmouseevent) | 当鼠标事件被触发时调用。 | 110| [OH_NativeXComponent_MouseEvent_Callback::DispatchHoverEvent](#dispatchhoverevent) | 当悬停事件被触发时调用。 | 111 112 113## 详细描述 114 115 116## 类型定义说明 117 118 119### OH_NativeXComponent 120 121 122``` 123typedef struct OH_NativeXComponent OH_NativeXComponent 124``` 125 126**描述:** 127 128提供封装的OH_NativeXComponent实例。 129 130**起始版本:** 131 1328 133 134 135### OH_NativeXComponent_Callback 136 137 138``` 139typedef struct OH_NativeXComponent_Callback OH_NativeXComponent_Callback 140``` 141 142**描述:** 143 144注册surface生命周期和触摸事件回调。 145 146**起始版本:** 147 1488 149 150 151### OH_NativeXComponent_MouseEvent_Callback 152 153 154``` 155typedef struct OH_NativeXComponent_MouseEvent_Callback OH_NativeXComponent_MouseEvent_Callback 156``` 157 158**描述:** 159 160注册鼠标事件的回调。 161 162**起始版本:** 163 1649 165 166 167## 枚举类型说明 168 169 170### anonymous enum 171 172 173``` 174anonymous enum 175``` 176 177**描述:** 178 179枚举API访问状态。 180 181| 枚举值 | 描述 | 182| ---------------------------------------- | ---------- | 183| OH_NATIVEXCOMPONENT_RESULT_SUCCESS | 成功结果。 | 184| OH_NATIVEXCOMPONENT_RESULT_FAILED | 失败结果。 | 185| OH_NATIVEXCOMPONENT_RESULT_BAD_PARAMETER | 无效参数。 | 186 187**起始版本:** 188 1898 190 191### OH_NativeXComponent_EventSourceType 192 193OH_NativeXComponent_EventSourceType 194 195 196``` 197enum OH_NativeXComponent_EventSourceType 198``` 199 200**描述:** 201 202触摸事件源类型。 203 204| 枚举值 | 描述 | 205| -------- | -------- | 206| OH_NATIVEXCOMPONENT_SOURCE_TYPE_UNKNOWN | 未知的输入源类型。 | 207| OH_NATIVEXCOMPONENT_SOURCE_TYPE_MOUSE | 表示输入源生成鼠标多点触摸事件。 | 208| OH_NATIVEXCOMPONENT_SOURCE_TYPE_TOUCHSCREEN | 表示输入源生成一个触摸屏多点触摸事件。 | 209| OH_NATIVEXCOMPONENT_SOURCE_TYPE_TOUCHPAD | 表示输入源生成一个触摸板多点触摸事件。 | 210| OH_NATIVEXCOMPONENT_SOURCE_TYPE_JOYSTICK | 表示输入源生成一个操纵杆多点触摸事件。 | 211 212**起始版本:** 213 2149 215 216### OH_NativeXComponent_MouseEventAction 217 218 219``` 220enum OH_NativeXComponent_MouseEventAction 221``` 222 223**描述:** 224 225鼠标事件动作. 226 227| 枚举值 | 描述 | 228| --------------------------------- | -------------------------------- | 229| OH_NATIVEXCOMPONENT_MOUSE_NONE | 无效鼠标事件 。 | 230| OH_NATIVEXCOMPONENT_MOUSE_PRESS | 鼠标按键按下时触发鼠标事件。 | 231| OH_NATIVEXCOMPONENT_MOUSE_RELEASE | 鼠标按键松开时触发鼠标事件。 | 232| OH_NATIVEXCOMPONENT_MOUSE_MOVE | 鼠标在屏幕上移动时触发鼠标事件。 | 233 234**起始版本:** 235 2369 237 238 239### OH_NativeXComponent_MouseEventButton 240 241 242``` 243enum OH_NativeXComponent_MouseEventButton 244``` 245 246**描述:** 247 248鼠标事件按键。 249 250| 枚举值 | 描述 | 251| ---------------------------------- | ---------------------------------- | 252| OH_NATIVEXCOMPONENT_NONE_BUTTON | 鼠标无按键操作时触发鼠标事件。 | 253| OH_NATIVEXCOMPONENT_LEFT_BUTTON | 按下鼠标左键时触发鼠标事件。 | 254| OH_NATIVEXCOMPONENT_RIGHT_BUTTON | 按下鼠标右键时触发鼠标事件。 | 255| OH_NATIVEXCOMPONENT_MIDDLE_BUTTON | 按下鼠标中键时触发鼠标事件。 | 256| OH_NATIVEXCOMPONENT_BACK_BUTTON | 按下鼠标左侧后退键时触发鼠标事件。 | 257| OH_NATIVEXCOMPONENT_FORWARD_BUTTON | 按下鼠标左侧前进键时触发鼠标事件。 | 258 259**起始版本:** 260 2619 262 263 264### OH_NativeXComponent_TouchEventType 265 266 267``` 268enum OH_NativeXComponent_TouchEventType 269``` 270 271**描述:** 272 273触摸事件类型。 274 275| 枚举值 | 描述 | 276| --------------------------- | ------------------------------------------ | 277| OH_NATIVEXCOMPONENT_DOWN | 手指按下时触发触摸事件。 | 278| OH_NATIVEXCOMPONENT_UP | 手指抬起时触发触摸事件。 | 279| OH_NATIVEXCOMPONENT_MOVE | 手指按下状态下在屏幕上移动时触发触摸事件。 | 280| OH_NATIVEXCOMPONENT_CANCEL | 触摸事件取消时触发事件。 | 281| OH_NATIVEXCOMPONENT_UNKNOWN | 无效的触摸类型。 | 282 283**起始版本:** 284 2858 286 287### OH_NativeXComponent_TouchPointToolType 288 289 290``` 291enum OH_NativeXComponent_TouchPointToolType 292``` 293 294**描述:** 295 296触摸点工具类型 297 298| 枚举值 | 描述 | 299| -------- | -------- | 300| OH_NATIVEXCOMPONENT_TOOL_TYPE_UNKNOWN | 无效的工具类型。 | 301| OH_NATIVEXCOMPONENT_TOOL_TYPE_FINGER | 表示用手指。 | 302| OH_NATIVEXCOMPONENT_TOOL_TYPE_PEN | 表示用触笔。 | 303| OH_NATIVEXCOMPONENT_TOOL_TYPE_RUBBER | 表示用橡皮擦。 | 304| OH_NATIVEXCOMPONENT_TOOL_TYPE_BRUSH | 表示用画笔。 | 305| OH_NATIVEXCOMPONENT_TOOL_TYPE_PENCIL | 表示用铅笔。 | 306| OH_NATIVEXCOMPONENT_TOOL_TYPE_AIRBRUSH | 表示用气笔。 | 307| OH_NATIVEXCOMPONENT_TOOL_TYPE_MOUSE | 表示用鼠标。 | 308| OH_NATIVEXCOMPONENT_TOOL_TYPE_LENS | 表示用晶状体。 | 309 310**起始版本:** 311 3129 313 314 315## 函数说明 316 317 318### OH_NativeXComponent_GetMouseEvent() 319 320 321``` 322int32_t OH_NativeXComponent_GetMouseEvent (OH_NativeXComponent * component, const void * window, OH_NativeXComponent_MouseEvent * mouseEvent ) 323``` 324 325**描述:** 326 327获取ArkUI XComponent调度的鼠标事件 328 329**参数:** 330 331| Name | 描述 | 332| ---------- | --------------------------------------- | 333| component | 表示指向OH_NativeXComponent实例的指针。 | 334| window | 表示NativeWindow句柄。 | 335| mouseEvent | 指示指向当前鼠标事件的指针。 | 336 337**返回:** 338 339返回执行的状态代码。 340 341**起始版本:** 342 3439 344 345 346### OH_NativeXComponent_GetTouchEvent() 347 348 349``` 350int32_t OH_NativeXComponent_GetTouchEvent (OH_NativeXComponent * component, const void * window, OH_NativeXComponent_TouchEvent * touchEvent ) 351``` 352 353**描述:** 354 355获取ArkUI XComponent调度的触摸事件。 356 357**参数:** 358 359| Name | 描述 | 360| ---------- | --------------------------------------- | 361| component | 表示指向OH_NativeXComponent实例的指针。 | 362| window | 表示NativeWindow句柄。 | 363| touchEvent | 指示指向当前触摸事件的指针。 | 364 365**返回:** 366 367返回执行的状态代码。 368 369**起始版本:** 370 3718 372 373### OH_NativeXComponent_GetTouchPointTiltX() 374 375 376``` 377int32_t OH_NativeXComponent_GetTouchPointTiltX (OH_NativeXComponent * component, uint32_t pointIndex, float * tiltX ) 378``` 379 380**描述:** 381 382获取ArkUI XComponent触摸点倾斜与X轴角度。 383 384**参数:** 385 386| Name | 描述 | 387| -------- | -------- | 388| component | 表示指向OH_NativeXComponent实例的指针。 | 389| pointIndex | 表示触摸点的指针索引。 | 390| tiltX | 表示指向X倾斜度的指针。 | 391 392**返回:** 393 394返回执行的状态代码。 395 396**起始版本:** 397 3989 399 400 401### OH_NativeXComponent_GetTouchPointTiltY() 402 403 404``` 405int32_t OH_NativeXComponent_GetTouchPointTiltX (OH_NativeXComponent * component, uint32_t pointIndex, float * tiltY ) 406``` 407 408**描述:** 409 410获取ArkUI XComponent触摸点倾斜与Y轴角度。 411 412**参数:** 413 414| Name | 描述 | 415| -------- | -------- | 416| component | 表示指向OH_NativeXComponent实例的指针。 | 417| pointIndex | 表示触摸点的指针索引。 | 418| tiltX | 表示指向Y倾斜度的指针。 | 419 420**返回:** 421 422返回执行的状态代码。 423 424**起始版本:** 425 4269 427 428 429### OH_NativeXComponent_GetTouchPointToolType() 430 431 432``` 433int32_t OH_NativeXComponent_GetTouchPointToolType (OH_NativeXComponent * component, uint32_t pointIndex, OH_NativeXComponent_TouchPointToolType * toolType ) 434``` 435 436**描述:** 437 438获取ArkUI XComponent触摸点工具类型。 439 440**参数:** 441 442| Name | 描述 | 443| -------- | -------- | 444| component | 表示指向OH_NativeXComponent实例的指针。 | 445| pointIndex | 表示触摸点的指针索引。 | 446| toolType | 表示指向工具类型的指针。 | 447 448**返回:** 449 450返回执行的状态代码。 451 452**起始版本:** 453 4549 455 456 457### OH_NativeXComponent_GetXComponentId() 458 459 460``` 461int32_t OH_NativeXComponent_GetXComponentId (OH_NativeXComponent * component, char * id, uint64_t * size ) 462``` 463 464**描述:** 465 466获取ArkUI XComponent的id。 467 468**参数:** 469 470| Name | 描述 | 471| --------- | ------------------------------------------------------------ | 472| component | 表示指向OH_NativeXComponent实例的指针。 | 473| id | 指示用于保存此OH_NativeXComponent实例的ID的字符缓冲区。 请注意,空终止符将附加到字符缓冲区,因此字符缓冲区的大小应至少比真实id长度大一个单位。 建议字符缓冲区的大小为[OH_XCOMPONENT_ID_LEN_MAX + 1]。 | 474| size | 指示指向id长度的指针。 | 475 476**返回:** 477 478返回执行的状态代码。 479 480**起始版本:** 481 4828 483 484 485### OH_NativeXComponent_GetXComponentOffset() 486 487 488``` 489int32_t OH_NativeXComponent_GetXComponentOffset (OH_NativeXComponent * component, const void * window, double * x, double * y ) 490``` 491 492**描述:** 493 494获取ArkUI XComponent组件相对屏幕左上顶点的偏移量。 495 496**参数:** 497 498| Name | 描述 | 499| --------- | --------------------------------------- | 500| component | 表示指向OH_NativeXComponent实例的指针。 | 501| window | 表示NativeWindow句柄。 | 502| x | 指示指向当前surface的x坐标的指针。 | 503| y | 指示指向当前surface的y坐标的指针。 | 504 505**返回:** 506 507返回执行的状态代码。 508 509**起始版本:** 510 5118 512 513 514### OH_NativeXComponent_GetXComponentSize() 515 516 517``` 518int32_t OH_NativeXComponent_GetXComponentSize (OH_NativeXComponent * component, const void * window, uint64_t * width, uint64_t * height ) 519``` 520 521**描述:** 522 523获取ArkUI XComponent持有的surface的大小。 524 525**参数:** 526 527| Name | 描述 | 528| --------- | --------------------------------------- | 529| component | 表示指向OH_NativeXComponent实例的指针。 | 530| window | 表示NativeWindow句柄。 | 531| width | 指示指向当前surface宽度的指针。 | 532| height | 指示指向当前surface高度的指针。 | 533 534**返回:** 535 536返回执行的状态代码。 537 538**起始版本:** 539 5408 541 542 543### OH_NativeXComponent_RegisterCallback() 544 545 546``` 547int32_t OH_NativeXComponent_RegisterCallback (OH_NativeXComponent * component, OH_NativeXComponent_Callback * callback ) 548``` 549 550**描述:** 551 552为此OH_NativeXComponent实例注册回调。 553 554**参数:** 555 556| Name | 描述 | 557| --------- | --------------------------------------------- | 558| component | 表示指向OH_NativeXComponent实例的指针。 | 559| callback | 指示指向surface生命周期和触摸事件回调的指针。 | 560 561**返回:** 562 563返回执行的状态代码。 564 565**起始版本:** 566 5678 568 569 570### OH_NativeXComponent_RegisterMouseEventCallback() 571 572 573``` 574int32_t OH_NativeXComponent_RegisterMouseEventCallback (OH_NativeXComponent * component, OH_NativeXComponent_MouseEvent_Callback * callback ) 575``` 576 577**描述:** 578 579为此OH_NativeXComponent实例注册鼠标事件回调。 580 581**参数:** 582 583| Name | 描述 | 584| --------- | --------------------------------------- | 585| component | 表示指向OH_NativeXComponent实例的指针。 | 586| callback | 指示指向鼠标事件回调的指针。 | 587 588**返回:** 589 590返回执行的状态代码。 591 592**起始版本:** 593 5949 595 596 597## 变量说明 598 599 600### OH_XCOMPONENT_ID_LEN_MAX 601 602 603``` 604const uint32_t OH_XCOMPONENT_ID_LEN_MAX = 128 605``` 606 607**描述:** 608 609ArkUI XComponent的id最大长度。 610 611**起始版本:** 612 6138 614 615 616### OH_MAX_TOUCH_POINTS_NUMBER 617 618 619``` 620const uint32_t OH_MAX_TOUCH_POINTS_NUMBER = 10 621``` 622 623**描述:** 624 625触摸事件中的可识别的触摸点个数最大值。 626 627**起始版本:** 628 6298 630 631 632### action 633 634 635``` 636OH_NativeXComponent_MouseEventAction OH_NativeXComponent_MouseEvent::action 637``` 638 639**描述:** 640 641当前鼠标事件动作。 642 643**起始版本:** 644 6458 646 647 648### button 649 650 651``` 652OH_NativeXComponent_MouseEventButton OH_NativeXComponent_MouseEvent::button 653``` 654 655**描述:** 656 657鼠标事件按键 658 659**起始版本:** 660 6618 662 663 664### deviceId 665 666 667``` 668int64_t OH_NativeXComponent_TouchEvent::deviceId = 0 669``` 670 671**描述:** 672 673产生当前触摸事件的设备的ID。 674 675**起始版本:** 676 6778 678 679 680### DispatchHoverEvent 681 682 683``` 684void(* OH_NativeXComponent_MouseEvent_Callback::DispatchHoverEvent) (OH_NativeXComponent *component, bool isHover) 685``` 686 687**描述:** 688 689当悬停事件被触发时调用。 690 691**起始版本:** 692 6938 694 695 696### DispatchMouseEvent 697 698 699``` 700void(* OH_NativeXComponent_MouseEvent_Callback::DispatchMouseEvent) (OH_NativeXComponent *component, void *window) 701``` 702 703**描述:** 704 705当鼠标事件被触发时调用。 706 707**起始版本:** 708 7098 710 711 712### DispatchTouchEvent 713 714 715``` 716void(* OH_NativeXComponent_Callback::DispatchTouchEvent) (OH_NativeXComponent *component, void *window) 717``` 718 719**描述:** 720 721当触摸事件被触发时调用。 722 723**起始版本:** 724 7258 726 727 728### force [1/2] 729 730 731``` 732float OH_NativeXComponent_TouchPoint::force = 0.0 733``` 734 735**描述:** 736 737当前触摸事件的压力。 738 739**起始版本:** 740 7418 742 743 744### force [2/2] 745 746 747``` 748float OH_NativeXComponent_TouchEvent::force = 0.0 749``` 750 751**描述:** 752 753当前触摸事件的压力。 754 755**起始版本:** 756 7578 758 759 760### id [1/2] 761 762 763``` 764int32_t OH_NativeXComponent_TouchPoint::id = 0 765``` 766 767**描述:** 768 769手指的唯一标识符。 770 771**起始版本:** 772 7738 774 775 776### id [2/2] 777 778 779``` 780int32_t OH_NativeXComponent_TouchEvent::id = 0 781``` 782 783**描述:** 784 785手指的唯一标识符。 786 787**起始版本:** 788 7898 790 791 792### isPressed 793 794 795``` 796bool OH_NativeXComponent_TouchPoint::isPressed = false 797``` 798 799**描述:** 800 801当前点是否被按下。 802 803**起始版本:** 804 8058 806 807 808### numPoints 809 810 811``` 812uint32_t OH_NativeXComponent_TouchEvent::numPoints = 0 813``` 814 815**描述:** 816 817当前接触点的数量。 818 819**起始版本:** 820 8218 822 823 824### OnSurfaceChanged 825 826 827``` 828void(* OH_NativeXComponent_Callback::OnSurfaceChanged) (OH_NativeXComponent *component, void *window) 829``` 830 831**描述:** 832 833当surface改变时调用。 834 835**起始版本:** 836 8378 838 839 840### OnSurfaceCreated 841 842 843``` 844void(* OH_NativeXComponent_Callback::OnSurfaceCreated) (OH_NativeXComponent *component, void *window) 845``` 846 847**描述:** 848 849创建surface时调用。 850 851**起始版本:** 852 8538 854 855 856### OnSurfaceDestroyed 857 858 859``` 860void(* OH_NativeXComponent_Callback::OnSurfaceDestroyed) (OH_NativeXComponent *component, void *window) 861``` 862 863**描述:** 864 865当surface被销毁时调用。 866 867**起始版本:** 868 8698 870 871 872### screenX [1/3] 873 874 875``` 876float OH_NativeXComponent_TouchPoint::screenX = 0.0 877``` 878 879**描述:** 880 881触摸点相对于应用窗口左上角的x坐标。 882 883**起始版本:** 884 8858 886 887 888### screenX [2/3] 889 890 891``` 892float OH_NativeXComponent_TouchEvent::screenX = 0.0 893``` 894 895**描述:** 896 897触摸点相对于应用窗口左上角的x坐标。 898 899**起始版本:** 900 9018 902 903 904### screenX [3/3] 905 906 907``` 908float OH_NativeXComponent_MouseEvent::screenX 909``` 910 911**描述:** 912 913点击触点相对于应用窗口左上角的x轴坐标。 914 915**起始版本:** 916 9178 918 919 920### screenY [1/3] 921 922 923``` 924float OH_NativeXComponent_TouchPoint::screenY = 0.0 925``` 926 927**描述:** 928 929触摸点相对于应用窗口左上角的y坐标。 930 931**起始版本:** 932 9338 934 935 936### screenY [2/3] 937 938 939``` 940float OH_NativeXComponent_TouchEvent::screenY = 0.0 941``` 942 943**描述:** 944 945触摸点相对于应用窗口左上角的y坐标。 946 947**起始版本:** 948 9498 950 951 952### screenY [3/3] 953 954 955``` 956float OH_NativeXComponent_MouseEvent::screenY 957``` 958 959**描述:** 960 961点击触点相对于应用窗口左上角的y轴坐标。 962 963**起始版本:** 964 9658 966 967 968### size [1/2] 969 970 971``` 972double OH_NativeXComponent_TouchPoint::size = 0.0 973``` 974 975**描述:** 976 977指垫和屏幕之间的接触面积。 978 979**起始版本:** 980 9818 982 983 984### size [2/2] 985 986 987``` 988double OH_NativeXComponent_TouchEvent::size = 0.0 989``` 990 991**描述:** 992 993指垫和屏幕之间的接触面积。 994 995**起始版本:** 996 9978 998 999 1000### timeStamp [1/2] 1001 1002 1003``` 1004long long OH_NativeXComponent_TouchPoint::timeStamp = 0 1005``` 1006 1007**描述:** 1008 1009当前触摸事件的时间戳。 1010 1011**起始版本:** 1012 10138 1014 1015 1016### timeStamp [2/2] 1017 1018 1019``` 1020long long OH_NativeXComponent_TouchEvent::timeStamp = 0 1021``` 1022 1023**描述:** 1024 1025当前触摸事件的时间戳。 1026 1027**起始版本:** 1028 10298 1030 1031 1032### timestamp 1033 1034 1035``` 1036int64_t OH_NativeXComponent_MouseEvent::timestamp 1037``` 1038 1039**描述:** 1040 1041当前鼠标事件的时间戳 1042 1043**起始版本:** 1044 10458 1046 1047 1048### touchPoints 1049 1050 1051``` 1052OH_NativeXComponent_TouchPoint OH_NativeXComponent_TouchEvent::touchPoints[OH_MAX_TOUCH_POINTS_NUMBER] 1053``` 1054 1055**描述:** 1056 1057当前触摸点的数组。 1058 1059**起始版本:** 1060 10618 1062 1063 1064### type [1/2] 1065 1066 1067``` 1068OH_NativeXComponent_TouchEventType OH_NativeXComponent_TouchPoint::type = OH_NativeXComponent_TouchEventType::OH_NATIVEXCOMPONENT_UNKNOWN 1069``` 1070 1071**描述:** 1072 1073触摸事件的触摸类型。 1074 1075**起始版本:** 1076 10778 1078 1079 1080### type [2/2] 1081 1082 1083``` 1084OH_NativeXComponent_TouchEventType OH_NativeXComponent_TouchEvent::type = OH_NativeXComponent_TouchEventType::OH_NATIVEXCOMPONENT_UNKNOWN 1085``` 1086 1087**描述:** 1088 1089触摸事件的触摸类型。 1090 1091**起始版本:** 1092 10938 1094 1095 1096### x [1/3] 1097 1098 1099``` 1100float OH_NativeXComponent_TouchPoint::x = 0.0 1101``` 1102 1103**描述:** 1104 1105触摸点相对于XComponent组件左边缘的x坐标。 1106 1107**起始版本:** 1108 11098 1110 1111 1112### x [2/3] 1113 1114 1115``` 1116float OH_NativeXComponent_TouchEvent::x = 0.0 1117``` 1118 1119**描述:** 1120 1121触摸点相对于XComponent组件左边缘的x坐标。 1122 1123**起始版本:** 1124 11258 1126 1127 1128### x [3/3] 1129 1130 1131``` 1132float OH_NativeXComponent_MouseEvent::x 1133``` 1134 1135**描述:** 1136 1137点击触点相对于当前组件左上角的x轴坐标。 1138 1139**起始版本:** 1140 11418 1142 1143 1144### y [1/3] 1145 1146 1147``` 1148float OH_NativeXComponent_TouchPoint::y = 0.0 1149``` 1150 1151**描述:** 1152 1153触摸点相对于XComponent组件上边缘的y坐标。 1154 1155**起始版本:** 1156 11578 1158 1159 1160### y [2/3] 1161 1162 1163``` 1164float OH_NativeXComponent_TouchEvent::y = 0.0 1165``` 1166 1167**描述:** 1168 1169触摸点相对于XComponent组件上边缘的y坐标。 1170 1171**起始版本:** 1172 11738 1174 1175 1176### y [3/3] 1177 1178 1179``` 1180float OH_NativeXComponent_MouseEvent::y 1181``` 1182 1183**描述:** 1184 1185点击触点相对于当前组件左上角的y轴坐标。 1186 1187**起始版本:** 1188 11898