[Bug 35361] Multiple Steam games crash on keypress with in-game community overlay enabled (cross-process/thread IME must be prohibited)
wine-bugs at winehq.org
wine-bugs at winehq.org
Sun Apr 13 15:36:19 CDT 2014
https://bugs.winehq.org/show_bug.cgi?id=35361
Anastasius Focht <focht at gmx.net> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |focht at gmx.net
Summary|Multiple Steam games crash |Multiple Steam games crash
|on keypress with in-game |on keypress with in-game
|community overlay enabled |community overlay enabled
| |(cross-process/thread IME
| |must be prohibited)
--- Comment #33 from Anastasius Focht <focht at gmx.net> ---
Hello folks,
I think MSDN is pretty clear about these types of IME limitations:
http://msdn.microsoft.com/en-us/library/dd317789%28VS.85%29.aspx
--- quote ---
Developing IME-Aware Multiple-thread Applications
The IMM includes thread identification checking that determines if a calling
thread is the creator of a specified input method context handle (HIMC type) or
window handle (HWND type). If the thread is not the creator of the handle, the
called IMM function fails and a subsequent call to GetLastError returns
ERROR_INVALID_ACCESS.
Note: The current IMM architecture does not provide a synchronization facility
for access to IMM handles.
To use thread identification checking, your applications must adhere to the
following guidelines:
* A thread should not access the input context created by another thread.
* A thread should not associate an input context with a window created by
another thread, and vice versa.
--- quote ---
This of course implies that cross-process IME is prohibited by design.
Well, at least not without resorting to more or less intrusive process/dll
injection techniques.
Basically you need to check for violations of the requirements in IME APIs and
fail subsequently:
ImmAssociateContext
ImmGetContext
...
With that part fixed, the Steam in-game community overlay works (already
tested).
Regards
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list