IME Event Handling

When IME gets some event through ImeNotifyEvent call, usually IME changes the IM instance contents and then calls appropriate ImRequestEvent so that the system will route WM_IMEREQUEST or WM_IMENOTIFY message. Sample pseudo code will look like this,

ImeNotifyEvent( EventType )
{
        switch( EventType )
        {
                case SomeEvent:

                        /* IME logic(i.e. no display) processing */

                        ImRequestIMInstance();
                        ImRequestIMIPart(); /* if required */

                        /* Reflect the processing in instance */

                        ImReleaseIMIPart(); /* if required */
                        ImReleaseIMInstance();

                        /* Request event to route */

                        ImRequestEvent( RequestEvent type for 'SomeEvent' );

                        break;

                        :
        }

        return NO_ERROR;
}

If IME does not call ImRequestEvent for events which needs display change, L3 application(also the default part classes) cannot show IME related display.


[Back: Memory management]
[Next: IME Interface]