Index: trunk/src/user32/HOOK.CPP
===================================================================
--- trunk/src/user32/HOOK.CPP	(revision 7607)
+++ trunk/src/user32/HOOK.CPP	(revision 7612)
@@ -1,3 +1,3 @@
-/* $Id: HOOK.CPP,v 1.33 2001-11-09 01:26:14 phaller Exp $ */
+/* $Id: HOOK.CPP,v 1.34 2001-12-11 17:34:52 sandervl Exp $ */
 
 /*
@@ -780,6 +780,6 @@
 {
   // call the low level hook first
-  ProcessKbdHookLL(msg, remove, FALSE);
-  
+  if(ProcessKbdHookLL(msg, remove, FALSE) == TRUE) return TRUE;
+
   // ALT-Key comes in with different scan code (0xa4 == VK_LMENU_W),
   // then gets translated to 0x12
@@ -872,4 +872,6 @@
   kbhs.dwExtraInfo = 0; // @@@PH not supported?
   
+  dprintf(("WH_KEYBOARD_LL: kbhs.vkCode %x kbhs.scanCode %x kbhs.flags %x", kbhs.vkCode, kbhs.scanCode, kbhs.flags));
+
   return (HOOK_CallHooksA(WH_KEYBOARD_LL,
                           flagRemove ? HC_ACTION : HC_NOREMOVE,
Index: trunk/src/user32/oslibmsg.cpp
===================================================================
--- trunk/src/user32/oslibmsg.cpp	(revision 7607)
+++ trunk/src/user32/oslibmsg.cpp	(revision 7612)
@@ -1,3 +1,3 @@
-/* $Id: oslibmsg.cpp,v 1.50 2001-11-16 17:47:05 phaller Exp $ */
+/* $Id: oslibmsg.cpp,v 1.51 2001-12-11 17:34:53 sandervl Exp $ */
 /*
  * Window message translation functions for OS/2
@@ -209,4 +209,5 @@
 //******************************************************************************
 
+#ifdef ALTGR_HACK
 static void i_MostUglyAltGrHack(LPMSG pMsg)
 {
@@ -224,5 +225,7 @@
   }
 }
-
+#else
+#define i_MostUglyAltGrHack(a)
+#endif
 
 BOOL OSLibWinGetMsg(LPMSG pMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax,
@@ -251,5 +254,7 @@
   }
 
-  if(teb->o.odin.fTranslated && (!hwnd || hwnd == teb->o.odin.msgWCHAR.hwnd)) {
+  if(teb->o.odin.fTranslated && (!hwnd || hwnd == teb->o.odin.msgWCHAR.hwnd)) 
+  {
+        dprintf(("Return queued WM_CHAR message hwnd=%x msg=%d wParam=%x lParam=%x", teb->o.odin.msgWCHAR.hwnd, teb->o.odin.msgWCHAR.message, teb->o.odin.msgWCHAR.wParam, teb->o.odin.msgWCHAR.lParam));
         if(uMsgFilterMin) {
             if(teb->o.odin.msgWCHAR.message < uMsgFilterMin)
@@ -281,7 +286,7 @@
             break;
         }
-    
+
         i_MostUglyAltGrHack(pMsg);
-    
+
         return (pMsg->message != WINWM_QUIT);
   }
@@ -385,5 +390,7 @@
   }
 
-  if(teb->o.odin.fTranslated && (!hwnd || hwnd == teb->o.odin.msgWCHAR.hwnd)) {
+  if(teb->o.odin.fTranslated && (!hwnd || hwnd == teb->o.odin.msgWCHAR.hwnd)) 
+  {
+        dprintf(("Return queued WM_CHAR message hwnd=%x msg=%d wParam=%x lParam=%x", teb->o.odin.msgWCHAR.hwnd, teb->o.odin.msgWCHAR.message, teb->o.odin.msgWCHAR.wParam, teb->o.odin.msgWCHAR.lParam));
         if(uMsgFilterMin) {
             if(teb->o.odin.msgWCHAR.message < uMsgFilterMin)
Index: trunk/src/user32/oslibmsgtranslate.cpp
===================================================================
--- trunk/src/user32/oslibmsgtranslate.cpp	(revision 7607)
+++ trunk/src/user32/oslibmsgtranslate.cpp	(revision 7612)
@@ -1,3 +1,3 @@
-/* $Id: oslibmsgtranslate.cpp,v 1.77 2001-11-16 17:47:04 phaller Exp $ */
+/* $Id: oslibmsgtranslate.cpp,v 1.78 2001-12-11 17:34:53 sandervl Exp $ */
 /*
  * Window message translation functions for OS/2
@@ -614,5 +614,5 @@
         // winMsg->wParam  = pmscan2winkey[scanCode][0];
         // wWinScan  = pmscan2winkey[scanCode][1];
-      
+     
       {
         BOOL  fWinExtended;
@@ -632,5 +632,5 @@
         // Set the extended bit when appropriate
         if (fWinExtended)
-            winMsg->lParam = winMsg->lParam | (1<<24);
+            winMsg->lParam = winMsg->lParam | WIN_KEY_EXTENDED;
       }
 
@@ -640,10 +640,7 @@
             winMsg->wParam = virtualKey + 0x30;
       
-      
-        #define WIN_KEY_EXTENDED   0x01000000
-        #define WIN_KEY_DONTCARE   0x02000000
-        #define WIN_KEY_ALTHELD    0x20000000
-        #define WIN_KEY_PREVSTATE  0x40000000
-
+
+#ifdef ALTGR_HACK
+     
         if (usPMScanCode == PMSCAN_ALTRIGHT)
         {
@@ -661,6 +658,6 @@
           {
             winMsg->message = WINWM_SYSKEYUP;
-            winMsg->lParam |= 1 << 29;                              // bit 29, alt was pressed
-            winMsg->lParam |= 1 << 30;                              // bit 30, previous state, always 1 for a WM_KEYUP message
+            winMsg->lParam |= WIN_KEY_ALTHELD;                      // bit 29, alt was pressed
+            winMsg->lParam |= WIN_KEY_PREVSTATE;                    // bit 30, previous state, always 1 for a WM_KEYUP message
             winMsg->lParam |= 1 << 31;                              // bit 31, transition state, always 1 for WM_KEYUP
             
@@ -675,5 +672,5 @@
             winMsg->lParam |= WIN_KEY_ALTHELD;
             if (keyWasPressed)
-              winMsg->lParam |= 1 << 30;                          // bit 30, previous state, 1 means key was pressed
+              winMsg->lParam |= WIN_KEY_PREVSTATE;     // bit 30, previous state, 1 means key was pressed
             winMsg->message = WINWM_KEYDOWN;
             
@@ -689,8 +686,6 @@
             // KeySetOverlayKeyState(VK_RMENU_W, KEYOVERLAYSTATE_DOWN);
           }
-          
-          break;
-        }
-      
+        }     
+#endif
       
         if (!(flags & KC_ALT))
@@ -719,5 +714,5 @@
             }
             
-            winMsg->lParam |= 1 << 30;                              // bit 30, previous state, always 1 for a WM_KEYUP message
+            winMsg->lParam |= WIN_KEY_PREVSTATE;                    // bit 30, previous state, always 1 for a WM_KEYUP message
             winMsg->lParam |= 1 << 31;                              // bit 31, transition state, always 1 for WM_KEYUP
           }
@@ -727,5 +722,5 @@
             winMsg->message = WINWM_KEYDOWN;
             if (keyWasPressed)
-              winMsg->lParam |= 1 << 30;                          // bit 30, previous state, 1 means key was pressed
+              winMsg->lParam |= WIN_KEY_PREVSTATE;                  // bit 30, previous state, 1 means key was pressed
           }
         }
@@ -739,5 +734,5 @@
             // send WM_SYSKEYUP message
             winMsg->message = WINWM_SYSKEYUP;
-            winMsg->lParam |= 1 << 30;                              // bit 30, previous state, always 1 for a WM_KEYUP message
+            winMsg->lParam |= WIN_KEY_PREVSTATE;                    // bit 30, previous state, always 1 for a WM_KEYUP message
             winMsg->lParam |= 1 << 31;                              // bit 31, transition state, always 1 for WM_KEYUP
           }
@@ -747,9 +742,9 @@
             winMsg->message = WINWM_SYSKEYDOWN;
             if (keyWasPressed)
-              winMsg->lParam |= 1 << 30;                          // bit 30, previous state, 1 means key was pressed
+              winMsg->lParam |= WIN_KEY_PREVSTATE;                  // bit 30, previous state, 1 means key was pressed
 
             // pressed ALT-key generates additional flag 0x2000000
             // if the current window has keyboard focus
-            winMsg->lParam |= 1 << 29;
+            winMsg->lParam |= WIN_KEY_ALTHELD;
           }
         }
@@ -761,4 +756,37 @@
             }
         }
+
+#ifdef ALTGR_HACK
+        // it's a PMSCAN_ALTRIGHT WM_CHAR message?
+        // and not previously translated?
+        if(fMsgRemoved && usPMScanCode == PMSCAN_ALTRIGHT && !(teb->o.odin.fTranslated))
+        {
+            dprintf(("Queue ALTRIGHT message"));
+            // special ALTRIGHT treatment:
+            // we try to insert another WM_KEYDOWN or WM_KEYUP instead of
+            // the usual WM_CHAR which is expected here.
+            // -> experimental
+            // it's really an OS/2-style WM_CHAR message?
+            MSG extramsg;
+            memcpy(&extramsg, winMsg, sizeof(MSG));
+    
+            // AltGr is not released with WINWM_SYSKEYUP, but WINWM_KEYUP
+            if(flags & KC_KEYUP)
+            {
+                extramsg.message = WINWM_KEYUP;
+            }
+            extramsg.wParam = VK_RMENU_W;
+    
+            // mask out message bits and scan code
+            extramsg.lParam &= (0xDC00FFFF);
+            extramsg.lParam |= (WINSCAN_ALTRIGHT & 0x1FF) << 16;
+////            extramsg.lParam |= WIN_KEY_EXTENDED;
+            if (!(flags & KC_KEYUP))
+                extramsg.lParam |= WIN_KEY_ALTHELD;
+  
+            // insert message into the queue
+            setThreadQueueExtraCharMessage(teb, &extramsg);
+        }
+#endif
         break;
     }
@@ -915,42 +943,5 @@
   UCHAR ucPMScanCode = CHAR4FROMMP(teb->o.odin.os2msg.mp1);
   ULONG fl = SHORT1FROMMP(teb->o.odin.os2msg.mp1);
-  
-  
-  // special ALTRIGHT treatment:
-  // we try to insert another WM_KEYDOWN or WM_KEYUP instead of
-  // the usual WM_CHAR which is expected here.
-  // -> experimental
-  if (ucPMScanCode == PMSCAN_ALTRIGHT)
-  {
-    // it's really an OS/2-style WM_CHAR message?
-    // and not previously translated?
-    if ( ( (teb->o.odin.os2msg.msg != WM_CHAR) &&
-           (teb->o.odin.os2msg.msg != WM_CHAR_SPECIAL) ) ||
-         (teb->o.odin.fTranslated) )
-      return FALSE;
-    
-    memcpy(&extramsg, msg, sizeof(MSG));
-    
-    // AltGr is not released with WINWM_SYSKEYUP, but WINWM_KEYUP
-    if (fl & KC_KEYUP)
-    {
-      extramsg.message = WINWM_KEYUP;
-    }
-      
-    
-    extramsg.wParam = VK_RMENU_W;
-    
-    // mask out message bits and scan code
-    extramsg.lParam &= (0xDC00FFFF);
-    extramsg.lParam |= (WINSCAN_ALTRIGHT & 0x1FF) << 16;
-    extramsg.lParam |= WIN_KEY_EXTENDED;
-    if (!(fl & KC_KEYUP))
-      extramsg.lParam |= WIN_KEY_ALTHELD;
-    
-    // insert message into the queue
-    setThreadQueueExtraCharMessage(teb, &extramsg);
-
-    return TRUE;
-  }
+ 
   
     //NOTE: These actually need to be posted so that the next message retrieved by GetMessage contains
@@ -1006,7 +997,7 @@
       extramsg.lParam = msg->lParam & 0x00FFFFFF;
       if(fl & KC_ALT)
-        extramsg.lParam |= (1<<29);
+        extramsg.lParam |= WIN_KEY_ALTHELD;
       if(fl & KC_PREVDOWN)
-        extramsg.lParam |= (1<<30);
+        extramsg.lParam |= WIN_KEY_PREVSTATE;
       if(fl & KC_KEYUP)
         extramsg.lParam |= (1<<31);
Index: trunk/src/user32/winkeyboard.cpp
===================================================================
--- trunk/src/user32/winkeyboard.cpp	(revision 7607)
+++ trunk/src/user32/winkeyboard.cpp	(revision 7612)
@@ -1,3 +1,3 @@
-/* $Id: winkeyboard.cpp,v 1.26 2001-11-09 01:26:15 phaller Exp $ */
+/* $Id: winkeyboard.cpp,v 1.27 2001-12-11 17:34:53 sandervl Exp $ */
 /*
  * Win32 <-> PM key translation
@@ -593,5 +593,5 @@
 
 // @@@PH
-// Note: windoes uses different scancodes if numlock is pressed
+// Note: windows uses different scancodes if numlock is pressed
 // This is not (yet) reflected here!
 BYTE abPMScanToWinScan[256][2] =
@@ -708,11 +708,11 @@
 /* 0x6B PMSCAN_F24          */ , WINSCAN_F24                ,FALSE
 /* 0x6C PMSCAN_SYSMEM       */ , 0x00                       ,FALSE
