KEY.H (18897B)
1 // 2 // Copyright 2020 Electronic Arts Inc. 3 // 4 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is free 5 // software: you can redistribute it and/or modify it under the terms of 6 // the GNU General Public License as published by the Free Software Foundation, 7 // either version 3 of the License, or (at your option) any later version. 8 9 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed 10 // in the hope that it will be useful, but with permitted additional restrictions 11 // under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 12 // distributed with this program. You should have received a copy of the 13 // GNU General Public License along with permitted additional restrictions 14 // with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection 15 16 /* $Header: /CounterStrike/KEY.H 1 3/03/97 10:25a Joe_bostic $ */ 17 /*********************************************************************************************** 18 * * 19 * Project Name : Westwood Keyboard Library * 20 * * 21 * File Name : KEYBOARD.H * 22 * * 23 * Programmer : Philip W. Gorrow * 24 * * 25 * Start Date : 10/16/95 * 26 * * 27 * Last Update : October 16, 1995 [PWG] * 28 * * 29 *---------------------------------------------------------------------------------------------* 30 * Functions: * 31 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 32 33 #ifndef KEYBOARD_H 34 #define KEYBOARD_H 35 36 #ifndef WIN32 37 #include "..\wwflat32\include\keyboard.h" 38 #else 39 40 #include <windows.h> 41 42 /* 43 ** The "bool" integral type was defined by the C++ comittee in 44 ** November of '94. Until the compiler supports this, use the following 45 ** definition. 46 */ 47 #ifndef __BORLANDC__ 48 #ifndef TRUE_FALSE_DEFINED 49 #define TRUE_FALSE_DEFINED 50 enum {false=0,true=1}; 51 typedef int bool; 52 #endif 53 #endif 54 55 56 typedef enum { 57 WWKEY_SHIFT_BIT = 0x100, 58 WWKEY_CTRL_BIT = 0x200, 59 WWKEY_ALT_BIT = 0x400, 60 WWKEY_RLS_BIT = 0x800, 61 WWKEY_VK_BIT = 0x1000, 62 WWKEY_DBL_BIT = 0x2000, 63 WWKEY_BTN_BIT = 0x8000, 64 } WWKey_Type; 65 66 67 class WWKeyboardClass 68 { 69 public: 70 /* Define the base constructor and destructors for the class */ 71 WWKeyboardClass(); 72 73 /* Define the functions which work with the Keyboard Class */ 74 unsigned short Check(void) const; 75 unsigned short Get(void); 76 bool Put(unsigned short key); 77 void Clear(void); 78 char To_ASCII(unsigned short num); 79 bool Down(unsigned short key); 80 81 /* Define the main hook for the message processing loop. */ 82 bool Message_Handler(HWND hwnd, UINT message, UINT wParam, LONG lParam); 83 84 /* Define the public access variables which are used with the */ 85 /* Keyboard Class. */ 86 int MouseQX; 87 int MouseQY; 88 89 private: 90 91 /* 92 ** This is a keyboard state array that is used to aid in translating 93 ** KN_ keys into KA_ keys. 94 */ 95 unsigned char KeyState[256]; 96 97 /* 98 ** This is the circular keyboard holding buffer. It holds the VK key and 99 ** the current shift state at the time the key was added to the queue. 100 */ 101 unsigned short Buffer[256]; // buffer which holds actual keypresses 102 103 unsigned short Buff_Get(void); 104 unsigned short Fetch_Element(void); 105 unsigned short Peek_Element(void) const; 106 bool Put_Element(unsigned short val); 107 bool Is_Buffer_Full(void) const; 108 bool Is_Buffer_Empty(void) const; 109 static bool Is_Mouse_Key(unsigned short key); 110 void Fill_Buffer_From_System(void); 111 bool Put_Key_Message(unsigned short vk_key, bool release = false); 112 bool Put_Mouse_Message(unsigned short vk_key, int x, int y, bool release = false); 113 int Available_Buffer_Room(void) const; 114 115 /* 116 ** These are the tracking pointers to maintain the 117 ** circular keyboard list. 118 */ 119 int Head; 120 int Tail; 121 }; 122 123 124 #define VK_NONE 0x00 125 #define VK_LBUTTON 0x01 126 #define VK_RBUTTON 0x02 127 #define VK_CANCEL 0x03 128 #define VK_MBUTTON 0x04 129 #define VK_NONE_05 0x05 130 #define VK_NONE_06 0x06 131 #define VK_NONE_07 0x07 132 #define VK_BACK 0x08 133 #define VK_TAB 0x09 134 #define VK_NONE_0A 0x0A 135 #define VK_NONE_0B 0x0B 136 #define VK_CLEAR 0x0C 137 #define VK_RETURN 0x0D 138 #define VK_NONE_0E 0x0E 139 #define VK_NONE_0F 0x0F 140 #define VK_SHIFT 0x10 141 #define VK_CONTROL 0x11 142 #define VK_MENU 0x12 143 #define VK_PAUSE 0x13 144 #define VK_CAPITAL 0x14 145 #define VK_NONE_15 0x15 146 #define VK_NONE_16 0x16 147 #define VK_NONE_17 0x17 148 #define VK_NONE_18 0x18 149 #define VK_NONE_19 0x19 150 #define VK_NONE_1A 0x1A 151 #define VK_ESCAPE 0x1B 152 #define VK_NONE_1C 0x1C 153 #define VK_NONE_1D 0x1D 154 #define VK_NONE_1E 0x1E 155 #define VK_NONE_1F 0x1F 156 #define VK_SPACE 0x20 157 #define VK_PRIOR 0x21 158 #define VK_NEXT 0x22 159 #define VK_END 0x23 160 #define VK_HOME 0x24 161 #define VK_LEFT 0x25 162 #define VK_UP 0x26 163 #define VK_RIGHT 0x27 164 #define VK_DOWN 0x28 165 #define VK_SELECT 0x29 166 #define VK_PRINT 0x2A 167 #define VK_EXECUTE 0x2B 168 #define VK_SNAPSHOT 0x2C 169 #define VK_INSERT 0x2D 170 #define VK_DELETE 0x2E 171 #define VK_HELP 0x2F 172 #define VK_0 0x30 173 #define VK_1 0x31 174 #define VK_2 0x32 175 #define VK_3 0x33 176 #define VK_4 0x34 177 #define VK_5 0x35 178 #define VK_6 0x36 179 #define VK_7 0x37 180 #define VK_8 0x38 181 #define VK_9 0x39 182 #define VK_NONE_3B 0x3B 183 #define VK_NONE_3C 0x3C 184 #define VK_NONE_3D 0x3D 185 #define VK_NONE_3E 0x3E 186 #define VK_NONE_3F 0x3F 187 #define VK_NONE_40 0x40 188 #define VK_A 0x41 189 #define VK_B 0x42 190 #define VK_C 0x43 191 #define VK_D 0x44 192 #define VK_E 0x45 193 #define VK_F 0x46 194 #define VK_G 0x47 195 #define VK_H 0x48 196 #define VK_I 0x49 197 #define VK_J 0x4A 198 #define VK_K 0x4B 199 #define VK_L 0x4C 200 #define VK_M 0x4D 201 #define VK_N 0x4E 202 #define VK_O 0x4F 203 #define VK_P 0x50 204 #define VK_Q 0x51 205 #define VK_R 0x52 206 #define VK_S 0x53 207 #define VK_T 0x54 208 #define VK_U 0x55 209 #define VK_V 0x56 210 #define VK_W 0x57 211 #define VK_X 0x58 212 #define VK_Y 0x59 213 #define VK_Z 0x5A 214 #define VK_NONE_5B 0x5B 215 #define VK_NONE_5C 0x5C 216 #define VK_NONE_5D 0x5D 217 #define VK_NONE_5E 0x5E 218 #define VK_NONE_5F 0x5F 219 #define VK_NUMPAD0 0x60 220 #define VK_NUMPAD1 0x61 221 #define VK_NUMPAD2 0x62 222 #define VK_NUMPAD3 0x63 223 #define VK_NUMPAD4 0x64 224 #define VK_NUMPAD5 0x65 225 #define VK_NUMPAD6 0x66 226 #define VK_NUMPAD7 0x67 227 #define VK_NUMPAD8 0x68 228 #define VK_NUMPAD9 0x69 229 #define VK_MULTIPLY 0x6A 230 #define VK_ADD 0x6B 231 #define VK_SEPARATOR 0x6C 232 #define VK_SUBTRACT 0x6D 233 #define VK_DECIMAL 0x6E 234 #define VK_DIVIDE 0x6F 235 #define VK_F1 0x70 236 #define VK_F2 0x71 237 #define VK_F3 0x72 238 #define VK_F4 0x73 239 #define VK_F5 0x74 240 #define VK_F6 0x75 241 #define VK_F7 0x76 242 #define VK_F8 0x77 243 #define VK_F9 0x78 244 #define VK_F10 0x79 245 #define VK_F11 0x7A 246 #define VK_F12 0x7B 247 #define VK_F13 0x7C 248 #define VK_F14 0x7D 249 #define VK_F15 0x7E 250 #define VK_F16 0x7F 251 #define VK_F17 0x80 252 #define VK_F18 0x81 253 #define VK_F19 0x82 254 #define VK_F20 0x83 255 #define VK_F21 0x84 256 #define VK_F22 0x85 257 #define VK_F23 0x86 258 #define VK_F24 0x87 259 #define VK_NONE_88 0x88 260 #define VK_NONE_89 0x89 261 #define VK_NONE_8A 0x8A 262 #define VK_NONE_8B 0x8B 263 #define VK_NONE_8C 0x8C 264 #define VK_NONE_8D 0x8D 265 #define VK_NONE_8E 0x8E 266 #define VK_NONE_8F 0x8F 267 #define VK_NUMLOCK 0x90 268 #define VK_SCROLL 0x91 269 #define VK_NONE_92 0x92 270 #define VK_NONE_93 0x93 271 #define VK_NONE_94 0x94 272 #define VK_NONE_95 0x95 273 #define VK_NONE_96 0x96 274 #define VK_NONE_97 0x97 275 #define VK_NONE_98 0x98 276 #define VK_NONE_99 0x99 277 #define VK_NONE_9A 0x9A 278 #define VK_NONE_9B 0x9B 279 #define VK_NONE_9C 0x9C 280 #define VK_NONE_9D 0x9D 281 #define VK_NONE_9E 0x9E 282 #define VK_NONE_9F 0x9F 283 #define VK_NONE_A0 0xA0 284 #define VK_NONE_A1 0xA1 285 #define VK_NONE_A2 0xA2 286 #define VK_NONE_A3 0xA3 287 #define VK_NONE_A4 0xA4 288 #define VK_NONE_A5 0xA5 289 #define VK_NONE_A6 0xA6 290 #define VK_NONE_A7 0xA7 291 #define VK_NONE_A8 0xA8 292 #define VK_NONE_A9 0xA9 293 #define VK_NONE_AA 0xAA 294 #define VK_NONE_AB 0xAB 295 #define VK_NONE_AC 0xAC 296 #define VK_NONE_AD 0xAD 297 #define VK_NONE_AE 0xAE 298 #define VK_NONE_AF 0xAF 299 #define VK_NONE_B0 0xB0 300 #define VK_NONE_B1 0xB1 301 #define VK_NONE_B2 0xB2 302 #define VK_NONE_B3 0xB3 303 #define VK_NONE_B4 0xB4 304 #define VK_NONE_B5 0xB5 305 #define VK_NONE_B6 0xB6 306 #define VK_NONE_B7 0xB7 307 #define VK_NONE_B8 0xB8 308 #define VK_NONE_B9 0xB9 309 #define VK_NONE_BA 0xBA // ; 310 #define VK_NONE_BB 0xBB // = 311 #define VK_NONE_BC 0xBC // , 312 #define VK_NONE_BD 0xBD // - 313 #define VK_NONE_BE 0xBE // . 314 #define VK_NONE_BF 0xBF // / 315 #define VK_NONE_C0 0xC0 // ` 316 #define VK_NONE_C1 0xC1 317 #define VK_NONE_C2 0xC2 318 #define VK_NONE_C3 0xC3 319 #define VK_NONE_C4 0xC4 320 #define VK_NONE_C5 0xC5 321 #define VK_NONE_C6 0xC6 322 #define VK_NONE_C7 0xC7 323 #define VK_NONE_C8 0xC8 324 #define VK_NONE_C9 0xC9 325 #define VK_NONE_CA 0xCA 326 #define VK_NONE_CB 0xCB 327 #define VK_NONE_CC 0xCC 328 #define VK_NONE_CD 0xCD 329 #define VK_NONE_CE 0xCE 330 #define VK_NONE_CF 0xCF 331 #define VK_NONE_D0 0xD0 332 #define VK_NONE_D1 0xD1 333 #define VK_NONE_D2 0xD2 334 #define VK_NONE_D3 0xD3 335 #define VK_NONE_D4 0xD4 336 #define VK_NONE_D5 0xD5 337 #define VK_NONE_D6 0xD6 338 #define VK_NONE_D7 0xD7 339 #define VK_NONE_D8 0xD8 340 #define VK_NONE_D9 0xD9 341 #define VK_NONE_DA 0xDA 342 #define VK_NONE_DB 0xDB // [ 343 #define VK_NONE_DC 0xDC // '\' 344 #define VK_NONE_DD 0xDD // ] 345 #define VK_NONE_DE 0xDE // ' 346 #define VK_NONE_DF 0xDF 347 #define VK_NONE_E0 0xE0 348 #define VK_NONE_E1 0xE1 349 #define VK_NONE_E2 0xE2 350 #define VK_NONE_E3 0xE3 351 #define VK_NONE_E4 0xE4 352 #define VK_NONE_E5 0xE5 353 #define VK_NONE_E6 0xE6 354 #define VK_NONE_E7 0xE7 355 #define VK_NONE_E8 0xE8 356 #define VK_NONE_E9 0xE9 357 #define VK_NONE_EA 0xEA 358 #define VK_NONE_EB 0xEB 359 #define VK_NONE_EC 0xEC 360 #define VK_NONE_ED 0xED 361 #define VK_NONE_EE 0xEE 362 #define VK_NONE_EF 0xEF 363 #define VK_NONE_F0 0xF0 364 #define VK_NONE_F1 0xF1 365 #define VK_NONE_F2 0xF2 366 #define VK_NONE_F3 0xF3 367 #define VK_NONE_F4 0xF4 368 #define VK_NONE_F5 0xF5 369 #define VK_NONE_F6 0xF6 370 #define VK_NONE_F7 0xF7 371 #define VK_NONE_F8 0xF8 372 #define VK_NONE_F9 0xF9 373 #define VK_NONE_FA 0xFA 374 #define VK_NONE_FB 0xFB 375 #define VK_NONE_FC 0xFC 376 #define VK_NONE_FD 0xFD 377 #define VK_NONE_FE 0xFE 378 #define VK_NONE_FF 0xFF 379 380 #define VK_UPLEFT VK_HOME 381 #define VK_UPRIGHT VK_PRIOR 382 #define VK_DOWNLEFT VK_END 383 #define VK_DOWNRIGHT VK_NEXT 384 #define VK_ALT VK_MENU 385 386 typedef enum KeyASCIIType { 387 // 388 // Define all the KA types as variations of the VK types. This is 389 // so the KA functions will work properly under windows 95. 390 // 391 KA_NONE = 0, 392 KA_MORE = 1, 393 KA_SETBKGDCOL = 2, 394 KA_SETFORECOL = 6, 395 KA_FORMFEED = 12, 396 KA_SPCTAB = 20, 397 KA_SETX = 25, 398 KA_SETY = 26, 399 400 KA_SPACE = 32, /* */ 401 KA_EXCLAMATION, /* ! */ 402 KA_DQUOTE, /* " */ 403 KA_POUND, /* # */ 404 KA_DOLLAR, /* $ */ 405 KA_PERCENT, /* % */ 406 KA_AMPER, /* & */ 407 KA_SQUOTE, /* ' */ 408 KA_LPAREN, /* ( */ 409 KA_RPAREN, /* ) */ 410 KA_ASTERISK, /* * */ 411 KA_PLUS, /* + */ 412 KA_COMMA, /* , */ 413 KA_MINUS, /* - */ 414 KA_PERIOD, /* . */ 415 KA_SLASH, /* / */ 416 417 KA_0, KA_1, KA_2, KA_3, KA_4, KA_5, KA_6, KA_7, KA_8, KA_9, 418 KA_COLON, /* : */ 419 KA_SEMICOLON, /* ; */ 420 KA_LESS_THAN, /* < */ 421 KA_EQUAL, /* = */ 422 KA_GREATER_THAN, /* > */ 423 KA_QUESTION, /* ? */ 424 425 KA_AT, /* @ */ 426 KA_A, /* A */ 427 KA_B, /* B */ 428 KA_C, /* C */ 429 KA_D, /* D */ 430 KA_E, /* E */ 431 KA_F, /* F */ 432 KA_G, /* G */ 433 KA_H, /* H */ 434 KA_I, /* I */ 435 KA_J, /* J */ 436 KA_K, /* K */ 437 KA_L, /* L */ 438 KA_M, /* M */ 439 KA_N, /* N */ 440 KA_O, /* O */ 441 442 KA_P, /* P */ 443 KA_Q, /* Q */ 444 KA_R, /* R */ 445 KA_S, /* S */ 446 KA_T, /* T */ 447 KA_U, /* U */ 448 KA_V, /* V */ 449 KA_W, /* W */ 450 KA_X, /* X */ 451 KA_Y, /* Y */ 452 KA_Z, /* Z */ 453 KA_LBRACKET, /* [ */ 454 KA_BACKSLASH, /* \ */ 455 KA_RBRACKET, /* ] */ 456 KA_CARROT, /* ^ */ 457 KA_UNDERLINE, /* _ */ 458 459 KA_GRAVE, /* ` */ 460 KA_a, /* a */ 461 KA_b, /* b */ 462 KA_c, /* c */ 463 KA_d, /* d */ 464 KA_e, /* e */ 465 KA_f, /* f */ 466 KA_g, /* g */ 467 KA_h, /* h */ 468 KA_i, /* i */ 469 KA_j, /* j */ 470 KA_k, /* k */ 471 KA_l, /* l */ 472 KA_m, /* m */ 473 KA_n, /* n */ 474 KA_o, /* o */ 475 476 KA_p, /* p */ 477 KA_q, /* q */ 478 KA_r, /* r */ 479 KA_s, /* s */ 480 KA_t, /* t */ 481 KA_u, /* u */ 482 KA_v, /* v */ 483 KA_w, /* w */ 484 KA_x, /* x */ 485 KA_y, /* y */ 486 KA_z, /* z */ 487 KA_LBRACE, /* { */ 488 KA_BAR, /* | */ 489 KA_RBRACE, /* ] */ 490 KA_TILDA, /* ~ */ 491 492 KA_ESC = VK_ESCAPE, 493 KA_EXTEND = VK_ESCAPE, 494 KA_RETURN = VK_RETURN, 495 KA_BACKSPACE = VK_BACK, 496 KA_TAB = VK_TAB , 497 KA_DELETE = VK_DELETE, /* <DELETE> */ 498 KA_INSERT = VK_INSERT, /* <INSERT> */ 499 KA_PGDN = VK_NEXT, /* <PAGE DOWN> */ 500 KA_DOWNRIGHT = VK_NEXT, 501 KA_DOWN = VK_DOWN, /* <DOWN ARROW> */ 502 KA_END = VK_END, /* <END> */ 503 KA_DOWNLEFT = VK_END, 504 KA_RIGHT = VK_RIGHT, /* <RIGHT ARROW> */ 505 KA_KEYPAD5 = VK_SELECT, /* NUMERIC KEY PAD <5> */ 506 KA_LEFT = VK_LEFT, /* <LEFT ARROW> */ 507 KA_PGUP = VK_PRIOR, /* <PAGE UP> */ 508 KA_UPRIGHT = VK_PRIOR, 509 KA_UP = VK_UP, /* <UP ARROW> */ 510 KA_HOME = VK_HOME, /* <HOME> */ 511 KA_UPLEFT = VK_HOME, 512 KA_F12 = VK_F12, 513 KA_F11 = VK_F11, 514 KA_F10 = VK_F10, 515 KA_F9 = VK_F9, 516 KA_F8 = VK_F8, 517 KA_F7 = VK_F7, 518 KA_F6 = VK_F6, 519 KA_F5 = VK_F5, 520 KA_F4 = VK_F4, 521 KA_F3 = VK_F3, 522 KA_F2 = VK_F2, 523 KA_F1 = VK_F1, 524 KA_LMOUSE = VK_LBUTTON, 525 KA_RMOUSE = VK_RBUTTON, 526 527 KA_SHIFT_BIT = WWKEY_SHIFT_BIT, 528 KA_CTRL_BIT = WWKEY_CTRL_BIT, 529 KA_ALT_BIT = WWKEY_ALT_BIT, 530 KA_RLSE_BIT = WWKEY_RLS_BIT, 531 } KeyASCIIType; 532 533 534 typedef enum KeyNumType { 535 KN_NONE = 0, 536 537 KN_0 = VK_0, 538 KN_1 = VK_1, 539 KN_2 = VK_2, 540 KN_3 = VK_3, 541 KN_4 = VK_4, 542 KN_5 = VK_5, 543 KN_6 = VK_6, 544 KN_7 = VK_7, 545 KN_8 = VK_8, 546 KN_9 = VK_9, 547 KN_A = VK_A, 548 KN_B = VK_B, 549 KN_BACKSLASH = VK_NONE_DC, 550 KN_BACKSPACE = VK_BACK, 551 KN_C = VK_C, 552 KN_CAPSLOCK = VK_CAPITAL, 553 KN_CENTER = VK_CLEAR, 554 KN_COMMA = VK_NONE_BC, 555 KN_D = VK_D, 556 KN_DELETE = VK_DELETE, 557 KN_DOWN = VK_DOWN, 558 KN_DOWNLEFT = VK_END, 559 KN_DOWNRIGHT = VK_NEXT, 560 KN_E = VK_E, 561 KN_END = VK_END, 562 KN_EQUAL = VK_NONE_BB, 563 KN_ESC = VK_ESCAPE, 564 KN_E_DELETE = VK_DELETE, 565 KN_E_DOWN = VK_NUMPAD2, 566 KN_E_END = VK_NUMPAD1, 567 KN_E_HOME = VK_NUMPAD7, 568 KN_E_INSERT = VK_INSERT, 569 KN_E_LEFT = VK_NUMPAD4, 570 KN_E_PGDN = VK_NUMPAD3, 571 KN_E_PGUP = VK_NUMPAD9, 572 KN_E_RIGHT = VK_NUMPAD6, 573 KN_E_UP = VK_NUMPAD8, 574 KN_F = VK_F, 575 KN_F1 = VK_F1, 576 KN_F10 = VK_F10, 577 KN_F11 = VK_F11, 578 KN_F12 = VK_F12, 579 KN_F2 = VK_F2, 580 KN_F3 = VK_F3, 581 KN_F4 = VK_F4, 582 KN_F5 = VK_F5, 583 KN_F6 = VK_F6, 584 KN_F7 = VK_F7, 585 KN_F8 = VK_F8, 586 KN_F9 = VK_F9, 587 KN_G = VK_G, 588 KN_GRAVE = VK_NONE_C0, 589 KN_H = VK_H, 590 KN_HOME = VK_HOME, 591 KN_I = VK_I, 592 KN_INSERT = VK_INSERT, 593 KN_J = VK_J, 594 KN_K = VK_K, 595 KN_KEYPAD_ASTERISK= VK_MULTIPLY, 596 KN_KEYPAD_MINUS = VK_SUBTRACT, 597 KN_KEYPAD_PLUS = VK_ADD, 598 KN_KEYPAD_RETURN = VK_RETURN, 599 KN_KEYPAD_SLASH = VK_DIVIDE, 600 KN_L = VK_L, 601 KN_LALT = VK_MENU, 602 KN_LBRACKET = VK_NONE_DB, 603 KN_LCTRL = VK_CONTROL, 604 KN_LEFT = VK_LEFT, 605 KN_LMOUSE = VK_LBUTTON, 606 KN_LSHIFT = VK_SHIFT, 607 KN_M = VK_M, 608 KN_MINUS = VK_NONE_BD, 609 KN_N = VK_N, 610 KN_NUMLOCK = VK_NUMLOCK, 611 KN_O = VK_O, 612 KN_P = VK_P, 613 KN_PAUSE = VK_PAUSE, 614 KN_PERIOD = VK_NONE_BE, 615 KN_PGDN = VK_NEXT, 616 KN_PGUP = VK_PRIOR, 617 KN_PRNTSCRN = VK_PRINT, 618 KN_Q = VK_Q, 619 KN_R = VK_R, 620 KN_RALT = VK_MENU, 621 KN_RBRACKET = VK_NONE_DD, 622 KN_RCTRL = VK_CONTROL, 623 KN_RETURN = VK_RETURN, 624 KN_RIGHT = VK_RIGHT, 625 KN_RMOUSE = VK_RBUTTON, 626 KN_RSHIFT = VK_SHIFT, 627 KN_S = VK_S, 628 KN_SCROLLLOCK = VK_SCROLL, 629 KN_SEMICOLON = VK_NONE_BA, 630 KN_SLASH = VK_NONE_BF, 631 KN_SPACE = VK_SPACE, 632 KN_SQUOTE = VK_NONE_DE, 633 KN_T = VK_T, 634 KN_TAB = VK_TAB, 635 KN_U = VK_U, 636 KN_UP = VK_UP, 637 KN_UPLEFT = VK_HOME, 638 KN_UPRIGHT = VK_PRIOR, 639 KN_V = VK_V, 640 KN_W = VK_W, 641 KN_X = VK_X, 642 KN_Y = VK_Y, 643 KN_Z = VK_Z, 644 645 KN_SHIFT_BIT = WWKEY_SHIFT_BIT, 646 KN_CTRL_BIT = WWKEY_CTRL_BIT, 647 KN_ALT_BIT = WWKEY_ALT_BIT, 648 KN_RLSE_BIT = WWKEY_RLS_BIT, 649 KN_BUTTON = WWKEY_BTN_BIT, 650 } KeyNumType; 651 652 653 //extern WWKeyboardClass *_Kbd; 654 #endif 655 656 #endif