How to hide the OS rendered IME window in TSF(not IMM32) for games running with exclusive fullscreen mode?

Ryan Cheung 1 Reputation point
2020-08-02T12:28:51.97+00:00

For any games(like World of Warcraft Classic) running with exclusive fullscreen mode, the IME Candidate List window has to be renderer by the game manually. To interact with IME in Windows, Windows provide two framework, IMM32 and TSF. IMM32 is for Windows 7 and older. TSF is for Windows 8+.

According to the doc of IMM32(link), we can hide the os ime window like this:

The IMM sends a WM_IME_SETCONTEXT message when a window of the application is activated. The lParam parameter of this message contains a flag that indicates to the IME which windows should get drawn and which should not. Because the application is handling all of the drawing, it does not need the IME to draw any of the IME windows. Therefore, the application's message handler simply sets lParam to 0 and returns.

But for TSF(msctf.dll), how do I hide the os renderer IME window? I can't find any workable ways to do that in ITfContext and its related interface

Windows API - Win32
Windows API - Win32
A core set of Windows application programming interfaces (APIs) for desktop and server applications. Previously known as Win32 API.
2,498 questions
{count} votes