Developing IME-Aware Multiple-thread Applications

The IMM includes thread identification checking that determines if a calling thread is the creator of a specified input method context handle (HIMC type) or window handle (HWND type). If the thread is not the creator of the handle, the called IMM function fails and a subsequent call to GetLastError returns ERROR_INVALID_ACCESS.


The current IMM architecture does not provide a synchronization facility for access to IMM handles.


To use thread identification checking, your applications must adhere to the following guidelines:

  • A thread should not access the input context created by another thread.
  • A thread should not associate an input context with a window created by another thread, and vice versa.

Using Input Method Manager