Closed Bug 773526 Opened 12 years ago Closed 6 years ago

[UIEvents-key] ::ImmGetVirtualKey() always returns VK_PROCESSKEY on Win7

Categories

(Core :: Widget: Win32, defect, P3)

x86_64
Windows 7
defect

Tracking

()

RESOLVED INVALID

People

(Reporter: masayuki, Assigned: masayuki)

References

Details

(Keywords: inputmethod, Whiteboard: tpi:+)

When I testing, I realized this fact. ::ImmGetVirtualKey() always returns VK_PROCESSKEY on my Win7 system. It doesn't depend on IME. When I can reproduce this with either IMM based IME or TSF based TIP. I guess that the API doesn't work after Vista because the IMM backend has been removed and emulated by TSF. Kato-san, Kimura-san, do you know something about this?
See MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/dd318570%28v=vs.85%29.aspx). Return value If TranslateMessage has been called by the application, ImmGetVirtualKey returns VK_PROCESSKEY; otherwise, it returns the virtual key. Can we use LPARAM of window proc instead of.
Also, windows vista doesn't remove imm backend yet. IME2007 and IME2010 have TSF backend and IMM emulation layer by TSF.
Oh, thanks. I misunderstood the document. I'll post a patch soon.
Assignee: nobody → masayuki
Blocks: 865565, 680830
Status: NEW → ASSIGNED
Summary: ::ImmGetVirtualKey() always returns VK_PROCESSKEY on Win7 → [UIEvents-key] ::ImmGetVirtualKey() always returns VK_PROCESSKEY on Win7
Priority: -- → P3
Whiteboard: tpi:+

Now, we need to dispatch keydown and keyup events with keyCode=229 and key="Process" if they are processed by IME. So, we don't need to know raw key code values anymore.

Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.