Created attachment 375759 [details] [diff] [review] Patch v1.0 if the system was installed one or more IMEs, WM_IME_SETCONTEXT and WM_IME_NOTIFY is called even if the current keyboard layout doesn't use IME. At this time, we should not create the instance of nsIMM32Handler for footprint. I think that WM_IME_CHAR, WM_IME_NOTIFY, WM_IME_REQUEST, WM_IME_SELECT and WM_IME_SETCONTEXT can be processed without nsIMM32Handler instance. So, their handlers can be static methods. However, for WM_IME_REQUEST, I need more works. Temporary, we should keep their handlers being non-static.
> + DWORD IMEProperty = > + gIMM32Handler ? gIMM32Handler->mIMEProperty : > + ::ImmGetProperty(::GetKeyboardLayout(0), IGP_PROPERTY); Looks ugly. Could you make InitKeyboardLayout and mIMEProperty static?
Created attachment 375770 [details] [diff] [review] Patch v2.0
Comment on attachment 375770 [details] [diff] [review] Patch v2.0 ah, I should fix some nits, sorry.
Created attachment 375771 [details] [diff] [review] Patch v2.1
Comment on attachment 375771 [details] [diff] [review] Patch v2.1 > + ::GetLocaleInfoA(MAKELCID(langID, SORT_DEFAULT), > + LOCALE_IDEFAULTANSICODEPAGE | LOCALE_RETURN_NUMBER, > + (PSTR)&sCodePage, sizeof(sCodePage)); Let's replace GetLocaleInfoA with GetLocaleInfoW. I should have pointed out when I saw this in bug 424663. Don't forget changing 4th parameter to |sizeof(sCodePage) / sizeof(WCHAR)|. Otherwise looks good.
Created attachment 375818 [details] [diff] [review] Patch v2.2 Thank you, Kimura-san!
http://hg.mozilla.org/mozilla-central/rev/c56c2ad1eab0 # Note: fixed a typo in comment: menbers -> members
http://hg.mozilla.org/mozilla-central/rev/0c8d3a91a1ef fix bustage on WinCE (r=stuart).