master
1/*
2
3 dinput_kbd.c - DirectInput Keyboard DATAFORMAT
4
5 Written by Filip Navara <xnavara@volny.cz>
6
7 This library is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
11*/
12
13#include "dinput_private.h"
14
15static DIOBJECTDATAFORMAT ATTRIBUTE_TEXT_SECTION c_rgodfDIKeyboard[] =
16{
17 {&GUID_Key,0x0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x0)|DIDFT_OPTIONAL,0x0},
18 {&GUID_Key,0x1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1)|DIDFT_OPTIONAL,0x0},
19 {&GUID_Key,0x2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2)|DIDFT_OPTIONAL,0x0},
20 {&GUID_Key,0x3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3)|DIDFT_OPTIONAL,0x0},
21 {&GUID_Key,0x4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4)|DIDFT_OPTIONAL,0x0},
22 {&GUID_Key,0x5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5)|DIDFT_OPTIONAL,0x0},
23 {&GUID_Key,0x6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6)|DIDFT_OPTIONAL,0x0},
24 {&GUID_Key,0x7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7)|DIDFT_OPTIONAL,0x0},
25 {&GUID_Key,0x8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8)|DIDFT_OPTIONAL,0x0},
26 {&GUID_Key,0x9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9)|DIDFT_OPTIONAL,0x0},
27 {&GUID_Key,0xa,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa)|DIDFT_OPTIONAL,0x0},
28 {&GUID_Key,0xb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb)|DIDFT_OPTIONAL,0x0},
29 {&GUID_Key,0xc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc)|DIDFT_OPTIONAL,0x0},
30 {&GUID_Key,0xd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd)|DIDFT_OPTIONAL,0x0},
31 {&GUID_Key,0xe,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe)|DIDFT_OPTIONAL,0x0},
32 {&GUID_Key,0xf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf)|DIDFT_OPTIONAL,0x0},
33 {&GUID_Key,0x10,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x10)|DIDFT_OPTIONAL,0x0},
34 {&GUID_Key,0x11,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x11)|DIDFT_OPTIONAL,0x0},
35 {&GUID_Key,0x12,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x12)|DIDFT_OPTIONAL,0x0},
36 {&GUID_Key,0x13,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x13)|DIDFT_OPTIONAL,0x0},
37 {&GUID_Key,0x14,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x14)|DIDFT_OPTIONAL,0x0},
38 {&GUID_Key,0x15,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x15)|DIDFT_OPTIONAL,0x0},
39 {&GUID_Key,0x16,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x16)|DIDFT_OPTIONAL,0x0},
40 {&GUID_Key,0x17,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x17)|DIDFT_OPTIONAL,0x0},
41 {&GUID_Key,0x18,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x18)|DIDFT_OPTIONAL,0x0},
42 {&GUID_Key,0x19,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x19)|DIDFT_OPTIONAL,0x0},
43 {&GUID_Key,0x1a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1a)|DIDFT_OPTIONAL,0x0},
44 {&GUID_Key,0x1b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1b)|DIDFT_OPTIONAL,0x0},
45 {&GUID_Key,0x1c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1c)|DIDFT_OPTIONAL,0x0},
46 {&GUID_Key,0x1d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1d)|DIDFT_OPTIONAL,0x0},
47 {&GUID_Key,0x1e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1e)|DIDFT_OPTIONAL,0x0},
48 {&GUID_Key,0x1f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x1f)|DIDFT_OPTIONAL,0x0},
49 {&GUID_Key,0x20,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x20)|DIDFT_OPTIONAL,0x0},
50 {&GUID_Key,0x21,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x21)|DIDFT_OPTIONAL,0x0},
51 {&GUID_Key,0x22,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x22)|DIDFT_OPTIONAL,0x0},
52 {&GUID_Key,0x23,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x23)|DIDFT_OPTIONAL,0x0},
53 {&GUID_Key,0x24,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x24)|DIDFT_OPTIONAL,0x0},
54 {&GUID_Key,0x25,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x25)|DIDFT_OPTIONAL,0x0},
55 {&GUID_Key,0x26,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x26)|DIDFT_OPTIONAL,0x0},
56 {&GUID_Key,0x27,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x27)|DIDFT_OPTIONAL,0x0},
57 {&GUID_Key,0x28,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x28)|DIDFT_OPTIONAL,0x0},
58 {&GUID_Key,0x29,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x29)|DIDFT_OPTIONAL,0x0},
59 {&GUID_Key,0x2a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2a)|DIDFT_OPTIONAL,0x0},
60 {&GUID_Key,0x2b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2b)|DIDFT_OPTIONAL,0x0},
61 {&GUID_Key,0x2c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2c)|DIDFT_OPTIONAL,0x0},
62 {&GUID_Key,0x2d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2d)|DIDFT_OPTIONAL,0x0},
63 {&GUID_Key,0x2e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2e)|DIDFT_OPTIONAL,0x0},
64 {&GUID_Key,0x2f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x2f)|DIDFT_OPTIONAL,0x0},
65 {&GUID_Key,0x30,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x30)|DIDFT_OPTIONAL,0x0},
66 {&GUID_Key,0x31,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x31)|DIDFT_OPTIONAL,0x0},
67 {&GUID_Key,0x32,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x32)|DIDFT_OPTIONAL,0x0},
68 {&GUID_Key,0x33,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x33)|DIDFT_OPTIONAL,0x0},
69 {&GUID_Key,0x34,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x34)|DIDFT_OPTIONAL,0x0},
70 {&GUID_Key,0x35,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x35)|DIDFT_OPTIONAL,0x0},
71 {&GUID_Key,0x36,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x36)|DIDFT_OPTIONAL,0x0},
72 {&GUID_Key,0x37,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x37)|DIDFT_OPTIONAL,0x0},
73 {&GUID_Key,0x38,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x38)|DIDFT_OPTIONAL,0x0},
74 {&GUID_Key,0x39,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x39)|DIDFT_OPTIONAL,0x0},
75 {&GUID_Key,0x3a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3a)|DIDFT_OPTIONAL,0x0},
76 {&GUID_Key,0x3b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3b)|DIDFT_OPTIONAL,0x0},
77 {&GUID_Key,0x3c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3c)|DIDFT_OPTIONAL,0x0},
78 {&GUID_Key,0x3d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3d)|DIDFT_OPTIONAL,0x0},
79 {&GUID_Key,0x3e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3e)|DIDFT_OPTIONAL,0x0},
80 {&GUID_Key,0x3f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x3f)|DIDFT_OPTIONAL,0x0},
81 {&GUID_Key,0x40,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x40)|DIDFT_OPTIONAL,0x0},
82 {&GUID_Key,0x41,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x41)|DIDFT_OPTIONAL,0x0},
83 {&GUID_Key,0x42,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x42)|DIDFT_OPTIONAL,0x0},
84 {&GUID_Key,0x43,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x43)|DIDFT_OPTIONAL,0x0},
85 {&GUID_Key,0x44,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x44)|DIDFT_OPTIONAL,0x0},
86 {&GUID_Key,0x45,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x45)|DIDFT_OPTIONAL,0x0},
87 {&GUID_Key,0x46,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x46)|DIDFT_OPTIONAL,0x0},
88 {&GUID_Key,0x47,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x47)|DIDFT_OPTIONAL,0x0},
89 {&GUID_Key,0x48,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x48)|DIDFT_OPTIONAL,0x0},
90 {&GUID_Key,0x49,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x49)|DIDFT_OPTIONAL,0x0},
91 {&GUID_Key,0x4a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4a)|DIDFT_OPTIONAL,0x0},
92 {&GUID_Key,0x4b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4b)|DIDFT_OPTIONAL,0x0},
93 {&GUID_Key,0x4c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4c)|DIDFT_OPTIONAL,0x0},
94 {&GUID_Key,0x4d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4d)|DIDFT_OPTIONAL,0x0},
95 {&GUID_Key,0x4e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4e)|DIDFT_OPTIONAL,0x0},
96 {&GUID_Key,0x4f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x4f)|DIDFT_OPTIONAL,0x0},
97 {&GUID_Key,0x50,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x50)|DIDFT_OPTIONAL,0x0},
98 {&GUID_Key,0x51,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x51)|DIDFT_OPTIONAL,0x0},
99 {&GUID_Key,0x52,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x52)|DIDFT_OPTIONAL,0x0},
100 {&GUID_Key,0x53,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x53)|DIDFT_OPTIONAL,0x0},
101 {&GUID_Key,0x54,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x54)|DIDFT_OPTIONAL,0x0},
102 {&GUID_Key,0x55,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x55)|DIDFT_OPTIONAL,0x0},
103 {&GUID_Key,0x56,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x56)|DIDFT_OPTIONAL,0x0},
104 {&GUID_Key,0x57,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x57)|DIDFT_OPTIONAL,0x0},
105 {&GUID_Key,0x58,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x58)|DIDFT_OPTIONAL,0x0},
106 {&GUID_Key,0x59,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x59)|DIDFT_OPTIONAL,0x0},
107 {&GUID_Key,0x5a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5a)|DIDFT_OPTIONAL,0x0},
108 {&GUID_Key,0x5b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5b)|DIDFT_OPTIONAL,0x0},
109 {&GUID_Key,0x5c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5c)|DIDFT_OPTIONAL,0x0},
110 {&GUID_Key,0x5d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5d)|DIDFT_OPTIONAL,0x0},
111 {&GUID_Key,0x5e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5e)|DIDFT_OPTIONAL,0x0},
112 {&GUID_Key,0x5f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x5f)|DIDFT_OPTIONAL,0x0},
113 {&GUID_Key,0x60,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x60)|DIDFT_OPTIONAL,0x0},
114 {&GUID_Key,0x61,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x61)|DIDFT_OPTIONAL,0x0},
115 {&GUID_Key,0x62,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x62)|DIDFT_OPTIONAL,0x0},
116 {&GUID_Key,0x63,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x63)|DIDFT_OPTIONAL,0x0},
117 {&GUID_Key,0x64,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x64)|DIDFT_OPTIONAL,0x0},
118 {&GUID_Key,0x65,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x65)|DIDFT_OPTIONAL,0x0},
119 {&GUID_Key,0x66,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x66)|DIDFT_OPTIONAL,0x0},
120 {&GUID_Key,0x67,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x67)|DIDFT_OPTIONAL,0x0},
121 {&GUID_Key,0x68,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x68)|DIDFT_OPTIONAL,0x0},
122 {&GUID_Key,0x69,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x69)|DIDFT_OPTIONAL,0x0},
123 {&GUID_Key,0x6a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6a)|DIDFT_OPTIONAL,0x0},
124 {&GUID_Key,0x6b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6b)|DIDFT_OPTIONAL,0x0},
125 {&GUID_Key,0x6c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6c)|DIDFT_OPTIONAL,0x0},
126 {&GUID_Key,0x6d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6d)|DIDFT_OPTIONAL,0x0},
127 {&GUID_Key,0x6e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6e)|DIDFT_OPTIONAL,0x0},
128 {&GUID_Key,0x6f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x6f)|DIDFT_OPTIONAL,0x0},
129 {&GUID_Key,0x70,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x70)|DIDFT_OPTIONAL,0x0},
130 {&GUID_Key,0x71,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x71)|DIDFT_OPTIONAL,0x0},
131 {&GUID_Key,0x72,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x72)|DIDFT_OPTIONAL,0x0},
132 {&GUID_Key,0x73,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x73)|DIDFT_OPTIONAL,0x0},
133 {&GUID_Key,0x74,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x74)|DIDFT_OPTIONAL,0x0},
134 {&GUID_Key,0x75,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x75)|DIDFT_OPTIONAL,0x0},
135 {&GUID_Key,0x76,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x76)|DIDFT_OPTIONAL,0x0},
136 {&GUID_Key,0x77,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x77)|DIDFT_OPTIONAL,0x0},
137 {&GUID_Key,0x78,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x78)|DIDFT_OPTIONAL,0x0},
138 {&GUID_Key,0x79,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x79)|DIDFT_OPTIONAL,0x0},
139 {&GUID_Key,0x7a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7a)|DIDFT_OPTIONAL,0x0},
140 {&GUID_Key,0x7b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7b)|DIDFT_OPTIONAL,0x0},
141 {&GUID_Key,0x7c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7c)|DIDFT_OPTIONAL,0x0},
142 {&GUID_Key,0x7d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7d)|DIDFT_OPTIONAL,0x0},
143 {&GUID_Key,0x7e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7e)|DIDFT_OPTIONAL,0x0},
144 {&GUID_Key,0x7f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x7f)|DIDFT_OPTIONAL,0x0},
145 {&GUID_Key,0x80,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x80)|DIDFT_OPTIONAL,0x0},
146 {&GUID_Key,0x81,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x81)|DIDFT_OPTIONAL,0x0},
147 {&GUID_Key,0x82,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x82)|DIDFT_OPTIONAL,0x0},
148 {&GUID_Key,0x83,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x83)|DIDFT_OPTIONAL,0x0},
149 {&GUID_Key,0x84,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x84)|DIDFT_OPTIONAL,0x0},
150 {&GUID_Key,0x85,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x85)|DIDFT_OPTIONAL,0x0},
151 {&GUID_Key,0x86,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x86)|DIDFT_OPTIONAL,0x0},
152 {&GUID_Key,0x87,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x87)|DIDFT_OPTIONAL,0x0},
153 {&GUID_Key,0x88,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x88)|DIDFT_OPTIONAL,0x0},
154 {&GUID_Key,0x89,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x89)|DIDFT_OPTIONAL,0x0},
155 {&GUID_Key,0x8a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8a)|DIDFT_OPTIONAL,0x0},
156 {&GUID_Key,0x8b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8b)|DIDFT_OPTIONAL,0x0},
157 {&GUID_Key,0x8c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8c)|DIDFT_OPTIONAL,0x0},
158 {&GUID_Key,0x8d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8d)|DIDFT_OPTIONAL,0x0},
159 {&GUID_Key,0x8e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8e)|DIDFT_OPTIONAL,0x0},
160 {&GUID_Key,0x8f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x8f)|DIDFT_OPTIONAL,0x0},
161 {&GUID_Key,0x90,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x90)|DIDFT_OPTIONAL,0x0},
162 {&GUID_Key,0x91,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x91)|DIDFT_OPTIONAL,0x0},
163 {&GUID_Key,0x92,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x92)|DIDFT_OPTIONAL,0x0},
164 {&GUID_Key,0x93,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x93)|DIDFT_OPTIONAL,0x0},
165 {&GUID_Key,0x94,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x94)|DIDFT_OPTIONAL,0x0},
166 {&GUID_Key,0x95,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x95)|DIDFT_OPTIONAL,0x0},
167 {&GUID_Key,0x96,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x96)|DIDFT_OPTIONAL,0x0},
168 {&GUID_Key,0x97,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x97)|DIDFT_OPTIONAL,0x0},
169 {&GUID_Key,0x98,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x98)|DIDFT_OPTIONAL,0x0},
170 {&GUID_Key,0x99,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x99)|DIDFT_OPTIONAL,0x0},
171 {&GUID_Key,0x9a,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9a)|DIDFT_OPTIONAL,0x0},
172 {&GUID_Key,0x9b,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9b)|DIDFT_OPTIONAL,0x0},
173 {&GUID_Key,0x9c,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9c)|DIDFT_OPTIONAL,0x0},
174 {&GUID_Key,0x9d,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9d)|DIDFT_OPTIONAL,0x0},
175 {&GUID_Key,0x9e,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9e)|DIDFT_OPTIONAL,0x0},
176 {&GUID_Key,0x9f,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0x9f)|DIDFT_OPTIONAL,0x0},
177 {&GUID_Key,0xa0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa0)|DIDFT_OPTIONAL,0x0},
178 {&GUID_Key,0xa1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa1)|DIDFT_OPTIONAL,0x0},
179 {&GUID_Key,0xa2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa2)|DIDFT_OPTIONAL,0x0},
180 {&GUID_Key,0xa3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa3)|DIDFT_OPTIONAL,0x0},
181 {&GUID_Key,0xa4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa4)|DIDFT_OPTIONAL,0x0},
182 {&GUID_Key,0xa5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa5)|DIDFT_OPTIONAL,0x0},
183 {&GUID_Key,0xa6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa6)|DIDFT_OPTIONAL,0x0},
184 {&GUID_Key,0xa7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa7)|DIDFT_OPTIONAL,0x0},
185 {&GUID_Key,0xa8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa8)|DIDFT_OPTIONAL,0x0},
186 {&GUID_Key,0xa9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xa9)|DIDFT_OPTIONAL,0x0},
187 {&GUID_Key,0xaa,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xaa)|DIDFT_OPTIONAL,0x0},
188 {&GUID_Key,0xab,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xab)|DIDFT_OPTIONAL,0x0},
189 {&GUID_Key,0xac,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xac)|DIDFT_OPTIONAL,0x0},
190 {&GUID_Key,0xad,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xad)|DIDFT_OPTIONAL,0x0},
191 {&GUID_Key,0xae,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xae)|DIDFT_OPTIONAL,0x0},
192 {&GUID_Key,0xaf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xaf)|DIDFT_OPTIONAL,0x0},
193 {&GUID_Key,0xb0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb0)|DIDFT_OPTIONAL,0x0},
194 {&GUID_Key,0xb1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb1)|DIDFT_OPTIONAL,0x0},
195 {&GUID_Key,0xb2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb2)|DIDFT_OPTIONAL,0x0},
196 {&GUID_Key,0xb3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb3)|DIDFT_OPTIONAL,0x0},
197 {&GUID_Key,0xb4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb4)|DIDFT_OPTIONAL,0x0},
198 {&GUID_Key,0xb5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb5)|DIDFT_OPTIONAL,0x0},
199 {&GUID_Key,0xb6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb6)|DIDFT_OPTIONAL,0x0},
200 {&GUID_Key,0xb7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb7)|DIDFT_OPTIONAL,0x0},
201 {&GUID_Key,0xb8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb8)|DIDFT_OPTIONAL,0x0},
202 {&GUID_Key,0xb9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xb9)|DIDFT_OPTIONAL,0x0},
203 {&GUID_Key,0xba,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xba)|DIDFT_OPTIONAL,0x0},
204 {&GUID_Key,0xbb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbb)|DIDFT_OPTIONAL,0x0},
205 {&GUID_Key,0xbc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbc)|DIDFT_OPTIONAL,0x0},
206 {&GUID_Key,0xbd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbd)|DIDFT_OPTIONAL,0x0},
207 {&GUID_Key,0xbe,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbe)|DIDFT_OPTIONAL,0x0},
208 {&GUID_Key,0xbf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xbf)|DIDFT_OPTIONAL,0x0},
209 {&GUID_Key,0xc0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc0)|DIDFT_OPTIONAL,0x0},
210 {&GUID_Key,0xc1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc1)|DIDFT_OPTIONAL,0x0},
211 {&GUID_Key,0xc2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc2)|DIDFT_OPTIONAL,0x0},
212 {&GUID_Key,0xc3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc3)|DIDFT_OPTIONAL,0x0},
213 {&GUID_Key,0xc4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc4)|DIDFT_OPTIONAL,0x0},
214 {&GUID_Key,0xc5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc5)|DIDFT_OPTIONAL,0x0},
215 {&GUID_Key,0xc6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc6)|DIDFT_OPTIONAL,0x0},
216 {&GUID_Key,0xc7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc7)|DIDFT_OPTIONAL,0x0},
217 {&GUID_Key,0xc8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc8)|DIDFT_OPTIONAL,0x0},
218 {&GUID_Key,0xc9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xc9)|DIDFT_OPTIONAL,0x0},
219 {&GUID_Key,0xca,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xca)|DIDFT_OPTIONAL,0x0},
220 {&GUID_Key,0xcb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xcb)|DIDFT_OPTIONAL,0x0},
221 {&GUID_Key,0xcc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xcc)|DIDFT_OPTIONAL,0x0},
222 {&GUID_Key,0xcd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xcd)|DIDFT_OPTIONAL,0x0},
223 {&GUID_Key,0xce,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xce)|DIDFT_OPTIONAL,0x0},
224 {&GUID_Key,0xcf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xcf)|DIDFT_OPTIONAL,0x0},
225 {&GUID_Key,0xd0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd0)|DIDFT_OPTIONAL,0x0},
226 {&GUID_Key,0xd1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd1)|DIDFT_OPTIONAL,0x0},
227 {&GUID_Key,0xd2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd2)|DIDFT_OPTIONAL,0x0},
228 {&GUID_Key,0xd3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd3)|DIDFT_OPTIONAL,0x0},
229 {&GUID_Key,0xd4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd4)|DIDFT_OPTIONAL,0x0},
230 {&GUID_Key,0xd5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd5)|DIDFT_OPTIONAL,0x0},
231 {&GUID_Key,0xd6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd6)|DIDFT_OPTIONAL,0x0},
232 {&GUID_Key,0xd7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd7)|DIDFT_OPTIONAL,0x0},
233 {&GUID_Key,0xd8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd8)|DIDFT_OPTIONAL,0x0},
234 {&GUID_Key,0xd9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xd9)|DIDFT_OPTIONAL,0x0},
235 {&GUID_Key,0xda,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xda)|DIDFT_OPTIONAL,0x0},
236 {&GUID_Key,0xdb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xdb)|DIDFT_OPTIONAL,0x0},
237 {&GUID_Key,0xdc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xdc)|DIDFT_OPTIONAL,0x0},
238 {&GUID_Key,0xdd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xdd)|DIDFT_OPTIONAL,0x0},
239 {&GUID_Key,0xde,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xde)|DIDFT_OPTIONAL,0x0},
240 {&GUID_Key,0xdf,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xdf)|DIDFT_OPTIONAL,0x0},
241 {&GUID_Key,0xe0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe0)|DIDFT_OPTIONAL,0x0},
242 {&GUID_Key,0xe1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe1)|DIDFT_OPTIONAL,0x0},
243 {&GUID_Key,0xe2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe2)|DIDFT_OPTIONAL,0x0},
244 {&GUID_Key,0xe3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe3)|DIDFT_OPTIONAL,0x0},
245 {&GUID_Key,0xe4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe4)|DIDFT_OPTIONAL,0x0},
246 {&GUID_Key,0xe5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe5)|DIDFT_OPTIONAL,0x0},
247 {&GUID_Key,0xe6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe6)|DIDFT_OPTIONAL,0x0},
248 {&GUID_Key,0xe7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe7)|DIDFT_OPTIONAL,0x0},
249 {&GUID_Key,0xe8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe8)|DIDFT_OPTIONAL,0x0},
250 {&GUID_Key,0xe9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xe9)|DIDFT_OPTIONAL,0x0},
251 {&GUID_Key,0xea,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xea)|DIDFT_OPTIONAL,0x0},
252 {&GUID_Key,0xeb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xeb)|DIDFT_OPTIONAL,0x0},
253 {&GUID_Key,0xec,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xec)|DIDFT_OPTIONAL,0x0},
254 {&GUID_Key,0xed,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xed)|DIDFT_OPTIONAL,0x0},
255 {&GUID_Key,0xee,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xee)|DIDFT_OPTIONAL,0x0},
256 {&GUID_Key,0xef,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xef)|DIDFT_OPTIONAL,0x0},
257 {&GUID_Key,0xf0,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf0)|DIDFT_OPTIONAL,0x0},
258 {&GUID_Key,0xf1,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf1)|DIDFT_OPTIONAL,0x0},
259 {&GUID_Key,0xf2,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf2)|DIDFT_OPTIONAL,0x0},
260 {&GUID_Key,0xf3,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf3)|DIDFT_OPTIONAL,0x0},
261 {&GUID_Key,0xf4,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf4)|DIDFT_OPTIONAL,0x0},
262 {&GUID_Key,0xf5,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf5)|DIDFT_OPTIONAL,0x0},
263 {&GUID_Key,0xf6,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf6)|DIDFT_OPTIONAL,0x0},
264 {&GUID_Key,0xf7,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf7)|DIDFT_OPTIONAL,0x0},
265 {&GUID_Key,0xf8,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf8)|DIDFT_OPTIONAL,0x0},
266 {&GUID_Key,0xf9,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xf9)|DIDFT_OPTIONAL,0x0},
267 {&GUID_Key,0xfa,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfa)|DIDFT_OPTIONAL,0x0},
268 {&GUID_Key,0xfb,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfb)|DIDFT_OPTIONAL,0x0},
269 {&GUID_Key,0xfc,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfc)|DIDFT_OPTIONAL,0x0},
270 {&GUID_Key,0xfd,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfd)|DIDFT_OPTIONAL,0x0},
271 {&GUID_Key,0xfe,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xfe)|DIDFT_OPTIONAL,0x0},
272 {&GUID_Key,0xff,DIDFT_BUTTON|DIDFT_MAKEINSTANCE(0xff)|DIDFT_OPTIONAL,0x0}
273};
274
275const DIDATAFORMAT c_dfDIKeyboard = {sizeof(DIDATAFORMAT),sizeof(DIOBJECTDATAFORMAT),DIDF_RELAXIS,256,sizeof(c_rgodfDIKeyboard)/sizeof(c_rgodfDIKeyboard[0]),c_rgodfDIKeyboard};