2 * Copyright (c) 2004 Robert Reif
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
28 #define numObjects(x) (sizeof(x) / sizeof(x[0]))
30 DIOBJECTDATAFORMAT dfDIJoystick
[] = {
31 { &GUID_XAxis
,DIJOFS_X
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
32 { &GUID_YAxis
,DIJOFS_Y
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
33 { &GUID_ZAxis
,DIJOFS_Z
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
34 { &GUID_RxAxis
,DIJOFS_RX
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
35 { &GUID_RyAxis
,DIJOFS_RY
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
36 { &GUID_RzAxis
,DIJOFS_RZ
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
37 { &GUID_Slider
,DIJOFS_SLIDER(0),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
38 { &GUID_Slider
,DIJOFS_SLIDER(1),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
39 { &GUID_POV
,DIJOFS_POV(0),DIDFT_OPTIONAL
|DIDFT_POV
|DIDFT_ANYINSTANCE
,0},
40 { &GUID_POV
,DIJOFS_POV(1),DIDFT_OPTIONAL
|DIDFT_POV
|DIDFT_ANYINSTANCE
,0},
41 { &GUID_POV
,DIJOFS_POV(2),DIDFT_OPTIONAL
|DIDFT_POV
|DIDFT_ANYINSTANCE
,0},
42 { &GUID_POV
,DIJOFS_POV(3),DIDFT_OPTIONAL
|DIDFT_POV
|DIDFT_ANYINSTANCE
,0},
43 { NULL
,DIJOFS_BUTTON(0),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
44 { NULL
,DIJOFS_BUTTON(1),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
45 { NULL
,DIJOFS_BUTTON(2),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
46 { NULL
,DIJOFS_BUTTON(3),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
47 { NULL
,DIJOFS_BUTTON(4),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
48 { NULL
,DIJOFS_BUTTON(5),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
49 { NULL
,DIJOFS_BUTTON(6),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
50 { NULL
,DIJOFS_BUTTON(7),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
51 { NULL
,DIJOFS_BUTTON(8),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
52 { NULL
,DIJOFS_BUTTON(9),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
53 { NULL
,DIJOFS_BUTTON(10),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
54 { NULL
,DIJOFS_BUTTON(11),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
55 { NULL
,DIJOFS_BUTTON(12),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
56 { NULL
,DIJOFS_BUTTON(13),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
57 { NULL
,DIJOFS_BUTTON(14),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
58 { NULL
,DIJOFS_BUTTON(15),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
59 { NULL
,DIJOFS_BUTTON(16),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
60 { NULL
,DIJOFS_BUTTON(17),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
61 { NULL
,DIJOFS_BUTTON(18),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
62 { NULL
,DIJOFS_BUTTON(19),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
63 { NULL
,DIJOFS_BUTTON(20),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
64 { NULL
,DIJOFS_BUTTON(21),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
65 { NULL
,DIJOFS_BUTTON(22),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
66 { NULL
,DIJOFS_BUTTON(23),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
67 { NULL
,DIJOFS_BUTTON(24),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
68 { NULL
,DIJOFS_BUTTON(25),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
69 { NULL
,DIJOFS_BUTTON(26),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
70 { NULL
,DIJOFS_BUTTON(27),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
71 { NULL
,DIJOFS_BUTTON(28),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
72 { NULL
,DIJOFS_BUTTON(29),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
73 { NULL
,DIJOFS_BUTTON(30),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
74 { NULL
,DIJOFS_BUTTON(31),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
77 const DIDATAFORMAT c_dfDIJoystick
= {
79 sizeof(DIOBJECTDATAFORMAT
),
82 numObjects(dfDIJoystick
),
86 DIOBJECTDATAFORMAT dfDIJoystick2
[] = {
87 { &GUID_XAxis
,DIJOFS_X
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
88 { &GUID_YAxis
,DIJOFS_Y
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
89 { &GUID_ZAxis
,DIJOFS_Z
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
90 { &GUID_RxAxis
,DIJOFS_RX
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
91 { &GUID_RyAxis
,DIJOFS_RY
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
92 { &GUID_RzAxis
,DIJOFS_RZ
,DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
93 { &GUID_Slider
,DIJOFS_SLIDER(0),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
94 { &GUID_Slider
,DIJOFS_SLIDER(1),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
95 { &GUID_POV
,DIJOFS_POV(0),DIDFT_OPTIONAL
|DIDFT_POV
|DIDFT_ANYINSTANCE
,0},
96 { &GUID_POV
,DIJOFS_POV(1),DIDFT_OPTIONAL
|DIDFT_POV
|DIDFT_ANYINSTANCE
,0},
97 { &GUID_POV
,DIJOFS_POV(2),DIDFT_OPTIONAL
|DIDFT_POV
|DIDFT_ANYINSTANCE
,0},
98 { &GUID_POV
,DIJOFS_POV(3),DIDFT_OPTIONAL
|DIDFT_POV
|DIDFT_ANYINSTANCE
,0},
99 { NULL
,DIJOFS_BUTTON(0),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
100 { NULL
,DIJOFS_BUTTON(1),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
101 { NULL
,DIJOFS_BUTTON(2),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
102 { NULL
,DIJOFS_BUTTON(3),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
103 { NULL
,DIJOFS_BUTTON(4),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
104 { NULL
,DIJOFS_BUTTON(5),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
105 { NULL
,DIJOFS_BUTTON(6),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
106 { NULL
,DIJOFS_BUTTON(7),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
107 { NULL
,DIJOFS_BUTTON(8),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
108 { NULL
,DIJOFS_BUTTON(9),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
109 { NULL
,DIJOFS_BUTTON(10),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
110 { NULL
,DIJOFS_BUTTON(11),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
111 { NULL
,DIJOFS_BUTTON(12),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
112 { NULL
,DIJOFS_BUTTON(13),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
113 { NULL
,DIJOFS_BUTTON(14),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
114 { NULL
,DIJOFS_BUTTON(15),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
115 { NULL
,DIJOFS_BUTTON(16),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
116 { NULL
,DIJOFS_BUTTON(17),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
117 { NULL
,DIJOFS_BUTTON(18),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
118 { NULL
,DIJOFS_BUTTON(19),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
119 { NULL
,DIJOFS_BUTTON(20),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
120 { NULL
,DIJOFS_BUTTON(21),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
121 { NULL
,DIJOFS_BUTTON(22),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
122 { NULL
,DIJOFS_BUTTON(23),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
123 { NULL
,DIJOFS_BUTTON(24),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
124 { NULL
,DIJOFS_BUTTON(25),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
125 { NULL
,DIJOFS_BUTTON(26),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
126 { NULL
,DIJOFS_BUTTON(27),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
127 { NULL
,DIJOFS_BUTTON(28),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
128 { NULL
,DIJOFS_BUTTON(29),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
129 { NULL
,DIJOFS_BUTTON(30),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
130 { NULL
,DIJOFS_BUTTON(31),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
131 { NULL
,DIJOFS_BUTTON(32),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
132 { NULL
,DIJOFS_BUTTON(33),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
133 { NULL
,DIJOFS_BUTTON(34),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
134 { NULL
,DIJOFS_BUTTON(35),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
135 { NULL
,DIJOFS_BUTTON(36),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
136 { NULL
,DIJOFS_BUTTON(37),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
137 { NULL
,DIJOFS_BUTTON(38),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
138 { NULL
,DIJOFS_BUTTON(39),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
139 { NULL
,DIJOFS_BUTTON(40),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
140 { NULL
,DIJOFS_BUTTON(41),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
141 { NULL
,DIJOFS_BUTTON(42),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
142 { NULL
,DIJOFS_BUTTON(43),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
143 { NULL
,DIJOFS_BUTTON(44),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
144 { NULL
,DIJOFS_BUTTON(45),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
145 { NULL
,DIJOFS_BUTTON(46),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
146 { NULL
,DIJOFS_BUTTON(47),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
147 { NULL
,DIJOFS_BUTTON(48),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
148 { NULL
,DIJOFS_BUTTON(49),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
149 { NULL
,DIJOFS_BUTTON(50),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
150 { NULL
,DIJOFS_BUTTON(51),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
151 { NULL
,DIJOFS_BUTTON(52),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
152 { NULL
,DIJOFS_BUTTON(53),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
153 { NULL
,DIJOFS_BUTTON(54),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
154 { NULL
,DIJOFS_BUTTON(55),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
155 { NULL
,DIJOFS_BUTTON(56),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
156 { NULL
,DIJOFS_BUTTON(57),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
157 { NULL
,DIJOFS_BUTTON(58),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
158 { NULL
,DIJOFS_BUTTON(59),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
159 { NULL
,DIJOFS_BUTTON(60),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
160 { NULL
,DIJOFS_BUTTON(61),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
161 { NULL
,DIJOFS_BUTTON(62),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
162 { NULL
,DIJOFS_BUTTON(63),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
163 { NULL
,DIJOFS_BUTTON(64),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
164 { NULL
,DIJOFS_BUTTON(65),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
165 { NULL
,DIJOFS_BUTTON(66),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
166 { NULL
,DIJOFS_BUTTON(67),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
167 { NULL
,DIJOFS_BUTTON(68),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
168 { NULL
,DIJOFS_BUTTON(69),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
169 { NULL
,DIJOFS_BUTTON(70),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
170 { NULL
,DIJOFS_BUTTON(71),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
171 { NULL
,DIJOFS_BUTTON(72),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
172 { NULL
,DIJOFS_BUTTON(73),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
173 { NULL
,DIJOFS_BUTTON(74),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
174 { NULL
,DIJOFS_BUTTON(75),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
175 { NULL
,DIJOFS_BUTTON(76),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
176 { NULL
,DIJOFS_BUTTON(77),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
177 { NULL
,DIJOFS_BUTTON(78),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
178 { NULL
,DIJOFS_BUTTON(79),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
179 { NULL
,DIJOFS_BUTTON(80),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
180 { NULL
,DIJOFS_BUTTON(81),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
181 { NULL
,DIJOFS_BUTTON(82),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
182 { NULL
,DIJOFS_BUTTON(83),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
183 { NULL
,DIJOFS_BUTTON(84),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
184 { NULL
,DIJOFS_BUTTON(85),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
185 { NULL
,DIJOFS_BUTTON(86),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
186 { NULL
,DIJOFS_BUTTON(87),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
187 { NULL
,DIJOFS_BUTTON(88),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
188 { NULL
,DIJOFS_BUTTON(89),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
189 { NULL
,DIJOFS_BUTTON(90),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
190 { NULL
,DIJOFS_BUTTON(91),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
191 { NULL
,DIJOFS_BUTTON(92),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
192 { NULL
,DIJOFS_BUTTON(93),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
193 { NULL
,DIJOFS_BUTTON(94),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
194 { NULL
,DIJOFS_BUTTON(95),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
195 { NULL
,DIJOFS_BUTTON(96),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
196 { NULL
,DIJOFS_BUTTON(97),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
197 { NULL
,DIJOFS_BUTTON(98),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
198 { NULL
,DIJOFS_BUTTON(99),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
199 { NULL
,DIJOFS_BUTTON(100),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
200 { NULL
,DIJOFS_BUTTON(101),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
201 { NULL
,DIJOFS_BUTTON(102),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
202 { NULL
,DIJOFS_BUTTON(103),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
203 { NULL
,DIJOFS_BUTTON(104),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
204 { NULL
,DIJOFS_BUTTON(105),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
205 { NULL
,DIJOFS_BUTTON(106),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
206 { NULL
,DIJOFS_BUTTON(107),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
207 { NULL
,DIJOFS_BUTTON(108),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
208 { NULL
,DIJOFS_BUTTON(109),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
209 { NULL
,DIJOFS_BUTTON(110),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
210 { NULL
,DIJOFS_BUTTON(111),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
211 { NULL
,DIJOFS_BUTTON(112),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
212 { NULL
,DIJOFS_BUTTON(113),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
213 { NULL
,DIJOFS_BUTTON(114),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
214 { NULL
,DIJOFS_BUTTON(115),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
215 { NULL
,DIJOFS_BUTTON(116),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
216 { NULL
,DIJOFS_BUTTON(117),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
217 { NULL
,DIJOFS_BUTTON(118),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
218 { NULL
,DIJOFS_BUTTON(119),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
219 { NULL
,DIJOFS_BUTTON(120),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
220 { NULL
,DIJOFS_BUTTON(121),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
221 { NULL
,DIJOFS_BUTTON(122),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
222 { NULL
,DIJOFS_BUTTON(123),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
223 { NULL
,DIJOFS_BUTTON(124),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
224 { NULL
,DIJOFS_BUTTON(125),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
225 { NULL
,DIJOFS_BUTTON(126),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
226 { NULL
,DIJOFS_BUTTON(127),DIDFT_OPTIONAL
|DIDFT_BUTTON
|DIDFT_ANYINSTANCE
,0},
227 { &GUID_XAxis
,FIELD_OFFSET(DIJOYSTATE2
,lVX
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
228 { &GUID_YAxis
,FIELD_OFFSET(DIJOYSTATE2
,lVY
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
229 { &GUID_ZAxis
,FIELD_OFFSET(DIJOYSTATE2
,lVZ
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
230 { &GUID_RxAxis
,FIELD_OFFSET(DIJOYSTATE2
,lVRx
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
231 { &GUID_RyAxis
,FIELD_OFFSET(DIJOYSTATE2
,lVRy
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
232 { &GUID_RzAxis
,FIELD_OFFSET(DIJOYSTATE2
,lVRz
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
233 { &GUID_Slider
,FIELD_OFFSET(DIJOYSTATE2
,rglVSlider
[0]),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
234 { &GUID_Slider
,FIELD_OFFSET(DIJOYSTATE2
,rglVSlider
[1]),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
235 { &GUID_XAxis
,FIELD_OFFSET(DIJOYSTATE2
,lAX
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
236 { &GUID_YAxis
,FIELD_OFFSET(DIJOYSTATE2
,lAY
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
237 { &GUID_ZAxis
,FIELD_OFFSET(DIJOYSTATE2
,lAZ
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
238 { &GUID_RxAxis
,FIELD_OFFSET(DIJOYSTATE2
,lARx
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
239 { &GUID_RyAxis
,FIELD_OFFSET(DIJOYSTATE2
,lARy
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
240 { &GUID_RzAxis
,FIELD_OFFSET(DIJOYSTATE2
,lARz
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
241 { &GUID_Slider
,FIELD_OFFSET(DIJOYSTATE2
,rglASlider
[0]),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
242 { &GUID_Slider
,FIELD_OFFSET(DIJOYSTATE2
,rglASlider
[1]),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
243 { &GUID_XAxis
,FIELD_OFFSET(DIJOYSTATE2
,lFX
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
244 { &GUID_YAxis
,FIELD_OFFSET(DIJOYSTATE2
,lFY
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
245 { &GUID_ZAxis
,FIELD_OFFSET(DIJOYSTATE2
,lFZ
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
246 { &GUID_RxAxis
,FIELD_OFFSET(DIJOYSTATE2
,lFRx
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
247 { &GUID_RyAxis
,FIELD_OFFSET(DIJOYSTATE2
,lFRy
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
248 { &GUID_RzAxis
,FIELD_OFFSET(DIJOYSTATE2
,lFRz
),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
249 { &GUID_Slider
,FIELD_OFFSET(DIJOYSTATE2
,rglFSlider
[0]),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
250 { &GUID_Slider
,FIELD_OFFSET(DIJOYSTATE2
,rglFSlider
[1]),DIDFT_OPTIONAL
|DIDFT_AXIS
|DIDFT_ANYINSTANCE
,0},
253 const DIDATAFORMAT c_dfDIJoystick2
= {
254 sizeof(DIDATAFORMAT
),
255 sizeof(DIOBJECTDATAFORMAT
),
258 numObjects(dfDIJoystick2
),
262 DIOBJECTDATAFORMAT dfDIMouse
[] = {
263 { &GUID_XAxis
, DIMOFS_X
, DIDFT_ANYINSTANCE
| DIDFT_AXIS
, 0 },
264 { &GUID_YAxis
, DIMOFS_Y
, DIDFT_ANYINSTANCE
| DIDFT_AXIS
, 0 },
265 { &GUID_ZAxis
, DIMOFS_Z
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_AXIS
, 0 },
266 { &GUID_Button
, DIMOFS_BUTTON0
, DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
267 { &GUID_Button
, DIMOFS_BUTTON1
, DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
268 { &GUID_Button
, DIMOFS_BUTTON2
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
269 { &GUID_Button
, DIMOFS_BUTTON3
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 }
272 const DIDATAFORMAT c_dfDIMouse
= {
273 sizeof(DIDATAFORMAT
),
274 sizeof(DIOBJECTDATAFORMAT
),
276 sizeof(DIMOUSESTATE
),
277 numObjects(dfDIMouse
),
281 DIOBJECTDATAFORMAT dfDIMouse2
[] = {
282 { &GUID_XAxis
, DIMOFS_X
, DIDFT_ANYINSTANCE
| DIDFT_AXIS
, 0 },
283 { &GUID_YAxis
, DIMOFS_Y
, DIDFT_ANYINSTANCE
| DIDFT_AXIS
, 0 },
284 { &GUID_ZAxis
, DIMOFS_Z
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_AXIS
, 0 },
285 { &GUID_Button
, DIMOFS_BUTTON0
, DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
286 { &GUID_Button
, DIMOFS_BUTTON1
, DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
287 { &GUID_Button
, DIMOFS_BUTTON2
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
288 { &GUID_Button
, DIMOFS_BUTTON3
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
289 { &GUID_Button
, DIMOFS_BUTTON4
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
290 { &GUID_Button
, DIMOFS_BUTTON5
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
291 { &GUID_Button
, DIMOFS_BUTTON6
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 },
292 { &GUID_Button
, DIMOFS_BUTTON7
, DIDFT_OPTIONAL
| DIDFT_ANYINSTANCE
| DIDFT_BUTTON
, 0 }
295 const DIDATAFORMAT c_dfDIMouse2
= {
296 sizeof(DIDATAFORMAT
),
297 sizeof(DIOBJECTDATAFORMAT
),
299 sizeof(DIMOUSESTATE2
),
300 numObjects(dfDIMouse2
),