IMProcess Subroutine

Purpose

Processes keyboard events and language-specific input.

Library

Input Method Library (libIM.a)

Note: This subroutine will be removed in future releases. Use the IMFilter and IMLookupString subroutines to process keyboard events.

Syntax

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

Description

This subroutine is a main entry point to the input method of the operating system. The IMProcess subroutine processes one keyboard event at a time. Processing proceeds as follows:

  • Validates the IM parameter.
  • Performs keyboard translation for all supported modifier states.
  • Invokes internal function to do language-dependent processing.
  • Performs any necessary callback functions depending on the internal state.
  • Returns to application, setting the String and Length parameters appropriately.

Parameters

Item Description
IM Specifies the input method instance.
KeySymbol Defines the set of keyboard symbols that will be handled.
State Specifies the state of the keyboard.
String Holds the returned string. Returning a null value means that the input is used or discarded by the input method.
Note: The String parameter is not a null-terminated string.
Length Stores the length, in bytes, of the String parameter.

Return Values

This subroutine returns the IMError global variable if an error occurs. The IMerrno global variable is set to indicate the error. Some of the variable values include:

Item Description
IMError Error occurred during this subroutine.
IMTextAndAuxiliaryOff No text string in the Text area, and the Auxiliary area is not shown.
IMTextOn Text string in the Text area, but no Auxiliary area.
IMAuxiliaryOn No text string in the Text area, and the Auxiliary area is shown.
IMTextAndAuxiliaryOn Text string in the Text area, and the Auxiliary is shown.