# drag_and_drop.h ## Overview Declares the APIs of **NativeDrag**. **Library**: libace_ndk.z.so **System capability**: SystemCapability.ArkUI.ArkUI.Full **Since**: 12 **Related module**: [ArkUI_NativeModule](_ark_u_i___native_module.md) ## Summary ### Types | Name| Description| | -------- | -------- | | typedef struct [ArkUI_NodeEvent](_ark_u_i___native_module.md#arkui_nodeevent-12) [ArkUI_NodeEvent](_ark_u_i___native_module.md#arkui_nodeevent-12) | Defines a struct for a component event. | | typedef struct [ArkUI_Context](_ark_u_i___native_module.md#arkui_context) [ArkUI_Context](_ark_u_i___native_module.md#arkui_context) | Defines a struct for a UI context object. | | typedef struct [ArkUI_Context](_ark_u_i___native_module.md#arkui_context) \* [ArkUI_ContextHandle](_ark_u_i___native_module.md#arkui_contexthandle-12) | Defines the handle to the native UI context. | | typedef struct [ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) [ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) | Defines a struct for a drag event.| | typedef struct [ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) [ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) | Defines a struct for custom drag preview options. | | typedef struct [ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) [ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) | Defines a struct for a drag action. | | typedef struct [ArkUI_DragAndDropInfo](_ark_u_i___native_module.md#arkui_draganddropinfo) [ArkUI_DragAndDropInfo](_ark_u_i___native_module.md#arkui_draganddropinfo) | Defines a struct for drag and drop information returned through a drag status listener. | | typedef struct [OH_UdmfData](_ark_u_i___native_module.md#oh_udmfdata) [OH_UdmfData](_ark_u_i___native_module.md#oh_udmfdata) | Defines a struct for UDMF unified data. | | typedef struct [OH_PixelmapNative](_ark_u_i___native_module.md#oh_pixelmapnative) [OH_PixelmapNative](_ark_u_i___native_module.md#oh_pixelmapnative) | Defines the **Pixelmap** struct, which is used to perform operations related to a pixel map. | ### Enums | Name| Description| | -------- | -------- | | [ArkUI_DragResult](_ark_u_i___native_module.md#arkui_dragresult) { [ARKUI_DRAG_RESULT_SUCCESSFUL](_ark_u_i___native_module.md), [ARKUI_DRAG_RESULT_FAILED](_ark_u_i___native_module.md), [ARKUI_DRAG_RESULT_CANCELED](_ark_u_i___native_module.md) } | Defines an enum for drag results, which are set by the data receiver and transferred by the system to the drag source so that the drag source is aware of the data processing result of the receiver. | | [ArkUI_DropProposal](_ark_u_i___native_module.md#arkui_dropproposal) { [ARKUI_DROP_PROPOSAL_COPY](_ark_u_i___native_module.md), [ARKUI_DROP_PROPOSAL_MOVE](_ark_u_i___native_module.md) } | Defines an enum for data processing modes used when data is dropped, which affects the display of the badge. | | [ArkUI_PreDragStatus](_ark_u_i___native_module.md#arkui_predragstatus) {
[ARKUI_PRE_DRAG_STATUS_UNKNOWN](_ark_u_i___native_module.md) = -1, [ARKUI_PRE_DRAG_STATUS_ACTION_DETECTING](_ark_u_i___native_module.md), [ARKUI_PRE_DRAG_STATUS_READY_TO_TRIGGER_DRAG](_ark_u_i___native_module.md), [ARKUI_PRE_DRAG_STATUS_PREVIEW_LIFT_STARTED](_ark_u_i___native_module.md),
[ARKUI_PRE_DRAG_STATUS_PREVIEW_LIFT_FINISHED](_ark_u_i___native_module.md), [ARKUI_PRE_DRAG_STATUS_PREVIEW_LANDING_STARTED](_ark_u_i___native_module.md), [ARKUI_PRE_DRAG_STATUS_PREVIEW_LANDING_FINISHED](_ark_u_i___native_module.md), [ARKUI_PRE_DRAG_STATUS_CANCELED_BEFORE_DRAG](_ark_u_i___native_module.md)
} | Defines an enum for interaction states prior to a drop and drop operation. | | [ArkUI_DragPreviewScaleMode](_ark_u_i___native_module.md#arkui_dragpreviewscalemode) { [ARKUI_DRAG_PREVIEW_SCALE_AUTO](_ark_u_i___native_module.md), [ARKUI_DRAG_PREVIEW_SCALE_DISABLED](_ark_u_i___native_module.md) } | Defines an enum for drag preview scale modes. | | [ArkUI_DragStatus](_ark_u_i___native_module.md#arkui_dragstatus) { [ArkUI_DRAG_STATUS_UNKNOWN](_ark_u_i___native_module.md), [ArkUI_DRAG_STATUS_STARTED](_ark_u_i___native_module.md), [ArkUI_DRAG_STATUS_ENDED](_ark_u_i___native_module.md) } | Enumerates dragging states. | ### Callback | Name| Description| | -------- | -------- | | [ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \* [OH_ArkUI_NodeEvent_GetDragEvent](_ark_u_i___native_module.md#oh_arkui_nodeevent_getdragevent) ([ArkUI_NodeEvent](_ark_u_i___native_module.md#arkui_nodeevent-12) \*nodeEvent) | Obtains a **DragEvent** object from the specified **NodeEvent** object. | | [ArkUI_PreDragStatus](_ark_u_i___native_module.md#arkui_predragstatus) [OH_ArkUI_NodeEvent_GetPreDragStatus](_ark_u_i___native_module.md#oh_arkui_nodeevent_getpredragstatus) ([ArkUI_NodeEvent](_ark_u_i___native_module.md#arkui_nodeevent-12) \*nodeEvent) | Obtains the state prior to a drop and drop operation. | | int32_t [OH_ArkUI_DragEvent_DisableDefaultDropAnimation](_ark_u_i___native_module.md#oh_arkui_dragevent_disabledefaultdropanimation) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, bool disable) | Sets whether to disable the default drop animation, which is enabled by default. Use this API to apply a custom drop animation. | | int32_t [OH_ArkUI_DragEvent_SetSuggestedDropOperation](_ark_u_i___native_module.md#oh_arkui_dragevent_setsuggesteddropoperation) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, [ArkUI_DropProposal](_ark_u_i___native_module.md#arkui_dropproposal) proposal) | Sets the data processing mode. | | int32_t [OH_ArkUI_DragEvent_SetDragResult](_ark_u_i___native_module.md#oh_arkui_dragevent_setdragresult) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, [ArkUI_DragResult](_ark_u_i___native_module.md#arkui_dragresult) result) | Sets the result for a drag event. | | int32_t [OH_ArkUI_DragEvent_SetData](_ark_u_i___native_module.md#oh_arkui_dragevent_setdata) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, [OH_UdmfData](_ark_u_i___native_module.md#oh_udmfdata) \*data) | Set drag data for a drag event. | | int32_t [OH_ArkUI_DragEvent_GetUdmfData](_ark_u_i___native_module.md#oh_arkui_dragevent_getudmfdata) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, [OH_UdmfData](_ark_u_i___native_module.md#oh_udmfdata) \*data) | Obtains the default drag data from a drag event. | | int32_t [OH_ArkUI_DragEvent_GetDataTypesCount](_ark_u_i___native_module.md#oh_arkui_dragevent_getdatatypescount) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, int32_t \*count) | Obtains the number of drag data types from a drag event. | | int32_t [OH_ArkUI_DragEvent_GetDataTypes](_ark_u_i___native_module.md#oh_arkui_dragevent_getdatatypes) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, char \*\*result[], int32_t length) | Obtains the type list of drag data types from a drag event. | | int32_t [OH_ArkUI_DragEvent_GetDragResult](_ark_u_i___native_module.md#oh_arkui_dragevent_getdragresult) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, [ArkUI_DragResult](_ark_u_i___native_module.md#arkui_dragresult) \*result) | Obtains the drag and drop result from the drag event. | | float [OH_ArkUI_DragEvent_GetPreviewTouchPointX](_ark_u_i___native_module.md#oh_arkui_dragevent_getpreviewtouchpointx) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the X coordinate of the touch point for a drag preview from a drag event. | | float [OH_ArkUI_DragEvent_GetPreviewTouchPointY](_ark_u_i___native_module.md#oh_arkui_dragevent_getpreviewtouchpointy) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the Y coordinate of the touch point on the preview image from a drag event. | | float [OH_ArkUI_DragEvent_GetPreviewRectWidth](_ark_u_i___native_module.md#oh_arkui_dragevent_getpreviewrectwidth) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the width of a drag preview from a drag event. | | float [OH_ArkUI_DragEvent_GetPreviewRectHeight](_ark_u_i___native_module.md#oh_arkui_dragevent_getpreviewrectheight) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the height of a drag preview from a drag event. | | float [OH_ArkUI_DragEvent_GetTouchPointXToWindow](_ark_u_i___native_module.md#oh_arkui_dragevent_gettouchpointxtowindow) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the X coordinate of the touch point relative to the window from a drag event. | | float [OH_ArkUI_DragEvent_GetTouchPointYToWindow](_ark_u_i___native_module.md#oh_arkui_dragevent_gettouchpointytowindow) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the Y coordinate of the touch point relative to the window from a drag event. | | float [OH_ArkUI_DragEvent_GetTouchPointXToDisplay](_ark_u_i___native_module.md#oh_arkui_dragevent_gettouchpointxtodisplay) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the X coordinate of the touch point relative to the display from a drag event. | | float [OH_ArkUI_DragEvent_GetTouchPointYToDisplay](_ark_u_i___native_module.md#oh_arkui_dragevent_gettouchpointytodisplay) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the Y coordinate of the touch point relative to the display from a drag event. | | float [OH_ArkUI_DragEvent_GetVelocityX](_ark_u_i___native_module.md#oh_arkui_dragevent_getvelocityx) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the dragging velocity along the x-axis. | | float [OH_ArkUI_DragEvent_GetVelocityY](_ark_u_i___native_module.md#oh_arkui_dragevent_getvelocityy) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the dragging velocity along the y-axis. | | float [OH_ArkUI_DragEvent_GetVelocity](_ark_u_i___native_module.md#oh_arkui_dragevent_getvelocity) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event) | Obtains the dragging velocity along the main axis. | | int32_t [OH_ArkUI_DragEvent_GetModifierKeyStates](_ark_u_i___native_module.md#oh_arkui_dragevent_getmodifierkeystates) ([ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \*event, int64_t \*keys) | Obtains the pressed status of modifier keys. | | int32_t [OH_ArkUI_SetDragEventStrictReportWithNode](_ark_u_i___native_module.md#oh_arkui_setdrageventstrictreportwithnode) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node, bool enabled) | Sets whether to enable strict reporting on drag events. This feature is disabled by default, and you are advised to enable it. If this feature is disabled, the parent component is not notified when an item in it is dragged over its child component. If this feature is enabled, the component is notified of the dragged item's leaving, and the child component to which the dragged item is dropped is notified of the item's entering. This configuration is related to a specific UI instance. You can pass in a specific component node on the current UI instance for association. | | int32_t [OH_ArkUI_SetDragEventStrictReportWithContext](_ark_u_i___native_module.md#oh_arkui_setdrageventstrictreportwithcontext) ([ArkUI_ContextHandle](_ark_u_i___native_module.md#arkui_contexthandle-12) uiContext, bool enabled) | Sets whether to enable strict reporting on drag events. This feature is disabled by default, and you are advised to enable it. If this feature is disabled, the parent component is not notified when an item in it is dragged over its child component. If this feature is enabled, the component is notified of the dragged item's leaving, and the child component to which the dragged item is dropped is notified of the item's entering. This configuration is related to a specific UI instance. You can pass in a specific UI instance for association. | | int32_t [OH_ArkUI_SetNodeAllowedDropDataTypes](_ark_u_i___native_module.md#oh_arkui_setnodealloweddropdatatypes) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node, const char \*typesArray[], int32_t count) | Sets the types of data that can be dropped to the specified component. This API resets the settings configured through [OH_ArkUI_DisallowNodeAnyDropDataTypes](_ark_u_i___native_module.md#oh_arkui_disallownodeanydropdatatypes) or [OH_ArkUI_AllowNodeAllDropDataTypes](_ark_u_i___native_module.md#oh_arkui_allownodealldropdatatypes). | | int32_t [OH_ArkUI_DisallowNodeAnyDropDataTypes](_ark_u_i___native_module.md#oh_arkui_disallownodeanydropdatatypes) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node) | Configures the specified component to disallow any data types. This API resets the settings configured through [OH_ArkUI_SetNodeAllowedDropDataTypes](_ark_u_i___native_module.md#oh_arkui_setnodealloweddropdatatypes). | | int32_t [OH_ArkUI_AllowNodeAllDropDataTypes](_ark_u_i___native_module.md#oh_arkui_allownodealldropdatatypes) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node) | Configures the specified component to allow any data types. This API resets the settings configured through [OH_ArkUI_SetNodeAllowedDropDataTypes](_ark_u_i___native_module.md#oh_arkui_setnodealloweddropdatatypes). | | int32_t [OH_ArkUI_SetNodeDraggable](_ark_u_i___native_module.md#oh_arkui_setnodedraggable) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node, bool enabled) | Sets whether the component is draggable. | | int32_t [OH_ArkUI_SetNodeDragPreview](_ark_u_i___native_module.md#oh_arkui_setnodedragpreview) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node, [OH_PixelmapNative](_ark_u_i___native_module.md#oh_pixelmapnative) \*preview) | Sets a custom drag preview for the specified component. | | [ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \* [OH_ArkUI_CreateDragPreviewOption](_ark_u_i___native_module.md#oh_arkui_createdragpreviewoption) (void) | Creates an **ArkUI_DragPreviewOption** object. | | void [OH_ArkUI_DragPreviewOption_Dispose](_ark_u_i___native_module.md#oh_arkui_dragpreviewoption_dispose) ([ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option) | Disposes of an **ArkUI_DragPreviewOption** object. | | int32_t [OH_ArkUI_DragPreviewOption_SetScaleMode](_ark_u_i___native_module.md#oh_arkui_dragpreviewoption_setscalemode) ([ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option, [ArkUI_DragPreviewScaleMode](_ark_u_i___native_module.md#arkui_dragpreviewscalemode) scaleMode) | Sets the scale mode for an **ArkUI_DragPreviewOption** object. | | int32_t [OH_ArkUI_DragPreviewOption_SetDefaultShadowEnabled](_ark_u_i___native_module.md#oh_arkui_dragpreviewoption_setdefaultshadowenabled) ([ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option, bool enabled) | Sets whether to enable the shadow effect for an **ArkUI_DragPreviewOption** object. The shadow effect is enabled by default. | | int32_t [OH_ArkUI_DragPreviewOption_SetDefaultRadiusEnabled](_ark_u_i___native_module.md#oh_arkui_dragpreviewoption_setdefaultradiusenabled) ([ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option, bool enabled) | Sets whether to enable the rounded corner effect for an **ArkUI_DragPreviewOption** object. The rounded corner effect is enabled by default. | | int32_t [OH_ArkUI_DragPreviewOption_SetNumberBadgeEnabled](_ark_u_i___native_module.md#oh_arkui_dragpreviewoption_setnumberbadgeenabled) ([ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option, bool enabled) | Sets whether to enable the badge for an ArkUI_DragPreviewOption object. If this feature is enabled, a badge that contains the number of dragged items is displayed. | | int32_t [OH_ArkUI_DragPreviewOption_SetBadgeNumber](_ark_u_i___native_module.md#oh_arkui_dragpreviewoption_setbadgenumber) ([ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option, uint32_t forcedNumber) | Sets the count on the badge. The settings will overwrite the value in the **SetDragPreviewNumberBadgeEnabled** API. | | int32_t [OH_ArkUI_DragPreviewOption_SetDefaultAnimationBeforeLiftingEnabled](_ark_u_i___native_module.md#oh_arkui_dragpreviewoption_setdefaultanimationbeforeliftingenabled) ([ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option, bool enabled) | Sets whether to enable the default animation on a click or touch. | | int32_t [OH_ArkUI_SetNodeDragPreviewOption](_ark_u_i___native_module.md#oh_arkui_setnodedragpreviewoption) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node, [ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option) | Sets an **ArkUI_DragPreviewOption** object for the specified component. | | [ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \* [OH_ArkUI_CreateDragActionWithNode](_ark_u_i___native_module.md#oh_arkui_createdragactionwithnode) ([ArkUI_NodeHandle](_ark_u_i___native_module.md#arkui_nodehandle) node) | Creates a drag action object. The object needs to be associated with a UI instance, which can be specified by passing in a component node of the current UI instance. | | [ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \* [OH_ArkUI_CreateDragActionWithContext](_ark_u_i___native_module.md#oh_arkui_createdragactionwithcontext) ([ArkUI_ContextHandle](_ark_u_i___native_module.md#arkui_contexthandle-12) uiContext) | Creates a drag action object for the specified UI instance. | | void [OH_ArkUI_DragAction_Dispose](_ark_u_i___native_module.md#oh_arkui_dragaction_dispose) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction) | Disposes of an **ArkUI_DragAction** object. | | int32_t [OH_ArkUI_DragAction_SetPointerId](_ark_u_i___native_module.md#oh_arkui_dragaction_setpointerid) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction, int32_t pointer) | Sets the pointer ID. If only one finger is operating on the screen, the pointer ID is 0. In general cases, you can set the pointer ID to 0. | | int32_t [OH_ArkUI_DragAction_SetPixelMaps](_ark_u_i___native_module.md#oh_arkui_dragaction_setpixelmaps) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction, [OH_PixelmapNative](_ark_u_i___native_module.md#oh_pixelmapnative) \*pixelmapArray[], int32_t size) | Sets the drag previews for a drag action. | | int32_t [OH_ArkUI_DragAction_SetTouchPointX](_ark_u_i___native_module.md#oh_arkui_dragaction_settouchpointx) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction, float x) | Sets the touch point relative to the upper left corner of the first drag preview (pixel map). | | int32_t [OH_ArkUI_DragAction_SetTouchPointY](_ark_u_i___native_module.md#oh_arkui_dragaction_settouchpointy) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction, float y) | Sets the touch point relative to the upper left corner of the first drag preview (pixel map). | | int32_t [OH_ArkUI_DragAction_SetData](_ark_u_i___native_module.md#oh_arkui_dragaction_setdata) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction, [OH_UdmfData](_ark_u_i___native_module.md#oh_udmfdata) \*data) | Sets the drag data. | | int32_t [OH_ArkUI_DragAction_SetDragPreviewOption](_ark_u_i___native_module.md#oh_arkui_dragaction_setdragpreviewoption) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction, [ArkUI_DragPreviewOption](_ark_u_i___native_module.md#arkui_dragpreviewoption) \*option) | Sets an **ArkUI_DragPreviewOption** object for the specified drag action object. | | int32_t [OH_ArkUI_DragAction_RegisterStatusListener](_ark_u_i___native_module.md#oh_arkui_dragaction_registerstatuslistener) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction, void \*userData, void(\*listener)([ArkUI_DragAndDropInfo](_ark_u_i___native_module.md#arkui_draganddropinfo) \*dragAndDropInfo, void \*userData)) | Registers a drag status listener. This listener can be used to check whether the data is successfully received and processed. | | void [OH_ArkUI_DragAction_UnregisterStatusListener](_ark_u_i___native_module.md#oh_arkui_dragaction_unregisterstatuslistener) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction) | Unregisters a drag status listener. | | [ArkUI_DragStatus](_ark_u_i___native_module.md#arkui_dragstatus) [OH_ArkUI_DragAndDropInfo_GetDragStatus](_ark_u_i___native_module.md#oh_arkui_draganddropinfo_getdragstatus) ([ArkUI_DragAndDropInfo](_ark_u_i___native_module.md#arkui_draganddropinfo) \*dragAndDropInfo) | Obtains the drag status of a drag action. | | [ArkUI_DragEvent](_ark_u_i___native_module.md#arkui_dragevent) \* [OH_ArkUI_DragAndDropInfo_GetDragEvent](_ark_u_i___native_module.md#oh_arkui_draganddropinfo_getdragevent) ([ArkUI_DragAndDropInfo](_ark_u_i___native_module.md#arkui_draganddropinfo) \*dragAndDropInfo) | Obtains a drag event based on the specified drag and drop information. The drag event can then be used to obtain the drag result. | | int32_t [OH_ArkUI_StartDrag](_ark_u_i___native_module.md#oh_arkui_startdrag) ([ArkUI_DragAction](_ark_u_i___native_module.md#arkui_dragaction) \*dragAction) | Initiates a drag action through the specified **DragAction** object. |