1# drag_and_drop.h 2<!--Kit: ArkUI--> 3<!--Subsystem: ArkUI--> 4<!--Owner: @jiangtao92--> 5<!--Designer: @piggyguy--> 6<!--Tester: @songyanhong--> 7<!--Adviser: @HelloCrease--> 8 9## 概述 10 11提供NativeDrag相关接口定义。 12 13**引用文件:** <arkui/drag_and_drop.h> 14 15**库:** libace_ndk.z.so 16 17**系统能力:** SystemCapability.ArkUI.ArkUI.Full 18 19**起始版本:** 12 20 21**相关模块:** [ArkUI_NativeModule](capi-arkui-nativemodule.md) 22 23## 汇总 24 25### 结构体 26 27| 名称 | typedef关键字 | 描述 | 28| -- | -- | -- | 29| [ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md) | ArkUI_NodeEvent | 组件事件的通用结构类型。 | 30| [ArkUI_Context](capi-arkui-nativemodule-arkui-context.md) | ArkUI_Context | native UI的上下文实例对象。 | 31| [ArkUI_Context*](capi-arkui-nativemodule-arkui-context8h.md) | ArkUI_ContextHandle | native UI的上下文实例对象指针定义。 | 32| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md) | ArkUI_DragEvent | 拖拽事件。 | 33| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md) | ArkUI_DragPreviewOption | 设置拖拽跟手图的相关自定义参数。 | 34| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md) | ArkUI_DragAction | 拖拽行为,用于主动发起拖拽。 | 35| [ArkUI_DragAndDropInfo](capi-arkui-nativemodule-arkui-draganddropinfo.md) | ArkUI_DragAndDropInfo | 主动发起拖拽后,通过拖拽状态监听返回的系统拖拽相关数据。 | 36 37### 枚举 38 39| 名称 | typedef关键字 | 描述 | 40| -- | -- | -- | 41| [ArkUI_DragResult](#arkui_dragresult) | ArkUI_DragResult | 拖拽结果定义,由数据接收方设置,并由系统传递给数据拖出方,拖出方可感知接收方对数据的处理结果。 | 42| [ArkUI_DropOperation](#arkui_dropoperation) | ArkUI_DropOperation | 定义拖拽释放时的数据处理方式,可影响角标的显示。 | 43| [ArkUI_PreDragStatus](#arkui_predragstatus) | ArkUI_PreDragStatus | 定义拖拽发起前的长按交互阶段的变化状态。 | 44| [ArkUI_DragPreviewScaleMode](#arkui_dragpreviewscalemode) | ArkUI_DragPreviewScaleMode | 拖拽预览缩放模式。 | 45| [ArkUI_DragStatus](#arkui_dragstatus) | ArkUI_DragStatus | 拖拽状态。 | 46 47### 函数 48 49| 名称 | 描述 | 50| -- | -- | 51| [ArkUI_DragEvent* OH_ArkUI_NodeEvent_GetDragEvent(ArkUI_NodeEvent* nodeEvent)](#oh_arkui_nodeevent_getdragevent) | 从 NodeEvent 中获取DragEvent。 | 52| [ArkUI_PreDragStatus OH_ArkUI_NodeEvent_GetPreDragStatus(ArkUI_NodeEvent* nodeEvent)](#oh_arkui_nodeevent_getpredragstatus) | 获取预览拖拽事件状态。 | 53| [int32_t OH_ArkUI_DragEvent_DisableDefaultDropAnimation(ArkUI_DragEvent* event, bool disable)](#oh_arkui_dragevent_disabledefaultdropanimation) | 设置是否禁用松手时的系统默认动效,默认不禁用,通常在应用需要自定义落位动效时配置。 | 54| [int32_t OH_ArkUI_DragEvent_SetSuggestedDropOperation(ArkUI_DragEvent* event, ArkUI_DropOperation dropOperation)](#oh_arkui_dragevent_setsuggesteddropoperation) | 设置数据处理方式。 | 55| [int32_t OH_ArkUI_DragEvent_SetDragResult(ArkUI_DragEvent* event, ArkUI_DragResult result)](#oh_arkui_dragevent_setdragresult) | 设置拖拽事件的结果。 | 56| [int32_t OH_ArkUI_DragEvent_SetData(ArkUI_DragEvent* event, OH_UdmfData* data)](#oh_arkui_dragevent_setdata) | 向ArkUI_DragEvent中设置拖拽数据。 | 57| [ArkUI_ErrorCode OH_ArkUI_DragEvent_SetDataLoadParams(ArkUI_DragEvent* event, OH_UdmfDataLoadParams* dataLoadParams)](#oh_arkui_dragevent_setdataloadparams) | 调用此方法向系统提供数据加载参数,而非直接传入完整的数据对象。当用户将数据拖拽至目标应用程序并释放时,系统将使用dataLoadParams请求数据。这可以显著提高拖拽大量数据及目标应用程序处理释放数据的效率。此方法应始终优先于[OH_ArkUI_DragEvent_SetData](capi-drag-and-drop-h.md#oh_arkui_dragevent_setdata)使用。请参考<b>udmf.h</b>中的[OH_UdmfDataLoadParams_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdataloadparams_create)了解如何创建和准备数据加载参数。该方法与[OH_ArkUI_DragEvent_SetData](capi-drag-and-drop-h.md#oh_arkui_dragevent_setdata)存在冲突,系统始终以最后调用的方法为准。 | 58| [int32_t OH_ArkUI_DragEvent_GetUdmfData(ArkUI_DragEvent* event, OH_UdmfData *data)](#oh_arkui_dragevent_getudmfdata) | 从ArkUI_DragEvent中获取拖拽默认相关数据。 | 59| [int32_t OH_ArkUI_DragEvent_GetDataTypeCount(ArkUI_DragEvent* event, int32_t* count)](#oh_arkui_dragevent_getdatatypecount) | 从ArkUI_DragEvent中获取所拖拽的数据类型种类个数。 | 60| [int32_t OH_ArkUI_DragEvent_GetDataTypes(ArkUI_DragEvent *event, char *eventTypeArray[], int32_t length, int32_t maxStrLen)](#oh_arkui_dragevent_getdatatypes) | 从ArkUI_DragEvent中获取拖拽数据的类型列表。 | 61| [int32_t OH_ArkUI_DragEvent_GetDragResult(ArkUI_DragEvent* event, ArkUI_DragResult* result)](#oh_arkui_dragevent_getdragresult) | 从ArkUI_DragEvent中获取拖拽结果。 | 62| [int32_t OH_ArkUI_DragEvent_GetDropOperation(ArkUI_DragEvent* event, ArkUI_DropOperation* operation)](#oh_arkui_dragevent_getdropoperation) | 从ArkUI_DragEvent中获取数据处理方式。 | 63| [float OH_ArkUI_DragEvent_GetPreviewTouchPointX(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getpreviewtouchpointx) | 从ArkUI_DragEvent中获取预览图跟手点的x轴坐标。 | 64| [float OH_ArkUI_DragEvent_GetPreviewTouchPointY(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getpreviewtouchpointy) | 从ArkUI_DragEvent中获取预览图跟手点的y轴坐标。 | 65| [float OH_ArkUI_DragEvent_GetPreviewRectWidth(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getpreviewrectwidth) | 从ArkUI_DragEvent中获取预览图的宽。 | 66| [float OH_ArkUI_DragEvent_GetPreviewRectHeight(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getpreviewrectheight) | 从ArkUI_DragEvent中获取预览图的高。 | 67| [float OH_ArkUI_DragEvent_GetTouchPointXToWindow(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointxtowindow) | 从ArkUI_DragEvent中获取跟手点相对于window的x轴坐标。 | 68| [float OH_ArkUI_DragEvent_GetTouchPointYToWindow(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointytowindow) | 从ArkUI_DragEvent中获取跟手点相对于window的y轴坐标。 | 69| [float OH_ArkUI_DragEvent_GetTouchPointXToDisplay(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointxtodisplay) | 从ArkUI_DragEvent中获取跟手点相对于当前Display的x轴坐标。 | 70| [float OH_ArkUI_DragEvent_GetTouchPointYToDisplay(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointytodisplay) | 从ArkUI_DragEvent中获取跟手点相对于当前Display的y轴坐标。 | 71| [float OH_ArkUI_DragEvent_GetVelocityX(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getvelocityx) | 获取当前拖拽的x轴方向拖动速度。 | 72| [float OH_ArkUI_DragEvent_GetVelocityY(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getvelocityy) | 获取当前拖拽的y轴方向拖动速度。 | 73| [float OH_ArkUI_DragEvent_GetVelocity(ArkUI_DragEvent* event)](#oh_arkui_dragevent_getvelocity) | 获取当前拖拽的主方向拖动速度。 | 74| [int32_t OH_ArkUI_DragEvent_GetModifierKeyStates(ArkUI_DragEvent* event, uint64_t* keys)](#oh_arkui_dragevent_getmodifierkeystates) | 获取功能键按压状态。 | 75| [int32_t OH_ArkUI_DragEvent_StartDataLoading(ArkUI_DragEvent* event, OH_UdmfGetDataParams* options, char* key, unsigned int keyLen)](#oh_arkui_dragevent_startdataloading) | 使用指定的同步参数开始数据同步。 | 76| [int32_t OH_ArkUI_CancelDataLoading(ArkUI_ContextHandle uiContext, const char* key)](#oh_arkui_canceldataloading) | 取消正在进行的数据同步。 | 77| [int32_t OH_ArkUI_DisableDropDataPrefetchOnNode(ArkUI_NodeHandle node, bool disabled)](#oh_arkui_disabledropdataprefetchonnode) | 设置是否在执行onDrop回调之前禁用数据预获取过程。系统将重试获取数据,直到达到最大时间限制(目前为2.4秒),这对跨设备的拖动操作非常有用,因为它有助于系统稳定通信。然而,对于[OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading)方法而言,这一特性显得多余。该方法采用异步机制获取数据,因此在onDrop中使用[OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading)时,为了避免在onDrop执行前意外获取数据,必须将此字段设置为true。 | 78| [int32_t OH_ArkUI_SetDragEventStrictReportWithNode(ArkUI_NodeHandle node, bool enabled)](#oh_arkui_setdrageventstrictreportwithnode) | 控制是否使能严格dragEvent上报,建议开启;默认是不开启的;当不开启时,从父组件拖移进子组件时,父组件并不会收到leave的通知;而开启之后,只要前后两个组件发生变化,上一个组件就会收到leave,新的组件收到enter通知;该配置与具体的UI实例相关,需要通过传入一个当前UI实例上的一个具体的组件节点来关联。 | 79| [int32_t OH_ArkUI_SetDragEventStrictReportWithContext(ArkUI_ContextHandle uiContext, bool enabled)](#oh_arkui_setdrageventstrictreportwithcontext) | 控制是否使能严格dragEvent上报,建议开启;默认是不开启的;当不开启时,从父组件拖移进子组件时,父组件并不会收到leave的通知;而开启之后,只要前后两个组件发生变化,上一个组件就会收到leave,新的组件收到enter通知;该配置与具体的UI实例相关,可通过传入一个UI实例进行关联。 | 80| [int32_t OH_ArkUI_SetNodeAllowedDropDataTypes(ArkUI_NodeHandle node, const char* typesArray[], int32_t count)](#oh_arkui_setnodealloweddropdatatypes) | 配置组件允许接受落入的数据类型,该接口会重置通过 [OH_ArkUI_DisallowNodeAnyDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_disallownodeanydropdatatypes) 或[OH_ArkUI_AllowNodeAllDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_allownodealldropdatatypes)进行的配置。 | 81| [int32_t OH_ArkUI_DisallowNodeAnyDropDataTypes(ArkUI_NodeHandle node)](#oh_arkui_disallownodeanydropdatatypes) | 配置组件不允许接受任何数据类型,该接口会重置通过[OH_ArkUI_SetNodeAllowedDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_setnodealloweddropdatatypes)配置的数据类型。 | 82| [int32_t OH_ArkUI_AllowNodeAllDropDataTypes(ArkUI_NodeHandle node)](#oh_arkui_allownodealldropdatatypes) | 配置组件允许接受任意数据类型,该接口会重置通过[OH_ArkUI_SetNodeAllowedDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_setnodealloweddropdatatypes)配置的数据类型。 | 83| [int32_t OH_ArkUI_SetNodeDraggable(ArkUI_NodeHandle node, bool enabled)](#oh_arkui_setnodedraggable) | 设置该组件是否允许进行拖拽。 | 84| [int32_t OH_ArkUI_SetNodeDragPreview(ArkUI_NodeHandle node, OH_PixelmapNative* preview)](#oh_arkui_setnodedragpreview) | 设置组件在被拖拽时的自定义跟手图。 | 85| [ArkUI_DragPreviewOption* OH_ArkUI_CreateDragPreviewOption(void)](#oh_arkui_createdragpreviewoption) | 构建一个ArkUI_DragPreviewOption对象。 | 86| [void OH_ArkUI_DragPreviewOption_Dispose(ArkUI_DragPreviewOption* option)](#oh_arkui_dragpreviewoption_dispose) | 销毁跟手图自定义参数对象实例。 | 87| [int32_t OH_ArkUI_DragPreviewOption_SetScaleMode(ArkUI_DragPreviewOption* option, ArkUI_DragPreviewScaleMode scaleMode)](#oh_arkui_dragpreviewoption_setscalemode) | 设置拖拽跟手图是否根据系统定义自动进行缩放。 | 88| [int32_t OH_ArkUI_DragPreviewOption_SetDefaultShadowEnabled(ArkUI_DragPreviewOption* option, bool enabled)](#oh_arkui_dragpreviewoption_setdefaultshadowenabled) | 设置跟手图背板默认的投影效果,默认不开启。 | 89| [int32_t OH_ArkUI_DragPreviewOption_SetDefaultRadiusEnabled(ArkUI_DragPreviewOption* option, bool enabled)](#oh_arkui_dragpreviewoption_setdefaultradiusenabled) | 设置跟手图背板默认的圆角效果,默认不开启。 | 90| [int32_t OH_ArkUI_DragPreviewOption_SetNumberBadgeEnabled(ArkUI_DragPreviewOption* option, bool enabled)](#oh_arkui_dragpreviewoption_setnumberbadgeenabled) | 设置跟手图背板是否显示角标,开启后,系统会根据拖拽数量自动进行角标显示。 | 91| [int32_t OH_ArkUI_DragPreviewOption_SetBadgeNumber(ArkUI_DragPreviewOption* option, uint32_t forcedNumber)](#oh_arkui_dragpreviewoption_setbadgenumber) | 强制显示角标的数量,覆盖SetDragPreviewNumberBadgeEnabled设置的值。 | 92| [int32_t OH_ArkUI_DragPreviewOption_SetDefaultAnimationBeforeLiftingEnabled(ArkUI_DragPreviewOption* option, bool enabled)](#oh_arkui_dragpreviewoption_setdefaultanimationbeforeliftingenabled) | 配置是否开启点按时的默认动画。 | 93| [int32_t OH_ArkUI_SetNodeDragPreviewOption(ArkUI_NodeHandle node, ArkUI_DragPreviewOption* option)](#oh_arkui_setnodedragpreviewoption) | 将构造的ArkUI_DragPreviewOption设置给组件。 | 94| [ArkUI_DragAction* OH_ArkUI_CreateDragActionWithNode(ArkUI_NodeHandle node)](#oh_arkui_createdragactionwithnode) | 创建一个拖拽操作对象,该对象需与一个UI实例相关联,可通过传入一个当前UI实例的某个组件节点来指定。 | 95| [ArkUI_DragAction* OH_ArkUI_CreateDragActionWithContext(ArkUI_ContextHandle uiContext)](#oh_arkui_createdragactionwithcontext) | 创建一个拖拽操作对象,该对象需与一个UI实例相关联,可通过传入一个UI实例指针来关联。 | 96| [void OH_ArkUI_DragAction_Dispose(ArkUI_DragAction* dragAction)](#oh_arkui_dragaction_dispose) | 销毁创建的 ArkUI_DragAction 对象。 | 97| [int32_t OH_ArkUI_DragAction_SetPointerId(ArkUI_DragAction* dragAction, int32_t pointer)](#oh_arkui_dragaction_setpointerid) | 设置手指ID,当屏幕上仅有一只手指在操作时,pointer ID 为 0;一般情况下,配置 0 即可。 | 98| [int32_t OH_ArkUI_DragAction_SetPixelMaps(ArkUI_DragAction* dragAction, OH_PixelmapNative* pixelmapArray[], int32_t size)](#oh_arkui_dragaction_setpixelmaps) | 设置拖拽跟手图,只能使用 pixelmap 格式对象。 | 99| [int32_t OH_ArkUI_DragAction_SetTouchPointX(ArkUI_DragAction* dragAction, float x)](#oh_arkui_dragaction_settouchpointx) | 设置跟手点,相对于设置的第一个pixelmap的左上角。 | 100| [int32_t OH_ArkUI_DragAction_SetTouchPointY(ArkUI_DragAction* dragAction, float y)](#oh_arkui_dragaction_settouchpointy) | 设置跟手点,相对于设置的第一个pixelmap的左上角。 | 101| [int32_t OH_ArkUI_DragAction_SetData(ArkUI_DragAction* dragAction, OH_UdmfData* data)](#oh_arkui_dragaction_setdata) | 设置拖拽数据。 | 102| [ArkUI_ErrorCode OH_ArkUI_DragAction_SetDataLoadParams(ArkUI_DragAction* dragAction,OH_UdmfDataLoadParams* dataLoadParams)](#oh_arkui_dragaction_setdataloadparams) | 使用此方法为系统提供一个数据加载参数,而不是直接提供一个完整的数据对象。当用户拖拽到目标应用程序并落入时,系统将使用dataLoadParams请求数据。可以极大地提高拖拽大量数据的效率,以及目标应用程序中处理落入数据的效率。此方法应始终优先于[OH_ArkUI_DragAction_SetData](capi-drag-and-drop-h.md#oh_arkui_dragaction_setdata)使用。请参考<b>udmf.h</b>中的[OH_UdmfDataLoadParams_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdataloadparams_create)了解如何创建和准备数据加载参数。该方法与[OH_ArkUI_DragAction_SetData](capi-drag-and-drop-h.md#oh_arkui_dragaction_setdata)存在冲突,系统始终以最后调用的方法为准。 | 103| [int32_t OH_ArkUI_DragAction_SetDragPreviewOption(ArkUI_DragAction* dragAction, ArkUI_DragPreviewOption* option)](#oh_arkui_dragaction_setdragpreviewoption) | 将构造的ArkUI_DragPreviewOption设置给ArkUI_DragAction。 | 104| [int32_t OH_ArkUI_DragAction_RegisterStatusListener(ArkUI_DragAction* dragAction, void* userData,void(\*listener)(ArkUI_DragAndDropInfo* dragAndDropInfo, void* userData))](#oh_arkui_dragaction_registerstatuslistener) | 注册拖拽状态监听回调,该回调可感知到拖拽已经发起或用户松手结束的状态,可通过该监听获取到落入方对数据的接收处理是否成功。 | 105| [ArkUI_ErrorCode OH_ArkUI_DragEvent_GetDisplayId(ArkUI_DragEvent event, int32_t* displayId)](#oh_arkui_dragevent_getdisplayid) | 获取当前拖拽事件发生时所在的屏幕ID,不支持当eventType为NODE_ON_DRAG_END时获取。 | 106| [void OH_ArkUI_DragAction_UnregisterStatusListener(ArkUI_DragAction* dragAction)](#oh_arkui_dragaction_unregisterstatuslistener) | 解注册拖拽状态监听回调。 | 107| [ArkUI_DragStatus OH_ArkUI_DragAndDropInfo_GetDragStatus(ArkUI_DragAndDropInfo* dragAndDropInfo)](#oh_arkui_draganddropinfo_getdragstatus) | 获取dragAction发起拖拽的状态,获取异常时返回 ArkUI_DRAG_STATUS_UNKNOWN。 | 108| [ArkUI_DragEvent* OH_ArkUI_DragAndDropInfo_GetDragEvent(ArkUI_DragAndDropInfo* dragAndDropInfo)](#oh_arkui_draganddropinfo_getdragevent) | 通过dragAndDropInfo获取到DragEvent,可通过DragEvent获取释放结果等。 | 109| [int32_t OH_ArkUI_StartDrag(ArkUI_DragAction* dragAction)](#oh_arkui_startdrag) | 通过构造的DragAction对象发起拖拽。 | 110| [int32_t OH_ArkUI_DragEvent_RequestDragEndPending(ArkUI_DragEvent* event, int32_t* requestIdentify)](#oh_arkui_dragevent_requestdragendpending) | 请求延迟处理拖拽结束事件,等待应用程序确认操作结果。应用程序需通过 [OH_ArkUI_NotifyDragResult](capi-drag-and-drop-h.md#oh_arkui_notifydragresult)接口将最终结果回传至系统,并在所有处理完成后调用 [OH_ArkUI_NotifyDragEndPendingDone](capi-drag-and-drop-h.md#oh_arkui_notifydragendpendingdone)。最大等待时间为2秒。 | 111| [int32_t OH_ArkUI_NotifyDragResult(int32_t requestIdentify, ArkUI_DragResult result)](#oh_arkui_notifydragresult) | 通知系统最终拖拽结果。系统会校验请求标识符是否与[OH_ArkUI_DragEvent_RequestDragEndPending](capi-drag-and-drop-h.md#oh_arkui_dragevent_requestdragendpending)返回的一致,不一致则忽略本次调用。 | 112| [int32_t OH_ArkUI_NotifyDragEndPendingDone(int32_t requestIdentify)](#oh_arkui_notifydragendpendingdone) | 通知系统所有异步处理已完成,可结束拖拽结束挂起状态。 | 113| [ArkUI_ErrorCode OH_ArkUI_EnableDropDisallowedBadge(ArkUI_ContextHandle uiContext, bool enabled)](#oh_arkui_enabledropdisallowedbadge) | 设置是否可以显示禁用角标。 | 114| [float OH_ArkUI_DragEvent_GetTouchPointXToGlobalDisplay(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointxtoglobaldisplay) | 从ArkUI_DragEvent中获取跟手点相对于全局屏幕的x轴坐标。 | 115| [float OH_ArkUI_DragEvent_GetTouchPointYToGlobalDisplay(ArkUI_DragEvent* event)](#oh_arkui_dragevent_gettouchpointytoglobaldisplay) | 从ArkUI_DragEvent中获取跟手点相对于全局屏幕的y轴坐标。 | 116| [ArkUI_ErrorCode OH_ArkUI_DragEvent_GetDragSource(ArkUI_DragEvent* event, char *bundleName, int32_t length)](#oh_arkui_dragevent_getdragsource) | 获取拖拽发起方的应用包名信息,需要传递一个字符数组来接收包名字符串,并显式指明数组长度,该数组长度不小于128个字符。 | 117| [ArkUI_ErrorCode OH_ArkUI_DragEvent_IsRemote(ArkUI_DragEvent* event, bool* isRemote)](#oh_arkui_dragevent_isremote) | 判断当前的拖拽操作是否是跨设备拖拽。 | 118 119## 枚举类型说明 120 121### ArkUI_DragResult 122 123``` 124enum ArkUI_DragResult 125``` 126 127**描述:** 128 129 130拖拽结果定义,由数据接收方设置,并由系统传递给数据拖出方,拖出方可感知接收方对数据的处理结果。 131 132**起始版本:** 12 133 134| 枚举项 | 描述 | 135| -- | -- | 136| ARKUI_DRAG_RESULT_SUCCESSFUL = 0 | 拖拽处理成功。 | 137| ARKUI_DRAG_RESULT_FAILED | 拖拽处理失败。 | 138| ARKUI_DRAG_RESULT_CANCELED | 拖拽处理取消。 | 139 140### ArkUI_DropOperation 141 142``` 143enum ArkUI_DropOperation 144``` 145 146**描述:** 147 148 149定义拖拽释放时的数据处理方式,可影响角标的显示。 150 151**起始版本:** 12 152 153| 枚举项 | 描述 | 154| -- | -- | 155| ARKUI_DROP_OPERATION_COPY = 0 | 复制行为。 | 156| ARKUI_DROP_OPERATION_MOVE | 剪切行为。 | 157 158### ArkUI_PreDragStatus 159 160``` 161enum ArkUI_PreDragStatus 162``` 163 164**描述:** 165 166 167定义拖拽发起前的长按交互阶段的变化状态。 168 169**起始版本:** 12 170 171| 枚举项 | 描述 | 172| -- | -- | 173| ARKUI_PRE_DRAG_STATUS_UNKNOWN = -1 | Unknown。 | 174| ARKUI_PRE_DRAG_STATUS_ACTION_DETECTING | 拖拽手势启动阶段。 | 175| ARKUI_PRE_DRAG_STATUS_READY_TO_TRIGGER_DRAG | 拖拽准备完成,可发起拖拽阶段。 | 176| ARKUI_PRE_DRAG_STATUS_PREVIEW_LIFT_STARTED | 拖拽浮起动效发起阶段。 | 177| ARKUI_PRE_DRAG_STATUS_PREVIEW_LIFT_FINISHED | 拖拽浮起动效结束阶段。 | 178| ARKUI_PRE_DRAG_STATUS_PREVIEW_LANDING_STARTED | 拖拽落回动效发起阶段。 | 179| ARKUI_PRE_DRAG_STATUS_PREVIEW_LANDING_FINISHED | 拖拽落回动效结束阶段。 | 180| ARKUI_PRE_DRAG_STATUS_CANCELED_BEFORE_DRAG | 拖拽浮起落位动效中断。 | 181 182### ArkUI_DragPreviewScaleMode 183 184``` 185enum ArkUI_DragPreviewScaleMode 186``` 187 188**描述:** 189 190 191拖拽预览缩放模式。 192 193**起始版本:** 12 194 195| 枚举项 | 描述 | 196| -- | -- | 197| ARKUI_DRAG_PREVIEW_SCALE_AUTO = 0 | 系统根据拖拽场景自动改变跟手点位置,根据规则自动对拖拽背板图进行缩放变换等。 | 198| ARKUI_DRAG_PREVIEW_SCALE_DISABLED | 禁用系统对拖拽背板图的缩放行为。 | 199 200### ArkUI_DragStatus 201 202``` 203enum ArkUI_DragStatus 204``` 205 206**描述:** 207 208 209拖拽状态。 210 211**起始版本:** 12 212 213| 枚举项 | 描述 | 214| -- | -- | 215| ARKUI_DRAG_STATUS_UNKNOWN = -1 | Unknown。 | 216| ARKUI_DRAG_STATUS_STARTED | Started。 | 217| ARKUI_DRAG_STATUS_ENDED | Ended。 | 218 219 220## 函数说明 221 222### OH_ArkUI_NodeEvent_GetDragEvent() 223 224``` 225ArkUI_DragEvent* OH_ArkUI_NodeEvent_GetDragEvent(ArkUI_NodeEvent* nodeEvent) 226``` 227 228**描述:** 229 230 231从 NodeEvent 中获取DragEvent。 232 233**起始版本:** 12 234 235 236**参数:** 237 238| 参数项 | 描述 | 239|--------------------------------| -- | 240| [ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md)* nodeEvent | ArkUI_NodeEvent事件指针。 | 241 242**返回:** 243 244| 类型 | 说明 | 245| -- | -- | 246| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* | ArkUI_DragEvent 事件指针,当传入的 NodeEvent 无效或不是拖拽相关的事件时,则返回空。 | 247 248### OH_ArkUI_NodeEvent_GetPreDragStatus() 249 250``` 251ArkUI_PreDragStatus OH_ArkUI_NodeEvent_GetPreDragStatus(ArkUI_NodeEvent* nodeEvent) 252``` 253 254**描述:** 255 256 257获取预览拖拽事件状态。 258 259**起始版本:** 12 260 261 262**参数:** 263 264| 参数项 | 描述 | 265| -- | -- | 266| [ArkUI_NodeEvent](capi-arkui-nativemodule-arkui-nodeevent.md)* nodeEvent | ArkUI_NodeEvent节点对象。 | 267 268**返回:** 269 270| 类型 | 说明 | 271| -- | -- | 272| [ArkUI_PreDragStatus](capi-drag-and-drop-h.md#arkui_predragstatus) | ArkUI_PreDragStatus 拖拽发起前交互状态。 | 273 274### OH_ArkUI_DragEvent_DisableDefaultDropAnimation() 275 276``` 277int32_t OH_ArkUI_DragEvent_DisableDefaultDropAnimation(ArkUI_DragEvent* event, bool disable) 278``` 279 280**描述:** 281 282 283设置是否禁用松手时的系统默认动效,默认不禁用,通常在应用需要自定义落位动效时配置。 284 285**起始版本:** 12 286 287 288**参数:** 289 290| 参数项 | 描述 | 291| -- | -- | 292| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 293| bool disable | 是否禁用松手时的系统默认动效,true禁用,false不禁用。 | 294 295**返回:** 296 297| 类型 | 说明 | 298| -- | -- | 299| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 300 301### OH_ArkUI_DragEvent_SetSuggestedDropOperation() 302 303``` 304int32_t OH_ArkUI_DragEvent_SetSuggestedDropOperation(ArkUI_DragEvent* event, ArkUI_DropOperation dropOperation) 305``` 306 307**描述:** 308 309 310设置数据处理方式。 311 312**起始版本:** 12 313 314 315**参数:** 316 317| 参数项 | 描述 | 318| -- | -- | 319| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 320| [ArkUI_DropOperation](capi-drag-and-drop-h.md#arkui_dropoperation) dropOperation | 角标显示状态的类型。 | 321 322**返回:** 323 324| 类型 | 说明 | 325| -- | -- | 326| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 327 328### OH_ArkUI_DragEvent_SetDragResult() 329 330``` 331int32_t OH_ArkUI_DragEvent_SetDragResult(ArkUI_DragEvent* event, ArkUI_DragResult result) 332``` 333 334**描述:** 335 336 337设置拖拽事件的结果。 338 339**起始版本:** 12 340 341 342**参数:** 343 344| 参数项 | 描述 | 345| -- | -- | 346| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 347| [ArkUI_DragResult](capi-drag-and-drop-h.md#arkui_dragresult) result | 拖拽数据处理结果。 | 348 349**返回:** 350 351| 类型 | 说明 | 352| -- | -- | 353| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 354 355### OH_ArkUI_DragEvent_SetData() 356 357``` 358int32_t OH_ArkUI_DragEvent_SetData(ArkUI_DragEvent* event, OH_UdmfData* data) 359``` 360 361**描述:** 362 363 364向ArkUI_DragEvent中设置拖拽数据。 365 366**起始版本:** 12 367 368 369**参数:** 370 371| 参数项 | 描述 | 372| -- | -- | 373| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 374| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)* data | 拖拽数据。 | 375 376**返回:** 377 378| 类型 | 说明 | 379| -- | -- | 380| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 381 382### OH_ArkUI_DragEvent_SetDataLoadParams() 383 384``` 385ArkUI_ErrorCode OH_ArkUI_DragEvent_SetDataLoadParams(ArkUI_DragEvent* event, OH_UdmfDataLoadParams* dataLoadParams) 386``` 387 388**描述:** 389 390 391使用此方法为系统提供一个数据加载参数,而不是直接提供一个完整的数据对象。当用户拖拽到目标应用程序并落入时,系统将使用dataLoadParams请求数据。可以极大地提高拖拽大量数据的效率,以及目标应用程序中处理落入数据的效率。此方法应始终优先于[OH_ArkUI_DragEvent_SetData](capi-drag-and-drop-h.md#oh_arkui_dragevent_setdata)使用。请参考<b>udmf.h</b>中的[OH_UdmfDataLoadParams_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdataloadparams_create)了解如何创建和准备数据加载参数。该方法与[OH_ArkUI_DragEvent_SetData](capi-drag-and-drop-h.md#oh_arkui_dragevent_setdata)存在冲突,系统始终以最后调用的方法为准。 392 393**起始版本:** 20 394 395 396**参数:** 397 398| 参数项 | 描述 | 399| -- | -- | 400| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 401| [OH_UdmfDataLoadParams](../apis-arkdata/capi-udmf-oh-udmfdataloadparams.md)* dataLoadParams | 落入操作时使用的数据加载参数。 | 402 403**返回:** 404 405| 类型 | 说明 | 406| -- | -- | 407| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 408 409### OH_ArkUI_DragEvent_GetUdmfData() 410 411``` 412int32_t OH_ArkUI_DragEvent_GetUdmfData(ArkUI_DragEvent* event, OH_UdmfData *data) 413``` 414 415**描述:** 416 417 418从ArkUI_DragEvent中获取拖拽默认相关数据。 419 420**起始版本:** 12 421 422 423**参数:** 424 425| 参数项 | 描述 | 426| -- | -- | 427| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 428| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md) *data | OH_UdmfData 拖拽的数据指针,应用在接收时需通过 [OH_UdmfData_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdata_create) 方法创建一个用于接收数据的指针。 | 429 430**返回:** 431 432| 类型 | 说明 | 433| -- | -- | 434| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 435 436### OH_ArkUI_DragEvent_GetDataTypeCount() 437 438``` 439int32_t OH_ArkUI_DragEvent_GetDataTypeCount(ArkUI_DragEvent* event, int32_t* count) 440``` 441 442**描述:** 443 444 445从ArkUI_DragEvent中获取所拖拽的数据类型种类个数。 446 447**起始版本:** 12 448 449 450**参数:** 451 452| 参数项 | 描述 | 453| -- | -- | 454| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 455| int32_t* count | 出参,返回所拖拽数据的类型的数量。 | 456 457**返回:** 458 459| 类型 | 说明 | 460| -- | -- | 461| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 462 463### OH_ArkUI_DragEvent_GetDataTypes() 464 465``` 466int32_t OH_ArkUI_DragEvent_GetDataTypes(ArkUI_DragEvent *event, char *eventTypeArray[], int32_t length, int32_t maxStrLen) 467``` 468 469**描述:** 470 471 472从ArkUI_DragEvent中获取拖拽数据的类型列表。 473 474**起始版本:** 12 475 476 477**参数:** 478 479| 参数项 | 描述 | 480| -- | -- | 481| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md) *event | ArkUI_DragEvent事件指针。 | 482| char *eventTypeArray[] | 返回拖拽数据的类型列表,需要先自行创建字符串数组。 | 483| int32_t length | 数组总长度,不应少于使用OH_ArkUI_DragEvent_GetDataTypesCount获取到的数量。 | 484| int32_t maxStrLen | 拖拽数据类型的最大字符串长度。 | 485 486**返回:** 487 488| 类型 | 说明 | 489| -- | -- | 490| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。<br> [ARKUI_ERROR_CODE_BUFFER_SIZE_ERROR](capi-native-type-h.md#arkui_errorcode) 缓冲区大小不足。 | 491 492### OH_ArkUI_DragEvent_GetDragResult() 493 494``` 495int32_t OH_ArkUI_DragEvent_GetDragResult(ArkUI_DragEvent* event, ArkUI_DragResult* result) 496``` 497 498**描述:** 499 500 501从ArkUI_DragEvent中获取拖拽结果。 502 503**起始版本:** 12 504 505 506**参数:** 507 508| 参数项 | 描述 | 509| -- | -- | 510| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 511| [ArkUI_DragResult](capi-drag-and-drop-h.md#arkui_dragresult)* result | 出参,返回拖拽事件对应的拖拽结果。 | 512 513**返回:** 514 515| 类型 | 说明 | 516| -- | -- | 517| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 518 519### OH_ArkUI_DragEvent_GetDropOperation() 520 521``` 522int32_t OH_ArkUI_DragEvent_GetDropOperation(ArkUI_DragEvent* event, ArkUI_DropOperation* operation) 523``` 524 525**描述:** 526 527 528从ArkUI_DragEvent中获取数据处理方式。 529 530**起始版本:** 12 531 532 533**参数:** 534 535| 参数项 | 描述 | 536| -- | -- | 537| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 538| [ArkUI_DropOperation](capi-drag-and-drop-h.md#arkui_dropoperation)* operation | 数据的处理方式. | 539 540**返回:** 541 542| 类型 | 说明 | 543| -- | -- | 544| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。<br> 可能原因: 1. 参数为空或event非有效的DragEvent. | 545 546### OH_ArkUI_DragEvent_GetPreviewTouchPointX() 547 548``` 549float OH_ArkUI_DragEvent_GetPreviewTouchPointX(ArkUI_DragEvent* event) 550``` 551 552**描述:** 553 554 555从ArkUI_DragEvent中获取预览图跟手点的x轴坐标。 556 557**起始版本:** 12 558 559 560**参数:** 561 562| 参数项 | 描述 | 563| -- | -- | 564| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 565 566**返回:** 567 568| 类型 | 说明 | 569| -- | -- | 570| float | float 返回拖拽跟手点的x轴坐标,单位为px,传入参数无效时返回默认值0。 | 571 572### OH_ArkUI_DragEvent_GetPreviewTouchPointY() 573 574``` 575float OH_ArkUI_DragEvent_GetPreviewTouchPointY(ArkUI_DragEvent* event) 576``` 577 578**描述:** 579 580 581从ArkUI_DragEvent中获取预览图跟手点的y轴坐标。 582 583**起始版本:** 12 584 585 586**参数:** 587 588| 参数项 | 描述 | 589| -- | -- | 590| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 591 592**返回:** 593 594| 类型 | 说明 | 595| -- | -- | 596| float | float 返回拖拽跟手点的y轴坐标,单位px,传入参数无效时返回默认值0。| 597 598### OH_ArkUI_DragEvent_GetPreviewRectWidth() 599 600``` 601float OH_ArkUI_DragEvent_GetPreviewRectWidth(ArkUI_DragEvent* event) 602``` 603 604**描述:** 605 606 607从ArkUI_DragEvent中获取预览图的宽。 608 609**起始版本:** 12 610 611 612**参数:** 613 614| 参数项 | 描述 | 615| -- | -- | 616| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 617 618**返回:** 619 620| 类型 | 说明 | 621| -- | -- | 622| float | float 返回拖拽跟手图宽度,单位为px,传入参数无效时返回默认值0。| 623 624### OH_ArkUI_DragEvent_GetPreviewRectHeight() 625 626``` 627float OH_ArkUI_DragEvent_GetPreviewRectHeight(ArkUI_DragEvent* event) 628``` 629 630**描述:** 631 632 633从ArkUI_DragEvent中获取预览图的高。 634 635**起始版本:** 12 636 637 638**参数:** 639 640| 参数项 | 描述 | 641| -- | -- | 642| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 643 644**返回:** 645 646| 类型 | 说明 | 647| -- | -- | 648| float | float 返回拖拽跟手图高度,单位为px,传入参数无效时返回默认值0。| 649 650### OH_ArkUI_DragEvent_GetTouchPointXToWindow() 651 652``` 653float OH_ArkUI_DragEvent_GetTouchPointXToWindow(ArkUI_DragEvent* event) 654``` 655 656**描述:** 657 658 659从ArkUI_DragEvent中获取跟手点相对于window的x轴坐标。 660 661**起始版本:** 12 662 663 664**参数:** 665 666| 参数项 | 描述 | 667| -- | -- | 668| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 669 670**返回:** 671 672| 类型 | 说明 | 673| -- | -- | 674| float | float 返回跟手点相对于window的x轴坐标,单位为px,传入参数无效时返回默认值0。| 675 676### OH_ArkUI_DragEvent_GetTouchPointYToWindow() 677 678``` 679float OH_ArkUI_DragEvent_GetTouchPointYToWindow(ArkUI_DragEvent* event) 680``` 681 682**描述:** 683 684 685从ArkUI_DragEvent中获取跟手点相对于window的y轴坐标。 686 687**起始版本:** 12 688 689 690**参数:** 691 692| 参数项 | 描述 | 693| -- | -- | 694| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 695 696**返回:** 697 698| 类型 | 说明 | 699| -- | -- | 700| float | float 返回跟手点相对于window的y轴坐标,单位为px,传入参数无效时返回默认值0。| 701 702### OH_ArkUI_DragEvent_GetTouchPointXToDisplay() 703 704``` 705float OH_ArkUI_DragEvent_GetTouchPointXToDisplay(ArkUI_DragEvent* event) 706``` 707 708**描述:** 709 710 711从ArkUI_DragEvent中获取跟手点相对于当前Display的x轴坐标。 712 713**起始版本:** 12 714 715 716**参数:** 717 718| 参数项 | 描述 | 719| -- | -- | 720| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 721 722**返回:** 723 724| 类型 | 说明 | 725| -- | -- | 726| float | float 返回拖拽跟手点相对于当前Display的x轴坐标,单位为px,传入参数无效时返回默认值0。| 727 728### OH_ArkUI_DragEvent_GetTouchPointYToDisplay() 729 730``` 731float OH_ArkUI_DragEvent_GetTouchPointYToDisplay(ArkUI_DragEvent* event) 732``` 733 734**描述:** 735 736 737从ArkUI_DragEvent中获取跟手点相对于当前Display的y轴坐标。 738 739**起始版本:** 12 740 741 742**参数:** 743 744| 参数项 | 描述 | 745| -- | -- | 746| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 747 748**返回:** 749 750| 类型 | 说明 | 751| -- | -- | 752| float | float 返回拖拽跟手点相对于当前Display的y轴坐标,单位为px,传入参数无效时返回默认值0。| 753 754### OH_ArkUI_DragEvent_GetVelocityX() 755 756``` 757float OH_ArkUI_DragEvent_GetVelocityX(ArkUI_DragEvent* event) 758``` 759 760**描述:** 761 762 763获取当前拖拽的x轴方向拖动速度。 764 765**起始版本:** 12 766 767 768**参数:** 769 770| 参数项 | 描述 | 771| -- | -- | 772| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 773 774**返回:** 775 776| 类型 | 说明 | 777| -- | -- | 778| float | float 返回当前拖拽的x轴方向移动速度,单位为px/s,传入参数无效时返回默认值0。| 779 780### OH_ArkUI_DragEvent_GetVelocityY() 781 782``` 783float OH_ArkUI_DragEvent_GetVelocityY(ArkUI_DragEvent* event) 784``` 785 786**描述:** 787 788 789获取当前拖拽的y轴方向拖动速度。 790 791**起始版本:** 12 792 793 794**参数:** 795 796| 参数项 | 描述 | 797| -- | -- | 798| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 799 800**返回:** 801 802| 类型 | 说明 | 803| -- | -- | 804| float | float 返回当前拖拽的y轴方向移动速度,单位为px/s,传入参数无效时返回默认值0。| 805 806### OH_ArkUI_DragEvent_GetVelocity() 807 808``` 809float OH_ArkUI_DragEvent_GetVelocity(ArkUI_DragEvent* event) 810``` 811 812**描述:** 813 814 815获取当前拖拽的主方向拖动速度。 816 817**起始版本:** 12 818 819 820**参数:** 821 822| 参数项 | 描述 | 823| -- | -- | 824| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 825 826**返回:** 827 828| 类型 | 说明 | 829| -- | -- | 830| float | float 返回当前拖拽移动速度,单位为px/s,传入参数无效时返回默认值0。| 831 832### OH_ArkUI_DragEvent_GetModifierKeyStates() 833 834``` 835int32_t OH_ArkUI_DragEvent_GetModifierKeyStates(ArkUI_DragEvent* event, uint64_t* keys) 836``` 837 838**描述:** 839 840 841获取功能键按压状态。 842 843**起始版本:** 12 844 845 846**参数:** 847 848| 参数项 | 描述 | 849| -- | -- | 850| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 851| uint64_t* keys | 返回当前处于按下状态的 modifier key组合,应用可通过位运算进行判断。 | 852 853**返回:** 854 855| 类型 | 说明 | 856| -- | -- | 857| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 858 859### OH_ArkUI_DragEvent_StartDataLoading() 860 861``` 862int32_t OH_ArkUI_DragEvent_StartDataLoading(ArkUI_DragEvent* event, OH_UdmfGetDataParams* options, char* key, unsigned int keyLen) 863``` 864 865**描述:** 866 867 868使用指定的同步参数开始数据同步。 869 870**起始版本:** 15 871 872 873**参数:** 874 875| 参数项 | 描述 | 876| -- | -- | 877| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 878| [OH_UdmfGetDataParams](../apis-arkdata/capi-udmf-oh-udmfgetdataparams.md)* options | OH_UdmfGetDataParams参数指针。 | 879| char* key | 返回数据设置成功之后的key值,字符串长度不小于[UDMF_KEY_BUFFER_LEN](../apis-arkdata/capi-udmf-h.md#udmf_key_buffer_len)。 | 880| unsigned int keyLen | 表示key字符串的长度。 | 881 882**返回:** 883 884| 类型 | 说明 | 885| -- | -- | 886| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 887 888### OH_ArkUI_CancelDataLoading() 889 890``` 891int32_t OH_ArkUI_CancelDataLoading(ArkUI_ContextHandle uiContext, const char* key) 892``` 893 894**描述:** 895 896 897取消正在进行的数据同步。 898 899**起始版本:** 15 900 901 902**参数:** 903 904| 参数项 | 描述 | 905| -- | -- | 906| [ArkUI_ContextHandle](capi-arkui-nativemodule-arkui-context8h.md) uiContext | UI实例对象指针。 | 907| const char* key | 表示数据的key值并通过 [OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading) 返回。 | 908 909**返回:** 910 911| 类型 | 说明 | 912| -- | -- | 913| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。<br> ARKUI_ERROR_CODE_OPERATION_FAILED 当前没有进行中的数据同步任务。 | 914 915### OH_ArkUI_DisableDropDataPrefetchOnNode() 916 917``` 918int32_t OH_ArkUI_DisableDropDataPrefetchOnNode(ArkUI_NodeHandle node, bool disabled) 919``` 920 921**描述:** 922 923 924设置是否在执行onDrop回调之前禁用数据预获取过程。系统将重试获取数据,直到达到最大时间限制(目前为2.4秒),这对跨设备的拖动操作非常有用,因为它有助于系统稳定通信。然而,对于[OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading)方法而言,这一特性显得多余。该方法采用异步机制获取数据,因此在onDrop中使用[OH_ArkUI_DragEvent_StartDataLoading](capi-drag-and-drop-h.md#oh_arkui_dragevent_startdataloading)时,为了避免在onDrop执行前意外获取数据,必须将此字段设置为true。 925 926**起始版本:** 15 927 928 929**参数:** 930 931| 参数项 | 描述 | 932| -- | -- | 933| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 | 934| bool disabled | 表示是禁用数据预取过程。true表示禁止,false表示不禁止。 | 935 936**返回:** 937 938| 类型 | 说明 | 939| -- | -- | 940| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 941 942### OH_ArkUI_SetDragEventStrictReportWithNode() 943 944``` 945int32_t OH_ArkUI_SetDragEventStrictReportWithNode(ArkUI_NodeHandle node, bool enabled) 946``` 947 948**描述:** 949 950 951控制是否使能严格dragEvent上报,建议开启;默认是不开启的;当不开启时,从父组件拖移进子组件时,父组件并不会收到leave的通知;而开启之后,只要前后两个组件发生变化,上一个组件就会收到leave,新的组件收到enter通知;该配置与具体的UI实例相关,需要通过传入一个当前UI实例上的一个具体的组件节点来关联。 952 953**起始版本:** 12 954 955 956**参数:** 957 958| 参数项 | 描述 | 959| -- | -- | 960| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 | 961| bool enabled | 是否开启严格上报。true表示开启严格上报,false表示关闭严格上报。 | 962 963**返回:** 964 965| 类型 | 说明 | 966| -- | -- | 967| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 968 969### OH_ArkUI_SetDragEventStrictReportWithContext() 970 971``` 972int32_t OH_ArkUI_SetDragEventStrictReportWithContext(ArkUI_ContextHandle uiContext, bool enabled) 973``` 974 975**描述:** 976 977 978控制是否使能严格dragEvent上报,建议开启;默认是不开启的;当不开启时,从父组件拖移进子组件时,父组件并不会收到leave的通知;而开启之后,只要前后两个组件发生变化,上一个组件就会收到leave,新的组件收到enter通知;该配置与具体的UI实例相关,可通过传入一个UI实例进行关联。 979 980**起始版本:** 12 981 982 983**参数:** 984 985| 参数项 | 描述 | 986| -- | -- | 987| [ArkUI_ContextHandle](capi-arkui-nativemodule-arkui-context8h.md) uiContext | UI实例指针。 | 988| bool enabled | 是否开启严格上报。true表示开启严格上报,false表示关闭严格上报。 | 989 990**返回:** 991 992| 类型 | 说明 | 993| -- | -- | 994| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 995 996### OH_ArkUI_SetNodeAllowedDropDataTypes() 997 998``` 999int32_t OH_ArkUI_SetNodeAllowedDropDataTypes(ArkUI_NodeHandle node, const char* typesArray[], int32_t count) 1000``` 1001 1002**描述:** 1003 1004 1005配置组件允许接受落入的数据类型,该接口会重置通过 [OH_ArkUI_DisallowNodeAnyDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_disallownodeanydropdatatypes) 或[OH_ArkUI_AllowNodeAllDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_allownodealldropdatatypes)进行的配置。 1006 1007**起始版本:** 12 1008 1009 1010**参数:** 1011 1012| 参数项 | 描述 | 1013| -- | -- | 1014| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 | 1015| const char* typesArray[] | 允许落入的数据类型数组。 | 1016| int32_t count | 数组的长度。 | 1017 1018**返回:** 1019 1020| 类型 | 说明 | 1021| -- | -- | 1022| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1023 1024### OH_ArkUI_DisallowNodeAnyDropDataTypes() 1025 1026``` 1027int32_t OH_ArkUI_DisallowNodeAnyDropDataTypes(ArkUI_NodeHandle node) 1028``` 1029 1030**描述:** 1031 1032 1033配置组件不允许接受任何数据类型,该接口会重置通过[OH_ArkUI_SetNodeAllowedDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_setnodealloweddropdatatypes)配置的数据类型。 1034 1035**起始版本:** 12 1036 1037 1038**参数:** 1039 1040| 参数项 | 描述 | 1041| -- | -- | 1042| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 | 1043 1044**返回:** 1045 1046| 类型 | 说明 | 1047| -- | -- | 1048| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1049 1050### OH_ArkUI_AllowNodeAllDropDataTypes() 1051 1052``` 1053int32_t OH_ArkUI_AllowNodeAllDropDataTypes(ArkUI_NodeHandle node) 1054``` 1055 1056**描述:** 1057 1058 1059配置组件允许接受任意数据类型,该接口会重置通过[OH_ArkUI_SetNodeAllowedDropDataTypes](capi-drag-and-drop-h.md#oh_arkui_setnodealloweddropdatatypes)配置的数据类型。 1060 1061**起始版本:** 12 1062 1063 1064**参数:** 1065 1066| 参数项 | 描述 | 1067| -- | -- | 1068| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 | 1069 1070**返回:** 1071 1072| 类型 | 说明 | 1073| -- | -- | 1074| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1075 1076### OH_ArkUI_SetNodeDraggable() 1077 1078``` 1079int32_t OH_ArkUI_SetNodeDraggable(ArkUI_NodeHandle node, bool enabled) 1080``` 1081 1082**描述:** 1083 1084 1085设置该组件是否允许进行拖拽。 1086 1087**起始版本:** 12 1088 1089 1090**参数:** 1091 1092| 参数项 | 描述 | 1093| -- | -- | 1094| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 | 1095| bool enabled | 是否支持拖出。true表示支持拖出,false表示不支持拖出。 | 1096 1097**返回:** 1098 1099| 类型 | 说明 | 1100| -- | -- | 1101| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1102 1103### OH_ArkUI_SetNodeDragPreview() 1104 1105``` 1106int32_t OH_ArkUI_SetNodeDragPreview(ArkUI_NodeHandle node, OH_PixelmapNative* preview) 1107``` 1108 1109**描述:** 1110 1111 1112设置组件在被拖拽时的自定义跟手图。 1113 1114**起始版本:** 12 1115 1116 1117**参数:** 1118 1119| 参数项 | 描述 | 1120|------------------------------------------------------------------| -- | 1121| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 目标组件节点指针。 | 1122| OH_PixelmapNative* preview | 自定义跟手图,使用 pixelmap 格式。 | 1123 1124**返回:** 1125 1126| 类型 | 说明 | 1127| -- | -- | 1128| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1129 1130### OH_ArkUI_CreateDragPreviewOption() 1131 1132``` 1133ArkUI_DragPreviewOption* OH_ArkUI_CreateDragPreviewOption(void) 1134``` 1135 1136**描述:** 1137 1138 1139构建一个ArkUI_DragPreviewOption对象。 1140 1141**起始版本:** 12 1142 1143**返回:** 1144 1145| 类型 | 说明 | 1146|------------------------------| -- | 1147| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* | ArkUI_DragPreviewOption对象。 | 1148 1149### OH_ArkUI_DragPreviewOption_Dispose() 1150 1151``` 1152void OH_ArkUI_DragPreviewOption_Dispose(ArkUI_DragPreviewOption* option) 1153``` 1154 1155**描述:** 1156 1157 1158销毁跟手图自定义参数对象实例。 1159 1160**起始版本:** 12 1161 1162 1163**参数:** 1164 1165| 参数项 | 描述 | 1166| -- | -- | 1167| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1168 1169### OH_ArkUI_DragPreviewOption_SetScaleMode() 1170 1171``` 1172int32_t OH_ArkUI_DragPreviewOption_SetScaleMode(ArkUI_DragPreviewOption* option, ArkUI_DragPreviewScaleMode scaleMode) 1173``` 1174 1175**描述:** 1176 1177 1178设置拖拽跟手图是否根据系统定义自动进行缩放。 1179 1180**起始版本:** 12 1181 1182 1183**参数:** 1184 1185| 参数项 | 描述 | 1186| -- | -- | 1187| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1188| [ArkUI_DragPreviewScaleMode](capi-drag-and-drop-h.md#arkui_dragpreviewscalemode) scaleMode | 设置组件拖拽过程中的跟手图缩放模式。 | 1189 1190**返回:** 1191 1192| 类型 | 说明 | 1193| -- | -- | 1194| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1195 1196### OH_ArkUI_DragPreviewOption_SetDefaultShadowEnabled() 1197 1198``` 1199int32_t OH_ArkUI_DragPreviewOption_SetDefaultShadowEnabled(ArkUI_DragPreviewOption* option, bool enabled) 1200``` 1201 1202**描述:** 1203 1204 1205设置跟手图背板默认的投影效果,默认不开启。 1206 1207**起始版本:** 12 1208 1209 1210**参数:** 1211 1212| 参数项 | 描述 | 1213| -- | -- | 1214| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1215| bool enabled | 是否使用默认投影效果。true表示使用默认投影效果,false表示不使用默认投影效果。 | 1216 1217**返回:** 1218 1219| 类型 | 说明 | 1220| -- | -- | 1221| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1222 1223### OH_ArkUI_DragPreviewOption_SetDefaultRadiusEnabled() 1224 1225``` 1226int32_t OH_ArkUI_DragPreviewOption_SetDefaultRadiusEnabled(ArkUI_DragPreviewOption* option, bool enabled) 1227``` 1228 1229**描述:** 1230 1231 1232设置跟手图背板默认的圆角效果,默认不开启。 1233 1234**起始版本:** 12 1235 1236 1237**参数:** 1238 1239| 参数项 | 描述 | 1240| -- | -- | 1241| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1242| bool enabled | 是否开启圆角效果显示。true表示开启圆角效果显示,false表示不开启圆角效果显示。 | 1243 1244**返回:** 1245 1246| 类型 | 说明 | 1247| -- | -- | 1248| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1249 1250### OH_ArkUI_DragPreviewOption_SetNumberBadgeEnabled() 1251 1252``` 1253int32_t OH_ArkUI_DragPreviewOption_SetNumberBadgeEnabled(ArkUI_DragPreviewOption* option, bool enabled) 1254``` 1255 1256**描述:** 1257 1258 1259设置跟手图背板是否显示角标,开启后,系统会根据拖拽数量自动进行角标显示。 1260 1261**起始版本:** 12 1262 1263 1264**参数:** 1265 1266| 参数项 | 描述 | 1267| -- | -- | 1268| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1269| bool enabled | 是否开启角标显示。true表示开启角标显示,false表示不开启角标显示。 | 1270 1271**返回:** 1272 1273| 类型 | 说明 | 1274| -- | -- | 1275| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1276 1277### OH_ArkUI_DragPreviewOption_SetBadgeNumber() 1278 1279``` 1280int32_t OH_ArkUI_DragPreviewOption_SetBadgeNumber(ArkUI_DragPreviewOption* option, uint32_t forcedNumber) 1281``` 1282 1283**描述:** 1284 1285 1286强制显示角标的数量,覆盖SetDragPreviewNumberBadgeEnabled设置的值。 1287 1288**起始版本:** 12 1289 1290 1291**参数:** 1292 1293| 参数项 | 描述 | 1294| -- | -- | 1295| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1296| uint32_t forcedNumber | 角标的数量。 | 1297 1298**返回:** 1299 1300| 类型 | 说明 | 1301| -- | -- | 1302| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1303 1304### OH_ArkUI_DragPreviewOption_SetDefaultAnimationBeforeLiftingEnabled() 1305 1306``` 1307int32_t OH_ArkUI_DragPreviewOption_SetDefaultAnimationBeforeLiftingEnabled(ArkUI_DragPreviewOption* option, bool enabled) 1308``` 1309 1310**描述:** 1311 1312 1313配置是否开启点按时的默认动画。 1314 1315**起始版本:** 12 1316 1317 1318**参数:** 1319 1320| 参数项 | 描述 | 1321| -- | -- | 1322| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1323| bool enabled | 是否开启默认点按效果。true表示开启默认点按效果,false表示不开启默认点按效果。 | 1324 1325**返回:** 1326 1327| 类型 | 说明 | 1328| -- | -- | 1329| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1330 1331### OH_ArkUI_SetNodeDragPreviewOption() 1332 1333``` 1334int32_t OH_ArkUI_SetNodeDragPreviewOption(ArkUI_NodeHandle node, ArkUI_DragPreviewOption* option) 1335``` 1336 1337**描述:** 1338 1339 1340将构造的ArkUI_DragPreviewOption设置给组件。 1341 1342**起始版本:** 12 1343 1344 1345**参数:** 1346 1347| 参数项 | 描述 | 1348| -- | -- | 1349| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 | 1350| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1351 1352**返回:** 1353 1354| 类型 | 说明 | 1355| -- | -- | 1356| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1357 1358### OH_ArkUI_CreateDragActionWithNode() 1359 1360``` 1361ArkUI_DragAction* OH_ArkUI_CreateDragActionWithNode(ArkUI_NodeHandle node) 1362``` 1363 1364**描述:** 1365 1366 1367创建一个拖拽操作对象,该对象需与一个UI实例相关联,可通过传入一个当前UI实例的某个组件节点来指定。 1368 1369**起始版本:** 12 1370 1371 1372**参数:** 1373 1374| 参数项 | 描述 | 1375| -- | -- | 1376| [ArkUI_NodeHandle](capi-arkui-nativemodule-arkui-node8h.md) node | 组件节点指针。 | 1377 1378**返回:** 1379 1380| 类型 | 说明 | 1381|-----------------------| -- | 1382| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* | ArkUI_DragAction对象指针,如果创建失败,则返回空。 | 1383 1384### OH_ArkUI_CreateDragActionWithContext() 1385 1386``` 1387ArkUI_DragAction* OH_ArkUI_CreateDragActionWithContext(ArkUI_ContextHandle uiContext) 1388``` 1389 1390**描述:** 1391 1392 1393创建一个拖拽操作对象,该对象需与一个UI实例相关联,可通过传入一个UI实例指针来关联。 1394 1395**起始版本:** 12 1396 1397 1398**参数:** 1399 1400| 参数项 | 描述 | 1401| -- | -- | 1402| [ArkUI_ContextHandle](capi-arkui-nativemodule-arkui-context8h.md) uiContext | UI实例对象指针。 | 1403 1404**返回:** 1405 1406| 类型 | 说明 | 1407| -- | -- | 1408| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* | ArkUI_DragAction对象,如果创建失败,则返回空。 | 1409 1410### OH_ArkUI_DragAction_Dispose() 1411 1412``` 1413void OH_ArkUI_DragAction_Dispose(ArkUI_DragAction* dragAction) 1414``` 1415 1416**描述:** 1417 1418 1419销毁创建的 ArkUI_DragAction 对象。 1420 1421**起始版本:** 12 1422 1423 1424**参数:** 1425 1426| 参数项 | 描述 | 1427| -- | -- | 1428| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1429 1430### OH_ArkUI_DragAction_SetPointerId() 1431 1432``` 1433int32_t OH_ArkUI_DragAction_SetPointerId(ArkUI_DragAction* dragAction, int32_t pointer) 1434``` 1435 1436**描述:** 1437 1438 1439设置手指ID,当屏幕上仅有一只手指在操作时,pointer ID 为 0;一般情况下,配置 0 即可。 1440 1441**起始版本:** 12 1442 1443 1444**参数:** 1445 1446| 参数项 | 描述 | 1447| -- | -- | 1448| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1449| int32_t pointer | 手指ID,范围 0~9。 | 1450 1451**返回:** 1452 1453| 类型 | 说明 | 1454| -- | -- | 1455| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1456 1457### OH_ArkUI_DragAction_SetPixelMaps() 1458 1459``` 1460int32_t OH_ArkUI_DragAction_SetPixelMaps(ArkUI_DragAction* dragAction, OH_PixelmapNative* pixelmapArray[], int32_t size) 1461``` 1462 1463**描述:** 1464 1465 1466设置拖拽跟手图,只能使用 pixelmap 格式对象。 1467 1468**起始版本:** 12 1469 1470 1471**参数:** 1472 1473| 参数项 | 描述 | 1474|--------------------------------------------------------------------------------------| -- | 1475| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1476| OH_PixelmapNative* pixelmapArray[] | 拖拽跟手图位图数组。 | 1477| int32_t size | 拖拽跟手图数量。 | 1478 1479**返回:** 1480 1481| 类型 | 说明 | 1482| -- | -- | 1483| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1484 1485### OH_ArkUI_DragAction_SetTouchPointX() 1486 1487``` 1488int32_t OH_ArkUI_DragAction_SetTouchPointX(ArkUI_DragAction* dragAction, float x) 1489``` 1490 1491**描述:** 1492 1493 1494设置跟手点,相对于设置的第一个pixelmap的左上角。 1495 1496**起始版本:** 12 1497 1498 1499**参数:** 1500 1501| 参数项 | 描述 | 1502| -- | -- | 1503| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1504| float x | 跟手点坐标x值,单位为px。 | 1505 1506**返回:** 1507 1508| 类型 | 说明 | 1509| -- | -- | 1510| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1511 1512### OH_ArkUI_DragAction_SetTouchPointY() 1513 1514``` 1515int32_t OH_ArkUI_DragAction_SetTouchPointY(ArkUI_DragAction* dragAction, float y) 1516``` 1517 1518**描述:** 1519 1520 1521设置跟手点,相对于设置的第一个pixelmap的左上角。 1522 1523**起始版本:** 12 1524 1525 1526**参数:** 1527 1528| 参数项 | 描述 | 1529| -- | -- | 1530| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1531| float y | 跟手点坐标y值,单位为px。 | 1532 1533**返回:** 1534 1535| 类型 | 说明 | 1536| -- | -- | 1537| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1538 1539### OH_ArkUI_DragAction_SetData() 1540 1541``` 1542int32_t OH_ArkUI_DragAction_SetData(ArkUI_DragAction* dragAction, OH_UdmfData* data) 1543``` 1544 1545**描述:** 1546 1547 1548设置拖拽数据。 1549 1550**起始版本:** 12 1551 1552 1553**参数:** 1554 1555| 参数项 | 描述 | 1556| -- | -- | 1557| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1558| [OH_UdmfData](../apis-arkdata/capi-udmf-oh-udmfdata.md)* data | 拖拽数据。 | 1559 1560**返回:** 1561 1562| 类型 | 说明 | 1563| -- | -- | 1564| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1565 1566### OH_ArkUI_DragAction_SetDataLoadParams() 1567 1568``` 1569ArkUI_ErrorCode OH_ArkUI_DragAction_SetDataLoadParams(ArkUI_DragAction* dragAction,OH_UdmfDataLoadParams* dataLoadParams) 1570``` 1571 1572**描述:** 1573 1574 1575使用此方法为系统提供一个数据加载参数,而不是直接提供一个完整的数据对象。当用户拖拽到目标应用程序并落入时,系统将使用dataLoadParams请求数据。可以极大地提高拖拽大量数据的效率,以及目标应用程序中处理落入数据的效率。此方法应始终优先于[OH_ArkUI_DragAction_SetData](capi-drag-and-drop-h.md#oh_arkui_dragaction_setdata)使用。请参考<b>udmf.h</b>中的[OH_UdmfDataLoadParams_Create](../apis-arkdata/capi-udmf-h.md#oh_udmfdataloadparams_create)了解如何创建和准备数据加载参数。该方法与[OH_ArkUI_DragAction_SetData](capi-drag-and-drop-h.md#oh_arkui_dragaction_setdata)存在冲突,系统始终以最后调用的方法为准。 1576 1577**起始版本:** 20 1578 1579 1580**参数:** 1581 1582| 参数项 | 描述 | 1583| -- | -- | 1584| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1585| [OH_UdmfDataLoadParams](../apis-arkdata/capi-udmf-oh-udmfdataloadparams.md)* dataLoadParams | 在落入操作时使用的数据加载参数。 | 1586 1587**返回:** 1588 1589| 类型 | 说明 | 1590| -- | -- | 1591| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1592 1593### OH_ArkUI_DragAction_SetDragPreviewOption() 1594 1595``` 1596int32_t OH_ArkUI_DragAction_SetDragPreviewOption(ArkUI_DragAction* dragAction, ArkUI_DragPreviewOption* option) 1597``` 1598 1599**描述:** 1600 1601 1602将构造的ArkUI_DragPreviewOption设置给ArkUI_DragAction。 1603 1604**起始版本:** 12 1605 1606 1607**参数:** 1608 1609| 参数项 | 描述 | 1610| -- | -- | 1611| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1612| [ArkUI_DragPreviewOption](capi-arkui-nativemodule-arkui-dragpreviewoption.md)* option | 自定义参数。 | 1613 1614**返回:** 1615 1616| 类型 | 说明 | 1617| -- | -- | 1618| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1619 1620### OH_ArkUI_DragAction_RegisterStatusListener() 1621 1622``` 1623int32_t OH_ArkUI_DragAction_RegisterStatusListener(ArkUI_DragAction* dragAction, void* userData,void(*listener)(ArkUI_DragAndDropInfo* dragAndDropInfo, void* userData)) 1624``` 1625 1626**描述:** 1627 1628 1629注册拖拽状态监听回调,该回调可感知到拖拽已经发起或用户松手结束的状态,可通过该监听获取到落入方对数据的接收处理是否成功。 1630 1631**起始版本:** 12 1632 1633 1634**参数:** 1635 1636| 参数项 | 描述 | 1637| -- | -- | 1638| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1639| void* userData | 应用自定义数据。 | 1640| listener | 状态监听回调,回调触发时,系统会返回一个拖拽状态对象指针,该指针会在回调执行完成后被销毁,应用不应再持有。 | 1641 1642**返回:** 1643 1644| 类型 | 说明 | 1645| -- | -- | 1646| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1647 1648### OH_ArkUI_DragEvent_GetDisplayId() 1649 1650``` 1651ArkUI_ErrorCode OH_ArkUI_DragEvent_GetDisplayId(ArkUI_DragEvent event, int32_t* displayId) 1652``` 1653 1654**描述:** 1655 1656 1657获取当前拖拽事件发生时所在的屏幕ID,不支持当eventType为NODE_ON_DRAG_END时获取。 1658 1659**起始版本:** 20 1660 1661 1662**参数:** 1663 1664| 参数项 | 描述 | 1665| -- | -- | 1666| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md) event | ArkUI_DragEvent事件指针。 | 1667| int32_t* displayId | 返回当前拖拽事件发生时所在的屏幕ID。 | 1668 1669**返回:** 1670 1671| 类型 | 说明 | 1672| -- | -- | 1673| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1674 1675### OH_ArkUI_DragAction_UnregisterStatusListener() 1676 1677``` 1678void OH_ArkUI_DragAction_UnregisterStatusListener(ArkUI_DragAction* dragAction) 1679``` 1680 1681**描述:** 1682 1683 1684解注册拖拽状态监听回调。 1685 1686**起始版本:** 12 1687 1688 1689**参数:** 1690 1691| 参数项 | 描述 | 1692| -- | -- | 1693| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽行为对象。 | 1694 1695### OH_ArkUI_DragAndDropInfo_GetDragStatus() 1696 1697``` 1698ArkUI_DragStatus OH_ArkUI_DragAndDropInfo_GetDragStatus(ArkUI_DragAndDropInfo* dragAndDropInfo) 1699``` 1700 1701**描述:** 1702 1703 1704获取dragaction发起拖拽的状态,获取异常时返回 ArkUI_DRAG_STATUS_UNKNOWN。 1705 1706**起始版本:** 12 1707 1708 1709**参数:** 1710 1711| 参数项 | 描述 | 1712| -- | -- | 1713| [ArkUI_DragAndDropInfo](capi-arkui-nativemodule-arkui-draganddropinfo.md)* dragAndDropInfo | 拖拽状态监听返回的拖拽相关信息。 | 1714 1715**返回:** 1716 1717| 类型 | 说明 | 1718| -- | -- | 1719| [ArkUI_DragStatus](capi-drag-and-drop-h.md#arkui_dragstatus) | ArkUI_DragStatus 拖拽状态,如果获取失败,返回默认值 ArkUI_DRAG_STATUS_UNKNOWN。 | 1720 1721### OH_ArkUI_DragAndDropInfo_GetDragEvent() 1722 1723``` 1724ArkUI_DragEvent* OH_ArkUI_DragAndDropInfo_GetDragEvent(ArkUI_DragAndDropInfo* dragAndDropInfo) 1725``` 1726 1727**描述:** 1728 1729 1730通过dragAndDropInfo获取到DragEvent,可通过DragEvent获取释放结果等。 1731 1732**起始版本:** 12 1733 1734 1735**参数:** 1736 1737| 参数项 | 描述 | 1738| -- | -- | 1739| [ArkUI_DragAndDropInfo](capi-arkui-nativemodule-arkui-draganddropinfo.md)* dragAndDropInfo | 拖拽状态监听返回的拖拽相关信息。 | 1740 1741**返回:** 1742 1743| 类型 | 说明 | 1744| -- | -- | 1745| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* | ArkUI_DragEvent 拖拽事件,如果获取失败,则返回空。 | 1746 1747### OH_ArkUI_StartDrag() 1748 1749``` 1750int32_t OH_ArkUI_StartDrag(ArkUI_DragAction* dragAction) 1751``` 1752 1753**描述:** 1754 1755 1756通过构造的DragAction对象发起拖拽。 1757 1758**起始版本:** 12 1759 1760 1761**参数:** 1762 1763| 参数项 | 描述 | 1764| -- | -- | 1765| [ArkUI_DragAction](capi-arkui-nativemodule-arkui-dragaction.md)* dragAction | 拖拽action对象。 | 1766 1767**返回:** 1768 1769| 类型 | 说明 | 1770| -- | -- | 1771| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1772 1773### OH_ArkUI_DragEvent_RequestDragEndPending() 1774 1775``` 1776int32_t OH_ArkUI_DragEvent_RequestDragEndPending(ArkUI_DragEvent* event, int32_t* requestIdentify) 1777``` 1778 1779**描述:** 1780 1781 1782请求延迟处理拖拽结束事件,等待应用程序确认操作结果。应用程序需通过 [OH_ArkUI_NotifyDragResult](capi-drag-and-drop-h.md#oh_arkui_notifydragresult)接口将最终结果回传至系统,并在所有处理完成后调用 [OH_ArkUI_NotifyDragEndPendingDone](capi-drag-and-drop-h.md#oh_arkui_notifydragendpendingdone)。最大等待时间为2秒。 1783 1784**起始版本:** 19 1785 1786 1787**参数:** 1788 1789| 参数项 | 描述 | 1790| -- | -- | 1791| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | 指向 <b>ArkUI_DragEvent</b> 对象的指针。 | 1792| int32_t* requestIdentify | 系统自动生成的请求标识符,是一个输出参数,需要为一个有效的地址。 | 1793 1794**返回:** 1795 1796| 类型 | 说明 | 1797| -- | -- | 1798| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。<br> [ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED](capi-native-type-h.md#arkui_errorcode) 执行函数时不在落入的时机。 | 1799 1800### OH_ArkUI_NotifyDragResult() 1801 1802``` 1803int32_t OH_ArkUI_NotifyDragResult(int32_t requestIdentify, ArkUI_DragResult result) 1804``` 1805 1806**描述:** 1807 1808 1809通知系统最终拖拽结果。系统会校验请求标识符是否与[OH_ArkUI_DragEvent_RequestDragEndPending](capi-drag-and-drop-h.md#oh_arkui_dragevent_requestdragendpending)返回的一致,不一致则忽略本次调用。 1810 1811**起始版本:** 19 1812 1813 1814**参数:** 1815 1816| 参数项 | 描述 | 1817| -- | -- | 1818| int32_t requestIdentify | 由 [OH_ArkUI_DragEvent_RequestDragEndPending](capi-drag-and-drop-h.md#oh_arkui_dragevent_requestdragendpending) 返回的标识符。 | 1819| [ArkUI_DragResult](capi-drag-and-drop-h.md#arkui_dragresult) result | 拖拽结果枚举值([ArkUI_DragResult](capi-drag-and-drop-h.md#arkui_dragresult) 类型)。 | 1820 1821**返回:** 1822 1823| 类型 | 说明 | 1824| -- | -- | 1825| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。<br> [ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED](capi-native-type-h.md#arkui_errorcode) 执行函数时不在落入的时机。 | 1826 1827### OH_ArkUI_NotifyDragEndPendingDone() 1828 1829``` 1830int32_t OH_ArkUI_NotifyDragEndPendingDone(int32_t requestIdentify) 1831``` 1832 1833**描述:** 1834 1835 1836通知系统所有异步处理已完成,可结束拖拽结束挂起状态。 1837 1838**起始版本:** 19 1839 1840 1841**参数:** 1842 1843| 参数项 | 描述 | 1844| -- | -- | 1845| int32_t requestIdentify | 由 [OH_ArkUI_DragEvent_RequestDragEndPending](capi-drag-and-drop-h.md#oh_arkui_dragevent_requestdragendpending) 返回的标识符。 | 1846 1847**返回:** 1848 1849| 类型 | 说明 | 1850| -- | -- | 1851| int32_t | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。<br> [ARKUI_ERROR_CODE_DRAG_DROP_OPERATION_NOT_ALLOWED](capi-native-type-h.md#arkui_errorcode) 执行函数时不在落入的时机。 | 1852 1853### OH_ArkUI_EnableDropDisallowedBadge() 1854 1855``` 1856ArkUI_ErrorCode OH_ArkUI_EnableDropDisallowedBadge(ArkUI_ContextHandle uiContext, bool enabled) 1857``` 1858 1859**描述:** 1860 1861 1862设置是否可以显示禁用角标。 1863 1864**起始版本:** 20 1865 1866 1867**参数:** 1868 1869| 参数项 | 描述 | 1870| -- | -- | 1871| [ArkUI_ContextHandle](capi-arkui-nativemodule-arkui-context8h.md) uiContext | UI实例对象指针。 | 1872| bool enabled | 是否可以显示禁用角标。true表示可以显示禁用角标,false表示不可以显示禁用角标。 | 1873 1874**返回:** 1875 1876| 类型 | 说明 | 1877| -- | -- | 1878| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1879 1880### OH_ArkUI_DragEvent_GetTouchPointXToGlobalDisplay() 1881 1882``` 1883float OH_ArkUI_DragEvent_GetTouchPointXToGlobalDisplay(ArkUI_DragEvent* event) 1884``` 1885 1886**描述:** 1887 1888 1889从ArkUI_DragEvent中获取跟手点相对于全局屏幕的x轴坐标。 1890 1891**起始版本:** 20 1892 1893 1894**参数:** 1895 1896| 参数项 | 描述 | 1897| -- | -- | 1898| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 1899 1900**返回:** 1901 1902| 类型 | 说明 | 1903| -- | -- | 1904| float | float 返回拖拽跟手点相对于全局Display的x轴坐标,单位为px,传入参数无效时返回默认值0。 | 1905 1906### OH_ArkUI_DragEvent_GetTouchPointYToGlobalDisplay() 1907 1908``` 1909float OH_ArkUI_DragEvent_GetTouchPointYToGlobalDisplay(ArkUI_DragEvent* event) 1910``` 1911 1912**描述:** 1913 1914 1915从ArkUI_DragEvent中获取跟手点相对于全局屏幕的y轴坐标。 1916 1917**起始版本:** 20 1918 1919 1920**参数:** 1921 1922| 参数项 | 描述 | 1923| -- | -- | 1924| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | ArkUI_DragEvent事件指针。 | 1925 1926**返回:** 1927 1928| 类型 | 说明 | 1929| -- | -- | 1930| float | float 返回拖拽跟手点相对于全局Display的y轴坐标,单位为px,传入参数无效时返回默认值0。 | 1931 1932### OH_ArkUI_DragEvent_GetDragSource() 1933 1934``` 1935ArkUI_ErrorCode OH_ArkUI_DragEvent_GetDragSource(ArkUI_DragEvent* event, char *bundleName, int32_t length) 1936``` 1937 1938**描述:** 1939 1940 1941获取拖拽发起方的应用包名信息,需要传递一个字符数组来接收包名字符串,并显式指明数组长度,该数组长度不小于128个字符。 1942 1943**起始版本:** 20 1944 1945 1946**参数:** 1947 1948| 参数项 | 描述 | 1949| -- | -- | 1950| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | 指向<b>ArkUI_DragEvent</b>对象的指针。 | 1951| char *bundleName | 用来接收拖起方包名的字符串数组,长度不应小于128个字符。 | 1952| int32_t length | 用来显式指明传入的字符串数组长度,不应小于128个字符。 | 1953 1954**返回:** 1955 1956| 类型 | 说明 | 1957| -- | -- | 1958| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1959 1960### OH_ArkUI_DragEvent_IsRemote() 1961 1962``` 1963ArkUI_ErrorCode OH_ArkUI_DragEvent_IsRemote(ArkUI_DragEvent* event, bool* isRemote) 1964``` 1965 1966**描述:** 1967 1968 1969判断当前的拖拽操作是否是跨设备拖拽。 1970 1971**起始版本:** 20 1972 1973 1974**参数:** 1975 1976| 参数项 | 描述 | 1977| -- | -- | 1978| [ArkUI_DragEvent](capi-arkui-nativemodule-arkui-dragevent.md)* event | 指向<b>ArkUI_DragEvent</b>对象的指针。 | 1979| bool* isRemote | 布尔变量指针,用来接收是否是跨设备拖拽。true表示是跨设备拖拽,false表示非跨设备拖拽。| 1980 1981**返回:** 1982 1983| 类型 | 说明 | 1984| -- | -- | 1985| [ArkUI_ErrorCode](capi-native-type-h.md#arkui_errorcode) | 错误码。<br> [ARKUI_ERROR_CODE_NO_ERROR](capi-native-type-h.md#arkui_errorcode) 成功。<br> [ARKUI_ERROR_CODE_PARAM_INVALID](capi-native-type-h.md#arkui_errorcode) 函数参数异常。 | 1986 1987 1988