diff --git a/arkui/ace_engine/native/libace.ndk.json b/arkui/ace_engine/native/libace.ndk.json
index 3b7a8c0affac35abc241180a6e296a99b8140346..4b472659e865eb4a7fc6ab383610ad1ea3ce90c3 100644
--- a/arkui/ace_engine/native/libace.ndk.json
+++ b/arkui/ace_engine/native/libace.ndk.json
@@ -3334,5 +3334,61 @@
{
"first_introduced": "20",
"name": "OH_ArkUI_EmbeddedComponentOption_SetOnTerminated"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_NativeXComponent_GetExtraMouseEventInfo"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_NativeXComponent_GetMouseEventModifierKeyStates"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_NativeXComponent_GetKeyEventModifierKeyStates"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_NativeXComponent_GetKeyEventNumLockState"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_NativeXComponent_GetKeyEventCapsLockState"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_NativeXComponent_GetKeyEventScrollLockState"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_ArkUI_XComponent_SetExpectedFrameRateRange"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_ArkUI_XComponent_RegisterOnFrameCallback"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_ArkUI_XComponent_UnregisterOnFrameCallback"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_ArkUI_XComponent_SetNeedSoftKeyboard"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_ArkUI_AccessibilityProvider_Create"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_ArkUI_AccessibilityProvider_Dispose"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_ArkUI_SurfaceCallback_SetSurfaceShowEvent"
+ },
+ {
+ "first_introduced": "20",
+ "name": "OH_ArkUI_SurfaceCallback_SetSurfaceHideEvent"
}
]
\ No newline at end of file
diff --git a/arkui/ace_engine/native/native_interface_xcomponent.h b/arkui/ace_engine/native/native_interface_xcomponent.h
index 8d2a66804eb747f80637660243e7820398bb45fc..a0361355175dc4b5dd0111074eeeb62fb61d4267 100644
--- a/arkui/ace_engine/native/native_interface_xcomponent.h
+++ b/arkui/ace_engine/native/native_interface_xcomponent.h
@@ -597,6 +597,43 @@ int32_t OH_NativeXComponent_RegisterCallback(OH_NativeXComponent* component, OH_
int32_t OH_NativeXComponent_RegisterMouseEventCallback(
OH_NativeXComponent* component, OH_NativeXComponent_MouseEvent_Callback* callback);
+/**
+ * @brief Provides an encapsulated OH_NativeXComponent_ExtraMouseEventInfo
+ * instance which has extra info compared to OH_NativeXComponent_MouseEvent.
+ *
+ * @since 20
+ * @version 1.0
+ */
+typedef struct OH_NativeXComponent_ExtraMouseEventInfo OH_NativeXComponent_ExtraMouseEventInfo;
+
+/**
+ * @brief Obtains the extra mouse event dispatched by the ArkUI XComponent.
+ *
+ * @param component Indicates the pointer to this OH_NativeXComponent instance.
+ * @param extraMouseEventInfo Indicates the pointer to pointer of OH_NativeXComponent_ExtraMouseEventInfo instance.
+ * @return Returns the status code of the execution.
+ * {@link ARKUI_ERROR_CODE_NO_ERROR} the execution is successful.
+ * {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_NativeXComponent_GetExtraMouseEventInfo(OH_NativeXComponent* component, OH_NativeXComponent_ExtraMouseEventInfo** extraMouseEventInfo);
+
+/**
+ * @brief Obtains the state of the modifier keys of the mouse event.
+ *
+ * @param ExtraMouseEventInfo Indicates the pointer to this OH_NativeXComponent_ExtraMouseEventInfo instance.
+ * @param keys Pointer to a variable where the current combination of pressed modifier keys will be returned.
+ * The application can use bitwise operations to determine the state of each modifier key.
+ * Modifier keys can be referred to {@link ArkUI_ModifierKeyName}.
+ * @return Returns the result code.
+ * Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
+ * Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_NativeXComponent_GetMouseEventModifierKeyStates(OH_NativeXComponent_ExtraMouseEventInfo* ExtraMouseEventInfo, uint64_t* keys);
+
/**
* @brief Registers a callback for this OH_NativeXComponent instance.
*
@@ -701,6 +738,60 @@ int32_t OH_NativeXComponent_GetKeyEventDeviceId(OH_NativeXComponent_KeyEvent* ke
*/
int32_t OH_NativeXComponent_GetKeyEventTimestamp(OH_NativeXComponent_KeyEvent* keyEvent, int64_t* timestamp);
+/**
+ * @brief Obtains the state of the modifier keys of the key event.
+ *
+ * @param keyEvent Indicates the pointer to this OH_NativeXComponent_KeyEvent instance.
+ * @param keys Pointer to a variable where the current combination of pressed modifier keys will be returned.
+ * The application can use bitwise operations to determine the state of each modifier key.
+ * Modifier keys can be referred to {@link ArkUI_ModifierKeyName}.
+ * @return Returns the result code.
+ * Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
+ * Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_NativeXComponent_GetKeyEventModifierKeyStates(OH_NativeXComponent_KeyEvent* keyEvent, uint64_t* keys);
+
+/**
+ * @brief Obtains the Num Lock state of the key event.
+ *
+ * @param keyEvent Indicates the pointer to this OH_NativeXComponent_KeyEvent instance.
+ * @param isNumLockOn Return whether the Num Lock is on.
+ * @return Returns the result code.
+ * Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
+ * Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_NativeXComponent_GetKeyEventNumLockState(OH_NativeXComponent_KeyEvent* keyEvent, bool* isNumLockOn);
+
+/**
+ * @brief Obtains the Caps Lock state of the key event.
+ *
+ * @param keyEvent Indicates the pointer to this OH_NativeXComponent_KeyEvent instance.
+ * @param isCapsLockOn Return whether the Caps Lock is on.
+ * @return Returns the result code.
+ * Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
+ * Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_NativeXComponent_GetKeyEventCapsLockState(OH_NativeXComponent_KeyEvent* keyEvent, bool* isCapsLockOn);
+
+/**
+ * @brief Obtains the Scroll Lock state of the key event.
+ *
+ * @param keyEvent Indicates the pointer to this OH_NativeXComponent_KeyEvent instance.
+ * @param isScrollLockOn Return whether the Scroll Lock is on.
+ * @return Returns the result code.
+ * Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
+ * Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_NativeXComponent_GetKeyEventScrollLockState(OH_NativeXComponent_KeyEvent* keyEvent, bool* isScrollLockOn);
+
/**
* @brief Set the Expected FrameRateRange.
*
@@ -1110,6 +1201,97 @@ int32_t OH_ArkUI_XComponent_Finalize(ArkUI_NodeHandle node);
*/
int32_t OH_ArkUI_XComponent_IsInitialized(ArkUI_NodeHandle node, bool* isInitialized);
+/**
+ * @brief Set the Expected FrameRateRange for the XComponent node.
+ *
+ * @param node Indicates the pointer to the XComponent node.
+ * @param range Indicates the expected rate range.
+ * @return Returns the status code of the execution.
+ * {@link ARKUI_ERROR_CODE_NO_ERROR} the execution is successful.
+ * {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_ArkUI_XComponent_SetExpectedFrameRateRange(
+ ArkUI_NodeHandle node, OH_NativeXComponent_ExpectedRateRange range);
+
+/**
+ * @brief Registers an onFrame callback for the XComponent node.
+ *
+ * @param node Indicates the pointer to the XComponent node.
+ * @param callback Indicates the pointer to an onFrame callback.
+ * @return Returns the status code of the execution.
+ * {@link ARKUI_ERROR_CODE_NO_ERROR} the execution is successful.
+ * {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_ArkUI_XComponent_RegisterOnFrameCallback(ArkUI_NodeHandle node,
+ void (*callback)(ArkUI_NodeHandle node, uint64_t timestamp, uint64_t targetTimestamp));
+
+/**
+ * @brief UnRegister the onFrame callback for the XComponent node.
+ *
+ * @param node Indicates the pointer to the XComponent node.
+ * @return Returns the status code of the execution.
+ * {@link ARKUI_ERROR_CODE_NO_ERROR} the execution is successful.
+ * {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ * @version 1.0
+ */
+int32_t OH_ArkUI_XComponent_UnregisterOnFrameCallback(ArkUI_NodeHandle node);
+
+/**
+ * @brief Set whether the XComponent node needs soft keyboard when focused.
+ * @param node Indicates the pointer to the XComponent node.
+ * @param needSoftKeyboard Indicates whether the XComponent node needs soft keyboard or not.
+ * Default value is false.
+ * @return Returns the status code of the execution.
+ * {@link ARKUI_ERROR_CODE_NO_ERROR} the execution is successful.
+ * {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
+ * @since 20
+ */
+int32_t OH_ArkUI_XComponent_SetNeedSoftKeyboard(ArkUI_NodeHandle node, bool needSoftKeyboard);
+
+/**
+ * @brief Create a ArkUI_AccessibilityProvider object from an XComponent node.
+ *
+ * @param node Indicates the pointer to the XComponent node.
+ * @return Returns the created ArkUI_AccessibilityProvider object's pointer.
+ * @since 20
+ */
+ArkUI_AccessibilityProvider* OH_ArkUI_AccessibilityProvider_Create(ArkUI_NodeHandle node);
+
+/**
+ * @brief Disposes of an ArkUI_AccessibilityProvider object.
+ *
+ * @param provider Indicates the pointer to ArkUI_AccessibilityProvider object needed to dispose.
+ * @since 20
+ */
+void OH_ArkUI_AccessibilityProvider_Dispose(ArkUI_AccessibilityProvider* provider);
+
+/**
+ * @brief Set the surface show event of the surface callback.
+ *
+ * @param callback Indicated the pointer to the surface callback.
+ * @param onSurfaceShow Indicates the surface show callback event which will called when the surface is shown.
+ * @since 20
+ */
+void OH_ArkUI_SurfaceCallback_SetSurfaceShowEvent(
+ OH_ArkUI_SurfaceCallback* callback,
+ void (*onSurfaceShow)(OH_ArkUI_SurfaceHolder* surfaceHolder));
+
+/**
+ * @brief Set the surface hide event of the surface callback.
+ *
+ * @param callback Indicated the pointer to the surface callback.
+ * @param onSurfaceHide Indicates the surface hide callback event which will called when the surface is hide.
+ * @since 20
+ */
+void OH_ArkUI_SurfaceCallback_SetSurfaceHideEvent(
+ OH_ArkUI_SurfaceCallback* callback,
+ void (*onSurfaceHide)(OH_ArkUI_SurfaceHolder* surfaceHolder));
+
#ifdef __cplusplus
};
#endif