Input Method Editor window returns FALSE for WM_QUERYENDSESSION - why?

We have a strange and very rare problem where people are unable to log out of the Windows server when our product is running. The system is a multitasking application, all MFC / C ++. Applications are launched from the management service, so they exit logout mode. This has been good for donkeys in years of service in many installations around the world.

, WM_QUERYENDSESSION , FALSE. , . , IME (Input Method Editor), , IME MFC. , , ImmDisableIME (-1). ...

(a) - , , - .

(b) . IME, , , ?

(c) - ? , .

As mentioned, this is currently happening on one machine in Germany. Of course we cannot reproduce here on any version of Windows. Bah.

+2


source to share


2 answers


It would appear that Microsoft ran into some of these issues with different versions of the IME. I found some relatively old updates. What OS is your customer running and do they have versions of Office installed? Is it possible to determine the filename and version of the module by creating an IME window in your case?

Here is an update related to the IME from Office 2003:

Microsoft known bug 870774

It takes 30 seconds to close the message box when you shut down Windows

When you try to shut down a Japanese Windows 2000 computer with the Office 2003 framework, which is used to support rich text services installed without first closing all your open programs, you get a message box for each open program. When you press End, it takes about 30 seconds for each message box to close before Windows can shut down.

  File name Version
   -----------------------
   Msctf.dll 5.1.2409.39
   Msimtf.dll 5.1.2409.39
   Input.cpl 5.1.2409.39
   Sptip.dll 5.1.2409.39


Here is the update related to the IME for Windows XP:

Microsoft known bug 811147

Windows Messenger appears during shutdown and shutdown dialog

   Date Time Version Size File name
   -------------------------------------------------- -
   17-Jan-2003 15:36 8.1.4008.0 57,400 Cplexe.exe
   17-Jan-2003 15:34 8.1.4008.0 335,917 Imjp81.ime
   06-Feb-2003 13:56 8.1.4008.0 827,438 Imjp81k.dll
   06-Feb-2003 13:56 8.1.4008.0 360,494 Imjpcic.dll
   06-Feb-2003 13:56 8.1.4008.0 716,857 Imjpcus.dll
   06-Feb-2003 13:56 8.1.4008.0 81,977 Imjpdct.dll
   22-Jan-2003 09:52 8.1.4008.0 307,258 Imjpdct.exe
   17-Jan-2003 15:36 8.1.4008.0 155,706 Imjpdsvr.exe
   17-Jan-2003 15:36 196.666 Imjpinst.exe
   17-Jan-2003 15:36 8.1.4008.0 208.953 Imjpmig.exe
   17-Jan-2003 15:36 8.1.4008.0 233,528 Imjprw.exe
   17-Jan-2003 15:36 8.1.4008.0 262.201 Imjput.exe
   06-Feb-2003 13:56 8.1.4008.0 274,490 Imjputc.dll
   14-Nov-2002 10:01 5.3.10.0 4,608 Spmsg.dll
+2


source


Another suggestion:



If you know which window is to blame and it is the same, every time you can try to subclass the window and handle the WM_QUERYSESSIONEND message directly. This takes the IME out of the equation and should be a fairly maintainable solution.

0


source







All Articles