-/* 0x6D PMSCAN_ERASEEOF     */ , WINSCAN_ERASEEOF           ,FALSE
-/* 0x6E PMSCAN_BREAK        */ , WINSCAN_BREAK              ,TRUE
+/* 0x6D PMSCAN_ERASEEOF     */ , 0x00                       ,FALSE
+/* 0x6E PMSCAN_BREAK        */ , 0x00                       ,TRUE
 /* 0x6F PMSCAN_MOVEWIN      */ , 0x00                       ,FALSE
-/* 0x70 PMSCAN_NLS3         */ , 0x00                       ,FALSE
-/* 0x71 PMSCAN_HELP         */ , WINSCAN_HELP               ,FALSE
+/* 0x70 PMSCAN_NLS3         */ , WINSCAN_NLS3               ,FALSE
+/* 0x71 PMSCAN_HELP         */ , 0x00                       ,FALSE
 /* 0x72 PMSCAN_TASKMAN      */ , 0x00                       ,FALSE
-/* 0x73 PMSCAN_B11          */ , 0x00                       ,FALSE
+/* 0x73 PMSCAN_B11          */ , WINSCAN_B11                ,FALSE
 /* 0x74 PMSCAN_JUMP         */ , 0x00                       ,FALSE
 /* 0x75 PMSCAN_MINWIN       */ , 0x00                       ,FALSE
