We have a bizarre and very infrequent issue where people can't log off the Windows server when our product is running. The system is multi-application, all MFC/C++. The apps are run from a management service so they survive logoff. It's been running fine for donkeys years in loads of installations around the world.
I wrote a test application to enumerate all windows, send them a WM_QUERYENDSESSION message, and stop when it returns FALSE. This test is being run on one of these rare case where the problem repros, in Germany. It always seems to be an invisible IME (Input Method Editor) window which is the guilty party, but the IME window always belongs to one of our MFC applications. I think I can solve the problem for an individual application by calling ImmDisableIME (-1). But what I'm looking for is...
(a) if someone has a configuration method to get around this so we don't have to modify all the versions of all the applications for all the countries - a large job.
(b) Why this should happen in the first place. Why should an IME window we didn't create decide that the user can't log off?
(c) Has anyone else ever seen this before? Misery loves company, you know.
As stated, currently it's happening on one machine in Germany. Of course we can't repro here, on any version of Windows. Bah.