19    UINT32 k = RDP_SCANCODE_UNKNOWN;
 
   22    case Qt::Key_Escape: 
return RDP_SCANCODE_ESCAPE;
 
   23    case Qt::Key_Tab: 
return RDP_SCANCODE_TAB;
 
   24    case Qt::Key_Backtab: 
return k;
 
   25    case Qt::Key_Backspace: 
return RDP_SCANCODE_BACKSPACE;
 
   26    case Qt::Key_Return: 
return RDP_SCANCODE_RETURN; 
 
   27    case Qt::Key_Enter: 
return RDP_SCANCODE_RETURN; 
 
   28    case Qt::Key_Insert: 
return RDP_SCANCODE_INSERT;
 
   29    case Qt::Key_Delete: 
return RDP_SCANCODE_DELETE;
 
   30    case Qt::Key_Pause: 
return RDP_SCANCODE_PAUSE;
 
   31    case Qt::Key_Print: 
return RDP_SCANCODE_PRINTSCREEN;
 
   32    case  Qt::Key_SysReq: 
return RDP_SCANCODE_SYSREQ;
 
   34    case Qt::Key_Home: 
return RDP_SCANCODE_HOME;
 
   35    case Qt::Key_End: 
return RDP_SCANCODE_END;
 
   36    case Qt::Key_Left: 
return RDP_SCANCODE_LEFT;
 
   37    case Qt::Key_Up: 
return RDP_SCANCODE_UP;
 
   38    case Qt::Key_Right: 
return RDP_SCANCODE_RIGHT;
 
   39    case Qt::Key_Down: 
return RDP_SCANCODE_DOWN;
 
   40    case Qt::Key_PageUp: 
return RDP_SCANCODE_PRIOR;
 
   41    case Qt::Key_PageDown: 
return RDP_SCANCODE_NEXT;
 
   42    case Qt::Key_Shift: 
return RDP_SCANCODE_LSHIFT;
 
   43    case Qt::Key_Control: 
return RDP_SCANCODE_LCONTROL;
 
   44    case Qt::Key_Alt: 
return RDP_SCANCODE_LMENU;
 
   45    case Qt::Key_AltGr: 
return RDP_SCANCODE_RMENU;
 
   46    case Qt::Key_CapsLock: 
return RDP_SCANCODE_CAPSLOCK;
 
   47    case Qt::Key_NumLock: 
return RDP_SCANCODE_NUMLOCK;
 
   48    case Qt::Key_ScrollLock: 
return RDP_SCANCODE_SCROLLLOCK;
 
   49    case Qt::Key_F1: 
return RDP_SCANCODE_F1;
 
   50    case Qt::Key_F2: 
return RDP_SCANCODE_F2;
 
   51    case Qt::Key_F3: 
return RDP_SCANCODE_F3;
 
   52    case Qt::Key_F4: 
return RDP_SCANCODE_F4;
 
   53    case Qt::Key_F5: 
return RDP_SCANCODE_F5;
 
   54    case Qt::Key_F6: 
return RDP_SCANCODE_F6;
 
   55    case Qt::Key_F7: 
return RDP_SCANCODE_F7;
 
   56    case Qt::Key_F8: 
return RDP_SCANCODE_F8;
 
   57    case Qt::Key_F9: 
return RDP_SCANCODE_F9;
 
   58    case Qt::Key_F10: 
return RDP_SCANCODE_F10;
 
   59    case Qt::Key_F11: 
return RDP_SCANCODE_F11;
 
   60    case Qt::Key_F12: 
return RDP_SCANCODE_F12;
 
   61    case Qt::Key_F13: 
return RDP_SCANCODE_F13;
 
   62    case Qt::Key_F14: 
return RDP_SCANCODE_F14;
 
   63    case Qt::Key_F15: 
return RDP_SCANCODE_F15;
 
   64    case Qt::Key_F16: 
return RDP_SCANCODE_F16;
 
   65    case Qt::Key_F17: 