@@ -720,12 +720,12 @@
 /* 0x77 PMSCAN_77           */ , 0x00                       ,FALSE
 /* 0x78 PMSCAN_78           */ , 0x00                       ,FALSE
-/* 0x79 PMSCAN_NLS2         */ , 0x00                       ,FALSE
+/* 0x79 PMSCAN_NLS2         */ , WINSCAN_NLS2	            ,FALSE
 /* 0x7a PMSCAN_SIZE         */ , 0x00                       ,FALSE
-/* 0x7b PMSCAN_NLS1         */ , 0x00                       ,FALSE
-/* 0x7c PMSCAN_APPLICATION  */ , WINSCAN_APPLICATION        ,TRUE
-/* 0x7d PMSCAN_E13          */ , 0x00                       ,FALSE
-/* 0x7e PMSCAN              */ , WINSCAN_WINLEFT            ,TRUE
-/* 0x7f PMSCAN              */ , WINSCAN_WINRIGHT           ,TRUE
-/* 0x80 PMSCAN_PA1          */ , WINSCAN_PA1                ,FALSE
+/* 0x7b PMSCAN_NLS1         */ , WINSCAN_NLS1               ,FALSE
+/* 0x7c PMSCAN_APPLICATION  */ , WINSCAN_WINAPPLICATION     ,TRUE
+/* 0x7d PMSCAN_E13          */ , WINSCAN_YEN                ,FALSE
+/* 0x7e PMSCAN              */ , WINSCAN_ABNT_C2            ,TRUE
+/* 0x7f PMSCAN              */ , 0x00                       ,TRUE
+/* 0x80 PMSCAN_PA1          */ , 0x00                       ,FALSE
 /* 0x81 PMSCAN_F13          */ , WINSCAN_F13                ,FALSE
 /* 0x82 PMSCAN_F14          */ , WINSCAN_F14                ,FALSE
