Platform SDK: International Features

WM_IME_COMPOSITION

The WM_IME_COMPOSITION message is sent to an application when the IME changes composition status as a result of a keystroke. An application should process this message if it displays composition characters itself. Otherwise, it should send the message to the IME window.

A window receives this message through its WindowProc function.

LRESULT CALLBACK WindowProc(
  HWND hwnd,       // handle to window
  UINT uMsg,       // WM_IME_COMPOSITION
  WPARAM wParam,   // DBCS character
  LPARAM lParam    // change indicator
);

Parameters

wParam
DBCS character representing the latest change to the composition string.
lParam
Specifies how the composition string or character changed. This parameter can be one or more of the following values:

GCS_COMPATTR
GCS_COMPCLAUSE
GCS_COMPREADSTR
GCS_COMPREADATTR
GCS_COMPREADCLAUSE
GCS_COMPSTR
GCS_CURSORPOS
GCS_DELTASTART
GCS_RESULTCLAUSE
GCS_RESULTREADCLAUSE
GCS_RESULTREADSTR
GCS_RESULTSTR

For more information about these values, see IME Composition String Values.

The lParam parameter can also be one or more of the following values.
Value Meaning
CS_INSERTCHAR The wParam composition character should be inserted at the current insertion point. An application should display the composition character if it processes this message.
CS_NOMOVECARET The application must not move the caret position as a result of processing the message. For example, if an IME specifies a combination of CS_INSERTCHAR and CS_NOMOVECARET, the application should insert the specified character at the current caret position but should not move caret to the next position. A subsequent WM_IME_COMPOSITION message with GCS_RESULTSTR will replace this character.

Return Values

This message has no return value.

Remarks

If the application has created an IME window, it should pass this message to that window. The DefWindowProc function processes this message by passing it to the default IME window. The IME window processes this message by updating its appearance based on the change flag specified. An application can call ImmGetCompositionString to retrieve the new composition status.

If none of the GCS_ values are set, the message indicates that the current composition has been canceled and applications that draw the composition string should delete the string.

Requirements

  Windows NT/2000: Requires Windows NT 4.0 or later.
  Windows 95/98: Requires Windows 95 or later.
  Header: Declared in Imm.h.

See Also

Input Method Editor Overview, Input Method Editor Messages, DefWindowProc, ImmGetCompositionString