IMProcess 子例程

用途

处理键盘事件和特定于语言的输入。

输入方法库 (libIM.a)

注: 将在将来的发行版中除去此子例程。 使用 IMFilterIMLookupString 子例程来处理键盘事件。

语法

int IMProcess (IM, KeySymbol, State, String, Length)
IMObject  IM;
KeySym  KeySymbol;
uint  State;
caddr_t * String;
uint * Length;

描述

此子例程是操作系统输入方法的主要入口点。 IMProcess 子例程一次处理一个键盘事件。 处理过程如下所示:

  • 验证 IM 参数。
  • 对所有受支持的修饰符状态执行键盘转换。
  • 调用内部函数以执行依赖于语言的处理。
  • 根据内部状态执行任何必需的回调函数。
  • 返回到应用程序,相应地设置 StringLength 参数。

参数

描述
IM 指定输入方法实例。
KeySymbol 定义将处理的键盘符号集。
状态 指定键盘的状态。
String 保存返回的字符串。 返回空值意味着输入由输入方法使用或废弃。
注: String 参数不是以 null 结束的字符串。
长度 存储 String 参数的长度 (以字节计)。

返回值

如果发生错误,那么此子例程将返回 IMError 全局变量。 IMerrno 全局变量设置为指示错误。 某些变量值包括:

描述
IMError 此子例程期间发生错误。
IMTextAndAuxiliaryOff "文本" 区域中没有文本字符串,并且未显示 "辅助" 区域。
IMTextOn 文本区域中的文本字符串,但无辅助区域。
IMAuxiliaryOn "文本" 区域中没有文本字符串,将显示 "辅助" 区域。
IMTextAndAuxiliaryOn 将显示 "文本" 区域中的文本字符串以及 "辅助"。