|
1 /* -------------------------------- wintab.h -------------------------------- */ |
|
2 /* Combined 16 & 32-bit version. */ |
|
3 |
|
4 /*------------------------------------------------------------------------------ |
|
5 The text and information contained in this file may be freely used, |
|
6 copied, or distributed without compensation or licensing restrictions. |
|
7 |
|
8 This file is copyright 1991-1998 by LCS/Telegraphics. |
|
9 ------------------------------------------------------------------------------*/ |
|
10 |
|
11 #ifndef _INC_WINTAB /* prevent multiple includes */ |
|
12 #define _INC_WINTAB |
|
13 |
|
14 #ifdef __cplusplus |
|
15 extern "C" { |
|
16 #endif /* __cplusplus */ |
|
17 |
|
18 /* -------------------------------------------------------------------------- */ |
|
19 /* Messages */ |
|
20 #ifndef NOWTMESSAGES |
|
21 |
|
22 #define WT_DEFBASE 0x7FF0 |
|
23 #define WT_MAXOFFSET 0xF |
|
24 |
|
25 #define _WT_PACKET(b) ((b)+0) |
|
26 #define _WT_CTXOPEN(b) ((b)+1) |
|
27 #define _WT_CTXCLOSE(b) ((b)+2) |
|
28 #define _WT_CTXUPDATE(b) ((b)+3) |
|
29 #define _WT_CTXOVERLAP(b) ((b)+4) |
|
30 #define _WT_PROXIMITY(b) ((b)+5) |
|
31 #define _WT_INFOCHANGE(b) ((b)+6) |
|
32 #define _WT_CSRCHANGE(b) ((b)+7) /* 1.1 */ |
|
33 #define _WT_MAX(b) ((b)+WT_MAXOFFSET) |
|
34 |
|
35 #define WT_PACKET _WT_PACKET(WT_DEFBASE) |
|
36 #define WT_CTXOPEN _WT_CTXOPEN(WT_DEFBASE) |
|
37 #define WT_CTXCLOSE _WT_CTXCLOSE(WT_DEFBASE) |
|
38 #define WT_CTXUPDATE _WT_CTXUPDATE(WT_DEFBASE) |
|
39 #define WT_CTXOVERLAP _WT_CTXOVERLAP(WT_DEFBASE) |
|
40 #define WT_PROXIMITY _WT_PROXIMITY(WT_DEFBASE) |
|
41 #define WT_INFOCHANGE _WT_INFOCHANGE(WT_DEFBASE) |
|
42 #define WT_CSRCHANGE _WT_CSRCHANGE(WT_DEFBASE) /* 1.1 */ |
|
43 #define WT_MAX _WT_MAX(WT_DEFBASE) |
|
44 |
|
45 #endif |
|
46 |
|
47 /* -------------------------------------------------------------------------- */ |
|
48 /* -------------------------------------------------------------------------- */ |
|
49 /* Data Types */ |
|
50 |
|
51 /* -------------------------------------------------------------------------- */ |
|
52 /* COMMON DATA DEFS */ |
|
53 |
|
54 DECLARE_HANDLE(HMGR); /* manager handle */ |
|
55 DECLARE_HANDLE(HCTX); /* context handle */ |
|
56 DECLARE_HANDLE(HWTHOOK); /* hook handle */ |
|
57 |
|
58 typedef DWORD WTPKT; /* packet mask */ |
|
59 |
|
60 |
|
61 #ifndef NOWTPKT |
|
62 |
|
63 /* WTPKT bits */ |
|
64 #define PK_CONTEXT 0x0001 /* reporting context */ |
|
65 #define PK_STATUS 0x0002 /* status bits */ |
|
66 #define PK_TIME 0x0004 /* time stamp */ |
|
67 #define PK_CHANGED 0x0008 /* change bit vector */ |
|
68 #define PK_SERIAL_NUMBER 0x0010 /* packet serial number */ |
|
69 #define PK_CURSOR 0x0020 /* reporting cursor */ |
|
70 #define PK_BUTTONS 0x0040 /* button information */ |
|
71 #define PK_X 0x0080 /* x axis */ |
|
72 #define PK_Y 0x0100 /* y axis */ |
|
73 #define PK_Z 0x0200 /* z axis */ |
|
74 #define PK_NORMAL_PRESSURE 0x0400 /* normal or tip pressure */ |
|
75 #define PK_TANGENT_PRESSURE 0x0800 /* tangential or barrel pressure */ |
|
76 #define PK_ORIENTATION 0x1000 /* orientation info: tilts */ |
|
77 #define PK_ROTATION 0x2000 /* rotation info; 1.1 */ |
|
78 |
|
79 #endif |
|
80 |
|
81 typedef DWORD FIX32; /* fixed-point arithmetic type */ |
|
82 |
|
83 #ifndef NOFIX32 |
|
84 #define INT(x) HIWORD(x) |
|
85 #define FRAC(x) LOWORD(x) |
|
86 |
|
87 #define CASTFIX32(x) ((FIX32)((x)*65536L)) |
|
88 |
|
89 #define ROUND(x) (INT(x) + (FRAC(x) > (WORD)0x8000)) |
|
90 |
|
91 #define FIX_MUL(c, a, b) \ |
|
92 (c = (((DWORD)FRAC(a) * FRAC(b)) >> 16) + \ |
|
93 (DWORD)INT(a) * FRAC(b) + \ |
|
94 (DWORD)INT(b) * FRAC(a) + \ |
|
95 ((DWORD)INT(a) * INT(b) << 16)) |
|
96 |
|
97 #ifdef _WINDLL |
|
98 #define FIX_DIV_SC static |
|
99 #else |
|
100 #define FIX_DIV_SC |
|
101 #endif |
|
102 |
|
103 #define FIX_DIV(c, a, b) \ |
|
104 { \ |
|
105 FIX_DIV_SC DWORD temp, rem, btemp; \ |
|
106 \ |
|
107 /* fraction done bytewise */ \ |
|
108 temp = ((a / b) << 16); \ |
|
109 rem = a % b; \ |
|
110 btemp = b; \ |
|
111 if (INT(btemp) < 256) { \ |
|
112 rem <<= 8; \ |
|
113 } \ |
|
114 else { \ |
|
115 btemp >>= 8; \ |
|
116 } \ |
|
117 temp += ((rem / btemp) << 8); \ |
|
118 rem %= btemp; \ |
|
119 rem <<= 8; \ |
|
120 temp += rem / btemp; \ |
|
121 c = temp; \ |
|
122 } |
|
123 #endif |
|
124 |
|
125 /* -------------------------------------------------------------------------- */ |
|
126 /* INFO DATA DEFS */ |
|
127 |
|
128 #ifndef NOWTINFO |
|
129 |
|
130 #ifndef NOWTAXIS |
|
131 |
|
132 typedef struct tagAXIS { |
|
133 LONG axMin; |
|
134 LONG axMax; |
|
135 UINT axUnits; |
|
136 FIX32 axResolution; |
|
137 } AXIS, *PAXIS, NEAR *NPAXIS, FAR *LPAXIS; |
|
138 |
|
139 /* unit specifiers */ |
|
140 #define TU_NONE 0 |
|
141 #define TU_INCHES 1 |
|
142 #define TU_CENTIMETERS 2 |
|
143 #define TU_CIRCLE 3 |
|
144 |
|
145 #endif |
|
146 |
|
147 #ifndef NOWTSYSBUTTONS |
|
148 |
|
149 /* system button assignment values */ |
|
150 #define SBN_NONE 0x00 |
|
151 #define SBN_LCLICK 0x01 |
|
152 #define SBN_LDBLCLICK 0x02 |
|
153 #define SBN_LDRAG 0x03 |
|
154 #define SBN_RCLICK 0x04 |
|
155 #define SBN_RDBLCLICK 0x05 |
|
156 #define SBN_RDRAG 0x06 |
|
157 #define SBN_MCLICK 0x07 |
|
158 #define SBN_MDBLCLICK 0x08 |
|
159 #define SBN_MDRAG 0x09 |
|
160 /* for Pen Windows */ |
|
161 #define SBN_PTCLICK 0x10 |
|
162 #define SBN_PTDBLCLICK 0x20 |
|
163 #define SBN_PTDRAG 0x30 |
|
164 #define SBN_PNCLICK 0x40 |
|
165 #define SBN_PNDBLCLICK 0x50 |
|
166 #define SBN_PNDRAG 0x60 |
|
167 #define SBN_P1CLICK 0x70 |
|
168 #define SBN_P1DBLCLICK 0x80 |
|
169 #define SBN_P1DRAG 0x90 |
|
170 #define SBN_P2CLICK 0xA0 |
|
171 #define SBN_P2DBLCLICK 0xB0 |
|
172 #define SBN_P2DRAG 0xC0 |
|
173 #define SBN_P3CLICK 0xD0 |
|
174 #define SBN_P3DBLCLICK 0xE0 |
|
175 #define SBN_P3DRAG 0xF0 |
|
176 |
|
177 #endif |
|
178 |
|
179 #ifndef NOWTCAPABILITIES |
|
180 |
|
181 /* hardware capabilities */ |
|
182 #define HWC_INTEGRATED 0x0001 |
|
183 #define HWC_TOUCH 0x0002 |
|
184 #define HWC_HARDPROX 0x0004 |
|
185 #define HWC_PHYSID_CURSORS 0x0008 /* 1.1 */ |
|
186 #endif |
|
187 |
|
188 #ifndef NOWTIFC |
|
189 |
|
190 #ifndef NOWTCURSORS |
|
191 |
|
192 /* cursor capabilities */ |
|
193 #define CRC_MULTIMODE 0x0001 /* 1.1 */ |
|
194 #define CRC_AGGREGATE 0x0002 /* 1.1 */ |
|
195 #define CRC_INVERT 0x0004 /* 1.1 */ |
|
196 |
|
197 #endif |
|
198 |
|
199 /* info categories */ |
|
200 #define WTI_INTERFACE 1 |
|
201 #define IFC_WINTABID 1 |
|
202 #define IFC_SPECVERSION 2 |
|
203 #define IFC_IMPLVERSION 3 |
|
204 #define IFC_NDEVICES 4 |
|
205 #define IFC_NCURSORS 5 |
|
206 #define IFC_NCONTEXTS 6 |
|
207 #define IFC_CTXOPTIONS 7 |
|
208 #define IFC_CTXSAVESIZE 8 |
|
209 #define IFC_NEXTENSIONS 9 |
|
210 #define IFC_NMANAGERS 10 |
|
211 #define IFC_MAX 10 |
|
212 |
|
213 |
|
214 #endif |
|
215 |
|
216 #ifndef NOWTSTATUS |
|
217 |
|
218 #define WTI_STATUS 2 |
|
219 #define STA_CONTEXTS 1 |
|
220 #define STA_SYSCTXS 2 |
|
221 #define STA_PKTRATE 3 |
|
222 #define STA_PKTDATA 4 |
|
223 #define STA_MANAGERS 5 |
|
224 #define STA_SYSTEM 6 |
|
225 #define STA_BUTTONUSE 7 |
|
226 #define STA_SYSBTNUSE 8 |
|
227 #define STA_MAX 8 |
|
228 |
|
229 #endif |
|
230 |
|
231 #ifndef NOWTDEFCONTEXT |
|
232 |
|
233 #define WTI_DEFCONTEXT 3 |
|
234 #define WTI_DEFSYSCTX 4 |
|
235 #define WTI_DDCTXS 400 /* 1.1 */ |
|
236 #define WTI_DSCTXS 500 /* 1.1 */ |
|
237 #define CTX_NAME 1 |
|
238 #define CTX_OPTIONS 2 |
|
239 #define CTX_STATUS 3 |
|
240 #define CTX_LOCKS 4 |
|
241 #define CTX_MSGBASE 5 |
|
242 #define CTX_DEVICE 6 |
|
243 #define CTX_PKTRATE 7 |
|
244 #define CTX_PKTDATA 8 |
|
245 #define CTX_PKTMODE 9 |
|
246 #define CTX_MOVEMASK 10 |
|
247 #define CTX_BTNDNMASK 11 |
|
248 #define CTX_BTNUPMASK 12 |
|
249 #define CTX_INORGX 13 |
|
250 #define CTX_INORGY 14 |
|
251 #define CTX_INORGZ 15 |
|
252 #define CTX_INEXTX 16 |
|
253 #define CTX_INEXTY 17 |
|
254 #define CTX_INEXTZ 18 |
|
255 #define CTX_OUTORGX 19 |
|
256 #define CTX_OUTORGY 20 |
|
257 #define CTX_OUTORGZ 21 |
|
258 #define CTX_OUTEXTX 22 |
|
259 #define CTX_OUTEXTY 23 |
|
260 #define CTX_OUTEXTZ 24 |
|
261 #define CTX_SENSX 25 |
|
262 #define CTX_SENSY 26 |
|
263 #define CTX_SENSZ 27 |
|
264 #define CTX_SYSMODE 28 |
|
265 #define CTX_SYSORGX 29 |
|
266 #define CTX_SYSORGY 30 |
|
267 #define CTX_SYSEXTX 31 |
|
268 #define CTX_SYSEXTY 32 |
|
269 #define CTX_SYSSENSX 33 |
|
270 #define CTX_SYSSENSY 34 |
|
271 #define CTX_MAX 34 |
|
272 |
|
273 #endif |
|
274 |
|
275 #ifndef NOWTDEVICES |
|
276 |
|
277 #define WTI_DEVICES 100 |
|
278 #define DVC_NAME 1 |
|
279 #define DVC_HARDWARE 2 |
|
280 #define DVC_NCSRTYPES 3 |
|
281 #define DVC_FIRSTCSR 4 |
|
282 #define DVC_PKTRATE 5 |
|
283 #define DVC_PKTDATA 6 |
|
284 #define DVC_PKTMODE 7 |
|
285 #define DVC_CSRDATA 8 |
|
286 #define DVC_XMARGIN 9 |
|
287 #define DVC_YMARGIN 10 |
|
288 #define DVC_ZMARGIN 11 |
|
289 #define DVC_X 12 |
|
290 #define DVC_Y 13 |
|
291 #define DVC_Z 14 |
|
292 #define DVC_NPRESSURE 15 |
|
293 #define DVC_TPRESSURE 16 |
|
294 #define DVC_ORIENTATION 17 |
|
295 #define DVC_ROTATION 18 /* 1.1 */ |
|
296 #define DVC_PNPID 19 /* 1.1 */ |
|
297 #define DVC_MAX 19 |
|
298 |
|
299 #endif |
|
300 |
|
301 #ifndef NOWTCURSORS |
|
302 |
|
303 #define WTI_CURSORS 200 |
|
304 #define CSR_NAME 1 |
|
305 #define CSR_ACTIVE 2 |
|
306 #define CSR_PKTDATA 3 |
|
307 #define CSR_BUTTONS 4 |
|
308 #define CSR_BUTTONBITS 5 |
|
309 #define CSR_BTNNAMES 6 |
|
310 #define CSR_BUTTONMAP 7 |
|
311 #define CSR_SYSBTNMAP 8 |
|
312 #define CSR_NPBUTTON 9 |
|
313 #define CSR_NPBTNMARKS 10 |
|
314 #define CSR_NPRESPONSE 11 |
|
315 #define CSR_TPBUTTON 12 |
|
316 #define CSR_TPBTNMARKS 13 |
|
317 #define CSR_TPRESPONSE 14 |
|
318 #define CSR_PHYSID 15 /* 1.1 */ |
|
319 #define CSR_MODE 16 /* 1.1 */ |
|
320 #define CSR_MINPKTDATA 17 /* 1.1 */ |
|
321 #define CSR_MINBUTTONS 18 /* 1.1 */ |
|
322 #define CSR_CAPABILITIES 19 /* 1.1 */ |
|
323 #define CSR_TYPE 20 /* 1.2 */ |
|
324 #define CSR_MAX 20 |
|
325 |
|
326 #endif |
|
327 |
|
328 #ifndef NOWTEXTENSIONS |
|
329 |
|
330 #define WTI_EXTENSIONS 300 |
|
331 #define EXT_NAME 1 |
|
332 #define EXT_TAG 2 |
|
333 #define EXT_MASK 3 |
|
334 #define EXT_SIZE 4 |
|
335 #define EXT_AXES 5 |
|
336 #define EXT_DEFAULT 6 |
|
337 #define EXT_DEFCONTEXT 7 |
|
338 #define EXT_DEFSYSCTX 8 |
|
339 #define EXT_CURSORS 9 |
|
340 #define EXT_MAX 109 /* Allow 100 cursors */ |
|
341 |
|
342 #endif |
|
343 |
|
344 #endif |
|
345 |
|
346 /* -------------------------------------------------------------------------- */ |
|
347 /* CONTEXT DATA DEFS */ |
|
348 |
|
349 #define LCNAMELEN 40 |
|
350 #define LC_NAMELEN 40 |
|
351 #ifdef WIN32 |
|
352 typedef struct tagLOGCONTEXTA { |
|
353 char lcName[LCNAMELEN]; |
|
354 UINT lcOptions; |
|
355 UINT lcStatus; |
|
356 UINT lcLocks; |
|
357 UINT lcMsgBase; |
|
358 UINT lcDevice; |
|
359 UINT lcPktRate; |
|
360 WTPKT lcPktData; |
|
361 WTPKT lcPktMode; |
|
362 WTPKT lcMoveMask; |
|
363 DWORD lcBtnDnMask; |
|
364 DWORD lcBtnUpMask; |
|
365 LONG lcInOrgX; |
|
366 LONG lcInOrgY; |
|
367 LONG lcInOrgZ; |
|
368 LONG lcInExtX; |
|
369 LONG lcInExtY; |
|
370 LONG lcInExtZ; |
|
371 LONG lcOutOrgX; |
|
372 LONG lcOutOrgY; |
|
373 LONG lcOutOrgZ; |
|
374 LONG lcOutExtX; |
|
375 LONG lcOutExtY; |
|
376 LONG lcOutExtZ; |
|
377 FIX32 lcSensX; |
|
378 FIX32 lcSensY; |
|
379 FIX32 lcSensZ; |
|
380 BOOL lcSysMode; |
|
381 int lcSysOrgX; |
|
382 int lcSysOrgY; |
|
383 int lcSysExtX; |
|
384 int lcSysExtY; |
|
385 FIX32 lcSysSensX; |
|
386 FIX32 lcSysSensY; |
|
387 } LOGCONTEXTA, *PLOGCONTEXTA, NEAR *NPLOGCONTEXTA, FAR *LPLOGCONTEXTA; |
|
388 typedef struct tagLOGCONTEXTW { |
|
389 WCHAR lcName[LCNAMELEN]; |
|
390 UINT lcOptions; |
|
391 UINT lcStatus; |
|
392 UINT lcLocks; |
|
393 UINT lcMsgBase; |
|
394 UINT lcDevice; |
|
395 UINT lcPktRate; |
|
396 WTPKT lcPktData; |
|
397 WTPKT lcPktMode; |
|
398 WTPKT lcMoveMask; |
|
399 DWORD lcBtnDnMask; |
|
400 DWORD lcBtnUpMask; |
|
401 LONG lcInOrgX; |
|
402 LONG lcInOrgY; |
|
403 LONG lcInOrgZ; |
|
404 LONG lcInExtX; |
|
405 LONG lcInExtY; |
|
406 LONG lcInExtZ; |
|
407 LONG lcOutOrgX; |
|
408 LONG lcOutOrgY; |
|
409 LONG lcOutOrgZ; |
|
410 LONG lcOutExtX; |
|
411 LONG lcOutExtY; |
|
412 LONG lcOutExtZ; |
|
413 FIX32 lcSensX; |
|
414 FIX32 lcSensY; |
|
415 FIX32 lcSensZ; |
|
416 BOOL lcSysMode; |
|
417 int lcSysOrgX; |
|
418 int lcSysOrgY; |
|
419 int lcSysExtX; |
|
420 int lcSysExtY; |
|
421 FIX32 lcSysSensX; |
|
422 FIX32 lcSysSensY; |
|
423 } LOGCONTEXTW, *PLOGCONTEXTW, NEAR *NPLOGCONTEXTW, FAR *LPLOGCONTEXTW; |
|
424 #ifdef UNICODE |
|
425 typedef LOGCONTEXTW LOGCONTEXT; |
|
426 typedef PLOGCONTEXTW PLOGCONTEXT; |
|
427 typedef NPLOGCONTEXTW NPLOGCONTEXT; |
|
428 typedef LPLOGCONTEXTW LPLOGCONTEXT; |
|
429 #else |
|
430 typedef LOGCONTEXTA LOGCONTEXT; |
|
431 typedef PLOGCONTEXTA PLOGCONTEXT; |
|
432 typedef NPLOGCONTEXTA NPLOGCONTEXT; |
|
433 typedef LPLOGCONTEXTA LPLOGCONTEXT; |
|
434 #endif /* UNICODE */ |
|
435 #else /* WIN32 */ |
|
436 typedef struct tagLOGCONTEXT { |
|
437 char lcName[LCNAMELEN]; |
|
438 UINT lcOptions; |
|
439 UINT lcStatus; |
|
440 UINT lcLocks; |
|
441 UINT lcMsgBase; |
|
442 UINT lcDevice; |
|
443 UINT lcPktRate; |
|
444 WTPKT lcPktData; |
|
445 WTPKT lcPktMode; |
|
446 WTPKT lcMoveMask; |
|
447 DWORD lcBtnDnMask; |
|
448 DWORD lcBtnUpMask; |
|
449 LONG lcInOrgX; |
|
450 LONG lcInOrgY; |
|
451 LONG lcInOrgZ; |
|
452 LONG lcInExtX; |
|
453 LONG lcInExtY; |
|
454 LONG lcInExtZ; |
|
455 LONG lcOutOrgX; |
|
456 LONG lcOutOrgY; |
|
457 LONG lcOutOrgZ; |
|
458 LONG lcOutExtX; |
|
459 LONG lcOutExtY; |
|
460 LONG lcOutExtZ; |
|
461 FIX32 lcSensX; |
|
462 FIX32 lcSensY; |
|
463 FIX32 lcSensZ; |
|
464 BOOL lcSysMode; |
|
465 int lcSysOrgX; |
|
466 int lcSysOrgY; |
|
467 int lcSysExtX; |
|
468 int lcSysExtY; |
|
469 FIX32 lcSysSensX; |
|
470 FIX32 lcSysSensY; |
|
471 } LOGCONTEXT, *PLOGCONTEXT, NEAR *NPLOGCONTEXT, FAR *LPLOGCONTEXT; |
|
472 #endif /* WIN32 */ |
|
473 |
|
474 /* context option values */ |
|
475 #define CXO_SYSTEM 0x0001 |
|
476 #define CXO_PEN 0x0002 |
|
477 #define CXO_MESSAGES 0x0004 |
|
478 #define CXO_MARGIN 0x8000 |
|
479 #define CXO_MGNINSIDE 0x4000 |
|
480 #define CXO_CSRMESSAGES 0x0008 /* 1.1 */ |
|
481 |
|
482 /* context status values */ |
|
483 #define CXS_DISABLED 0x0001 |
|
484 #define CXS_OBSCURED 0x0002 |
|
485 #define CXS_ONTOP 0x0004 |
|
486 |
|
487 /* context lock values */ |
|
488 #define CXL_INSIZE 0x0001 |
|
489 #define CXL_INASPECT 0x0002 |
|
490 #define CXL_SENSITIVITY 0x0004 |
|
491 #define CXL_MARGIN 0x0008 |
|
492 #define CXL_SYSOUT 0x0010 |
|
493 |
|
494 /* -------------------------------------------------------------------------- */ |
|
495 /* EVENT DATA DEFS */ |
|
496 |
|
497 /* For packet structure definition, see pktdef.h */ |
|
498 |
|
499 /* packet status values */ |
|
500 #define TPS_PROXIMITY 0x0001 |
|
501 #define TPS_QUEUE_ERR 0x0002 |
|
502 #define TPS_MARGIN 0x0004 |
|
503 #define TPS_GRAB 0x0008 |
|
504 #define TPS_INVERT 0x0010 /* 1.1 */ |
|
505 |
|
506 typedef struct tagORIENTATION { |
|
507 int orAzimuth; |
|
508 int orAltitude; |
|
509 int orTwist; |
|
510 } ORIENTATION, *PORIENTATION, NEAR *NPORIENTATION, FAR *LPORIENTATION; |
|
511 |
|
512 typedef struct tagROTATION { /* 1.1 */ |
|
513 int roPitch; |
|
514 int roRoll; |
|
515 int roYaw; |
|
516 } ROTATION, *PROTATION, NEAR *NPROTATION, FAR *LPROTATION; |
|
517 // grandfather in obsolete member names. |
|
518 #define rotPitch roPitch |
|
519 #define rotRoll roRoll |
|
520 #define rotYaw roYaw |
|
521 |
|
522 /* relative buttons */ |
|
523 #define TBN_NONE 0 |
|
524 #define TBN_UP 1 |
|
525 #define TBN_DOWN 2 |
|
526 |
|
527 /* -------------------------------------------------------------------------- */ |
|
528 /* DEVICE CONFIG CONSTANTS */ |
|
529 |
|
530 #ifndef NOWTDEVCFG |
|
531 |
|
532 #define WTDC_NONE 0 |
|
533 #define WTDC_CANCEL 1 |
|
534 #define WTDC_OK 2 |
|
535 #define WTDC_RESTART 3 |
|
536 |
|
537 #endif |
|
538 |
|
539 /* -------------------------------------------------------------------------- */ |
|
540 /* HOOK CONSTANTS */ |
|
541 |
|
542 #ifndef NOWTHOOKS |
|
543 |
|
544 #define WTH_PLAYBACK 1 |
|
545 #define WTH_RECORD 2 |
|
546 |
|
547 #define WTHC_GETLPLPFN (-3) |
|
548 #define WTHC_LPLPFNNEXT (-2) |
|
549 #define WTHC_LPFNNEXT (-1) |
|
550 #define WTHC_ACTION 0 |
|
551 #define WTHC_GETNEXT 1 |
|
552 #define WTHC_SKIP 2 |
|
553 |
|
554 #endif |
|
555 |
|
556 /* -------------------------------------------------------------------------- */ |
|
557 /* PREFERENCE FUNCTION CONSTANTS */ |
|
558 |
|
559 #ifndef NOWTPREF |
|
560 |
|
561 #define WTP_LPDEFAULT ((LPVOID)-1L) |
|
562 #define WTP_DWDEFAULT ((DWORD)-1L) |
|
563 |
|
564 #endif |
|
565 |
|
566 /* -------------------------------------------------------------------------- */ |
|
567 /* EXTENSION TAGS AND CONSTANTS */ |
|
568 |
|
569 #ifndef NOWTEXTENSIONS |
|
570 |
|
571 /* constants for use with pktdef.h */ |
|
572 #define PKEXT_ABSOLUTE 1 |
|
573 #define PKEXT_RELATIVE 2 |
|
574 |
|
575 /* Extension tags. */ |
|
576 #define WTX_OBT 0 /* Out of bounds tracking */ |
|
577 #define WTX_FKEYS 1 /* Function keys */ |
|
578 #define WTX_TILT 2 /* Raw Cartesian tilt; 1.1 */ |
|
579 #define WTX_CSRMASK 3 /* select input by cursor type; 1.1 */ |
|
580 #define WTX_XBTNMASK 4 /* Extended button mask; 1.1 */ |
|
581 |
|
582 typedef struct tagXBTNMASK { |
|
583 BYTE xBtnDnMask[32]; |
|
584 BYTE xBtnUpMask[32]; |
|
585 } XBTNMASK; |
|
586 |
|
587 typedef struct tagTILT { /* 1.1 */ |
|
588 int tiltX; |
|
589 int tiltY; |
|
590 } TILT; |
|
591 |
|
592 #endif |
|
593 |
|
594 /* -------------------------------------------------------------------------- */ |
|
595 /* -------------------------------------------------------------------------- */ |
|
596 /* Functions */ |
|
597 |
|
598 #ifndef API |
|
599 #ifndef WINAPI |
|
600 #define API FAR PASCAL |
|
601 #else |
|
602 #define API WINAPI |
|
603 #endif |
|
604 #endif |
|
605 |
|
606 #ifndef NOWTCALLBACKS |
|
607 |
|
608 #ifndef CALLBACK |
|
609 #define CALLBACK FAR PASCAL |
|
610 #endif |
|
611 |
|
612 #ifndef NOWTMANAGERFXNS |
|
613 /* callback function types */ |
|
614 typedef BOOL (WINAPI * WTENUMPROC)(HCTX, LPARAM); /* changed CALLBACK->WINAPI, 1.1 */ |
|
615 typedef BOOL (WINAPI * WTCONFIGPROC)(HCTX, HWND); |
|
616 typedef LRESULT (WINAPI * WTHOOKPROC)(int, WPARAM, LPARAM); |
|
617 typedef WTHOOKPROC FAR *LPWTHOOKPROC; |
|
618 #endif |
|
619 |
|
620 #endif |
|
621 |
|
622 |
|
623 #ifndef NOWTFUNCTIONS |
|
624 |
|
625 #ifndef NOWTBASICFXNS |
|
626 /* BASIC FUNCTIONS */ |
|
627 #ifdef WIN32 |
|
628 UINT API WTInfoA(UINT, UINT, LPVOID); |
|
629 #define ORD_WTInfoA 20 |
|
630 UINT API WTInfoW(UINT, UINT, LPVOID); |
|
631 #define ORD_WTInfoW 1020 |
|
632 #ifdef UNICODE |
|
633 #define WTInfo WTInfoW |
|
634 #define ORD_WTInfo ORD_WTInfoW |
|
635 #else |
|
636 #define WTInfo WTInfoA |
|
637 #define ORD_WTInfo ORD_WTInfoA |
|
638 #endif /* !UNICODE */ |
|
639 #else |
|
640 UINT API WTInfo(UINT, UINT, LPVOID); |
|
641 #define ORD_WTInfo 20 |
|
642 #endif |
|
643 #ifdef WIN32 |
|
644 HCTX API WTOpenA(HWND, LPLOGCONTEXTA, BOOL); |
|
645 #define ORD_WTOpenA 21 |
|
646 HCTX API WTOpenW(HWND, LPLOGCONTEXTW, BOOL); |
|
647 #define ORD_WTOpenW 1021 |
|
648 #ifdef UNICODE |
|
649 #define WTOpen WTOpenW |
|
650 #define ORD_WTOpen ORD_WTOpenW |
|
651 #else |
|
652 #define WTOpen WTOpenA |
|
653 #define ORD_WTOpen ORD_WTOpenA |
|
654 #endif /* !UNICODE */ |
|
655 #else |
|
656 HCTX API WTOpen(HWND, LPLOGCONTEXT, BOOL); |
|
657 #define ORD_WTOpen 21 |
|
658 #endif |
|
659 BOOL API WTClose(HCTX); |
|
660 #define ORD_WTClose 22 |
|
661 int API WTPacketsGet(HCTX, int, LPVOID); |
|
662 #define ORD_WTPacketsGet 23 |
|
663 BOOL API WTPacket(HCTX, UINT, LPVOID); |
|
664 #define ORD_WTPacket 24 |
|
665 #endif |
|
666 |
|
667 #ifndef NOWTVISIBILITYFXNS |
|
668 /* VISIBILITY FUNCTIONS */ |
|
669 BOOL API WTEnable(HCTX, BOOL); |
|
670 #define ORD_WTEnable 40 |
|
671 BOOL API WTOverlap(HCTX, BOOL); |
|
672 #define ORD_WTOverlap 41 |
|
673 #endif |
|
674 |
|
675 #ifndef NOWTCTXEDITFXNS |
|
676 /* CONTEXT EDITING FUNCTIONS */ |
|
677 BOOL API WTConfig(HCTX, HWND); |
|
678 #define ORD_WTConfig 60 |
|
679 #ifdef WIN32 |
|
680 BOOL API WTGetA(HCTX, LPLOGCONTEXTA); |
|
681 #define ORD_WTGetA 61 |
|
682 BOOL API WTGetW(HCTX, LPLOGCONTEXTW); |
|
683 #define ORD_WTGetW 1061 |
|
684 #ifdef UNICODE |
|
685 #define WTGet WTGetW |
|
686 #define ORD_WTGet ORD_WTGetW |
|
687 #else |
|
688 #define WTGet WTGetA |
|
689 #define ORD_WTGet ORD_WTGetA |
|
690 #endif /* !UNICODE */ |
|
691 #else |
|
692 BOOL API WTGet(HCTX, LPLOGCONTEXT); |
|
693 #define ORD_WTGet 61 |
|
694 #endif |
|
695 #ifdef WIN32 |
|
696 BOOL API WTSetA(HCTX, LPLOGCONTEXTA); |
|
697 #define ORD_WTSetA 62 |
|
698 BOOL API WTSetW(HCTX, LPLOGCONTEXTW); |
|
699 #define ORD_WTSetW 1062 |
|
700 #ifdef UNICODE |
|
701 #define WTSet WTSetW |
|
702 #define ORD_WTSet ORD_WTSetW |
|
703 #else |
|
704 #define WTSet WTSetA |
|
705 #define ORD_WTSet ORD_WTSetA |
|
706 #endif /* !UNICODE */ |
|
707 #else |
|
708 BOOL API WTSet(HCTX, LPLOGCONTEXT); |
|
709 #define ORD_WTSet 62 |
|
710 #endif |
|
711 BOOL API WTExtGet(HCTX, UINT, LPVOID); |
|
712 #define ORD_WTExtGet 63 |
|
713 BOOL API WTExtSet(HCTX, UINT, LPVOID); |
|
714 #define ORD_WTExtSet 64 |
|
715 BOOL API WTSave(HCTX, LPVOID); |
|
716 #define ORD_WTSave 65 |
|
717 HCTX API WTRestore(HWND, LPVOID, BOOL); |
|
718 #define ORD_WTRestore 66 |
|
719 #endif |
|
720 |
|
721 #ifndef NOWTQUEUEFXNS |
|
722 /* ADVANCED PACKET AND QUEUE FUNCTIONS */ |
|
723 int API WTPacketsPeek(HCTX, int, LPVOID); |
|
724 #define ORD_WTPacketsPeek 80 |
|
725 int API WTDataGet(HCTX, UINT, UINT, int, LPVOID, LPINT); |
|
726 #define ORD_WTDataGet 81 |
|
727 int API WTDataPeek(HCTX, UINT, UINT, int, LPVOID, LPINT); |
|
728 #define ORD_WTDataPeek 82 |
|
729 #ifndef WIN32 |
|
730 /* OBSOLETE IN WIN32! */ |
|
731 DWORD API WTQueuePackets(HCTX); |
|
732 #define ORD_WTQueuePackets 83 |
|
733 #endif |
|
734 int API WTQueueSizeGet(HCTX); |
|
735 #define ORD_WTQueueSizeGet 84 |
|
736 BOOL API WTQueueSizeSet(HCTX, int); |
|
737 #define ORD_WTQueueSizeSet 85 |
|
738 #endif |
|
739 |
|
740 #ifndef NOWTHMGRFXNS |
|
741 /* MANAGER HANDLE FUNCTIONS */ |
|
742 HMGR API WTMgrOpen(HWND, UINT); |
|
743 #define ORD_WTMgrOpen 100 |
|
744 BOOL API WTMgrClose(HMGR); |
|
745 #define ORD_WTMgrClose 101 |
|
746 #endif |
|
747 |
|
748 #ifndef NOWTMGRCTXFXNS |
|
749 /* MANAGER CONTEXT FUNCTIONS */ |
|
750 BOOL API WTMgrContextEnum(HMGR, WTENUMPROC, LPARAM); |
|
751 #define ORD_WTMgrContextEnum 120 |
|
752 HWND API WTMgrContextOwner(HMGR, HCTX); |
|
753 #define ORD_WTMgrContextOwner 121 |
|
754 HCTX API WTMgrDefContext(HMGR, BOOL); |
|
755 #define ORD_WTMgrDefContext 122 |
|
756 HCTX API WTMgrDefContextEx(HMGR, UINT, BOOL); /* 1.1 */ |
|
757 #define ORD_WTMgrDefContextEx 206 |
|
758 #endif |
|
759 |
|
760 #ifndef NOWTMGRCONFIGFXNS |
|
761 /* MANAGER CONFIG BOX FUNCTIONS */ |
|
762 UINT API WTMgrDeviceConfig(HMGR, UINT, HWND); |
|
763 #define ORD_WTMgrDeviceConfig 140 |
|
764 #ifndef WIN32 |
|
765 /* OBSOLETE IN WIN32! */ |
|
766 BOOL API WTMgrConfigReplace(HMGR, BOOL, WTCONFIGPROC); |
|
767 #define ORD_WTMgrConfigReplace 141 |
|
768 #endif |
|
769 #endif |
|
770 |
|
771 #ifndef NOWTMGRHOOKFXNS |
|
772 /* MANAGER PACKET HOOK FUNCTIONS */ |
|
773 #ifndef WIN32 |
|
774 /* OBSOLETE IN WIN32! */ |
|
775 WTHOOKPROC API WTMgrPacketHook(HMGR, BOOL, int, WTHOOKPROC); |
|
776 #define ORD_WTMgrPacketHook 160 |
|
777 LRESULT API WTMgrPacketHookDefProc(int, WPARAM, LPARAM, LPWTHOOKPROC); |
|
778 #define ORD_WTMgrPacketHookDefProc 161 |
|
779 #endif |
|
780 #endif |
|
781 |
|
782 #ifndef NOWTMGRPREFFXNS |
|
783 /* MANAGER PREFERENCE DATA FUNCTIONS */ |
|
784 BOOL API WTMgrExt(HMGR, UINT, LPVOID); |
|
785 #define ORD_WTMgrExt 180 |
|
786 BOOL API WTMgrCsrEnable(HMGR, UINT, BOOL); |
|
787 #define ORD_WTMgrCsrEnable 181 |
|
788 BOOL API WTMgrCsrButtonMap(HMGR, UINT, LPBYTE, LPBYTE); |
|
789 #define ORD_WTMgrCsrButtonMap 182 |
|
790 BOOL API WTMgrCsrPressureBtnMarks(HMGR, UINT, DWORD, DWORD); |
|
791 #define ORD_WTMgrCsrPressureBtnMarks 183 |
|
792 BOOL API WTMgrCsrPressureResponse(HMGR, UINT, UINT FAR *, UINT FAR *); |
|
793 #define ORD_WTMgrCsrPressureResponse 184 |
|
794 BOOL API WTMgrCsrExt(HMGR, UINT, UINT, LPVOID); |
|
795 #define ORD_WTMgrCsrExt 185 |
|
796 #endif |
|
797 |
|
798 /* Win32 replacements for non-portable functions. */ |
|
799 #ifndef NOWTQUEUEFXNS |
|
800 /* ADVANCED PACKET AND QUEUE FUNCTIONS */ |
|
801 BOOL API WTQueuePacketsEx(HCTX, UINT FAR *, UINT FAR *); |
|
802 #define ORD_WTQueuePacketsEx 200 |
|
803 #endif |
|
804 |
|
805 #ifndef NOWTMGRCONFIGFXNS |
|
806 /* MANAGER CONFIG BOX FUNCTIONS */ |
|
807 #ifdef WIN32 |
|
808 BOOL API WTMgrConfigReplaceExA(HMGR, BOOL, LPSTR, LPSTR); |
|
809 #define ORD_WTMgrConfigReplaceExA 202 |
|
810 BOOL API WTMgrConfigReplaceExW(HMGR, BOOL, LPWSTR, LPSTR); |
|
811 #define ORD_WTMgrConfigReplaceExW 1202 |
|
812 #ifdef UNICODE |
|
813 #define WTMgrConfigReplaceEx WTMgrConfigReplaceExW |
|
814 #define ORD_WTMgrConfigReplaceEx ORD_WTMgrConfigReplaceExW |
|
815 #else |
|
816 #define WTMgrConfigReplaceEx WTMgrConfigReplaceExA |
|
817 #define ORD_WTMgrConfigReplaceEx ORD_WTMgrConfigReplaceExA |
|
818 #endif /* !UNICODE */ |
|
819 #else |
|
820 BOOL API WTMgrConfigReplaceEx(HMGR, BOOL, LPSTR, LPSTR); |
|
821 #define ORD_WTMgrConfigReplaceEx 202 |
|
822 #endif |
|
823 #endif |
|
824 |
|
825 #ifndef NOWTMGRHOOKFXNS |
|
826 /* MANAGER PACKET HOOK FUNCTIONS */ |
|
827 #ifdef WIN32 |
|
828 HWTHOOK API WTMgrPacketHookExA(HMGR, int, LPSTR, LPSTR); |
|
829 #define ORD_WTMgrPacketHookExA 203 |
|
830 HWTHOOK API WTMgrPacketHookExW(HMGR, int, LPWSTR, LPSTR); |
|
831 #define ORD_WTMgrPacketHookExW 1203 |
|
832 #ifdef UNICODE |
|
833 #define WTMgrPacketHookEx WTMgrPacketHookExW |
|
834 #define ORD_WTMgrPacketHookEx ORD_WTMgrPacketHookExW |
|
835 #else |
|
836 #define WTMgrPacketHookEx WTMgrPacketHookExA |
|
837 #define ORD_WTMgrPacketHookEx ORD_WTMgrPacketHookExA |
|
838 #endif /* !UNICODE */ |
|
839 #else |
|
840 HWTHOOK API WTMgrPacketHookEx(HMGR, int, LPSTR, LPSTR); |
|
841 #define ORD_WTMgrPacketHookEx 203 |
|
842 #endif |
|
843 BOOL API WTMgrPacketUnhook(HWTHOOK); |
|
844 #define ORD_WTMgrPacketUnhook 204 |
|
845 LRESULT API WTMgrPacketHookNext(HWTHOOK, int, WPARAM, LPARAM); |
|
846 #define ORD_WTMgrPacketHookNext 205 |
|
847 #endif |
|
848 |
|
849 #ifndef NOWTMGRPREFFXNS |
|
850 /* MANAGER PREFERENCE DATA FUNCTIONS */ |
|
851 BOOL API WTMgrCsrPressureBtnMarksEx(HMGR, UINT, UINT FAR *, UINT FAR *); |
|
852 #define ORD_WTMgrCsrPressureBtnMarksEx 201 |
|
853 #endif |
|
854 |
|
855 |
|
856 |
|
857 #endif |
|
858 |
|
859 #ifdef __cplusplus |
|
860 } |
|
861 #endif /* __cplusplus */ |
|
862 |
|
863 #endif /* #define _INC_WINTAB */ |
|
864 |