WM_KEYUP and WM_KEYDOWN Messages May Not Be Handled Correctly (819167)



The information in this article applies to:

  • Microsoft Windows CE .NET 4.2

SYMPTOMS

After a window is registered for a specific hardware key by using the SHSetAppKeyWndAssoc function, the window may not receive WM_KEYUP messages for the specified key.

RESOLUTION

Hotfix Information

A supported software update is now available from Microsoft as Windows CE 4.2 Core OS QFE 819167. To resolve this problem immediately, click the following article number for information about obtaining Windows CE Platform Builder and core operating system software updates:

837392 How to locate core operating system fixes for Microsoft Windows CE Platform Builder products

File Information

The English version of this package has the file attributes (or later) that are listed in the following table.
   Date         Time   Version    Size     File name
   -------------------------------------------------------------------------------
   06-Jun-2003  23:39  4.2.3.605  977,512  Wincepb42-030605-kb819167-armv4.exe    
   06-Jun-2003  23:39  4.2.3.605  977,512  Wincepb42-030605-kb819167-armv4i.exe   
   06-Jun-2003  23:39  4.2.3.605  993,896  Wincepb42-030605-kb819167-mipsii.exe   
   06-Jun-2003  23:39  4.2.3.605  993,896  Wincepb42-030605-kb819167-mipsii_fp.exe
   06-Jun-2003  23:39  4.2.3.605  997,992  Wincepb42-030605-kb819167-mipsiv.exe   
   06-Jun-2003  23:39  4.2.3.605  997,992  Wincepb42-030605-kb819167-mipsiv_fp.exe
   06-Jun-2003  23:38  4.2.3.605  969,320  Wincepb42-030605-kb819167-sh3.exe  
   06-Jun-2003  23:38  4.2.3.605  973,416  Wincepb42-030605-kb819167-sh4.exe  
   06-Jun-2003  23:38  4.2.3.605  924,264  Wincepb42-030605-kb819167-x86.exe  
