• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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