[Resend] user32: Use the PostMessage() for WM_IME_KEY{DOWN|UP} message.

ByeongSik Jeon bsjeon at hanmail.net
Mon Apr 21 22:33:12 CDT 2008


Dmitry Timoshkov wrote:
"ByeongSik Jeon" <bsjeon at hanmail.net> wrote:
> > * MS Spi++ test result, PostMessage is right.
> > * Message generation sequence:
> >   WM_IME_KEYDOWN -> WM_KEYDOWN -> WM_CHAR
> >   WM_CHAR is genetated in the TranslateMessage() when we use
> >   PostMessage() function.
> > * Real case: MS IME 2002, MS IME 2003, Saenaru
> >   In the preedit mode, when we press the "ENTER" key, Korean
> >   Native IME generate the WM_IME_KEYDOWN(wParam==VK_RETURN) message.
> >   This message is translated to the WM_CHAR(wParam==VK_RETURN)
> >   message finally.
>
> You should add the tests to dlls/user32/tests/msg.c for the above
> changes.

SendMessage(WM_IME_CHAR, 'a', 1);
SendMessage(WM_IME_KEYDOWN, VK_RETURN, 0x1c0001);

If the defwndproc use the SendMessage for WM_IME_KEYDOWN, the expected
message sequences are:
{WM_IME_CHAR, 'a', 1},
{WM_IME_KEYDOWN, VK_RETURN, 0x1c0001},
{WM_KEYDOWN, VK_RETURN, 0x1c0001}   <=== Note it.
{WM_CHAR, 'a', 1}

But, patched Wine and MS Windows are:
{WM_IME_CHAR, 'a', 1},
{WM_IME_KEYDOWN, VK_RETURN, 0x1c0001},
{WM_CHAR, 'a', 1}                    <== Note it.
{WM_KEYDOWN, VK_RETURN, 0x1c0001}
{WM_CHAR, VK_RETURN, 0x1c0001}

---
 dlls/user32/defwnd.c    |   12 +++++++-
 dlls/user32/tests/msg.c |   63 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 73 insertions(+), 2 deletions(-)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 20d35693b0b8e36f9f5db472b8dc880eed06080e.diff
Type: text/x-patch
Size: 3973 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-patches/attachments/20080422/71ba8ffb/attachment.bin 


More information about the wine-patches mailing list