@@ -736,21 +736,21 @@
 /* 0x87 PMSCAN_TABRIGHT     */ , 0x00                       ,FALSE
 /* 0x88 PMSCAN_NOOP         */ , 0x00                       ,FALSE
-/* 0x89 PMSCAN_F16          */ , WINSCAN_F16                ,FALSE
-/* 0x8a PMSCAN_F17          */ , WINSCAN_F17                ,FALSE
-/* 0x8b PMSCAN_F18          */ , WINSCAN_F18                ,FALSE
-/* 0x8c PMSCAN_F19          */ , WINSCAN_F19                ,FALSE
-/* 0x8d PMSCAN_F20          */ , WINSCAN_F20                ,FALSE
-/* 0x8e PMSCAN_F21          */ , WINSCAN_F21                ,FALSE
-/* 0x8f PMSCAN_F22          */ , WINSCAN_F22                ,FALSE
-/* 0x90                     */ , 0x00                       ,FALSE
-/* 0x91                     */ , 0x00                       ,FALSE
-/* 0x92                     */ , 0x00                       ,FALSE
-/* 0x93                     */ , 0x00                       ,FALSE
-/* 0x94                     */ , 0x00                       ,FALSE
-/* 0x95                     */ , 0x00                       ,FALSE
-/* 0x96                     */ , 0x00                       ,FALSE
-/* 0x97                     */ , 0x00                       ,FALSE
+/* 0x89 PMSCAN_F16          */ , 0x00                       ,FALSE
+/* 0x8a PMSCAN_F17          */ , 0x00                       ,FALSE
+/* 0x8b PMSCAN_F18          */ , 0x00                       ,FALSE
+/* 0x8c PMSCAN_F19          */ , 0x00                       ,FALSE
+/* 0x8d PMSCAN_F20          */ , WINSCAN_NUMPADEQUALS       ,FALSE
+/* 0x8e PMSCAN_F21          */ , 0x00                       ,FALSE
+/* 0x8f PMSCAN_F22          */ , 0x00                       ,FALSE
+/* 0x90                     */ , WINSCAN_PREVTRACK          ,FALSE
+/* 0x91                     */ , WINSCAN_AT                 ,FALSE
+/* 0x92                     */ , WINSCAN_COLON              ,FALSE
+/* 0x93                     */ , WINSCAN_UNDERLINE          ,FALSE
+/* 0x94                     */ , WINSCAN_KANJI              ,FALSE
+/* 0x95                     */ , WINSCAN_STOP               ,FALSE
+/* 0x96                     */ , WINSCAN_AX                 ,FALSE
+/* 0x97                     */ , WINSCAN_UNLABELED          ,FALSE
 /* 0x98                     */ , 0x00                       ,FALSE
