source: trunk/src/user32/winkeyboard.cpp@ 1629

Last change on this file since 1629 was 1629, checked in by sandervl, 26 years ago

Dinput additions + PostThreadMessageA/W fix

File size: 11.1 KB
Line 
1/* $Id: winkeyboard.cpp,v 1.1 1999-11-08 13:44:40 sandervl Exp $ */
2/*
3 * Win32 <-> PM key translation
4 *
5 *
6 * Project Odin Software License can be found in LICENSE.TXT
7 *
8 */
9#include <os2win.h>
10#include <odin.h>
11#include <winkeyboard.h>
12
13BYTE abPMScanToWinVKey[256] =
14/****************************************************************************/
15/* PM Scancode * Win32 vkey */
16/****************************************************************************/
17/* 0x00 */ { 0x00
18/* 0x01 PMSCAN_ESC */ , VK_ESCAPE
19/* 0x02 PMSCAN_ONE */ , VK_1
20/* 0x03 PMSCAN_TWO */ , VK_2
21/* 0x04 PMSCAN_THREE */ , VK_3
22/* 0x05 PMSCAN_FOUR */ , VK_4
23/* 0x06 PMSCAN_FIVE */ , VK_5
24/* 0x07 PMSCAN_SIX */ , VK_6
25/* 0x08 PMSCAN_SEVEN */ , VK_7
26/* 0x09 PMSCAN_EIGHT */ , VK_8
27/* 0x0A PMSCAN_NINE */ , VK_9
28/* 0x0B PMSCAN_ZERO */ , VK_0
29/* 0x0C PMSCAN_HYPHEN */ , VK_HYPHEN
30/* 0x0D PMSCAN_EQUAL */ , VK_EQUAL
31/* 0x0E PMSCAN_BACKSPACE */ , VK_BACK
32/* 0x0F PMSCAN_TAB */ , VK_TAB
33/* 0x10 PMSCAN_Q */ , VK_Q
34/* 0x11 PMSCAN_W */ , VK_W
35/* 0x12 PMSCAN_E */ , VK_E
36/* 0x13 PMSCAN_R */ , VK_R
37/* 0x14 PMSCAN_T */ , VK_T
38/* 0x15 PMSCAN_Y */ , VK_Y
39/* 0x16 PMSCAN_U */ , VK_U
40/* 0x17 PMSCAN_I */ , VK_I
41/* 0x18 PMSCAN_O */ , VK_O
42/* 0x19 PMSCAN_P */ , VK_P
43/* 0x1A PMSCAN_BRACKETLEFT */ , VK_BRACKETLEFT
44/* 0x1B PMSCAN_BRACKETRIGHT */ , VK_BRACKETRIGHT
45/* 0x1C PMSCAN_ENTER */ , VK_RETURN
46/* 0x1D PMSCAN_CTRLLEFT */ , VK_CONTROL
47/* 0x1E PMSCAN_A */ , VK_A
48/* 0x1F PMSCAN_S */ , VK_S
49/* 0x20 PMSCAN_D */ , VK_D
50/* 0x21 PMSCAN_F */ , VK_F
51/* 0x22 PMSCAN_G */ , VK_G
52/* 0x23 PMSCAN_H */ , VK_H
53/* 0x24 PMSCAN_J */ , VK_J
54/* 0x25 PMSCAN_K */ , VK_K
55/* 0x26 PMSCAN_L */ , VK_L
56/* 0x27 PMSCAN_SEMICOLON */ , VK_SEMICOLON
57/* 0x28 PMSCAN_QUOTESINGLE */ , VK_QUOTESINGLE
58/* 0x29 PMSCAN_GRAVE */ , VK_GRAVE
59/* 0x2A PMSCAN_SHIFTLEFT */ , VK_SHIFT
60/* 0x2B PMSCAN_BACKSLASH */ , VK_BACKSLASH
61/* 0x2C PMSCAN_Z */ , VK_Z
62/* 0x2D PMSCAN_X */ , VK_X
63/* 0x2E PMSCAN_C */ , VK_C
64/* 0x2F PMSCAN_V */ , VK_V
65/* 0x30 PMSCAN_B */ , VK_B
66/* 0x31 PMSCAN_N */ , VK_N
67/* 0x32 PMSCAN_M */ , VK_M
68/* 0x33 PMSCAN_COMMA */ , VK_COMMA
69/* 0x34 PMSCAN_PERIOD */ , VK_PERIOD
70/* 0x35 PMSCAN_SLASH */ , VK_SLASH
71/* 0x36 PMSCAN_SHIFTRIGHT */ , VK_SHIFT
72/* 0x37 PMSCAN_PADASTERISK */ , VK_MULTIPLY
73/* 0x38 PMSCAN_ALTLEFT */ , VK_MENU
74/* 0x39 PMSCAN_SPACE */ , VK_SPACE
75/* 0x3A PMSCAN_CAPSLOCK */ , VK_CAPITAL
76/* 0x3B PMSCAN_F1 */ , VK_F1
77/* 0x3C PMSCAN_F2 */ , VK_F2
78/* 0x3D PMSCAN_F3 */ , VK_F3
79/* 0x3E PMSCAN_F4 */ , VK_F4
80/* 0x3F PMSCAN_F5 */ , VK_F5
81/* 0x40 PMSCAN_F6 */ , VK_F6
82/* 0x41 PMSCAN_F7 */ , VK_F7
83/* 0x42 PMSCAN_F8 */ , VK_F8
84/* 0x43 PMSCAN_F9 */ , VK_F9
85/* 0x44 PMSCAN_F10 */ , VK_F10
86/* 0x45 PMSCAN_NUMLOCK */ , VK_NUMLOCK
87/* 0x46 PMSCAN_SCROLLLOCK */ , VK_SCROLL
88/* 0x47 PMSCAN_PAD7 */ , VK_NUMPAD7
89/* 0x48 PMSCAN_PAD8 */ , VK_NUMPAD8
90/* 0x49 PMSCAN_PAD9 */ , VK_NUMPAD9
91/* 0x4A PMSCAN_PADMINUS */ , VK_SUBTRACT
92/* 0x4B PMSCAN_PAD4 */ , VK_NUMPAD4
93/* 0x4C PMSCAN_PAD5 */ , VK_NUMPAD5
94/* 0x4D PMSCAN_PAD6 */ , VK_NUMPAD6
95/* 0x4E PMSCAN_PADPLUS */ , VK_ADD
96/* 0x4F PMSCAN_PAD1 */ , VK_NUMPAD1
97/* 0x50 PMSCAN_PAD2 */ , VK_NUMPAD2
98/* 0x51 PMSCAN_PAD3 */ , VK_NUMPAD3
99/* 0x52 PMSCAN_PAD0 */ , VK_NUMPAD0
100/* 0x53 PMSCAN_PADPERIOD */ , VK_DECIMAL
101/* 0x54 PMSCAN_SYSREQ */ , 0x00
102/* 0x55 PMSCAN_RESET */ , 0x00
103/* 0x56 PMSCAN_EXTRA */ , VK_EXTRA
104/* 0x57 PMSCAN_F11 */ , VK_F11
105/* 0x58 PMSCAN_F12 */ , VK_F12
106/* 0x59 PMSCAN_BACKTAB */ , 0x00
107/* 0x5A PMSCAN_PADENTER */ , VK_RETURN
108/* 0x5B PMSCAN_CTRLRIGHT */ , VK_CONTROL
109/* 0x5C PMSCAN_PADSLASH */ , VK_DIVIDE
110/* 0x5D PMSCAN_PRINT */ , VK_PRINT
111/* 0x5E PMSCAN_ALTRIGHT */ , VK_MENU
112/* 0x5F PMSCAN_PAUSE */ , VK_PAUSE
113/* 0x60 PMSCAN_HOME */ , VK_HOME
114/* 0x61 PMSCAN_UP */ , VK_UP
115/* 0x62 PMSCAN_PAGEUP */ , VK_PRIOR
116/* 0x63 PMSCAN_LEFT */ , VK_LEFT
117/* 0x64 PMSCAN_RIGHT */ , VK_RIGHT
118/* 0x65 PMSCAN_END */ , VK_END
119/* 0x66 PMSCAN_DOWN */ , VK_DOWN
120/* 0x67 PMSCAN_PAGEDOWN */ , VK_NEXT
121/* 0x68 PMSCAN_INSERT */ , VK_INSERT
122/* 0x69 PMSCAN_DELETE */ , VK_DELETE
123/* 0x6A PMSCAN_F23 */ , VK_F23
124/* 0x6B PMSCAN_F24 */ , VK_F24
125/* 0x6C PMSCAN_SYSMEM */ , 0x00
126/* 0x6D PMSCAN_ERASEEOF */ , VK_EREOF
127/* 0x6E PMSCAN_BREAK */ , VK_CANCEL
128/* 0x6F PMSCAN_MOVEWIN */ , 0x00
129/* 0x70 PMSCAN_NLS3 */ , 0x00
130/* 0x71 PMSCAN_HELP */ , VK_HELP
131/* 0x72 PMSCAN_TASKMAN */ , 0x00
132/* 0x73 PMSCAN_B11 */ , 0x00
133/* 0x74 PMSCAN_JUMP */ , 0x00
134/* 0x75 PMSCAN_MINWIN */ , 0x00
135/* 0x76 PMSCAN_CLEAR */ , 0x00
136/* 0x77 PMSCAN_77 */ , 0x00
137/* 0x78 PMSCAN_78 */ , 0x00
138/* 0x79 PMSCAN_NLS2 */ , 0x00
139/* 0x7a PMSCAN_SIZE */ , 0x00
140/* 0x7b PMSCAN_NLS1 */ , 0x00
141/* 0x7c PMSCAN_APPLICATION */ , VK_APPS
142/* 0x7d PMSCAN_E13 */ , 0x00
143/* 0x7e PMSCAN */ , 0x00
144/* 0x7f PMSCAN */ , 0x00
145/* 0x80 PMSCAN_PA1 */ , VK_PA1
146/* 0x81 PMSCAN_F13 */ , VK_F13
147/* 0x82 PMSCAN_F14 */ , VK_F14
148/* 0x83 PMSCAN_F15 */ , VK_F15
149/* 0x84 PMSCAN_PA2 */ , 0x00
150/* 0x85 PMSCAN_PA3 */ , 0x00
151/* 0x86 PMSCAN_SPACEBREAK */ , 0x00
152/* 0x87 PMSCAN_TABRIGHT */ , 0x00
153/* 0x88 PMSCAN_NOOP */ , 0x00
154/* 0x89 PMSCAN_F16 */ , VK_F16
155/* 0x8a PMSCAN_F17 */ , VK_F17
156/* 0x8b PMSCAN_F18 */ , VK_F18
157/* 0x8c PMSCAN_F19 */ , VK_F19
158/* 0x8d PMSCAN_F20 */ , VK_F20
159/* 0x8e PMSCAN_F21 */ , VK_F21
160/* 0x8f PMSCAN_F22 */ , VK_F22
161/* 0x90 */ , 0x00
162/* 0x91 */ , 0x00
163/* 0x92 */ , 0x00
164/* 0x93 */ , 0x00
165/* 0x94 */ , 0x00
166/* 0x95 */ , 0x00
167/* 0x96 */ , 0x00
168/* 0x97 */ , 0x00
169/* 0x98 */ , 0x00
170/* 0x99 */ , 0x00
171/* 0x9A */ , 0x00
172/* 0x9B */ , 0x00
173/* 0x9C */ , 0x00
174/* 0x9D */ , 0x00
175/* 0x9E */ , 0x00
176/* 0x9F */ , 0x00
177/* 0xA0 */ , 0x00
178/* 0xA1 */ , 0x00
179/* 0xA2 */ , 0x00
180/* 0xA3 */ , 0x00
181/* 0xA4 */ , 0x00
182/* 0xA5 */ , 0x00
183/* 0xA6 */ , 0x00
184/* 0xA7 */ , 0x00
185/* 0xA8 */ , 0x00
186/* 0xA9 */ , 0x00
187/* 0xAA */ , 0x00
188/* 0xAB */ , 0x00
189/* 0xAC */ , 0x00
190/* 0xAD */ , 0x00
191/* 0xAE */ , 0x00
192/* 0xAF */ , 0x00
193/* 0xB0 */ , 0x00
194/* 0xB1 */ , 0x00
195/* 0xB2 */ , 0x00
196/* 0xB3 */ , 0x00
197/* 0xB4 */ , 0x00
198/* 0xB5 */ , 0x00
199/* 0xB6 */ , 0x00
200/* 0xB7 */ , 0x00
201/* 0xB8 */ , 0x00
202/* 0xB9 */ , 0x00
203/* 0xBA */ , 0x00
204/* 0xBB */ , 0x00
205/* 0xBC */ , 0x00
206/* 0xBD */ , 0x00
207/* 0xBE */ , 0x00
208/* 0xBF */ , 0x00
209/* 0xC0 */ , 0x00
210/* 0xC1 */ , 0x00
211/* 0xC2 */ , 0x00
212/* 0xC3 */ , 0x00
213/* 0xC4 */ , 0x00
214/* 0xC5 */ , 0x00
215/* 0xC6 */ , 0x00
216/* 0xC7 */ , 0x00
217/* 0xC8 */ , 0x00
218/* 0xC9 */ , 0x00
219/* 0xCA */ , 0x00
220/* 0xCB */ , 0x00
221/* 0xCC */ , 0x00
222/* 0xCD */ , 0x00
223/* 0xCE */ , 0x00
224/* 0xCF */ , 0x00
225/* 0xD0 */ , 0x00
226/* 0xD1 */ , 0x00
227/* 0xD2 */ , 0x00
228/* 0xD3 */ , 0x00
229/* 0xD4 */ , 0x00
230/* 0xD5 */ , 0x00
231/* 0xD6 */ , 0x00
232/* 0xD7 */ , 0x00
233/* 0xD8 */ , 0x00
234/* 0xD9 */ , 0x00
235/* 0xDA */ , 0x00
236/* 0xDB */ , 0x00
237/* 0xDC */ , 0x00
238/* 0xDD */ , 0x00
239/* 0xDE */ , 0x00
240/* 0xDF */ , 0x00
241/* 0xE0 */ , 0x00
242/* 0xE1 */ , 0x00
243/* 0xE2 */ , 0x00
244/* 0xE3 */ , 0x00
245/* 0xE4 */ , 0x00
246/* 0xE5 */ , 0x00
247/* 0xE6 */ , 0x00
248/* 0xE7 */ , 0x00
249/* 0xE8 */ , 0x00
250/* 0xE9 */ , 0x00
251/* 0xEA */ , 0x00
252/* 0xEB */ , 0x00
253/* 0xEC */ , 0x00
254/* 0xED */ , 0x00
255/* 0xEE */ , 0x00
256/* 0xEF */ , 0x00
257/* 0xF0 */ , 0x00
258/* 0xF1 */ , 0x00
259/* 0xF2 */ , 0x00
260/* 0xF3 */ , 0x00
261/* 0xF4 */ , 0x00
262/* 0xF5 */ , 0x00
263/* 0xF6 */ , 0x00
264/* 0xF7 */ , 0x00
265/* 0xF8 */ , 0x00
266/* 0xF9 */ , 0x00
267/* 0xFA */ , 0x00
268/* 0xFB */ , 0x00
269/* 0xFC */ , 0x00
270/* 0xFD */ , 0x00
271/* 0xFE */ , 0x00
272/* 0xFF */ , 0x00
273 };
274
275//******************************************************************************
276//******************************************************************************
277BYTE WIN32API KeyTranslatePMToWin(BYTE key)
278{
279 return abPMScanToWinVKey[key];
280}
281//******************************************************************************
282//******************************************************************************
283void WIN32API KeyTranslatePMToWinBuf(BYTE *pmkey, BYTE *winkey, int nrkeys)
284{
285 for(int i=0;i<nrkeys;i++) {
286 winkey[i] = abPMScanToWinVKey[pmkey[i]];
287 }
288}
289//******************************************************************************
290//******************************************************************************
Note: See TracBrowser for help on using the repository browser.