return RDP_SCANCODE_F17;
 
   66    case Qt::Key_F18: 
return RDP_SCANCODE_F18;
 
   67    case Qt::Key_F19: 
return RDP_SCANCODE_F19;
 
   68    case Qt::Key_F20: 
return RDP_SCANCODE_F20;
 
   69    case Qt::Key_F21: 
return RDP_SCANCODE_F20;
 
   70    case Qt::Key_F22: 
return RDP_SCANCODE_F21;
 
   71    case Qt::Key_F23: 
return RDP_SCANCODE_F22;
 
   72    case Qt::Key_F24: 
return RDP_SCANCODE_F23;
 
   86    case Qt::Key_Meta: 
return RDP_SCANCODE_LWIN;
 
   87    case Qt::Key_Super_L: 
return RDP_SCANCODE_LWIN;
 
   88    case Qt::Key_Super_R: 
return RDP_SCANCODE_RWIN;
 
   89    case Qt::Key_Menu: 
return RDP_SCANCODE_LMENU;
 
   92    case Qt::Key_Help: 
return RDP_SCANCODE_HELP;
 
   95    case Qt::Key_Space: 
return RDP_SCANCODE_SPACE;
 
   97    case Qt::Key_Exclam: 
return RDP_SCANCODE_KEY_1;       
 
   98    case Qt::Key_QuoteDbl:
return RDP_SCANCODE_OEM_7;      
 
   99    case Qt::Key_NumberSign: 
return RDP_SCANCODE_KEY_3;   
 
  100    case Qt::Key_Dollar: 
return RDP_SCANCODE_KEY_4;       
 
  101    case Qt::Key_Percent: 
return RDP_SCANCODE_KEY_5;      
 
  102    case Qt::Key_Ampersand: 
return RDP_SCANCODE_KEY_7;    
 
  103    case Qt::Key_Apostrophe: 
return RDP_SCANCODE_OEM_7;   
 
  104    case Qt::Key_ParenLeft: 
return RDP_SCANCODE_KEY_9;    
 
  105    case Qt::Key_ParenRight: 
return RDP_SCANCODE_KEY_0;   
 
  106    case Qt::Key_Asterisk:                                
 
  108        if(modifiers & Qt::ShiftModifier)
 
  109            return RDP_SCANCODE_KEY_8;
 
  110        return RDP_SCANCODE_MULTIPLY;  
 
  114        if(modifiers & Qt::ShiftModifier)
 
  115            return RDP_SCANCODE_OEM_PLUS;
 
  116        return RDP_SCANCODE_ADD;
 
  118    case Qt::Key_Comma: 
return RDP_SCANCODE_OEM_COMMA;    
 
  119    case Qt::Key_Minus: 
return RDP_SCANCODE_OEM_MINUS;    
 
  120    case Qt::Key_Period: 
return RDP_SCANCODE_OEM_PERIOD;  
 
  121    case Qt::Key_Slash: 
return RDP_SCANCODE_OEM_2;        
 
  123    case Qt::Key_0: 
return RDP_SCANCODE_KEY_0;
 
  124    case Qt::Key_1: 
return RDP_SCANCODE_KEY_1;
 
  125    case Qt::Key_2: 
return RDP_SCANCODE_KEY_2;
 
  126    case Qt::Key_3: 
return RDP_SCANCODE_KEY_3;
 
  127    case Qt::Key_4: 
return RDP_SCANCODE_KEY_4;
 
  128    case Qt::Key_5: 
return RDP_SCANCODE_KEY_5;
 
  129    case Qt::Key_6: 
return RDP_SCANCODE_KEY_6;
 
  130    case Qt::Key_7: 
return RDP_SCANCODE_KEY_7;
 
  131    case Qt::Key_8: 
return RDP_SCANCODE_KEY_8;
 
  132    case Qt::Key_9: 
return RDP_SCANCODE_KEY_9;
 
  134    case Qt::Key_Colon: 
return RDP_SCANCODE_OEM_1;        
 
  135    case Qt::Key_Semicolon: 
