Working with the IME Candidate Window

The Candidate window contains a list of candidate characters for the selected character in the Composition window. Users can scroll through this list and select the character that they want before composition of the character is completed in the Composition window. A user can compose the text that they want in this manner until the composition string is finalized and the Candidate window is closed. The following screen shot shows the Composition window with Hiragana text and the Candidate window with Kanji conversion options.

Once the character that a user wants has been determined, the IME sends this character to the application in the form of WM_IME_CHAR or WM_IME_COMPOSITION/GCS_RESULT messages. If the application does not process these messages, the DefWindowProc function translates them into one or more WM_CHAR messages.

The characters in the candidate list are arranged in an array of strings in the CANDIDATELIST structure. Use the ImmGetCandidateList function to retrieve a candidate list and copy the list to a buffer. Use the ImmGetCandidateListCount function to retrieve the total size, in bytes, of all the candidate lists. To get or set information about the Candidate window in the CANDIDATEFORM structure, use the ImmGetCandidateWindow and ImmSetCandidateWindow functions.