Files
interface_sdk_c/zh-cn/inputmethod/include/inputmethod_controller_capi.h
g30043150 668c260a5c 添加花括号
Signed-off-by: g30043150 <guojin31@h-partners.com>
2026-08-18 20:00:10 +08:00

323 lines
24 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @addtogroup InputMethod
* @{
*
* @brief InputMethod模块提供C语言接口来使用输入法。"使用输入法"面向应用侧调用。
* <br>
* <br>功能定位:该模块为应用侧开发者提供自绘输入框与输入法服务交互的完整C API,支持应用绑定/解绑输入法服务、向输入法发送请求
* 和通知、接收输入法的回调通知、配置输入框属性、管理光标和避让信息等核心功能。
* <br>
* <br>使用场景:适用于使用NDK开发自绘输入框的应用,需要与系统输入法服务进行交互的场景。典型流程为:应用创建TextEditorProxy
* (文本编辑器代理)和AttachOptions(绑定配置选项),通过Controller绑定输入法服务,绑定成功后通过InputMethodProxy(输入法代
* 理)与输入法交互,使用完毕后通过Controller解绑。
* <br>
* <br>使用后效果:绑定输入法后,应用可接收输入法的文本插入、删除、光标移动等回调通知,也可主动向输入法发送光标更新、选区变
* 更、私有命令等请求。解绑后,所有交互通道关闭,相关资源释放。
* <br>
* <br>生命周期管理:本模块遵循严格的创建/销毁配对原则和绑定/解绑配对原则:
* <br>
* <br>- 绑定/解绑配对:OH_InputMethodController_Attach必须与OH_InputMethodController_Detach配对调用,未解绑会导致输入法
* 资源泄漏。
* <br>- 创建/销毁配对:所有Create函数创建的对象必须通过对应的Destroy函数销毁,否则会导致内存泄漏。
* <br>- 调用顺序:先创建依赖对象(TextEditorProxy、AttachOptions),再执行Attach绑定,绑定成功后使用InputMethodProxy交
* 互,最后Detach解绑并销毁所有创建的对象。
* <br>
* <br>线程安全:本模块的API非线程安全,建议在主线程调用。TextEditorProxy的回调执行线程可通过
* OH_TextEditorProxy_SetCallbackInMainThread配置。
*
* <br>模块架构: 本模块由9个头文件组成,按职责分为四层:
* <br>
* <br>- 控制层:inputmethod_controller_capi.h —— 模块核心入口,提供绑定/解绑输入法服务的能力,是所有交互的起点和终点。
* <br>- 交互层:inputmethod_text_editor_proxy_capi.h和inputmethod_inputmethod_proxy_capi.h —— 双向交互通道。
* TextEditorProxy是输入法→应用方向的回调注册通道,应用通过它接收输入法的文本插入、删除等通知;InputMethodProxy是应用→输入法方
* 向的请求发送通道,应用通过它向输入法发送光标更新、选区变更等通知。
* <br>- 配置层:inputmethod_attach_options_capi.h、inputmethod_text_config_capi.h、inputmethod_cursor_info_capi.h、
* inputmethod_text_avoid_info_capi.h —— 各类配置和信息的承载对象,分别管理绑定选项、输入框配置、光标位置信息、避让区域信息。
* <br>- 数据层:inputmethod_private_command_capi.h和inputmethod_types_capi.h —— 私有命令数据和公共类型定义(枚举、错误
* 码等)。
* <br>
* <br>典型调用流程:
* <br>1. 通过inputmethod_text_editor_proxy_capi.h创建TextEditorProxy并注册回调。
* <br>2. 通过inputmethod_attach_options_capi.h创建AttachOptions配置绑定选项。
* <br>3. 通过inputmethod_controller_capi.h调用Attach绑定输入法,获取InputMethodProxy。
* <br>4. 通过inputmethod_inputmethod_proxy_capi.h使用InputMethodProxy与输入法交互。
* <br>5. 通过inputmethod_text_config_capi.h、inputmethod_cursor_info_capi.h等管理配置信息。
* <br>6. 通过inputmethod_controller_capi.h调用Detach解绑。
* <br>7. 销毁所有创建的对象。
*
* @library libohinputmethod.so
* @kit IMEKit
* @syscap SystemCapability.MiscServices.InputMethodFramework
* @since 12
*/
/**
* @file inputmethod_controller_capi.h
*
* @brief 输入法控制器的头文件,提供绑定(Attach)和解绑(Detach)输入法服务的核心方法,是应用与输入法服务交互的入口和终点。
* Attach必须在创建TextEditorProxy和AttachOptions之后调用,Detach必须在不再使用输入法时调用以释放资源。Attach/Detach必须配对使
* 用。
* <br>
* <br>功能:通过OH_InputMethodController_Attach将应用绑定到输入法服务,建立双向交互通道;通过
* OH_InputMethodController_Detach将应用从输入法服务解除绑定,关闭交互通道并释放相关资源。
* <br>
* <br>使用场景:适用于使用NDK开发自绘输入框的应用,需要在应用启动或输入框获得焦点时绑定输入法服务,在应用退出或输入框失去焦点
* 时解绑输入法服务的场景。
* <br>
* <br>使用后效果:OH_InputMethodController_Attach成功后,应用可通过返回的InputMethodProxy与输入法交互(如显示/隐藏键盘、
* 通知光标更新等),同时输入法可通过TextEditorProxy的回调向应用发送文本插入、删除等通知。OH_InputMethodController_Detach后,交
* 互通道关闭,inputMethodProxy不再有效。
*
* @include <inputmethod/inputmethod_controller_capi.h>
* @library libohinputmethod.so
* @kit IMEKit
* @syscap SystemCapability.MiscServices.InputMethodFramework
* @since 12
* @version 1.0
*/
#ifndef OHOS_INPUTMETHOD_CONTROLLER_CAPI_H
#define OHOS_INPUTMETHOD_CONTROLLER_CAPI_H
#include <stdint.h>
#include <stdlib.h>
#include "inputmethod_text_editor_proxy_capi.h"
#include "inputmethod_inputmethod_proxy_capi.h"
#include "inputmethod_attach_options_capi.h"
#include "../arkui/drag_and_drop.h"
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/**
* @brief 将应用绑定到输入法服务,建立应用与输入法之间的双向交互通道。必须在创建TextEditorProxy和AttachOptions之后调用,绑定成功
* 后,应用可通过返回的InputMethodProxy主动向输入法发送请求和通知,同时输入法可通过TextEditorProxy中注册的回调函数向应用发送文本
* 插入、删除等通知。
* <br>
* <br>前置条件:
* <br>1. 必须先通过OH_TextEditorProxy_Create创建InputMethod_TextEditorProxy实例,并通过OH_TextEditorProxy_SetXXXFunc
* 系列函数注册必要的回调(如InsertTextFunc、DeleteForwardFunc、GetTextConfigFunc等)。
* <br>2. 必须先通过OH_AttachOptions_Create或OH_AttachOptions_CreateWithRequestKeyboardReason创建
* InputMethod_AttachOptions实例。
* <br>3. TextEditorProxy中注册的回调函数必须已正确实现,否则输入法交互将不完整。
* <br>
* <br>配对调用:
* <br>- 调用OH_InputMethodController_Attach后,必须在使用完毕后调用OH_InputMethodController_Detach解除绑定。
* <br>- 未调用OH_InputMethodController_Detach会导致输入法资源泄漏。
* <br>- 建议在应用退出或输入框不再需要输入法时及时调用OH_InputMethodController_Detach。
* <br>
* <br>调用顺序:
* <br>1. OH_TextEditorProxy_Create → 创建TextEditorProxy
* <br>2. OH_TextEditorProxy_SetXXXFunc → 注册回调函数
* <br>3. OH_AttachOptions_Create → 创建AttachOptions
* <br>4. OH_InputMethodController_Attach → 绑定输入法(返回InputMethodProxy
* <br>5. OH_InputMethodProxy_ShowKeyboard / NotifyCursorUpdate 等 → 使用输入法功能
* <br>6. OH_InputMethodController_Detach → 解绑输入法
* <br>7. OH_TextEditorProxy_Destroy / OH_AttachOptions_Destroy → 销毁创建的对象
* <br>
* <br>生命周期管理:
* <br>- textEditorProxy:调用者自行管理生命周期。若OH_InputMethodController_Attach成功,在下次
* OH_InputMethodController_Attach或OH_InputMethodController_Detach完成之前不可释放textEditorProxy,否则会导致输入法回调时
* 访问无效内存。
* <br>- options:调用者自行管理生命周期。OH_InputMethodController_Attach调用完成后,options可立即通过
* OH_AttachOptions_Destroy销毁,因为OH_InputMethodController_Attach过程已读取完options中的配置信息。
* <br>- inputMethodProxy:由OH_InputMethodController_Attach函数通过双指针输出参数分配内存,调用者在
* OH_InputMethodController_Detach之前需保持inputMethodProxy有效,OH_InputMethodController_Detach后该指针不可继续使用。
* <br>
* <br>线程安全:非线程安全,建议在主线程调用。
* @param textEditorProxy 输入指针,表示指向InputMethod_TextEditorProxy实例的指针。
* <br>**含义/功能:** 作为应用接收输入法回调通知的通道载体,绑定后输入法将通过此对象中注册的回调函数与应用交互。
* <br>**使用场景:** 在绑定输入法前,应用需先创建TextEditorProxy并注册必要的回调函数。
* <br>**使用后效果:** 若OH_InputMethodController_Attach成功,输入法将通过此对象中的回调函数向应用发送通知;若失败,此对象
* 不受影响可继续使用。
* <br>**前置条件:** 必须通过OH_TextEditorProxy_Create创建,并通过SetXXXFunc系列函数注册回调。
* <br>**NULL指针处理:** 不可为NULL,传入NULL将返回IME_ERR_NULL_POINTER。
* <br>**生命周期管理:** 调用者自行管理。若Attach成功,
* 在下次OH_InputMethodController_Attach或OH_InputMethodController_Detach完成之前不可释放textEditorProxy
* 否则输入法回调时将访问已释放的内存导致未定义行为。
* <br>**内存分配责任:** 由调用者通过OH_TextEditorProxy_Create分配,通过OH_TextEditorProxy_Destroy释放。
* @param options 输入指针,表示指向InputMethod_AttachOptions实例的指针。
* <br>**含义/功能:** 指定绑定输入法时的行为配置,包括是否在绑定时显示键盘以及请求键盘的原因。
* <br>**使用场景:** 在绑定前创建并配置好AttachOptions,用于控制绑定时的键盘显示行为。
* <br>**使用后效果:** OH_InputMethodController_Attach函数将读取options中的配置参数来决定绑定行为。
* <br>**前置条件:** 必须通过OH_AttachOptions_Create或OH_AttachOptions_CreateWithRequestKeyboardReason创建。
* <br>**NULL指针处理:** 不可为NULL,传入NULL将返回IME_ERR_NULL_POINTER。
* <br>**生命周期管理:** OH_InputMethodController_Attach完成后options可立即销毁,因为绑定过程已读取完配置信息。
* 建议在OH_InputMethodController_Attach成功后调用OH_AttachOptions_Destroy释放内存。
* <br>**内存分配责任:** 由调用者通过Create函数分配,通过OH_AttachOptions_Destroy释放。
* @param inputMethodProxy 输出双指针,表示指向InputMethod_InputMethodProxy指针的指针。
* <br>**含义/功能:** 用于接收OH_InputMethodController_Attach成功后返回的InputMethodProxy实例,该实例是应用主动向输入法
* 发送请求和通知的交互通道。
* <br>**使用场景:** OH_InputMethodController_Attach成功后,调用者通过此指针获取InputMethodProxy,后续调用
* ShowKeyboard、HideKeyboard、 NotifyCursorUpdate等函数时需传入此指针。
* <br>**使用后效果:** 若OH_InputMethodController_Attach成功,*inputMethodProxy将被赋值为有效的InputMethodProxy指针;
* 若失败,*inputMethodProxy的值不确定,不应使用。
* <br>**双指针说明:** 此参数为双指针(Pointer to Pointer),
* OH_InputMethodController_Attach函数内部将分配InputMethodProxy的内存并通过此双指针输出给调用者。调用者需提供有效的指针变
* 量地址,不可为NULL。
* <br>**NULL指针处理:** inputMethodProxy本身不可为NULL,传入NULL将返回IME_ERR_NULL_POINTER。
* <br>**内存管理:** InputMethodProxy的内存由OH_InputMethodController_Attach函数内部分配,
* 其生命周期由框架管理直到OH_InputMethodController_Detach完成。调用者不可自行释放此内存。
* OH_InputMethodController_Detach后inputMethodProxy指向的内存将被释放,该指针不可继续使用。
* <br>**相关参数制约:** 此指针仅在OH_InputMethodController_Attach返回IME_ERR_OK时有效;
* OH_InputMethodController_Detach后此指针立即失效,
* 不可继续使用,否则会导致未定义行为或崩溃。
* @return 返回一个特定的错误码。
* <br>{@link IME_ERR_OK} - 表示成功。此时*inputMethodProxy有效,可用于后续交互。
* <br>{@link IME_ERR_PARAMCHECK} - 表示参数错误。检查textEditorProxy、options、inputMethodProxy是否为有效指针。
* <br>{@link IME_ERR_IMCLIENT} - 输入法客户端错误。可能是输入法服务未就绪或连接异常。
* <br>{@link IME_ERR_IMMS} - 输入法服务错误。可能是系统输入法管理服务异常。
* <br>{@link IME_ERR_NULL_POINTER} - 非预期的空指针。textEditorProxy、options或inputMethodProxy为NULL时返回。
* <br>**错误处理建议:** 若返回非IME_ERR_OK,应检查参数有效性后重试;若返回IME_ERR_IMCLIENT或IME_ERR_IMMS,说明服务异常,
* 建议稍后重试。具体错误码可以参考
* {@link InputMethod_ErrorCode}。
* @since 12
*/
InputMethod_ErrorCode OH_InputMethodController_Attach(InputMethod_TextEditorProxy *textEditorProxy,
InputMethod_AttachOptions *options, InputMethod_InputMethodProxy **inputMethodProxy);
/**
* @brief 将应用绑定到输入法服务,同时携带UI上下文信息。适用于需要将输入法与特定UI页面关联的场景(如多窗口场景下指定绑定到哪个页
* 面)。与OH_InputMethodController_Attach的区别在于,此函数额外接受一个ArkUI_ContextHandle参数,用于在多窗口或多页面场景下指
* 定绑定到具体的UI上下文,使输入法服务能精确关联到当前活跃的页面。
* <br>
* <br>前置条件:
* <br>1. 必须先获取有效的ArkUI_ContextHandle(通过ArkUI模块创建UI上下文获取)。
* <br>2. 必须先通过OH_TextEditorProxy_Create创建InputMethod_TextEditorProxy实例,并通过OH_TextEditorProxy_SetXXXFunc
* 系列函数注册必要的回调。
* <br>3. 必须先通过OH_AttachOptions_Create或OH_AttachOptions_CreateWithRequestKeyboardReason创建
* InputMethod_AttachOptions实例。
* <br>
* <br>配对调用:
* <br>- 调用OH_InputMethodController_AttachWithUIContext后,必须在使用完毕后调用OH_InputMethodController_Detach解除绑
* 定。
* <br>- 未调用OH_InputMethodController_Detach会导致输入法资源泄漏。
* <br>
* <br>调用顺序:
* <br>1. 获取ArkUI_ContextHandle
* <br>2. OH_TextEditorProxy_Create → 创建TextEditorProxy
* <br>3. OH_TextEditorProxy_SetXXXFunc → 注册回调函数
* <br>4. OH_AttachOptions_Create → 创建AttachOptions
* <br>5. OH_InputMethodController_AttachWithUIContext → 绑定输入法(携带UI上下文)
* <br>6. OH_InputMethodProxy_ShowKeyboard / NotifyCursorUpdate 等 → 使用输入法功能
* <br>7. OH_InputMethodController_Detach → 解绑输入法
* <br>8. 销毁创建的对象
* <br>
* <br>生命周期管理:
* <br>- context:由ArkUI模块管理,需在绑定期间保持有效。
* <br>- textEditorProxy:调用者自行管理。若OH_InputMethodController_AttachWithUIContext成功,在下次
* OH_InputMethodController_AttachWithUIContext或OH_InputMethodController_Detach完成之前不可释放。
* <br>- optionsOH_InputMethodController_AttachWithUIContext完成后可立即销毁。
* <br>- inputMethodProxy:由AttachWithUIContext函数内部分配,OH_InputMethodController_Detach后释放。
* <br>
* <br>使用场景:适用于多窗口或多页面应用场景,需要将输入法绑定到特定UI页面的场景。当应用有多个UI上下文(如多窗口),使用此函
* 数可确保输入法与正确的页面关联,避免输入法事件发送到错误的窗口。
* <br>
* <br>线程安全:非线程安全,建议在主线程调用。
*
* @param context 输入指针,表示指向ArkUI_Context实例的指针。
* <br>**含义/功能:** 指定输入法绑定到哪个UI上下文(页面/窗口),使输入法服务能精确关联到当前活跃的页面。
* <br>**使用场景:** 在多窗口或多页面应用中,需要将输入法绑定到特定UI上下文时使用。
* <br>**使用后效果:** 输入法事件将发送到与此上下文关联的页面。
* <br>**前置条件:** 必须通过ArkUI模块获取有效的ArkUI_ContextHandle。
* <br>**NULL指针处理:** 不可为NULL,传入NULL将返回IME_ERR_NULL_POINTER。
* <br>**生命周期管理:** 需在绑定期间保持ArkUI_Context有效,OH_InputMethodController_Detach前不可销毁对应的UI上下文。
* @param textEditorProxy 输入指针,表示指向InputMethod_TextEditorProxy实例的指针。
* <br>**含义/功能:** 与OH_InputMethodController_Attach中的textEditorProxy参数相同,作为应用接收输入法回调通知的通道载
* 体。使用场景、前置条件、NULL指针处理、
* 生命周期管理均与OH_InputMethodController_Attach中textEditorProxy参数一致。
* @param options 输入指针,表示指向InputMethod_AttachOptions实例的指针。含义/功能:与OH_InputMethodController_Attach中的
* options参数相同,
* 用于指定绑定时的行为配置。使用场景、前置条件、NULL指针处理、生命周期管理均与OH_InputMethodController_Attach中options参数
* 一致。
* @param inputMethodProxy 输出双指针,表示指向InputMethod_InputMethodProxy指针的指针。含义/功能、使用场景、双指针说明、NULL
* 指针处理、内存管理、
* 相关参数制约均与OH_InputMethodController_Attach中的inputMethodProxy参数一致。
* @return 返回一个特定的错误码。
* <br>{@link IME_ERR_OK} - 表示成功。此时*inputMethodProxy有效,可用于后续交互。
* <br>{@link IME_ERR_PARAMCHECK} - 表示参数错误。检查context、textEditorProxy、options、inputMethodProxy是否为有效指
* 针。
* <br>{@link IME_ERR_IMCLIENT} - 输入法客户端错误。
* <br>{@link IME_ERR_IMMS} - 输入法服务错误。
* <br>{@link IME_ERR_NULL_POINTER} - 非预期的空指针。context、textEditorProxy、options或inputMethodProxy为NULL时返
* 回。
* <br>**错误处理建议:** 若返回非IME_ERR_OK,应检查参数有效性后重试;若返回IME_ERR_IMCLIENT或IME_ERR_IMMS,说明服务异常,
* 建议稍后重试。具体错误码可以参考
* {@link InputMethod_ErrorCode}。
* @since 23
*/
InputMethod_ErrorCode OH_InputMethodController_AttachWithUIContext(ArkUI_ContextHandle context,
InputMethod_TextEditorProxy *textEditorProxy, InputMethod_AttachOptions *options,
InputMethod_InputMethodProxy **inputMethodProxy);
/**
* @brief 将应用从输入法服务解除绑定,关闭交互通道。OH_InputMethodController_Detach后,inputMethodProxy不再有效,不可继续使用
* 任何通过inputMethodProxy调用的函数(如ShowKeyboard、HideKeyboard、NotifyCursorUpdate等),否则会导致未定义行为或崩溃。
* <br>
* <br>前置条件:
* <br>- 必须先调用OH_InputMethodController_Attach或OH_InputMethodController_AttachWithUIContext成功绑定输入法,并获得
* 有效的inputMethodProxy。
* <br>
* <br>调用顺序:
* <br>- 必须先调用OH_InputMethodController_Attach或OH_InputMethodController_AttachWithUIContext绑定输入法。
* <br>- 调用OH_InputMethodController_Detach完成输入法使用后,不能再使用inputMethodProxy。
* <br>- OH_InputMethodController_Detach完成后,可安全销毁TextEditorProxy(通过OH_TextEditorProxy_Destroy)。
* <br>
* <br>错误处理:
* <br>- 如果inputMethodProxy无效或未绑定,调用OH_InputMethodController_Detach会返回IME_ERR_NULL_POINTER或
* IME_ERR_IMCLIENT。
* <br>- 重复调用OH_InputMethodController_Detach使用同一个inputMethodProxy可能导致未定义行为,应避免。
* <br>- OH_InputMethodController_Detach失败后不应继续使用inputMethodProxy。
* <br>
* <br>生命周期管理:
* <br>- OH_InputMethodController_Detach后,inputMethodProxy指向的内存由框架释放,调用者不可再使用此指针。
* <br>- OH_InputMethodController_Detach后,应用可安全销毁TextEditorProxy,因为输入法不再会通过回调访问TextEditorProxy。
* <br>- 建议OH_InputMethodController_Detach成功后立即调用OH_TextEditorProxy_Destroy和OH_AttachOptions_Destroy释放所有
* 创建的对象。
* <br>
* <br>线程安全:非线程安全,建议在主线程调用。
*
* @param inputMethodProxy 输入指针,表示指向InputMethod_InputMethodProxy实例的指针。含义/功能:指定要解除绑定的输入法代理实
* 例,
* OH_InputMethodController_Detach将关闭此代理对应的交互通道并释放相关资源。使用场景:在应用不再需要输入法交互时调用,如应用
* 退出、输入框失去焦点等。使用后效果:
* OH_InputMethodController_Detach成功后,inputMethodProxy立即失效,不可继续使用;输入法不再向应用发送回调通知。
* <br>**前置条件:** 此指针必须由OH_InputMethodController_Attach或OH_InputMethodController_AttachWithUIContext成功返
* 回。
* <br>**NULL指针处理:** 不可为NULL,传入NULL将返回IME_ERR_NULL_POINTER。
* <br>**生命周期管理:** 此指针由OH_InputMethodController_Attach/AttachWithUIContext函数分配,
* OH_InputMethodController_Detach成功后由框架释放,调用者不可自行释放,也不可在OH_InputMethodController_Detach后继续使
* 用。
* <br>**使用注意:** Detach后此指针立即失效,将此指针传入任何InputMethodProxy相关函数会导致未定义行为。
* 同一inputMethodProxy不可重复调用OH_InputMethodController_Detach。
* @return 返回一个特定的错误码。
* <br>{@link IME_ERR_OK} - 表示成功。解绑完成,inputMethodProxy不再有效。
* <br>{@link IME_ERR_IMCLIENT} - 表示输入法客户端错误。可能是客户端连接异常或已断开。
* <br>{@link IME_ERR_IMMS} - 表示输入法服务错误。可能是服务端异常。
* <br>{@link IME_ERR_NULL_POINTER} - 非预期的空指针。inputMethodProxy为NULL时返回。
* <br>**错误处理建议:** 若返回IME_ERR_OK,解绑成功,后续可安全销毁所有创建的对象;若返回IME_ERR_IMCLIENT,说明客户端状态
* 异常,建议记录日志并销毁相关对象;
* 若返回IME_ERR_NULL_POINTER,说明传入的指针无效,应检查是否已OH_InputMethodController_Detach或指针已失效。具体错误码可以
* 参考{@link InputMethod_ErrorCode}。
*
* @since 12
*/
InputMethod_ErrorCode OH_InputMethodController_Detach(InputMethod_InputMethodProxy *inputMethodProxy);
#ifdef __cplusplus
}
#endif /* __cplusplus */
/** @} */
#endif // OHOS_INPUTMETHOD_CONTROLLER_CAPI_H