1*3a700b0aSSteve Yin/**************************************************************
2*3a700b0aSSteve Yin *
3*3a700b0aSSteve Yin * Licensed to the Apache Software Foundation (ASF) under one
4*3a700b0aSSteve Yin * or more contributor license agreements.  See the NOTICE file
5*3a700b0aSSteve Yin * distributed with this work for additional information
6*3a700b0aSSteve Yin * regarding copyright ownership.  The ASF licenses this file
7*3a700b0aSSteve Yin * to you under the Apache License, Version 2.0 (the
8*3a700b0aSSteve Yin * "License"); you may not use this file except in compliance
9*3a700b0aSSteve Yin * with the License.  You may obtain a copy of the License at
10*3a700b0aSSteve Yin *
11*3a700b0aSSteve Yin *   http://www.apache.org/licenses/LICENSE-2.0
12*3a700b0aSSteve Yin *
13*3a700b0aSSteve Yin * Unless required by applicable law or agreed to in writing,
14*3a700b0aSSteve Yin * software distributed under the License is distributed on an
15*3a700b0aSSteve Yin * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*3a700b0aSSteve Yin * KIND, either express or implied.  See the License for the
17*3a700b0aSSteve Yin * specific language governing permissions and limitations
18*3a700b0aSSteve Yin * under the License.
19*3a700b0aSSteve Yin *
20*3a700b0aSSteve Yin *************************************************************/
215fdc4257SSteve Yin
225fdc4257SSteve Yintypedef struct _ACCESSIBLE_KEYSTROKE {
235fdc4257SSteve Yin  short modifiers;
245fdc4257SSteve Yin  short keyCode;
255fdc4257SSteve Yin  char keyChar;
265fdc4257SSteve Yin  short keyFunc;
275fdc4257SSteve Yin} ACCESSIBLE_KEYSTROKE;
285fdc4257SSteve Yin
295fdc4257SSteve Yinconst short MODIFIER_SHIFT = 1;
305fdc4257SSteve Yinconst short MODIFIER_CTRL = 2;
315fdc4257SSteve Yinconst short MODIFIER_ALT = 4;
325fdc4257SSteve Yin
335fdc4257SSteve Yinconst short KEYCODE_NUM0 = 256;
345fdc4257SSteve Yinconst short KEYCODE_NUM1 = 257;
355fdc4257SSteve Yinconst short KEYCODE_NUM2 = 258;
365fdc4257SSteve Yinconst short KEYCODE_NUM3 = 259;
375fdc4257SSteve Yinconst short KEYCODE_NUM4 = 260;
385fdc4257SSteve Yinconst short KEYCODE_NUM5 = 261;
395fdc4257SSteve Yinconst short KEYCODE_NUM6 = 262;
405fdc4257SSteve Yinconst short KEYCODE_NUM7 = 263;
415fdc4257SSteve Yinconst short KEYCODE_NUM8 = 264;
425fdc4257SSteve Yinconst short KEYCODE_NUM9 = 265;
435fdc4257SSteve Yinconst short KEYCODE_A = 512;
445fdc4257SSteve Yinconst short KEYCODE_B = 513;
455fdc4257SSteve Yinconst short KEYCODE_C = 514;
465fdc4257SSteve Yinconst short KEYCODE_D = 515;
475fdc4257SSteve Yinconst short KEYCODE_E = 516;
485fdc4257SSteve Yinconst short KEYCODE_F = 517;
495fdc4257SSteve Yinconst short KEYCODE_G = 518;
505fdc4257SSteve Yinconst short KEYCODE_H = 519;
515fdc4257SSteve Yinconst short KEYCODE_I = 520;
525fdc4257SSteve Yinconst short KEYCODE_J = 521;
535fdc4257SSteve Yinconst short KEYCODE_K = 522;
545fdc4257SSteve Yinconst short KEYCODE_L = 523;
555fdc4257SSteve Yinconst short KEYCODE_M = 524;
565fdc4257SSteve Yinconst short KEYCODE_N = 525;
575fdc4257SSteve Yinconst short KEYCODE_O = 526;
585fdc4257SSteve Yinconst short KEYCODE_P = 527;
595fdc4257SSteve Yinconst short KEYCODE_Q = 528;
605fdc4257SSteve Yinconst short KEYCODE_R = 529;
615fdc4257SSteve Yinconst short KEYCODE_S = 530;
625fdc4257SSteve Yinconst short KEYCODE_T = 531;
635fdc4257SSteve Yinconst short KEYCODE_U = 532;
645fdc4257SSteve Yinconst short KEYCODE_V = 533;
655fdc4257SSteve Yinconst short KEYCODE_W = 534;
665fdc4257SSteve Yinconst short KEYCODE_X = 535;
675fdc4257SSteve Yinconst short KEYCODE_Y = 536;
685fdc4257SSteve Yinconst short KEYCODE_Z = 537;
695fdc4257SSteve Yinconst short KEYCODE_F1 = 768;
705fdc4257SSteve Yinconst short KEYCODE_F2 = 769;
715fdc4257SSteve Yinconst short KEYCODE_F3 = 770;
725fdc4257SSteve Yinconst short KEYCODE_F4 = 771;
735fdc4257SSteve Yinconst short KEYCODE_F5 = 772;
745fdc4257SSteve Yinconst short KEYCODE_F6 = 773;
755fdc4257SSteve Yinconst short KEYCODE_F7 = 774;
765fdc4257SSteve Yinconst short KEYCODE_F8 = 775;
775fdc4257SSteve Yinconst short KEYCODE_F9 = 776;
785fdc4257SSteve Yinconst short KEYCODE_F10 = 777;
795fdc4257SSteve Yinconst short KEYCODE_F11 = 778;
805fdc4257SSteve Yinconst short KEYCODE_F12 = 779;
815fdc4257SSteve Yinconst short KEYCODE_F13 = 780;
825fdc4257SSteve Yinconst short KEYCODE_F14 = 781;
835fdc4257SSteve Yinconst short KEYCODE_F15 = 782;
845fdc4257SSteve Yinconst short KEYCODE_F16 = 783;
855fdc4257SSteve Yinconst short KEYCODE_F17 = 784;
865fdc4257SSteve Yinconst short KEYCODE_F18 = 785;
875fdc4257SSteve Yinconst short KEYCODE_F19 = 786;
885fdc4257SSteve Yinconst short KEYCODE_F20 = 787;
895fdc4257SSteve Yinconst short KEYCODE_F21 = 788;
905fdc4257SSteve Yinconst short KEYCODE_F22 = 789;
915fdc4257SSteve Yinconst short KEYCODE_F23 = 790;
925fdc4257SSteve Yinconst short KEYCODE_F24 = 791;
935fdc4257SSteve Yinconst short KEYCODE_F25 = 792;
945fdc4257SSteve Yinconst short KEYCODE_F26 = 793;
955fdc4257SSteve Yinconst short KEYCODE_DOWN = 1024;
965fdc4257SSteve Yinconst short KEYCODE_UP = 1025;
975fdc4257SSteve Yinconst short KEYCODE_LEFT = 1026;
985fdc4257SSteve Yinconst short KEYCODE_RIGHT = 1027;
995fdc4257SSteve Yinconst short KEYCODE_HOME = 1028;
1005fdc4257SSteve Yinconst short KEYCODE_END = 1029;
1015fdc4257SSteve Yinconst short KEYCODE_PAGEUP = 1030;
1025fdc4257SSteve Yinconst short KEYCODE_PAGEDOWN = 1031;
1035fdc4257SSteve Yinconst short KEYCODE_RETURN = 1280;
1045fdc4257SSteve Yinconst short KEYCODE_ESCAPE = 1281;
1055fdc4257SSteve Yinconst short KEYCODE_TAB = 1282;
1065fdc4257SSteve Yinconst short KEYCODE_BACKSPACE = 1283;
1075fdc4257SSteve Yinconst short KEYCODE_SPACE = 1284;
1085fdc4257SSteve Yinconst short KEYCODE_INSERT = 1285;
1095fdc4257SSteve Yinconst short KEYCODE_DELETE = 1286;
1105fdc4257SSteve Yinconst short KEYCODE_ADD = 1287;
1115fdc4257SSteve Yinconst short KEYCODE_SUBTRACT = 1288;
1125fdc4257SSteve Yinconst short KEYCODE_MULTIPLY = 1289;
1135fdc4257SSteve Yinconst short KEYCODE_DIVIDE = 1290;
1145fdc4257SSteve Yinconst short KEYCODE_POINT = 1291;
1155fdc4257SSteve Yinconst short KEYCODE_COMMA = 1292;
1165fdc4257SSteve Yinconst short KEYCODE_LESS = 1293;
1175fdc4257SSteve Yinconst short KEYCODE_GREATER = 1294;
1185fdc4257SSteve Yinconst short KEYCODE_EQUAL = 1295;
1195fdc4257SSteve Yinconst short KEYCODE_OPEN = 1296;
1205fdc4257SSteve Yinconst short KEYCODE_CUT = 1297;
1215fdc4257SSteve Yinconst short KEYCODE_COPY = 1298;
1225fdc4257SSteve Yinconst short KEYCODE_PASTE = 1299;
1235fdc4257SSteve Yinconst short KEYCODE_UNDO = 1300;
1245fdc4257SSteve Yinconst short KEYCODE_REPEAT = 1301;
1255fdc4257SSteve Yinconst short KEYCODE_FIND = 1302;
1265fdc4257SSteve Yinconst short KEYCODE_PROPERTIES = 1303;
1275fdc4257SSteve Yinconst short KEYCODE_FRONT = 1304;
1285fdc4257SSteve Yinconst short KEYCODE_CONTEXTMENU = 1305;
1295fdc4257SSteve Yinconst short KEYCODE_HELP = 1306;
1305fdc4257SSteve Yin
1315fdc4257SSteve Yinconst short SHORTCUT_DONTKNOW = 0;
1325fdc4257SSteve Yinconst short NEW = 1;
1335fdc4257SSteve Yinconst short OPEN = 2;
1345fdc4257SSteve Yinconst short SAVE = 3;
1355fdc4257SSteve Yinconst short SAVEAS = 4;
1365fdc4257SSteve Yinconst short PRINT = 5;
1375fdc4257SSteve Yinconst short CLOSE = 6;
1385fdc4257SSteve Yinconst short QUIT = 7;
1395fdc4257SSteve Yinconst short CUT = 8;
1405fdc4257SSteve Yinconst short COPY = 9;
1415fdc4257SSteve Yinconst short PASTE = 10;
1425fdc4257SSteve Yinconst short UNDO = 11;
1435fdc4257SSteve Yinconst short REDO = 12;
1445fdc4257SSteve Yinconst short UNODELETE = 13;
1455fdc4257SSteve Yinconst short REPEAT = 14;
1465fdc4257SSteve Yinconst short FIND = 15;
1475fdc4257SSteve Yinconst short FINDBACKWARD = 16;
1485fdc4257SSteve Yinconst short PROPERTIES = 17;
1495fdc4257SSteve Yinconst short FRONT = 18;
150