-/* 0x99                     */ , 0x00                       ,FALSE
+/* 0x99                     */ , WINSCAN_NEXTTRACK          ,FALSE
 /* 0x9A                     */ , 0x00                       ,FALSE
 /* 0x9B                     */ , 0x00                       ,FALSE
@@ -759,9 +759,9 @@
 /* 0x9E                     */ , 0x00                       ,FALSE
 /* 0x9F                     */ , 0x00                       ,FALSE
-/* 0xA0                     */ , 0x00                       ,FALSE
-/* 0xA1                     */ , 0x00                       ,FALSE
-/* 0xA2                     */ , 0x00                       ,FALSE
+/* 0xA0                     */ , WINSCAN_MUTE               ,FALSE
+/* 0xA1                     */ , WINSCAN_CALCULATOR         ,FALSE
+/* 0xA2                     */ , WINSCAN_PLAYPAUSE          ,FALSE
 /* 0xA3                     */ , 0x00                       ,FALSE
-/* 0xA4                     */ , 0x00                       ,FALSE
+/* 0xA4                     */ , WINSCAN_MEDIASTOP          ,FALSE
 /* 0xA5                     */ , 0x00                       ,FALSE
 /* 0xA6                     */ , 0x00                       ,FALSE
@@ -773,10 +773,10 @@
 /* 0xAC                     */ , 0x00                       ,FALSE
 /* 0xAD                     */ , 0x00                       ,FALSE
-/* 0xAE                     */ , 0x00                       ,FALSE
+/* 0xAE                     */ , WINSCAN_VOLUMEDOWN         ,FALSE
 /* 0xAF                     */ , 0x00                       ,FALSE