The English version of this fix has the file attributes (or later) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time                     Size     File name
   --------------------------------------------------------------
   Path: Public\Shell\Oak\Lib\Armv4\Debug
   22-May-2003  01:54                    170,558  Shellpslayg.lib
   22-May-2003  01:54                     86,016  Shellpslayg.pdb
   22-May-2003  01:55                    460,464  Taskbar.lib
   22-May-2003  01:55                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Armv4\Retail
   22-May-2003  01:54                    144,326  Shellpslayg.lib
   22-May-2003  01:54                     86,016  Shellpslayg.pdb
   22-May-2003  01:55                    365,898  Taskbar.lib
   22-May-2003  01:55                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Armv4i\Debug
   22-May-2003  01:56                    170,822  Shellpslayg.lib
   22-May-2003  01:56                     86,016  Shellpslayg.pdb
   22-May-2003  01:57                    461,356  Taskbar.lib
   22-May-2003  01:57                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Armv4i\Retail
   22-May-2003  01:56                    144,722  Shellpslayg.lib
   22-May-2003  01:56                     86,016  Shellpslayg.pdb
   22-May-2003  01:56                    366,852  Taskbar.lib
   22-May-2003  01:56                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Mipsii\Debug
   22-May-2003  01:57                    170,896  Shellpslayg.lib
   22-May-2003  01:57                     86,016  Shellpslayg.pdb
   22-May-2003  01:58                    464,922  Taskbar.lib
   22-May-2003  01:58                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Mipsii\Retail
   22-May-2003  01:57                    150,296  Shellpslayg.lib
   22-May-2003  01:57                     86,016  Shellpslayg.pdb
   22-May-2003  01:57                    385,672  Taskbar.lib
   22-May-2003  01:57                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Mipsii_fp\Debug
   22-May-2003  01:58                    170,950  Shellpslayg.lib
   22-May-2003  01:58                     86,016  Shellpslayg.pdb
   22-May-2003  01:59                    464,978  Taskbar.lib
   22-May-2003  01:59                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Mipsii_fp\Retail
   22-May-2003  01:58                    150,350  Shellpslayg.lib
   22-May-2003  01:58                     86,016  Shellpslayg.pdb
   22-May-2003  01:59                    385,732  Taskbar.lib
   22-May-2003  01:59                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Mipsiv\Debug
   22-May-2003  02:00                    172,764  Shellpslayg.lib
   22-May-2003  02:00                     86,016  Shellpslayg.pdb
   22-May-2003  02:01                    472,850  Taskbar.lib
   22-May-2003  02:01                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Mipsiv\Retail
   22-May-2003  02:00                    150,880  Shellpslayg.lib
   22-May-2003  02:00                     86,016  Shellpslayg.pdb
   22-May-2003  02:00                    389,766  Taskbar.lib
   22-May-2003  02:00                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Mipsiv_fp\Debug
   22-May-2003  02:01                    172,818  Shellpslayg.lib
   22-May-2003  02:01                     86,016  Shellpslayg.pdb
   22-May-2003  02:02                    472,906  Taskbar.lib
   22-May-2003  02:02                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Mipsiv_fp\Retail
   22-May-2003  02:01                    150,932  Shellpslayg.lib
   22-May-2003  02:01                     86,016  Shellpslayg.pdb
   22-May-2003  02:01                    389,828  Taskbar.lib
   22-May-2003  02:01                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Sh3\Debug
   22-May-2003  02:02                    152,072  Shellpslayg.lib
   22-May-2003  02:02                     86,016  Shellpslayg.pdb
   22-May-2003  02:03                    417,240  Taskbar.lib
   22-May-2003  02:03                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Sh3\Retail
   22-May-2003  02:02                    137,474  Shellpslayg.lib
   22-May-2003  02:02                     86,016  Shellpslayg.pdb
   22-May-2003  02:03                    341,702  Taskbar.lib
   22-May-2003  02:03                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Sh4\Debug
   22-May-2003  02:04                    152,072  Shellpslayg.lib
   22-May-2003  02:04                     86,016  Shellpslayg.pdb
   22-May-2003  02:05                    417,240  Taskbar.lib
   22-May-2003  02:05                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\Sh4\Retail
   22-May-2003  02:04                    137,348  Shellpslayg.lib
   22-May-2003  02:04                     86,016  Shellpslayg.pdb
   22-May-2003  02:04                    341,062  Taskbar.lib
   22-May-2003  02:04                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\X86\Debug
   22-May-2003  01:53                    144,224  Shellpslayg.lib
   22-May-2003  01:53                     86,016  Shellpslayg.pdb
   22-May-2003  01:54                    382,484  Taskbar.lib
   22-May-2003  01:54                    118,784  Taskbar.pdb

   Path: Public\Shell\Oak\Lib\X86\Retail
   22-May-2003  01:53                    127,280  Shellpslayg.lib
   22-May-2003  01:53                     86,016  Shellpslayg.pdb
   22-May-2003  01:53                    307,504  Taskbar.lib
   22-May-2003  01:53                    118,784  Taskbar.pdb

How to Enable This Update

To enable this update by using the components that are available in Microsoft Windows CE .NET Platform Builder version 4.2, make the following change to the Public\Shell\Oak\Hpc\Explorer\Taskbar\Taskbar.cpp file.

Before the change:
case WM_KEYUP:
               switch (wp) {
                   case VK_LWIN:
                   case VK_RWIN:
                       if (fWindowsKey) {
                           fWindowsKey = FALSE;
                           StartMenu(hwnd);
                       }
                       break;
   
                   default:
                       break;
After the change:
case WM_KEYUP:
              switch (wp) {
                   case VK_LWIN:
                   case VK_RWIN:
                       if (fWindowsKey) {
                           fWindowsKey = FALSE;
                           StartMenu(hwnd);
                       }
                       break;
   
                   default:
                       // If you want another default behavior, do not ignore
                       // the Keymap_ProcessKeyreturn value. See the other reference
                       // in WM_KEYDOWN.
                       Keymap_ProcessKey( msg, wp, lp );
                       break;

STATUS

Microsoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.

Modification Type:MinorLast Reviewed:5/26/2005
Keywords:kbBug kbfix kbQFE KB819167