ntdll: Fix the initial FPU control word on 64-bit.
[wine/multimedia.git] / include / wintab.h
blobd10371b0217a2eebeb43cbf9ed3b1beab669f4f0
1 /*
2 * Copyright (C) 1991-1998 by LCS/Telegraphics
3 * Copyright (C) 2002 Patrik Stridvall
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 #ifndef __WINE_WINTAB_H
21 #define __WINE_WINTAB_H
23 #ifdef __cplusplus
24 extern "C" {
25 #endif /* defined(__cplusplus) */
27 /***********************************************************************
28 * Messages
30 #ifndef NOWTMESSAGES
32 #define WT_DEFBASE 0x7FF0
33 #define WT_MAXOFFSET 0xF
35 #define _WT_PACKET(b) ((b)+0)
36 #define _WT_CTXOPEN(b) ((b)+1)
37 #define _WT_CTXCLOSE(b) ((b)+2)
38 #define _WT_CTXUPDATE(b) ((b)+3)
39 #define _WT_CTXOVERLAP(b) ((b)+4)
40 #define _WT_PROXIMITY(b) ((b)+5)
41 #define _WT_INFOCHANGE(b) ((b)+6)
42 #define _WT_CSRCHANGE(b) ((b)+7) /* 1.1 */
43 #define _WT_MAX(b) ((b)+WT_MAXOFFSET)
45 #define WT_PACKET _WT_PACKET(WT_DEFBASE)
46 #define WT_CTXOPEN _WT_CTXOPEN(WT_DEFBASE)
47 #define WT_CTXCLOSE _WT_CTXCLOSE(WT_DEFBASE)
48 #define WT_CTXUPDATE _WT_CTXUPDATE(WT_DEFBASE)
49 #define WT_CTXOVERLAP _WT_CTXOVERLAP(WT_DEFBASE)
50 #define WT_PROXIMITY _WT_PROXIMITY(WT_DEFBASE)
51 #define WT_INFOCHANGE _WT_INFOCHANGE(WT_DEFBASE)
52 #define WT_CSRCHANGE _WT_CSRCHANGE(WT_DEFBASE) /* 1.1 */
53 #define WT_MAX _WT_MAX(WT_DEFBASE)
55 #endif
57 /***********************************************************************
58 * COMMON DATA DEFS
61 DECLARE_HANDLE(HMGR); /* manager handle */
62 DECLARE_HANDLE(HCTX); /* context handle */
63 DECLARE_HANDLE(HWTHOOK); /* hook handle */
65 typedef DWORD WTPKT; /* packet mask */
67 #ifndef NOWTPKT
69 /* WTPKT bits */
70 #define PK_CONTEXT 0x0001 /* reporting context */
71 #define PK_STATUS 0x0002 /* status bits */
72 #define PK_TIME 0x0004 /* time stamp */
73 #define PK_CHANGED 0x0008 /* change bit vector */
74 #define PK_SERIAL_NUMBER 0x0010 /* packet serial number */
75 #define PK_CURSOR 0x0020 /* reporting cursor */
76 #define PK_BUTTONS 0x0040 /* button information */
77 #define PK_X 0x0080 /* x axis */
78 #define PK_Y 0x0100 /* y axis */
79 #define PK_Z 0x0200 /* z axis */
80 #define PK_NORMAL_PRESSURE 0x0400 /* normal or tip pressure */
81 #define PK_TANGENT_PRESSURE 0x0800 /* tangential or barrel pressure */
82 #define PK_ORIENTATION 0x1000 /* orientation info: tilts */
83 #define PK_ROTATION 0x2000 /* rotation info; 1.1 */
85 #endif
87 typedef DWORD FIX32; /* fixed-point arithmetic type */
89 #ifndef NOFIX32
91 #define INT(x) HIWORD(x)
92 #define FRAC(x) LOWORD(x)
94 #define CASTFIX32(x) ((FIX32)((x)*65536L))
96 #define ROUND(x) (INT(x) + (FRAC(x) > (WORD)0x8000))
98 #define FIX_MUL(c, a, b) \
99 (c = (((DWORD)FRAC(a) * FRAC(b)) >> 16) + \
100 (DWORD)INT(a) * FRAC(b) + \
101 (DWORD)INT(b) * FRAC(a) + \
102 ((DWORD)INT(a) * INT(b) << 16))
104 #ifdef _WINDLL
105 # define FIX_DIV_SC static
106 #else
107 # define FIX_DIV_SC
108 # endif
110 #define FIX_DIV(c, a, b) \
112 FIX_DIV_SC DWORD temp, rem, btemp; \
114 /* fraction done bytewise */ \
115 temp = ((a / b) << 16); \
116 rem = a % b; \
117 btemp = b; \
118 if (INT(btemp) < 256) { \
119 rem <<= 8; \
120 } else { \
121 btemp >>= 8; \
123 temp += ((rem / btemp) << 8); \
124 rem %= btemp; \
125 rem <<= 8; \
126 temp += rem / btemp; \
127 c = temp; \
130 #endif
132 /***********************************************************************
133 * INFO DATA DEFS
136 #ifndef NOWTINFO
138 #ifndef NOWTAXIS
140 typedef struct tagAXIS {
141 LONG axMin;
142 LONG axMax;
143 UINT axUnits;
144 FIX32 axResolution;
145 } AXIS, *PAXIS, *NPAXIS, *LPAXIS;
147 /* unit specifiers */
148 #define TU_NONE 0
149 #define TU_INCHES 1
150 #define TU_CENTIMETERS 2
151 #define TU_CIRCLE 3
153 #endif
155 #ifndef NOWTSYSBUTTONS
157 /* system button assignment values */
158 #define SBN_NONE 0x00
159 #define SBN_LCLICK 0x01
160 #define SBN_LDBLCLICK 0x02
161 #define SBN_LDRAG 0x03
162 #define SBN_RCLICK 0x04
163 #define SBN_RDBLCLICK 0x05
164 #define SBN_RDRAG 0x06
165 #define SBN_MCLICK 0x07
166 #define SBN_MDBLCLICK 0x08
167 #define SBN_MDRAG 0x09
169 /* for Pen Windows */
170 #define SBN_PTCLICK 0x10
171 #define SBN_PTDBLCLICK 0x20
172 #define SBN_PTDRAG 0x30
173 #define SBN_PNCLICK 0x40
174 #define SBN_PNDBLCLICK 0x50
175 #define SBN_PNDRAG 0x60
176 #define SBN_P1CLICK 0x70
177 #define SBN_P1DBLCLICK 0x80
178 #define SBN_P1DRAG 0x90
179 #define SBN_P2CLICK 0xA0
180 #define SBN_P2DBLCLICK 0xB0
181 #define SBN_P2DRAG 0xC0
182 #define SBN_P3CLICK 0xD0
183 #define SBN_P3DBLCLICK 0xE0
184 #define SBN_P3DRAG 0xF0
186 #endif
188 #ifndef NOWTCAPABILITIES
190 /* hardware capabilities */
191 #define HWC_INTEGRATED 0x0001
192 #define HWC_TOUCH 0x0002
193 #define HWC_HARDPROX 0x0004
194 #define HWC_PHYSID_CURSORS 0x0008 /* 1.1 */
195 #endif
197 #ifndef NOWTIFC
199 #ifndef NOWTCURSORS
201 /* cursor capabilities */
202 #define CRC_MULTIMODE 0x0001 /* 1.1 */
203 #define CRC_AGGREGATE 0x0002 /* 1.1 */
204 #define CRC_INVERT 0x0004 /* 1.1 */
206 #endif
208 /* info categories */
209 #define WTI_INTERFACE 1
210 #define IFC_WINTABID 1
211 #define IFC_SPECVERSION 2
212 #define IFC_IMPLVERSION 3
213 #define IFC_NDEVICES 4
214 #define IFC_NCURSORS 5
215 #define IFC_NCONTEXTS 6
216 #define IFC_CTXOPTIONS 7
217 #define IFC_CTXSAVESIZE 8
218 #define IFC_NEXTENSIONS 9
219 #define IFC_NMANAGERS 10
220 #define IFC_MAX 10
222 #endif
224 #ifndef NOWTSTATUS
226 #define WTI_STATUS 2
227 #define STA_CONTEXTS 1
228 #define STA_SYSCTXS 2
229 #define STA_PKTRATE 3
230 #define STA_PKTDATA 4
231 #define STA_MANAGERS 5
232 #define STA_SYSTEM 6
233 #define STA_BUTTONUSE 7
234 #define STA_SYSBTNUSE 8
235 #define STA_MAX 8
237 #endif
239 #ifndef NOWTDEFCONTEXT
241 #define WTI_DEFCONTEXT 3
242 #define WTI_DEFSYSCTX 4
243 #define WTI_DDCTXS 400 /* 1.1 */
244 #define WTI_DSCTXS 500 /* 1.1 */
245 #define CTX_NAME 1
246 #define CTX_OPTIONS 2
247 #define CTX_STATUS 3
248 #define CTX_LOCKS 4
249 #define CTX_MSGBASE 5
250 #define CTX_DEVICE 6
251 #define CTX_PKTRATE 7
252 #define CTX_PKTDATA 8
253 #define CTX_PKTMODE 9
254 #define CTX_MOVEMASK 10
255 #define CTX_BTNDNMASK 11
256 #define CTX_BTNUPMASK 12
257 #define CTX_INORGX 13
258 #define CTX_INORGY 14
259 #define CTX_INORGZ 15
260 #define CTX_INEXTX 16
261 #define CTX_INEXTY 17
262 #define CTX_INEXTZ 18
263 #define CTX_OUTORGX 19
264 #define CTX_OUTORGY 20
265 #define CTX_OUTORGZ 21
266 #define CTX_OUTEXTX 22
267 #define CTX_OUTEXTY 23
268 #define CTX_OUTEXTZ 24
269 #define CTX_SENSX 25
270 #define CTX_SENSY 26
271 #define CTX_SENSZ 27
272 #define CTX_SYSMODE 28
273 #define CTX_SYSORGX 29
274 #define CTX_SYSORGY 30
275 #define CTX_SYSEXTX 31
276 #define CTX_SYSEXTY 32
277 #define CTX_SYSSENSX 33
278 #define CTX_SYSSENSY 34
279 #define CTX_MAX 34
281 #endif
283 #ifndef NOWTDEVICES
285 #define WTI_DEVICES 100
286 #define DVC_NAME 1
287 #define DVC_HARDWARE 2
288 #define DVC_NCSRTYPES 3
289 #define DVC_FIRSTCSR 4
290 #define DVC_PKTRATE 5
291 #define DVC_PKTDATA 6
292 #define DVC_PKTMODE 7
293 #define DVC_CSRDATA 8
294 #define DVC_XMARGIN 9
295 #define DVC_YMARGIN 10
296 #define DVC_ZMARGIN 11
297 #define DVC_X 12
298 #define DVC_Y 13
299 #define DVC_Z 14
300 #define DVC_NPRESSURE 15
301 #define DVC_TPRESSURE 16
302 #define DVC_ORIENTATION 17
303 #define DVC_ROTATION 18 /* 1.1 */
304 #define DVC_PNPID 19 /* 1.1 */
305 #define DVC_MAX 19
307 #endif
309 #ifndef NOWTCURSORS
311 #define WTI_CURSORS 200
312 #define CSR_NAME 1
313 #define CSR_ACTIVE 2
314 #define CSR_PKTDATA 3
315 #define CSR_BUTTONS 4
316 #define CSR_BUTTONBITS 5
317 #define CSR_BTNNAMES 6
318 #define CSR_BUTTONMAP 7
319 #define CSR_SYSBTNMAP 8
320 #define CSR_NPBUTTON 9
321 #define CSR_NPBTNMARKS 10
322 #define CSR_NPRESPONSE 11
323 #define CSR_TPBUTTON 12
324 #define CSR_TPBTNMARKS 13
325 #define CSR_TPRESPONSE 14
326 #define CSR_PHYSID 15 /* 1.1 */
327 #define CSR_MODE 16 /* 1.1 */
328 #define CSR_MINPKTDATA 17 /* 1.1 */
329 #define CSR_MINBUTTONS 18 /* 1.1 */
330 #define CSR_CAPABILITIES 19 /* 1.1 */
331 /* from http://www.wacomeng.com/devsupport/ibmpc/wacomwindevfaq.html */
332 #define CSR_TYPE 20
333 #define CSR_MAX 20
335 #endif
337 #ifndef NOWTEXTENSIONS
339 #define WTI_EXTENSIONS 300
340 #define EXT_NAME 1
341 #define EXT_TAG 2
342 #define EXT_MASK 3
343 #define EXT_SIZE 4
344 #define EXT_AXES 5
345 #define EXT_DEFAULT 6
346 #define EXT_DEFCONTEXT 7
347 #define EXT_DEFSYSCTX 8
348 #define EXT_CURSORS 9
349 #define EXT_MAX 109 /* Allow 100 cursors */
351 #endif
353 #endif
355 /***********************************************************************
356 * CONTEXT DATA DEFS
359 #define LCNAMELEN 40
360 #define LC_NAMELEN 40
362 typedef struct tagLOGCONTEXTA {
363 char lcName[LCNAMELEN];
364 UINT lcOptions;
365 UINT lcStatus;
366 UINT lcLocks;
367 UINT lcMsgBase;
368 UINT lcDevice;
369 UINT lcPktRate;
370 WTPKT lcPktData;
371 WTPKT lcPktMode;
372 WTPKT lcMoveMask;
373 DWORD lcBtnDnMask;
374 DWORD lcBtnUpMask;
375 LONG lcInOrgX;
376 LONG lcInOrgY;
377 LONG lcInOrgZ;
378 LONG lcInExtX;
379 LONG lcInExtY;
380 LONG lcInExtZ;
381 LONG lcOutOrgX;
382 LONG lcOutOrgY;
383 LONG lcOutOrgZ;
384 LONG lcOutExtX;
385 LONG lcOutExtY;
386 LONG lcOutExtZ;
387 FIX32 lcSensX;
388 FIX32 lcSensY;
389 FIX32 lcSensZ;
390 BOOL lcSysMode;
391 int lcSysOrgX;
392 int lcSysOrgY;
393 int lcSysExtX;
394 int lcSysExtY;
395 FIX32 lcSysSensX;
396 FIX32 lcSysSensY;
397 } LOGCONTEXTA, *PLOGCONTEXTA, *NPLOGCONTEXTA, *LPLOGCONTEXTA;
399 typedef struct tagLOGCONTEXTW {
400 WCHAR lcName[LCNAMELEN];
401 UINT lcOptions;
402 UINT lcStatus;
403 UINT lcLocks;
404 UINT lcMsgBase;
405 UINT lcDevice;
406 UINT lcPktRate;
407 WTPKT lcPktData;
408 WTPKT lcPktMode;
409 WTPKT lcMoveMask;
410 DWORD lcBtnDnMask;
411 DWORD lcBtnUpMask;
412 LONG lcInOrgX;
413 LONG lcInOrgY;
414 LONG lcInOrgZ;
415 LONG lcInExtX;
416 LONG lcInExtY;
417 LONG lcInExtZ;
418 LONG lcOutOrgX;
419 LONG lcOutOrgY;
420 LONG lcOutOrgZ;
421 LONG lcOutExtX;
422 LONG lcOutExtY;
423 LONG lcOutExtZ;
424 FIX32 lcSensX;
425 FIX32 lcSensY;
426 FIX32 lcSensZ;
427 BOOL lcSysMode;
428 int lcSysOrgX;
429 int lcSysOrgY;
430 int lcSysExtX;
431 int lcSysExtY;
432 FIX32 lcSysSensX;
433 FIX32 lcSysSensY;
434 } LOGCONTEXTW, *PLOGCONTEXTW, *NPLOGCONTEXTW, *LPLOGCONTEXTW;
436 DECL_WINELIB_TYPE_AW(LOGCONTEXT)
437 DECL_WINELIB_TYPE_AW(PLOGCONTEXT)
438 DECL_WINELIB_TYPE_AW(NPLOGCONTEXT)
439 DECL_WINELIB_TYPE_AW(LPLOGCONTEXT)
441 /* context option values */
442 #define CXO_SYSTEM 0x0001
443 #define CXO_PEN 0x0002
444 #define CXO_MESSAGES 0x0004
445 #define CXO_MARGIN 0x8000
446 #define CXO_MGNINSIDE 0x4000
447 #define CXO_CSRMESSAGES 0x0008 /* 1.1 */
449 /* context status values */
450 #define CXS_DISABLED 0x0001
451 #define CXS_OBSCURED 0x0002
452 #define CXS_ONTOP 0x0004
454 /* context lock values */
455 #define CXL_INSIZE 0x0001
456 #define CXL_INASPECT 0x0002
457 #define CXL_SENSITIVITY 0x0004
458 #define CXL_MARGIN 0x0008
459 #define CXL_SYSOUT 0x0010
461 /***********************************************************************
462 * EVENT DATA DEFS
465 /* For packet structure definition, see pktdef.h */
467 /* packet status values */
468 #define TPS_PROXIMITY 0x0001
469 #define TPS_QUEUE_ERR 0x0002
470 #define TPS_MARGIN 0x0004
471 #define TPS_GRAB 0x0008
472 #define TPS_INVERT 0x0010 /* 1.1 */
474 typedef struct tagORIENTATION {
475 int orAzimuth;
476 int orAltitude;
477 int orTwist;
478 } ORIENTATION, *PORIENTATION, *NPORIENTATION, *LPORIENTATION;
480 typedef struct tagROTATION { /* 1.1 */
481 int roPitch;
482 int roRoll;
483 int roYaw;
484 } ROTATION, *PROTATION, *NPROTATION, *LPROTATION;
486 /* grandfather in obsolete member names. */
487 #define rotPitch roPitch
488 #define rotRoll roRoll
489 #define rotYaw roYaw
491 /* relative buttons */
492 #define TBN_NONE 0
493 #define TBN_UP 1
494 #define TBN_DOWN 2
496 /***********************************************************************
497 * DEVICE CONFIG CONSTANTS
500 #ifndef NOWTDEVCFG
502 #define WTDC_NONE 0
503 #define WTDC_CANCEL 1
504 #define WTDC_OK 2
505 #define WTDC_RESTART 3
507 #endif
509 /***********************************************************************
510 * HOOK CONSTANTS
513 #ifndef NOWTHOOKS
515 #define WTH_PLAYBACK 1
516 #define WTH_RECORD 2
518 #define WTHC_GETLPLPFN (-3)
519 #define WTHC_LPLPFNNEXT (-2)
520 #define WTHC_LPFNNEXT (-1)
521 #define WTHC_ACTION 0
522 #define WTHC_GETNEXT 1
523 #define WTHC_SKIP 2
525 #endif
527 /***********************************************************************
528 * PREFERENCE FUNCTION CONSTANTS
531 #ifndef NOWTPREF
533 #define WTP_LPDEFAULT ((LPVOID)-1L)
534 #define WTP_DWDEFAULT ((DWORD)-1L)
536 #endif
538 /***********************************************************************
539 * EXTENSION TAGS AND CONSTANTS
542 #ifndef NOWTEXTENSIONS
544 /* constants for use with pktdef.h */
545 #define PKEXT_ABSOLUTE 1
546 #define PKEXT_RELATIVE 2
548 /* Extension tags. */
549 #define WTX_OBT 0 /* Out of bounds tracking */
550 #define WTX_FKEYS 1 /* Function keys */
551 #define WTX_TILT 2 /* Raw Cartesian tilt; 1.1 */
552 #define WTX_CSRMASK 3 /* select input by cursor type; 1.1 */
553 #define WTX_XBTNMASK 4 /* Extended button mask; 1.1 */
555 typedef struct tagXBTNMASK {
556 BYTE xBtnDnMask[32];
557 BYTE xBtnUpMask[32];
558 } XBTNMASK;
560 typedef struct tagTILT { /* 1.1 */
561 int tiltX;
562 int tiltY;
563 } TILT;
565 #endif
567 /***********************************************************************
568 * Functions
571 #ifndef NOWTCALLBACKS
573 #ifndef NOWTMANAGERFXNS
575 /* callback function types */
576 typedef BOOL (WINAPI * WTENUMPROC)(HCTX, LPARAM); /* changed CALLBACK->WINAPI, 1.1 */
577 typedef BOOL (WINAPI * WTCONFIGPROC)(HCTX, HWND);
578 typedef LRESULT (WINAPI * WTHOOKPROC)(int, WPARAM, LPARAM);
579 typedef WTHOOKPROC *LPWTHOOKPROC;
581 #endif
583 #endif
585 #ifndef NOWTFUNCTIONS
587 #ifndef NOWTBASICFXNS
588 /* BASIC FUNCTIONS */
590 #define ORD_WTInfoA 20
591 #define ORD_WTInfoW 1020
592 #define ORD_WTInfo WINELIB_NAME_AW(ORD_WTInfo)
593 #define ORD_WTOpenA 21
594 #define ORD_WTOpenW 1021
595 #define ORD_WTOpen WINELIB_NAME_AW(ORD_WTOpen)
596 #define ORD_WTClose 22
597 #define ORD_WTPacketsGet 23
598 #define ORD_WTPacket 24
600 UINT WINAPI WTInfoA(UINT, UINT, LPVOID);
601 UINT WINAPI WTInfoW(UINT, UINT, LPVOID);
602 #define WTInfo WINELIB_NAME_AW(WTInfo)
603 HCTX WINAPI WTOpenA(HWND, LPLOGCONTEXTA, BOOL);
604 HCTX WINAPI WTOpenW(HWND, LPLOGCONTEXTW, BOOL);
605 #define WTOpen WINELIB_NAME_AW(WTOpen)
606 BOOL WINAPI WTClose(HCTX);
607 int WINAPI WTPacketsGet(HCTX, int, LPVOID);
608 BOOL WINAPI WTPacket(HCTX, UINT, LPVOID);
610 #endif
612 #ifndef NOWTVISIBILITYFXNS
613 /* VISIBILITY FUNCTIONS */
615 #define ORD_WTEnable 40
616 #define ORD_WTOverlap 41
618 BOOL WINAPI WTEnable(HCTX, BOOL);
619 BOOL WINAPI WTOverlap(HCTX, BOOL);
621 #endif
623 #ifndef NOWTCTXEDITFXNS
624 /* CONTEXT EDITING FUNCTIONS */
626 #define ORD_WTConfig 60
627 #define ORD_WTGetA 61
628 #define ORD_WTGetW 1061
629 #define ORD_WTGet WINELIB_NAME_AW(ORD_WTGet)
630 #define ORD_WTSetA 62
631 #define ORD_WTSetW 1062
632 #define ORD_WTSet WINELIB_NAME_AW(ORD_WTSet)
633 #define ORD_WTExtGet 63
634 #define ORD_WTExtSet 64
635 #define ORD_WTSave 65
636 #define ORD_WTRestore 66
638 BOOL WINAPI WTConfig(HCTX, HWND);
639 BOOL WINAPI WTGetA(HCTX, LPLOGCONTEXTA);
640 BOOL WINAPI WTGetW(HCTX, LPLOGCONTEXTW);
641 #define WTGet WINELIB_NAME_AW(WTGet)
642 BOOL WINAPI WTSetA(HCTX, LPLOGCONTEXTA);
643 BOOL WINAPI WTSetW(HCTX, LPLOGCONTEXTW);
644 #define WTSet WINELIB_NAME_AW(WTSet)
645 BOOL WINAPI WTExtGet(HCTX, UINT, LPVOID);
646 BOOL WINAPI WTExtSet(HCTX, UINT, LPVOID);
647 BOOL WINAPI WTSave(HCTX, LPVOID);
648 HCTX WINAPI WTRestore(HWND, LPVOID, BOOL);
650 #endif
652 #ifndef NOWTQUEUEFXNS
653 /* ADVANCED PACKET AND QUEUE FUNCTIONS */
655 #define ORD_WTPacketsPeek 80
656 #define ORD_WTDataGet 81
657 #define ORD_WTDataPeek 82
658 #define ORD_WTQueueSizeGet 84
659 #define ORD_WTQueueSizeSet 85
661 int WINAPI WTPacketsPeek(HCTX, int, LPVOID);
662 int WINAPI WTDataGet(HCTX, UINT, UINT, int, LPVOID, LPINT);
663 int WINAPI WTDataPeek(HCTX, UINT, UINT, int, LPVOID, LPINT);
664 int WINAPI WTQueueSizeGet(HCTX);
665 BOOL WINAPI WTQueueSizeSet(HCTX, int);
667 #endif
669 #ifndef NOWTHMGRFXNS
670 /* MANAGER HANDLE FUNCTIONS */
672 #define ORD_WTMgrOpen 100
673 #define ORD_WTMgrClose 101
675 HMGR WINAPI WTMgrOpen(HWND, UINT);
676 BOOL WINAPI WTMgrClose(HMGR);
678 #endif
680 #ifndef NOWTMGRCTXFXNS
681 /* MANAGER CONTEXT FUNCTIONS */
683 #define ORD_WTMgrContextEnum 120
684 #define ORD_WTMgrContextOwner 121
685 #define ORD_WTMgrDefContext 122
686 #define ORD_WTMgrDefContextEx 206
688 BOOL WINAPI WTMgrContextEnum(HMGR, WTENUMPROC, LPARAM);
689 HWND WINAPI WTMgrContextOwner(HMGR, HCTX);
690 HCTX WINAPI WTMgrDefContext(HMGR, BOOL);
691 HCTX WINAPI WTMgrDefContextEx(HMGR, UINT, BOOL); /* 1.1 */
693 #endif
695 #ifndef NOWTMGRCONFIGFXNS
696 /* MANAGER CONFIG BOX FUNCTIONS */
698 #define ORD_WTMgrDeviceConfig 140
700 UINT WINAPI WTMgrDeviceConfig(HMGR, UINT, HWND);
702 #endif
704 #ifndef NOWTMGRHOOKFXNS
705 /* MANAGER PACKET HOOK FUNCTIONS */
707 /* OBSOLETE IN WIN32! */
709 #endif
711 #ifndef NOWTMGRPREFFXNS
712 /* MANAGER PREFERENCE DATA FUNCTIONS */
714 #define ORD_WTMgrExt 180
715 #define ORD_WTMgrCsrEnable 181
716 #define ORD_WTMgrCsrButtonMap 182
717 #define ORD_WTMgrCsrPressureBtnMarks 183
718 #define ORD_WTMgrCsrPressureResponse 184
719 #define ORD_WTMgrCsrExt 185
721 BOOL WINAPI WTMgrExt(HMGR, UINT, LPVOID);
722 BOOL WINAPI WTMgrCsrEnable(HMGR, UINT, BOOL);
723 BOOL WINAPI WTMgrCsrButtonMap(HMGR, UINT, LPBYTE, LPBYTE);
724 BOOL WINAPI WTMgrCsrPressureBtnMarks(HMGR, UINT, DWORD, DWORD);
725 BOOL WINAPI WTMgrCsrPressureResponse(HMGR, UINT, UINT *, UINT *);
726 BOOL WINAPI WTMgrCsrExt(HMGR, UINT, UINT, LPVOID);
728 #endif
730 /***********************************************************************
731 * Win32 replacements for non-portable functions.
734 #ifndef NOWTQUEUEFXNS
735 /* ADVANCED PACKET AND QUEUE FUNCTIONS */
737 #define ORD_WTQueuePacketsEx 200
739 BOOL WINAPI WTQueuePacketsEx(HCTX, UINT *, UINT *);
741 #endif
743 #ifndef NOWTMGRCONFIGFXNS
744 /* MANAGER CONFIG BOX FUNCTIONS */
746 #define ORD_WTMgrConfigReplaceExA 202
747 #define ORD_WTMgrConfigReplaceExW 1202
748 #define ORD_WTMgrConfigReplaceEx WINELIB_NAME_AW(ORD_WTMgrConfigReplaceEx)
750 BOOL WINAPI WTMgrConfigReplaceExA(HMGR, BOOL, LPSTR, LPSTR);
751 BOOL WINAPI WTMgrConfigReplaceExW(HMGR, BOOL, LPWSTR, LPSTR);
752 #define WTMgrConfigReplaceEx WINELIB_NAME_AW(WTMgrConfigReplaceEx)
754 #endif
756 #ifndef NOWTMGRHOOKFXNS
757 /* MANAGER PACKET HOOK FUNCTIONS */
759 #define ORD_WTMgrPacketHookExA 203
760 #define ORD_WTMgrPacketHookExW 1203
761 #define ORD_WTMgrPacketHookEx WINELIB_NAME_AW(ORD_WTMgrPacketHookEx)
762 #define ORD_WTMgrPacketUnhook 204
763 #define ORD_WTMgrPacketHookNext 205
765 HWTHOOK WINAPI WTMgrPacketHookExA(HMGR, int, LPSTR, LPSTR);
766 HWTHOOK WINAPI WTMgrPacketHookExW(HMGR, int, LPWSTR, LPSTR);
767 #define WTMgrPacketHookEx WINELIB_NAME_AW(WTMgrPacketHookEx)
768 BOOL WINAPI WTMgrPacketUnhook(HWTHOOK);
769 LRESULT WINAPI WTMgrPacketHookNext(HWTHOOK, int, WPARAM, LPARAM);
771 #endif
773 #ifndef NOWTMGRPREFFXNS
774 /* MANAGER PREFERENCE DATA FUNCTIONS */
776 #define ORD_WTMgrCsrPressureBtnMarksEx 201
778 BOOL WINAPI WTMgrCsrPressureBtnMarksEx(HMGR, UINT, UINT *, UINT *);
780 #endif
782 #endif
784 #ifdef __cplusplus
785 } /* extern "C" */
786 #endif /* defined(__cplusplus) */
788 #endif /* defined(__WINE_WINTAB_H */