-/* 0xB0                     */ , 0x00                       ,FALSE
+/* 0xB0                     */ , WINSCAN_VOLUMEUP           ,FALSE
 /* 0xB1                     */ , 0x00                       ,FALSE
-/* 0xB2                     */ , 0x00                       ,FALSE
-/* 0xB3                     */ , 0x00                       ,FALSE
+/* 0xB2                     */ , WINSCAN_WEBHOME            ,FALSE
+/* 0xB3                     */ , WINSCAN_NUMPADCOMMA        ,FALSE
 /* 0xB4                     */ , 0x00                       ,FALSE
 /* 0xB5                     */ , 0x00                       ,FALSE
@@ -821,20 +821,20 @@
 /* 0xDC                     */ , 0x00                       ,FALSE
 /* 0xDD                     */ , 0x00                       ,FALSE
-/* 0xDE                     */ , 0x00                       ,FALSE
-/* 0xDF                     */ , 0x00                       ,FALSE
+/* 0xDE                     */ , WINSCAN_POWER              ,FALSE
+/* 0xDF                     */ , WINSCAN_SLEEP              ,FALSE
 /* 0xE0                     */ , 0x00                       ,FALSE
 /* 0xE1                     */ , 0x00                       ,FALSE
 /* 0xE2                     */ , 0x00                       ,FALSE
-/* 0xE3                     */ , 0x00                       ,FALSE
+/* 0xE3                     */ , WINSCAN_WAKE               ,FALSE
 /* 0xE4                     */ , 0x00                       ,FALSE
-/* 0xE5                     */ , 0x00                       ,FALSE
-/* 0xE6                     */ , 0x00                       ,FALSE
-/* 0xE7                     */ , 0x00                       ,FALSE
-/* 0xE8                     */ , 0x00                       ,FALSE
-/* 0xE9                     */ , 0x00                       ,FALSE
-/* 0xEA                     */ , 0x00                       ,FALSE
-/* 0xEB                     */ , 0x00                       ,FALSE
-/* 0xEC                     */ , 0x00                       ,FALSE
-/* 0xED                     */ , 0x00                       ,FALSE
+/* 0xE5                     */ , WINSCAN_WEBSEARCH          ,FALSE
+/* 0xE6                     */ , WINSCAN_WEBFAVORITES       ,FALSE
+/* 0xE7                     */ , WINSCAN_WEBREFRESH         ,FALSE
+/* 0xE8                     */ , WINSCAN_WEBSTOP            ,FALSE
+/* 0xE9                     */ , WINSCAN_WEBFORWARD         ,FALSE
+/* 0xEA                     */ , WINSCAN_WEBBACK            ,FALSE
+/* 0xEB                     */ , WINSCAN_MYCOMPUTER         ,FALSE
+/* 0xEC                     */ , WINSCAN_MAIL               ,FALSE
+/* 0xED                     */ , WINSCAN_MEDIASELECT        ,FALSE
 /* 0xEE                     */ , 0x00                       ,FALSE
 /* 0xEF                     */ , 0x00                       ,FALSE
@@ -1323,6 +1323,6 @@
   // check the scancodes if the extended key bit is set so
   // we can easily distinguish between "left" and "right" special keys, etc.
-  BOOL  fDontCare = (lParam & 0x02000000) != 0;
-  BOOL  fExtended = (lParam & 0x01000000) != 0;
+  BOOL  fDontCare = (lParam & WIN_KEY_DONTCARE) != 0;
+  BOOL  fExtended = (lParam & WIN_KEY_EXTENDED) != 0;
   UCHAR ucWinScan = (lParam & 0x00ff0000) >> 16;
   UCHAR ucWinVKey;
@@ -1420,6 +1420,5 @@
     case KEYOVERLAYSTATE_UP:
       return 0x0000;
-  }
-    
+  }   
   return O32_GetKeyState(nVirtKey);
 }
@@ -1443,14 +1442,6 @@
     case KEYOVERLAYSTATE_UP:
       return 0x0000;
-  }
-  
-  if(fVersionWarp3) 
-  {
-    dprintf(("WARNING: not correctly implemented for Warp 3"));
-    //Not present in Warp 3's PMWINX
-    return O32_GetKeyState(nVirtKey);
-  }
-  else  
-    return O32_GetAsyncKeyState(nVirtKey);
+  } 
+  return O32_GetAsyncKeyState(nVirtKey);
 }
 //******************************************************************************