return RDP_SCANCODE_OEM_1;    
 
  136    case Qt::Key_Less: 
return RDP_SCANCODE_OEM_COMMA;     
 
  137    case Qt::Key_Equal: 
return RDP_SCANCODE_OEM_PLUS;     
 
  138    case Qt::Key_Greater: 
return RDP_SCANCODE_OEM_PERIOD; 
 
  139    case Qt::Key_Question: 
return RDP_SCANCODE_OEM_2;     
 
  140    case Qt::Key_At: 
return RDP_SCANCODE_KEY_2;           
 
  142    case Qt::Key_A: 
return RDP_SCANCODE_KEY_A;
 
  143    case Qt::Key_B: 
return RDP_SCANCODE_KEY_B;
 
  144    case Qt::Key_C: 
return RDP_SCANCODE_KEY_C;
 
  145    case Qt::Key_D: 
return RDP_SCANCODE_KEY_D;
 
  146    case Qt::Key_E: 
return RDP_SCANCODE_KEY_E;
 
  147    case Qt::Key_F: 
return RDP_SCANCODE_KEY_F;
 
  148    case Qt::Key_G: 
return RDP_SCANCODE_KEY_G;
 
  149    case Qt::Key_H: 
return RDP_SCANCODE_KEY_H;
 
  150    case Qt::Key_I: 
return RDP_SCANCODE_KEY_I;
 
  151    case Qt::Key_J: 
return RDP_SCANCODE_KEY_J;
 
  152    case Qt::Key_K: 
return RDP_SCANCODE_KEY_K;
 
  153    case Qt::Key_L: 
return RDP_SCANCODE_KEY_L;
 
  154    case Qt::Key_M: 
return RDP_SCANCODE_KEY_M;
 
  155    case Qt::Key_N: 
return RDP_SCANCODE_KEY_N;
 
  156    case Qt::Key_O: 
return RDP_SCANCODE_KEY_O;
 
  157    case Qt::Key_P: 
return RDP_SCANCODE_KEY_P;
 
  158    case Qt::Key_Q: 
return RDP_SCANCODE_KEY_Q;
 
  159    case Qt::Key_R: 
return RDP_SCANCODE_KEY_R;
 
  160    case Qt::Key_S: 
return RDP_SCANCODE_KEY_S;
 
  161    case Qt::Key_T: 
return RDP_SCANCODE_KEY_T;
 
  162    case Qt::Key_U: 
return RDP_SCANCODE_KEY_U;
 
  163    case Qt::Key_V: 
return RDP_SCANCODE_KEY_V;
 
  164    case Qt::Key_W: 
return RDP_SCANCODE_KEY_W;
 
  165    case Qt::Key_X: 
return RDP_SCANCODE_KEY_X;
 
  166    case Qt::Key_Y: 
return RDP_SCANCODE_KEY_Y;
 
  167    case Qt::Key_Z: 
return RDP_SCANCODE_KEY_Z;
 
  168    case Qt::Key_BracketLeft: 
return RDP_SCANCODE_OEM_4;
 
  169    case Qt::Key_Backslash: 
return RDP_SCANCODE_OEM_5;
 
  170    case Qt::Key_BracketRight: 
return RDP_SCANCODE_OEM_6;
 
  171    case Qt::Key_AsciiCircum: 
return RDP_SCANCODE_KEY_6;
 
  172    case Qt::Key_Underscore: 
return RDP_SCANCODE_OEM_MINUS;
 
  173    case Qt::Key_QuoteLeft: 
return RDP_SCANCODE_OEM_3;
 
  174    case Qt::Key_BraceLeft: 
return RDP_SCANCODE_OEM_4;
 
  175    case Qt::Key_Bar: 
return RDP_SCANCODE_OEM_5;
 
  176    case Qt::Key_BraceRight: 
return RDP_SCANCODE_OEM_6;
 
  177    case Qt::Key_AsciiTilde: 
return RDP_SCANCODE_OEM_3;