From 3e23785c66871295ec06a25465e04eb9bb325c3d Mon Sep 17 00:00:00 2001 From: Manoj Ampalam Date: Thu, 22 Sep 2016 19:34:38 -0700 Subject: [PATCH] Manual Merge change f26780ecfb8f6ebff742360c96ebe51285bb4a35 ID Author Date Message f26780ecfb8f6ebff742360c96ebe51285bb4a35 Ray Hayes 9/16/2016 3:26:06 PM -07:00 Fix ESC character parsing when # missing. --- contrib/win32/win32compat/ansiprsr.c | 40 +- contrib/win32/win32compat/tncon.c | 996 +++++++++++++-------------- contrib/win32/win32compat/tncon.h | 1 + 3 files changed, 523 insertions(+), 514 deletions(-) diff --git a/contrib/win32/win32compat/ansiprsr.c b/contrib/win32/win32compat/ansiprsr.c index 0c39448..d28e9e8 100644 --- a/contrib/win32/win32compat/ansiprsr.c +++ b/contrib/win32/win32compat/ansiprsr.c @@ -52,9 +52,10 @@ TelParams Parameters; extern int ScreenX; -extern int ScreenY; +extern int ScreenY; extern int ScrollTop; extern int ScrollBottom; + // end of imports from outside module bool gbVTAppMode = false; @@ -80,7 +81,8 @@ int bCS0 = 0; int bCS1 = 0; int bBkMode = 0; int bCharMode = 0; - +int ReportedX = 0; +int ReportedY = 0; BOOL fShiftOut = FALSE; BOOL InPrintMode = FALSE; @@ -544,6 +546,8 @@ unsigned char * ParseANSI(unsigned char * pszBuffer, unsigned char * pszBufferEn if (bMode & MODE_BRK) { // Cursor left + if (iParam[0] == 0) + iParam[0] = 1; ConMoveCursorPosition(-iParam[0], 0); } else if (bMode == 0) @@ -570,15 +574,27 @@ unsigned char * ParseANSI(unsigned char * pszBuffer, unsigned char * pszBufferEn break; case 'h': + if (bMode & MODE_EXT) + { + if (iParam[0] == 4 && iParam[1] == 7) { + ConSaveScreen(); + } + } case 'l': // ^[?25h if (bMode & MODE_EXT) { - if (iParam[0] == 4) { - VTMode |= MODE_IRM_INSERT; - } - int i; - for ( i = 0; i < iCurrentParam; i++ ) - ConSetExtendedMode(iParam[i], *pszCurrent=='h' ? 1 : 0); + if (iParam[0] == 4 && iParam[1] == 7) { + ConRestoreScreen(); + } + else + { + if (iParam[0] == 4) { + VTMode |= MODE_IRM_INSERT; + } + int i; + for (i = 0; i < iCurrentParam; i++) + ConSetExtendedMode(iParam[i], *pszCurrent == 'h' ? 1 : 0); + } } else if (bMode & MODE_BRK) { @@ -618,12 +634,14 @@ unsigned char * ParseANSI(unsigned char * pszBuffer, unsigned char * pszBufferEn ConSetAttribute(iParam, iCurrentParam); fcompletion = 1; break; - case 'r': fcompletion = 1; break; - - case 'H': + case 'R': + ReportedX = iParam[1]; + ReportedY = iParam[0]; + break; + case 'H': case 'f': if (bMode & MODE_BRK) { diff --git a/contrib/win32/win32compat/tncon.c b/contrib/win32/win32compat/tncon.c index 3abeb04..23b232f 100644 --- a/contrib/win32/win32compat/tncon.c +++ b/contrib/win32/win32compat/tncon.c @@ -165,518 +165,508 @@ int ReadConsoleForTermEmul(HANDLE hInput, char *destin, int destinlen) dwControlKeyState = InputRecord.Event.KeyEvent.dwControlKeyState & ~(CAPSLOCK_ON | ENHANCED_KEY | NUMLOCK_ON | SCROLLLOCK_ON); - if (InputRecord.Event.KeyEvent.uChar.UnicodeChar) + if (InputRecord.Event.KeyEvent.bKeyDown) { - if (InputRecord.Event.KeyEvent.bKeyDown) - { - int n = WideCharToMultiByte( - GetConsoleCP(), - 0, - &(InputRecord.Event.KeyEvent.uChar.UnicodeChar), - 1, - (LPSTR)octets, - 20, - NULL, - NULL); + int n = WideCharToMultiByte( + GetConsoleCP(), + 0, + &(InputRecord.Event.KeyEvent.uChar.UnicodeChar), + 1, + (LPSTR)octets, + 20, + NULL, + NULL); - if (pParams->fLocalEcho) { - ConWriteString((char *)octets, n); - } - - if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)pParams->pAltKey, 1, 0); - - switch (InputRecord.Event.KeyEvent.uChar.UnicodeChar) - { - case 0xd: - if (pParams->nReceiveCRLF == ENUM_LF) - NetWriteString2(pParams->Socket, "\r", 1, 0); - else - NetWriteString2(pParams->Socket, "\r\n", 2, 0); - break; - - case VK_ESCAPE: - NetWriteString2(pParams->Socket, (char *)ESCAPE_KEY, 1, 0); - break; - - default: - NetWriteString2(pParams->Socket, (char *)octets, n, 0); - break; - } + if (pParams->fLocalEcho) { + ConWriteString((char *)octets, n); } - } - else - { - if (InputRecord.Event.KeyEvent.bKeyDown) + + if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)pParams->pAltKey, 1, 0); + + switch (InputRecord.Event.KeyEvent.uChar.UnicodeChar) { - switch (InputRecord.Event.KeyEvent.wVirtualKeyCode) - { - case VK_UP: - NetWriteString2(pParams->Socket, (char *)(gbVTAppMode ? APP_UP_ARROW : UP_ARROW), 3, 0); - break; - case VK_DOWN: - NetWriteString2(pParams->Socket, (char *)(gbVTAppMode ? APP_DOWN_ARROW : DOWN_ARROW), 3, 0); - break; - case VK_RIGHT: - NetWriteString2(pParams->Socket, (char *)(gbVTAppMode ? APP_RIGHT_ARROW : RIGHT_ARROW), 3, 0); - break; - case VK_LEFT: - NetWriteString2(pParams->Socket, (char *)(gbVTAppMode ? APP_LEFT_ARROW : LEFT_ARROW), 3, 0); - break; - case VK_F1: - if (dwControlKeyState == 0) - { - if (pParams->bVT100Mode) - NetWriteString2(pParams->Socket, (char *)VT100_PF1_KEY, strlen(VT100_PF1_KEY), 0); - else - NetWriteString2(pParams->Socket, (char *)PF1_KEY, strlen(PF1_KEY), 0); - } - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF1_KEY, strlen(SHIFT_PF1_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF1_KEY, strlen(CTRL_PF1_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF1_KEY, strlen(ALT_PF1_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF1_KEY, strlen(SHIFT_ALT_CTRL_PF1_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF1_KEY, strlen(ALT_CTRL_PF1_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF1_KEY, strlen(SHIFT_ALT_PF1_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF1_KEY, strlen(SHIFT_CTRL_PF1_KEY), 0); - break; - case VK_F2: - if (dwControlKeyState == 0) - { - if (pParams->bVT100Mode) - NetWriteString2(pParams->Socket, (char *)VT100_PF2_KEY, strlen(VT100_PF2_KEY), 0); - else - NetWriteString2(pParams->Socket, (char *)PF2_KEY, strlen(PF2_KEY), 0); - } - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF2_KEY, strlen(SHIFT_PF2_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF2_KEY, strlen(CTRL_PF2_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF2_KEY, strlen(ALT_PF2_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF2_KEY, strlen(SHIFT_ALT_CTRL_PF2_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF2_KEY, strlen(ALT_CTRL_PF2_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF2_KEY, strlen(SHIFT_ALT_PF2_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF2_KEY, strlen(SHIFT_CTRL_PF2_KEY), 0); - break; - case VK_F3: - if (dwControlKeyState == 0) - { - if (pParams->bVT100Mode) - NetWriteString2(pParams->Socket, (char *)VT100_PF3_KEY, strlen(VT100_PF3_KEY), 0); - else - NetWriteString2(pParams->Socket, (char *)PF3_KEY, strlen(PF3_KEY), 0); - } - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF3_KEY, strlen(SHIFT_PF3_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF3_KEY, strlen(CTRL_PF3_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF3_KEY, strlen(ALT_PF3_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF3_KEY, strlen(SHIFT_ALT_CTRL_PF3_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF3_KEY, strlen(ALT_CTRL_PF3_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF3_KEY, strlen(SHIFT_ALT_PF3_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF3_KEY, strlen(SHIFT_CTRL_PF3_KEY), 0); - break; - case VK_F4: - if (dwControlKeyState == 0) - { - if (pParams->bVT100Mode) - NetWriteString2(pParams->Socket, (char *)VT100_PF4_KEY, strlen(VT100_PF4_KEY), 0); - else - NetWriteString2(pParams->Socket, (char *)PF4_KEY, strlen(PF4_KEY), 0); - } - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF4_KEY, strlen(SHIFT_PF4_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF4_KEY, strlen(CTRL_PF4_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF4_KEY, strlen(ALT_PF4_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF4_KEY, strlen(SHIFT_ALT_CTRL_PF4_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF4_KEY, strlen(ALT_CTRL_PF4_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF4_KEY, strlen(SHIFT_ALT_PF4_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF4_KEY, strlen(SHIFT_CTRL_PF4_KEY), 0); - break; - case VK_F5: - if (dwControlKeyState == 0) - { - NetWriteString2(pParams->Socket, (char *)PF5_KEY, strlen(PF5_KEY), 0); - } - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF5_KEY, strlen(SHIFT_PF5_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF5_KEY, strlen(CTRL_PF5_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF5_KEY, strlen(ALT_PF5_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF5_KEY, strlen(SHIFT_ALT_CTRL_PF5_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF5_KEY, strlen(ALT_CTRL_PF5_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF5_KEY, strlen(SHIFT_ALT_PF5_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF5_KEY, strlen(SHIFT_CTRL_PF5_KEY), 0); - break; - case VK_F6: - if (dwControlKeyState == 0) - NetWriteString2(pParams->Socket, (char *)PF6_KEY, strlen(PF6_KEY), 0); - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF6_KEY, strlen(SHIFT_PF6_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF6_KEY, strlen(CTRL_PF6_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF6_KEY, strlen(ALT_PF6_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF6_KEY, strlen(SHIFT_ALT_CTRL_PF6_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF6_KEY, strlen(ALT_CTRL_PF6_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF6_KEY, strlen(SHIFT_ALT_PF6_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF6_KEY, strlen(SHIFT_CTRL_PF6_KEY), 0); - break; - case VK_F7: - if (dwControlKeyState == 0) - NetWriteString2(pParams->Socket, (char *)PF7_KEY, strlen(PF7_KEY), 0); - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF7_KEY, strlen(SHIFT_PF7_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF7_KEY, strlen(CTRL_PF7_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF7_KEY, strlen(ALT_PF7_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF7_KEY, strlen(SHIFT_ALT_CTRL_PF7_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF7_KEY, strlen(ALT_CTRL_PF7_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF7_KEY, strlen(SHIFT_ALT_PF7_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF7_KEY, strlen(SHIFT_CTRL_PF7_KEY), 0); - break; - case VK_F8: - if (dwControlKeyState == 0) - NetWriteString2(pParams->Socket, (char *)PF8_KEY, strlen(PF8_KEY), 0); - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF8_KEY, strlen(SHIFT_PF8_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF8_KEY, strlen(CTRL_PF8_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF8_KEY, strlen(ALT_PF8_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF8_KEY, strlen(SHIFT_ALT_CTRL_PF8_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF8_KEY, strlen(ALT_CTRL_PF8_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF8_KEY, strlen(SHIFT_ALT_PF8_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF8_KEY, strlen(SHIFT_CTRL_PF8_KEY), 0); - break; - case VK_F9: - if (dwControlKeyState == 0) - NetWriteString2(pParams->Socket, (char *)PF9_KEY, strlen(PF9_KEY), 0); - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF9_KEY, strlen(SHIFT_PF9_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF9_KEY, strlen(CTRL_PF9_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF9_KEY, strlen(ALT_PF9_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF9_KEY, strlen(SHIFT_ALT_CTRL_PF9_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF9_KEY, strlen(ALT_CTRL_PF9_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF9_KEY, strlen(SHIFT_ALT_PF9_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF9_KEY, strlen(SHIFT_CTRL_PF9_KEY), 0); - break; - case VK_F10: - if (dwControlKeyState == 0) - NetWriteString2(pParams->Socket, (char *)PF10_KEY, strlen(PF10_KEY), 0); - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF10_KEY, strlen(SHIFT_PF10_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF10_KEY, strlen(CTRL_PF10_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF10_KEY, strlen(ALT_PF10_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF10_KEY, strlen(SHIFT_ALT_CTRL_PF10_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF10_KEY, strlen(ALT_CTRL_PF10_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF10_KEY, strlen(SHIFT_ALT_PF10_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF10_KEY, strlen(SHIFT_CTRL_PF10_KEY), 0); - break; - case VK_F11: - if (dwControlKeyState == 0) - NetWriteString2(pParams->Socket, (char *)PF11_KEY, strlen(PF11_KEY), 0); - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF11_KEY, strlen(SHIFT_PF11_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF11_KEY, strlen(CTRL_PF11_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF11_KEY, strlen(ALT_PF11_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF11_KEY, strlen(SHIFT_ALT_CTRL_PF11_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF11_KEY, strlen(ALT_CTRL_PF11_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF11_KEY, strlen(SHIFT_ALT_PF11_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF11_KEY, strlen(SHIFT_CTRL_PF11_KEY), 0); - break; - case VK_F12: - if (dwControlKeyState == 0) - NetWriteString2(pParams->Socket, (char *)PF12_KEY, strlen(PF12_KEY), 0); - else if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_PF12_KEY, strlen(SHIFT_PF12_KEY), 0); - else if (dwControlKeyState == LEFT_CTRL_PRESSED || - dwControlKeyState == RIGHT_CTRL_PRESSED) - NetWriteString2(pParams->Socket, (char *)CTRL_PF12_KEY, strlen(CTRL_PF12_KEY), 0); - else if (dwControlKeyState == LEFT_ALT_PRESSED || - dwControlKeyState == RIGHT_ALT_PRESSED) - NetWriteString2(pParams->Socket, (char *)ALT_PF12_KEY, strlen(ALT_PF12_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED)) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF12_KEY, strlen(SHIFT_ALT_CTRL_PF12_KEY), 0); - else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF12_KEY, strlen(ALT_CTRL_PF12_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & RIGHT_ALT_PRESSED) || - (dwControlKeyState & LEFT_ALT_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF12_KEY, strlen(SHIFT_ALT_PF12_KEY), 0); - else if ((dwControlKeyState & SHIFT_PRESSED) && - ((dwControlKeyState & LEFT_CTRL_PRESSED) || - (dwControlKeyState & RIGHT_CTRL_PRESSED))) - NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF12_KEY, strlen(SHIFT_CTRL_PF12_KEY), 0); - break; - case VK_PRIOR: - #ifdef PHYS_KEY_MAP - NetWriteString2(pParams->Socket, (char *)REMOVE_KEY, 4, 0); - #else - NetWriteString2(pParams->Socket, (char *)PREV_KEY, 4, 0); - #endif - break; - case VK_NEXT: - NetWriteString2(pParams->Socket, (char *)NEXT_KEY, 4, 0); - break; - case VK_END: - #ifdef PHYS_KEY_MAP - NetWriteString2(pParams->Socket, (char *)PREV_KEY, 4, 0); - #else - NetWriteString2(pParams->Socket, (char *)SELECT_KEY, 4, 0); - #endif - break; - - case VK_HOME: - #ifdef PHYS_KEY_MAP - NetWriteString2(pParams->Socket, (char *)INSERT_KEY, 4, 0); - #else - NetWriteString2(pParams->Socket, (char *)FIND_KEY, 4, 0); - #endif - break; - case VK_INSERT: - #ifdef PHYS_KEY_MAP - NetWriteString2(pParams->Socket, (char *)FIND_KEY, 4, 0); - #else - NetWriteString2(pParams->Socket, (char *)INSERT_KEY, 4, 0); - - #endif - break; - case VK_DELETE: - #ifdef PHYS_KEY_MAP - NetWriteString2(pParams->Socket, (char *)SELECT_KEY, 4, 0); - #else - NetWriteString2(pParams->Socket, (char *)REMOVE_KEY, 4, 0); - #endif - break; - case VK_TAB: - if (dwControlKeyState == SHIFT_PRESSED) - NetWriteString2(pParams->Socket, (char *)SHIFT_TAB_KEY, 3, 0); + case 0xd: + if (pParams->nReceiveCRLF == ENUM_LF) + NetWriteString2(pParams->Socket, "\r", 1, 0); + else + NetWriteString2(pParams->Socket, "\r\n", 2, 0); break; + case VK_ESCAPE: NetWriteString2(pParams->Socket, (char *)ESCAPE_KEY, 1, 0); break; - case VK_SHIFT: - case VK_CONTROL: - case VK_CAPITAL: - // NOP on these - break; + default: - { - aChar = InputRecord.Event.KeyEvent.uChar.AsciiChar; - NetWriteString2(pParams->Socket, (char *)&aChar, 1, 0); - break; - } - } + switch (InputRecord.Event.KeyEvent.wVirtualKeyCode) + { + case VK_UP: + NetWriteString2(pParams->Socket, (char *)(gbVTAppMode ? APP_UP_ARROW : UP_ARROW), 3, 0); + break; + case VK_DOWN: + NetWriteString2(pParams->Socket, (char *)(gbVTAppMode ? APP_DOWN_ARROW : DOWN_ARROW), 3, 0); + break; + case VK_RIGHT: + NetWriteString2(pParams->Socket, (char *)(gbVTAppMode ? APP_RIGHT_ARROW : RIGHT_ARROW), 3, 0); + break; + case VK_LEFT: + NetWriteString2(pParams->Socket, (char *)(gbVTAppMode ? APP_LEFT_ARROW : LEFT_ARROW), 3, 0); + break; + case VK_F1: + if (dwControlKeyState == 0) + { + if (pParams->bVT100Mode) + NetWriteString2(pParams->Socket, (char *)VT100_PF1_KEY, strlen(VT100_PF1_KEY), 0); + else + NetWriteString2(pParams->Socket, (char *)PF1_KEY, strlen(PF1_KEY), 0); + } + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF1_KEY, strlen(SHIFT_PF1_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF1_KEY, strlen(CTRL_PF1_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF1_KEY, strlen(ALT_PF1_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF1_KEY, strlen(SHIFT_ALT_CTRL_PF1_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF1_KEY, strlen(ALT_CTRL_PF1_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF1_KEY, strlen(SHIFT_ALT_PF1_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF1_KEY, strlen(SHIFT_CTRL_PF1_KEY), 0); + break; + case VK_F2: + if (dwControlKeyState == 0) + { + if (pParams->bVT100Mode) + NetWriteString2(pParams->Socket, (char *)VT100_PF2_KEY, strlen(VT100_PF2_KEY), 0); + else + NetWriteString2(pParams->Socket, (char *)PF2_KEY, strlen(PF2_KEY), 0); + } + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF2_KEY, strlen(SHIFT_PF2_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF2_KEY, strlen(CTRL_PF2_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF2_KEY, strlen(ALT_PF2_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF2_KEY, strlen(SHIFT_ALT_CTRL_PF2_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF2_KEY, strlen(ALT_CTRL_PF2_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF2_KEY, strlen(SHIFT_ALT_PF2_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF2_KEY, strlen(SHIFT_CTRL_PF2_KEY), 0); + break; + case VK_F3: + if (dwControlKeyState == 0) + { + if (pParams->bVT100Mode) + NetWriteString2(pParams->Socket, (char *)VT100_PF3_KEY, strlen(VT100_PF3_KEY), 0); + else + NetWriteString2(pParams->Socket, (char *)PF3_KEY, strlen(PF3_KEY), 0); + } + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF3_KEY, strlen(SHIFT_PF3_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF3_KEY, strlen(CTRL_PF3_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF3_KEY, strlen(ALT_PF3_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF3_KEY, strlen(SHIFT_ALT_CTRL_PF3_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF3_KEY, strlen(ALT_CTRL_PF3_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF3_KEY, strlen(SHIFT_ALT_PF3_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF3_KEY, strlen(SHIFT_CTRL_PF3_KEY), 0); + break; + case VK_F4: + if (dwControlKeyState == 0) + { + if (pParams->bVT100Mode) + NetWriteString2(pParams->Socket, (char *)VT100_PF4_KEY, strlen(VT100_PF4_KEY), 0); + else + NetWriteString2(pParams->Socket, (char *)PF4_KEY, strlen(PF4_KEY), 0); + } + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF4_KEY, strlen(SHIFT_PF4_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF4_KEY, strlen(CTRL_PF4_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF4_KEY, strlen(ALT_PF4_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF4_KEY, strlen(SHIFT_ALT_CTRL_PF4_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF4_KEY, strlen(ALT_CTRL_PF4_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF4_KEY, strlen(SHIFT_ALT_PF4_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF4_KEY, strlen(SHIFT_CTRL_PF4_KEY), 0); + break; + case VK_F5: + if (dwControlKeyState == 0) + { + NetWriteString2(pParams->Socket, (char *)PF5_KEY, strlen(PF5_KEY), 0); + } + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF5_KEY, strlen(SHIFT_PF5_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF5_KEY, strlen(CTRL_PF5_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF5_KEY, strlen(ALT_PF5_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF5_KEY, strlen(SHIFT_ALT_CTRL_PF5_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF5_KEY, strlen(ALT_CTRL_PF5_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF5_KEY, strlen(SHIFT_ALT_PF5_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF5_KEY, strlen(SHIFT_CTRL_PF5_KEY), 0); + break; + case VK_F6: + if (dwControlKeyState == 0) + NetWriteString2(pParams->Socket, (char *)PF6_KEY, strlen(PF6_KEY), 0); + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF6_KEY, strlen(SHIFT_PF6_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF6_KEY, strlen(CTRL_PF6_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF6_KEY, strlen(ALT_PF6_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF6_KEY, strlen(SHIFT_ALT_CTRL_PF6_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF6_KEY, strlen(ALT_CTRL_PF6_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF6_KEY, strlen(SHIFT_ALT_PF6_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF6_KEY, strlen(SHIFT_CTRL_PF6_KEY), 0); + break; + case VK_F7: + if (dwControlKeyState == 0) + NetWriteString2(pParams->Socket, (char *)PF7_KEY, strlen(PF7_KEY), 0); + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF7_KEY, strlen(SHIFT_PF7_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF7_KEY, strlen(CTRL_PF7_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF7_KEY, strlen(ALT_PF7_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF7_KEY, strlen(SHIFT_ALT_CTRL_PF7_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF7_KEY, strlen(ALT_CTRL_PF7_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF7_KEY, strlen(SHIFT_ALT_PF7_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF7_KEY, strlen(SHIFT_CTRL_PF7_KEY), 0); + break; + case VK_F8: + if (dwControlKeyState == 0) + NetWriteString2(pParams->Socket, (char *)PF8_KEY, strlen(PF8_KEY), 0); + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF8_KEY, strlen(SHIFT_PF8_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF8_KEY, strlen(CTRL_PF8_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF8_KEY, strlen(ALT_PF8_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF8_KEY, strlen(SHIFT_ALT_CTRL_PF8_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF8_KEY, strlen(ALT_CTRL_PF8_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF8_KEY, strlen(SHIFT_ALT_PF8_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF8_KEY, strlen(SHIFT_CTRL_PF8_KEY), 0); + break; + case VK_F9: + if (dwControlKeyState == 0) + NetWriteString2(pParams->Socket, (char *)PF9_KEY, strlen(PF9_KEY), 0); + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF9_KEY, strlen(SHIFT_PF9_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF9_KEY, strlen(CTRL_PF9_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF9_KEY, strlen(ALT_PF9_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF9_KEY, strlen(SHIFT_ALT_CTRL_PF9_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF9_KEY, strlen(ALT_CTRL_PF9_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF9_KEY, strlen(SHIFT_ALT_PF9_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF9_KEY, strlen(SHIFT_CTRL_PF9_KEY), 0); + break; + case VK_F10: + if (dwControlKeyState == 0) + NetWriteString2(pParams->Socket, (char *)PF10_KEY, strlen(PF10_KEY), 0); + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF10_KEY, strlen(SHIFT_PF10_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF10_KEY, strlen(CTRL_PF10_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF10_KEY, strlen(ALT_PF10_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF10_KEY, strlen(SHIFT_ALT_CTRL_PF10_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF10_KEY, strlen(ALT_CTRL_PF10_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF10_KEY, strlen(SHIFT_ALT_PF10_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF10_KEY, strlen(SHIFT_CTRL_PF10_KEY), 0); + break; + case VK_F11: + if (dwControlKeyState == 0) + NetWriteString2(pParams->Socket, (char *)PF11_KEY, strlen(PF11_KEY), 0); + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF11_KEY, strlen(SHIFT_PF11_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF11_KEY, strlen(CTRL_PF11_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF11_KEY, strlen(ALT_PF11_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF11_KEY, strlen(SHIFT_ALT_CTRL_PF11_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF11_KEY, strlen(ALT_CTRL_PF11_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF11_KEY, strlen(SHIFT_ALT_PF11_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF11_KEY, strlen(SHIFT_CTRL_PF11_KEY), 0); + break; + case VK_F12: + if (dwControlKeyState == 0) + NetWriteString2(pParams->Socket, (char *)PF12_KEY, strlen(PF12_KEY), 0); + else if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_PF12_KEY, strlen(SHIFT_PF12_KEY), 0); + else if (dwControlKeyState == LEFT_CTRL_PRESSED || + dwControlKeyState == RIGHT_CTRL_PRESSED) + NetWriteString2(pParams->Socket, (char *)CTRL_PF12_KEY, strlen(CTRL_PF12_KEY), 0); + else if (dwControlKeyState == LEFT_ALT_PRESSED || + dwControlKeyState == RIGHT_ALT_PRESSED) + NetWriteString2(pParams->Socket, (char *)ALT_PF12_KEY, strlen(ALT_PF12_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED)) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_CTRL_PF12_KEY, strlen(SHIFT_ALT_CTRL_PF12_KEY), 0); + else if ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)ALT_CTRL_PF12_KEY, strlen(ALT_CTRL_PF12_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & RIGHT_ALT_PRESSED) || + (dwControlKeyState & LEFT_ALT_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_ALT_PF12_KEY, strlen(SHIFT_ALT_PF12_KEY), 0); + else if ((dwControlKeyState & SHIFT_PRESSED) && + ((dwControlKeyState & LEFT_CTRL_PRESSED) || + (dwControlKeyState & RIGHT_CTRL_PRESSED))) + NetWriteString2(pParams->Socket, (char *)SHIFT_CTRL_PF12_KEY, strlen(SHIFT_CTRL_PF12_KEY), 0); + break; + case VK_PRIOR: +#ifdef PHYS_KEY_MAP + NetWriteString2(pParams->Socket, (char *)REMOVE_KEY, 4, 0); +#else + NetWriteString2(pParams->Socket, (char *)PREV_KEY, 4, 0); +#endif + break; + case VK_NEXT: + NetWriteString2(pParams->Socket, (char *)NEXT_KEY, 4, 0); + break; + case VK_END: +#ifdef PHYS_KEY_MAP + NetWriteString2(pParams->Socket, (char *)PREV_KEY, 4, 0); +#else + NetWriteString2(pParams->Socket, (char *)SELECT_KEY, 4, 0); +#endif + break; + + case VK_HOME: +#ifdef PHYS_KEY_MAP + NetWriteString2(pParams->Socket, (char *)INSERT_KEY, 4, 0); +#else + NetWriteString2(pParams->Socket, (char *)FIND_KEY, 4, 0); +#endif + break; + case VK_INSERT: +#ifdef PHYS_KEY_MAP + NetWriteString2(pParams->Socket, (char *)FIND_KEY, 4, 0); +#else + NetWriteString2(pParams->Socket, (char *)INSERT_KEY, 4, 0); +#endif + break; + case VK_DELETE: +#ifdef PHYS_KEY_MAP + NetWriteString2(pParams->Socket, (char *)SELECT_KEY, 4, 0); +#else + NetWriteString2(pParams->Socket, (char *)REMOVE_KEY, 4, 0); +#endif + break; + case VK_BACK: + NetWriteString2(pParams->Socket, (char *)BACKSPACE_KEY, 1, 0); + break; + case VK_TAB: + if (dwControlKeyState == SHIFT_PRESSED) + NetWriteString2(pParams->Socket, (char *)SHIFT_TAB_KEY, 3, 0); + break; + case VK_ESCAPE: + NetWriteString2(pParams->Socket, (char *)ESCAPE_KEY, 1, 0); + break; + case VK_SHIFT: + case VK_CONTROL: + case VK_CAPITAL: + // NOP on these + break; + default: + { + NetWriteString2(pParams->Socket, (char *)octets, n, 0); + break; + } + } } } break; diff --git a/contrib/win32/win32compat/tncon.h b/contrib/win32/win32compat/tncon.h index a217a83..10e9b18 100644 --- a/contrib/win32/win32compat/tncon.h +++ b/contrib/win32/win32compat/tncon.h @@ -172,6 +172,7 @@ #define NEXT_KEY "\x1b[6~" #define SHIFT_TAB_KEY "\x1b[~" #define ESCAPE_KEY "\x1b" +#define BACKSPACE_KEY "\b" #define TERMINAL_ID "\x1b[?1;2c" #define STATUS_REPORT "\x1b[2;5R"