Aric Stewart aric at
Tue Sep 25 07:48:35 CDT 2012

Hi Andre,

On 9/24/12 3:00 PM, André Hentschel wrote:
> Am 21.09.2012 18:46, schrieb Aric Stewart:
>> Hi Andre,
>> I have a quick question for you. I am looking into why IME unaware applications are no longer showing their composition window and found it was because of:
>> commit 7673d67c1e1cfdcdf7560beea9162c3699329aa5
>> Author: André Hentschel <nerv at>
>> Date:   Sat Jun 25 16:13:41 2011 +0200
>>      imm32: Test and fix ImmIsUIMessageA/W.
>> in that patch I see that you eliminate the part where we check if there is a default IME window and if not then create one.
>> if (!IMM_GetThreadData()->hwndDefault)
>>             ImmGetDefaultIMEWnd(NULL);
> Hi,
> this code snippet was a useless construct it seems, because ImmGetDefaultIMEWnd returns IMM_GetThreadData()->hwndDefault which is obviously zero and it's not stored.

You are correct here.  It was previously the case that we did not create the default IME window until it was requested. That changed and so now it is useless and can be removed.

>> also you eliminate the part where if the incoming hWndIME is NULL we send the message to the thread's default IME window.
> my changes made an app happy IIRC, further i think i was skeptical about IMM_GetThreadData()->hwndDefault because of the dead code.
> maybe it should be patched in again, not sure.

I would be curious about this.  What was your app and could I test it?  I find there are many applications that are half-ime aware. That use ImmIsUIMessage with a NULL hwnd and expect the message to be processed but the default IME window. So we need that behavior to remain true.

I would be curious why your app was unhappy about that.


More information about the wine-devel mailing list