On Wed May 10 14:35:28 2023 +0000, Byeongsik Jeon wrote:
I tested a simple test program with spy++. IMN_SETOPENSTATUS is caught in the default ime window and ime ui wndow, not in the application window. What is unusual is that the value of lparam is not zero, but has a different value each time it occurs. Also, in my tests, wparam == IMN_SETOPENSTATUS | IMN_CHANGECANDIATE. My guess is that it's not caused by ImmSetOpenStatus, but somewhere else.
Sorry about that. I analysed the test results incorrectly.
While testing ImmNotifyIME: CPS_COMPLETE, I was not able to see IMN_SETOPENSTATUS in the application windproc, so I also looked at the default ime window and ime ui window. I made the silly mistake of analysing WM_IME_NOTIFY:wparam=0x11 as IMN_SETOPENSTATUS | IMN_CHANGECANDIATE.
It looks like ImmSetOpenStatus is not called on CPS_COMPLETE, CPS_CANCEL. I would be grateful if you could confirm.
I tested it on Japanese and Korean MS IME.