|  | /* | 
|  | * Copyright (C) 1991-1998 by LCS/Telegraphics | 
|  | * Copyright (C) 2002 Patrik Stridvall | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
|  | */ | 
|  |  | 
|  | #ifndef __WINE_WINTAB_H | 
|  | #define __WINE_WINTAB_H | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif /* defined(__cplusplus) */ | 
|  |  | 
|  | /*********************************************************************** | 
|  | * Messages | 
|  | */ | 
|  | #ifndef NOWTMESSAGES | 
|  |  | 
|  | #define WT_DEFBASE    0x7FF0 | 
|  | #define WT_MAXOFFSET  0xF | 
|  |  | 
|  | #define _WT_PACKET(b)      ((b)+0) | 
|  | #define _WT_CTXOPEN(b)     ((b)+1) | 
|  | #define _WT_CTXCLOSE(b)    ((b)+2) | 
|  | #define _WT_CTXUPDATE(b)   ((b)+3) | 
|  | #define _WT_CTXOVERLAP(b)  ((b)+4) | 
|  | #define _WT_PROXIMITY(b)   ((b)+5) | 
|  | #define _WT_INFOCHANGE(b)  ((b)+6) | 
|  | #define _WT_CSRCHANGE(b)   ((b)+7)  /* 1.1 */ | 
|  | #define _WT_MAX(b)         ((b)+WT_MAXOFFSET) | 
|  |  | 
|  | #define WT_PACKET      _WT_PACKET(WT_DEFBASE) | 
|  | #define WT_CTXOPEN     _WT_CTXOPEN(WT_DEFBASE) | 
|  | #define WT_CTXCLOSE    _WT_CTXCLOSE(WT_DEFBASE) | 
|  | #define WT_CTXUPDATE   _WT_CTXUPDATE(WT_DEFBASE) | 
|  | #define WT_CTXOVERLAP  _WT_CTXOVERLAP(WT_DEFBASE) | 
|  | #define WT_PROXIMITY   _WT_PROXIMITY(WT_DEFBASE) | 
|  | #define WT_INFOCHANGE  _WT_INFOCHANGE(WT_DEFBASE) | 
|  | #define WT_CSRCHANGE   _WT_CSRCHANGE(WT_DEFBASE)  /* 1.1 */ | 
|  | #define WT_MAX         _WT_MAX(WT_DEFBASE) | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********************************************************************** | 
|  | * COMMON DATA DEFS | 
|  | */ | 
|  |  | 
|  | DECLARE_HANDLE(HMGR);     /* manager handle */ | 
|  | DECLARE_HANDLE(HCTX);     /* context handle */ | 
|  | DECLARE_HANDLE(HWTHOOK);  /* hook handle */ | 
|  |  | 
|  | typedef DWORD WTPKT;   /* packet mask */ | 
|  |  | 
|  | #ifndef NOWTPKT | 
|  |  | 
|  | /* WTPKT bits */ | 
|  | #define PK_CONTEXT           0x0001  /* reporting context */ | 
|  | #define PK_STATUS            0x0002  /* status bits */ | 
|  | #define PK_TIME              0x0004  /* time stamp */ | 
|  | #define PK_CHANGED           0x0008  /* change bit vector */ | 
|  | #define PK_SERIAL_NUMBER     0x0010  /* packet serial number */ | 
|  | #define PK_CURSOR            0x0020  /* reporting cursor */ | 
|  | #define PK_BUTTONS           0x0040  /* button information */ | 
|  | #define PK_X                 0x0080  /* x axis */ | 
|  | #define PK_Y                 0x0100  /* y axis */ | 
|  | #define PK_Z                 0x0200  /* z axis */ | 
|  | #define PK_NORMAL_PRESSURE   0x0400  /* normal or tip pressure */ | 
|  | #define PK_TANGENT_PRESSURE  0x0800  /* tangential or barrel pressure */ | 
|  | #define PK_ORIENTATION       0x1000  /* orientation info: tilts */ | 
|  | #define PK_ROTATION          0x2000  /* rotation info; 1.1 */ | 
|  |  | 
|  | #endif | 
|  |  | 
|  | typedef DWORD FIX32; /* fixed-point arithmetic type */ | 
|  |  | 
|  | #ifndef NOFIX32 | 
|  |  | 
|  | #define INT(x) HIWORD(x) | 
|  | #define FRAC(x) LOWORD(x) | 
|  |  | 
|  | #define CASTFIX32(x) ((FIX32)((x)*65536L)) | 
|  |  | 
|  | #define ROUND(x) (INT(x) + (FRAC(x) > (WORD)0x8000)) | 
|  |  | 
|  | #define FIX_MUL(c, a, b) \ | 
|  | (c = (((DWORD)FRAC(a) * FRAC(b)) >> 16) + \ | 
|  | (DWORD)INT(a) * FRAC(b) + \ | 
|  | (DWORD)INT(b) * FRAC(a) + \ | 
|  | ((DWORD)INT(a) * INT(b) << 16)) | 
|  |  | 
|  | #ifdef _WINDLL | 
|  | # define FIX_DIV_SC static | 
|  | #else | 
|  | # define FIX_DIV_SC | 
|  | # endif | 
|  |  | 
|  | #define FIX_DIV(c, a, b) \ | 
|  | { \ | 
|  | FIX_DIV_SC DWORD temp, rem, btemp; \ | 
|  | \ | 
|  | /* fraction done bytewise */ \ | 
|  | temp = ((a / b) << 16); \ | 
|  | rem = a % b;   \ | 
|  | btemp = b; \ | 
|  | if (INT(btemp) < 256) { \ | 
|  | rem <<= 8; \ | 
|  | } else { \ | 
|  | btemp >>= 8; \ | 
|  | } \ | 
|  | temp += ((rem / btemp) << 8); \ | 
|  | rem %= btemp; \ | 
|  | rem <<= 8; \ | 
|  | temp += rem / btemp; \ | 
|  | c = temp; \ | 
|  | } | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********************************************************************** | 
|  | * INFO DATA DEFS | 
|  | */ | 
|  |  | 
|  | #ifndef NOWTINFO | 
|  |  | 
|  | #ifndef NOWTAXIS | 
|  |  | 
|  | typedef struct tagAXIS { | 
|  | LONG   axMin; | 
|  | LONG   axMax; | 
|  | UINT   axUnits; | 
|  | FIX32  axResolution; | 
|  | } AXIS, *PAXIS, *NPAXIS, *LPAXIS; | 
|  |  | 
|  | /* unit specifiers */ | 
|  | #define TU_NONE         0 | 
|  | #define TU_INCHES       1 | 
|  | #define TU_CENTIMETERS  2 | 
|  | #define TU_CIRCLE       3 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTSYSBUTTONS | 
|  |  | 
|  | /* system button assignment values */ | 
|  | #define SBN_NONE       0x00 | 
|  | #define SBN_LCLICK     0x01 | 
|  | #define SBN_LDBLCLICK  0x02 | 
|  | #define SBN_LDRAG      0x03 | 
|  | #define SBN_RCLICK     0x04 | 
|  | #define SBN_RDBLCLICK  0x05 | 
|  | #define SBN_RDRAG      0x06 | 
|  | #define SBN_MCLICK     0x07 | 
|  | #define SBN_MDBLCLICK  0x08 | 
|  | #define SBN_MDRAG      0x09 | 
|  |  | 
|  | /* for Pen Windows */ | 
|  | #define SBN_PTCLICK     0x10 | 
|  | #define SBN_PTDBLCLICK  0x20 | 
|  | #define SBN_PTDRAG      0x30 | 
|  | #define SBN_PNCLICK     0x40 | 
|  | #define SBN_PNDBLCLICK  0x50 | 
|  | #define SBN_PNDRAG      0x60 | 
|  | #define SBN_P1CLICK     0x70 | 
|  | #define SBN_P1DBLCLICK  0x80 | 
|  | #define SBN_P1DRAG      0x90 | 
|  | #define SBN_P2CLICK     0xA0 | 
|  | #define SBN_P2DBLCLICK  0xB0 | 
|  | #define SBN_P2DRAG      0xC0 | 
|  | #define SBN_P3CLICK     0xD0 | 
|  | #define SBN_P3DBLCLICK  0xE0 | 
|  | #define SBN_P3DRAG      0xF0 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTCAPABILITIES | 
|  |  | 
|  | /* hardware capabilities */ | 
|  | #define HWC_INTEGRATED      0x0001 | 
|  | #define HWC_TOUCH           0x0002 | 
|  | #define HWC_HARDPROX        0x0004 | 
|  | #define HWC_PHYSID_CURSORS  0x0008  /* 1.1 */ | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTIFC | 
|  |  | 
|  | #ifndef NOWTCURSORS | 
|  |  | 
|  | /* cursor capabilities */ | 
|  | #define CRC_MULTIMODE  0x0001  /* 1.1 */ | 
|  | #define CRC_AGGREGATE  0x0002  /* 1.1 */ | 
|  | #define CRC_INVERT     0x0004  /* 1.1 */ | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /* info categories */ | 
|  | #define WTI_INTERFACE    1 | 
|  | #define IFC_WINTABID     1 | 
|  | #define IFC_SPECVERSION  2 | 
|  | #define IFC_IMPLVERSION  3 | 
|  | #define IFC_NDEVICES     4 | 
|  | #define IFC_NCURSORS     5 | 
|  | #define IFC_NCONTEXTS    6 | 
|  | #define IFC_CTXOPTIONS   7 | 
|  | #define IFC_CTXSAVESIZE  8 | 
|  | #define IFC_NEXTENSIONS  9 | 
|  | #define IFC_NMANAGERS    10 | 
|  | #define IFC_MAX          10 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTSTATUS | 
|  |  | 
|  | #define WTI_STATUS     2 | 
|  | #define STA_CONTEXTS   1 | 
|  | #define STA_SYSCTXS    2 | 
|  | #define STA_PKTRATE    3 | 
|  | #define STA_PKTDATA    4 | 
|  | #define STA_MANAGERS   5 | 
|  | #define STA_SYSTEM     6 | 
|  | #define STA_BUTTONUSE  7 | 
|  | #define STA_SYSBTNUSE  8 | 
|  | #define STA_MAX        8 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTDEFCONTEXT | 
|  |  | 
|  | #define WTI_DEFCONTEXT  3 | 
|  | #define WTI_DEFSYSCTX   4 | 
|  | #define WTI_DDCTXS      400 /* 1.1 */ | 
|  | #define WTI_DSCTXS      500 /* 1.1 */ | 
|  | #define CTX_NAME        1 | 
|  | #define CTX_OPTIONS     2 | 
|  | #define CTX_STATUS      3 | 
|  | #define CTX_LOCKS       4 | 
|  | #define CTX_MSGBASE     5 | 
|  | #define CTX_DEVICE      6 | 
|  | #define CTX_PKTRATE     7 | 
|  | #define CTX_PKTDATA     8 | 
|  | #define CTX_PKTMODE     9 | 
|  | #define CTX_MOVEMASK    10 | 
|  | #define CTX_BTNDNMASK   11 | 
|  | #define CTX_BTNUPMASK   12 | 
|  | #define CTX_INORGX      13 | 
|  | #define CTX_INORGY      14 | 
|  | #define CTX_INORGZ      15 | 
|  | #define CTX_INEXTX      16 | 
|  | #define CTX_INEXTY      17 | 
|  | #define CTX_INEXTZ      18 | 
|  | #define CTX_OUTORGX     19 | 
|  | #define CTX_OUTORGY     20 | 
|  | #define CTX_OUTORGZ     21 | 
|  | #define CTX_OUTEXTX     22 | 
|  | #define CTX_OUTEXTY     23 | 
|  | #define CTX_OUTEXTZ     24 | 
|  | #define CTX_SENSX       25 | 
|  | #define CTX_SENSY       26 | 
|  | #define CTX_SENSZ       27 | 
|  | #define CTX_SYSMODE     28 | 
|  | #define CTX_SYSORGX     29 | 
|  | #define CTX_SYSORGY     30 | 
|  | #define CTX_SYSEXTX     31 | 
|  | #define CTX_SYSEXTY     32 | 
|  | #define CTX_SYSSENSX    33 | 
|  | #define CTX_SYSSENSY    34 | 
|  | #define CTX_MAX         34 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTDEVICES | 
|  |  | 
|  | #define WTI_DEVICES      100 | 
|  | #define DVC_NAME         1 | 
|  | #define DVC_HARDWARE     2 | 
|  | #define DVC_NCSRTYPES    3 | 
|  | #define DVC_FIRSTCSR     4 | 
|  | #define DVC_PKTRATE      5 | 
|  | #define DVC_PKTDATA      6 | 
|  | #define DVC_PKTMODE      7 | 
|  | #define DVC_CSRDATA      8 | 
|  | #define DVC_XMARGIN      9 | 
|  | #define DVC_YMARGIN      10 | 
|  | #define DVC_ZMARGIN      11 | 
|  | #define DVC_X            12 | 
|  | #define DVC_Y            13 | 
|  | #define DVC_Z            14 | 
|  | #define DVC_NPRESSURE    15 | 
|  | #define DVC_TPRESSURE    16 | 
|  | #define DVC_ORIENTATION  17 | 
|  | #define DVC_ROTATION     18  /* 1.1 */ | 
|  | #define DVC_PNPID        19  /* 1.1 */ | 
|  | #define DVC_MAX          19 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTCURSORS | 
|  |  | 
|  | #define WTI_CURSORS      200 | 
|  | #define CSR_NAME         1 | 
|  | #define CSR_ACTIVE       2 | 
|  | #define CSR_PKTDATA      3 | 
|  | #define CSR_BUTTONS      4 | 
|  | #define CSR_BUTTONBITS   5 | 
|  | #define CSR_BTNNAMES     6 | 
|  | #define CSR_BUTTONMAP    7 | 
|  | #define CSR_SYSBTNMAP    8 | 
|  | #define CSR_NPBUTTON     9 | 
|  | #define CSR_NPBTNMARKS   10 | 
|  | #define CSR_NPRESPONSE   11 | 
|  | #define CSR_TPBUTTON     12 | 
|  | #define CSR_TPBTNMARKS   13 | 
|  | #define CSR_TPRESPONSE   14 | 
|  | #define CSR_PHYSID       15  /* 1.1 */ | 
|  | #define CSR_MODE         16  /* 1.1 */ | 
|  | #define CSR_MINPKTDATA   17  /* 1.1 */ | 
|  | #define CSR_MINBUTTONS   18  /* 1.1 */ | 
|  | #define CSR_CAPABILITIES 19  /* 1.1 */ | 
|  | /* from http://www.wacomeng.com/devsupport/ibmpc/wacomwindevfaq.html */ | 
|  | #define CSR_TYPE        20 | 
|  | #define CSR_MAX         20 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTEXTENSIONS | 
|  |  | 
|  | #define WTI_EXTENSIONS  300 | 
|  | #define EXT_NAME        1 | 
|  | #define EXT_TAG         2 | 
|  | #define EXT_MASK        3 | 
|  | #define EXT_SIZE        4 | 
|  | #define EXT_AXES        5 | 
|  | #define EXT_DEFAULT     6 | 
|  | #define EXT_DEFCONTEXT  7 | 
|  | #define EXT_DEFSYSCTX   8 | 
|  | #define EXT_CURSORS     9 | 
|  | #define EXT_MAX         109  /* Allow 100 cursors */ | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********************************************************************** | 
|  | * CONTEXT DATA DEFS | 
|  | */ | 
|  |  | 
|  | #define LCNAMELEN 40 | 
|  | #define LC_NAMELEN 40 | 
|  |  | 
|  | typedef struct tagLOGCONTEXTA { | 
|  | char   lcName[LCNAMELEN]; | 
|  | UINT   lcOptions; | 
|  | UINT   lcStatus; | 
|  | UINT   lcLocks; | 
|  | UINT   lcMsgBase; | 
|  | UINT   lcDevice; | 
|  | UINT   lcPktRate; | 
|  | WTPKT  lcPktData; | 
|  | WTPKT  lcPktMode; | 
|  | WTPKT  lcMoveMask; | 
|  | DWORD  lcBtnDnMask; | 
|  | DWORD  lcBtnUpMask; | 
|  | LONG   lcInOrgX; | 
|  | LONG   lcInOrgY; | 
|  | LONG   lcInOrgZ; | 
|  | LONG   lcInExtX; | 
|  | LONG   lcInExtY; | 
|  | LONG   lcInExtZ; | 
|  | LONG   lcOutOrgX; | 
|  | LONG   lcOutOrgY; | 
|  | LONG   lcOutOrgZ; | 
|  | LONG   lcOutExtX; | 
|  | LONG   lcOutExtY; | 
|  | LONG   lcOutExtZ; | 
|  | FIX32  lcSensX; | 
|  | FIX32  lcSensY; | 
|  | FIX32  lcSensZ; | 
|  | BOOL   lcSysMode; | 
|  | int    lcSysOrgX; | 
|  | int    lcSysOrgY; | 
|  | int    lcSysExtX; | 
|  | int    lcSysExtY; | 
|  | FIX32  lcSysSensX; | 
|  | FIX32  lcSysSensY; | 
|  | } LOGCONTEXTA, *PLOGCONTEXTA, *NPLOGCONTEXTA, *LPLOGCONTEXTA; | 
|  |  | 
|  | typedef struct tagLOGCONTEXTW { | 
|  | WCHAR  lcName[LCNAMELEN]; | 
|  | UINT   lcOptions; | 
|  | UINT   lcStatus; | 
|  | UINT   lcLocks; | 
|  | UINT   lcMsgBase; | 
|  | UINT   lcDevice; | 
|  | UINT   lcPktRate; | 
|  | WTPKT  lcPktData; | 
|  | WTPKT  lcPktMode; | 
|  | WTPKT  lcMoveMask; | 
|  | DWORD  lcBtnDnMask; | 
|  | DWORD  lcBtnUpMask; | 
|  | LONG   lcInOrgX; | 
|  | LONG   lcInOrgY; | 
|  | LONG   lcInOrgZ; | 
|  | LONG   lcInExtX; | 
|  | LONG   lcInExtY; | 
|  | LONG   lcInExtZ; | 
|  | LONG   lcOutOrgX; | 
|  | LONG   lcOutOrgY; | 
|  | LONG   lcOutOrgZ; | 
|  | LONG   lcOutExtX; | 
|  | LONG   lcOutExtY; | 
|  | LONG   lcOutExtZ; | 
|  | FIX32  lcSensX; | 
|  | FIX32  lcSensY; | 
|  | FIX32  lcSensZ; | 
|  | BOOL   lcSysMode; | 
|  | int    lcSysOrgX; | 
|  | int    lcSysOrgY; | 
|  | int    lcSysExtX; | 
|  | int    lcSysExtY; | 
|  | FIX32  lcSysSensX; | 
|  | FIX32  lcSysSensY; | 
|  | } LOGCONTEXTW, *PLOGCONTEXTW, *NPLOGCONTEXTW, *LPLOGCONTEXTW; | 
|  |  | 
|  | DECL_WINELIB_TYPE_AW(LOGCONTEXT) | 
|  | DECL_WINELIB_TYPE_AW(PLOGCONTEXT) | 
|  | DECL_WINELIB_TYPE_AW(NPLOGCONTEXT) | 
|  | DECL_WINELIB_TYPE_AW(LPLOGCONTEXT) | 
|  |  | 
|  | /* context option values */ | 
|  | #define CXO_SYSTEM       0x0001 | 
|  | #define CXO_PEN          0x0002 | 
|  | #define CXO_MESSAGES     0x0004 | 
|  | #define CXO_MARGIN       0x8000 | 
|  | #define CXO_MGNINSIDE    0x4000 | 
|  | #define CXO_CSRMESSAGES  0x0008  /* 1.1 */ | 
|  |  | 
|  | /* context status values */ | 
|  | #define CXS_DISABLED  0x0001 | 
|  | #define CXS_OBSCURED  0x0002 | 
|  | #define CXS_ONTOP     0x0004 | 
|  |  | 
|  | /* context lock values */ | 
|  | #define CXL_INSIZE       0x0001 | 
|  | #define CXL_INASPECT     0x0002 | 
|  | #define CXL_SENSITIVITY  0x0004 | 
|  | #define CXL_MARGIN       0x0008 | 
|  | #define CXL_SYSOUT       0x0010 | 
|  |  | 
|  | /*********************************************************************** | 
|  | * EVENT DATA DEFS | 
|  | */ | 
|  |  | 
|  | /* For packet structure definition, see pktdef.h */ | 
|  |  | 
|  | /* packet status values */ | 
|  | #define TPS_PROXIMITY  0x0001 | 
|  | #define TPS_QUEUE_ERR  0x0002 | 
|  | #define TPS_MARGIN     0x0004 | 
|  | #define TPS_GRAB       0x0008 | 
|  | #define TPS_INVERT     0x0010  /* 1.1 */ | 
|  |  | 
|  | typedef struct tagORIENTATION { | 
|  | int orAzimuth; | 
|  | int orAltitude; | 
|  | int orTwist; | 
|  | } ORIENTATION, *PORIENTATION, *NPORIENTATION, *LPORIENTATION; | 
|  |  | 
|  | typedef struct tagROTATION {  /* 1.1 */ | 
|  | int roPitch; | 
|  | int roRoll; | 
|  | int roYaw; | 
|  | } ROTATION, *PROTATION, *NPROTATION, *LPROTATION; | 
|  |  | 
|  | /* grandfather in obsolete member names. */ | 
|  | #define rotPitch  roPitch | 
|  | #define rotRoll   roRoll | 
|  | #define rotYaw    roYaw | 
|  |  | 
|  | /* relative buttons */ | 
|  | #define TBN_NONE  0 | 
|  | #define TBN_UP    1 | 
|  | #define TBN_DOWN  2 | 
|  |  | 
|  | /*********************************************************************** | 
|  | * DEVICE CONFIG CONSTANTS | 
|  | */ | 
|  |  | 
|  | #ifndef NOWTDEVCFG | 
|  |  | 
|  | #define WTDC_NONE     0 | 
|  | #define WTDC_CANCEL   1 | 
|  | #define WTDC_OK       2 | 
|  | #define WTDC_RESTART  3 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********************************************************************** | 
|  | * HOOK CONSTANTS | 
|  | */ | 
|  |  | 
|  | #ifndef NOWTHOOKS | 
|  |  | 
|  | #define WTH_PLAYBACK  1 | 
|  | #define WTH_RECORD    2 | 
|  |  | 
|  | #define WTHC_GETLPLPFN   (-3) | 
|  | #define WTHC_LPLPFNNEXT  (-2) | 
|  | #define WTHC_LPFNNEXT    (-1) | 
|  | #define WTHC_ACTION      0 | 
|  | #define WTHC_GETNEXT     1 | 
|  | #define WTHC_SKIP        2 | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********************************************************************** | 
|  | * PREFERENCE FUNCTION CONSTANTS | 
|  | */ | 
|  |  | 
|  | #ifndef NOWTPREF | 
|  |  | 
|  | #define WTP_LPDEFAULT  ((LPVOID)-1L) | 
|  | #define WTP_DWDEFAULT  ((DWORD)-1L) | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********************************************************************** | 
|  | * EXTENSION TAGS AND CONSTANTS | 
|  | */ | 
|  |  | 
|  | #ifndef NOWTEXTENSIONS | 
|  |  | 
|  | /* constants for use with pktdef.h */ | 
|  | #define PKEXT_ABSOLUTE    1 | 
|  | #define PKEXT_RELATIVE    2 | 
|  |  | 
|  | /* Extension tags. */ | 
|  | #define WTX_OBT       0  /* Out of bounds tracking */ | 
|  | #define WTX_FKEYS     1  /* Function keys */ | 
|  | #define WTX_TILT      2  /* Raw Cartesian tilt; 1.1 */ | 
|  | #define WTX_CSRMASK   3  /* select input by cursor type; 1.1 */ | 
|  | #define WTX_XBTNMASK  4  /* Extended button mask; 1.1 */ | 
|  |  | 
|  | typedef struct tagXBTNMASK { | 
|  | BYTE xBtnDnMask[32]; | 
|  | BYTE xBtnUpMask[32]; | 
|  | } XBTNMASK; | 
|  |  | 
|  | typedef struct tagTILT {  /* 1.1 */ | 
|  | int tiltX; | 
|  | int tiltY; | 
|  | } TILT; | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********************************************************************** | 
|  | * Functions | 
|  | */ | 
|  |  | 
|  | #ifndef NOWTCALLBACKS | 
|  |  | 
|  | #ifndef NOWTMANAGERFXNS | 
|  |  | 
|  | /* callback function types */ | 
|  | typedef BOOL (WINAPI * WTENUMPROC)(HCTX, LPARAM);  /* changed CALLBACK->WINAPI, 1.1 */ | 
|  | typedef BOOL (WINAPI * WTCONFIGPROC)(HCTX, HWND); | 
|  | typedef LRESULT (WINAPI * WTHOOKPROC)(int, WPARAM, LPARAM); | 
|  | typedef WTHOOKPROC *LPWTHOOKPROC; | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTFUNCTIONS | 
|  |  | 
|  | #ifndef NOWTBASICFXNS | 
|  | /* BASIC FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTInfoA       20 | 
|  | #define ORD_WTInfoW       1020 | 
|  | #define ORD_WTInfo        WINELIB_NAME_AW(ORD_WTInfo) | 
|  | #define ORD_WTOpenA       21 | 
|  | #define ORD_WTOpenW       1021 | 
|  | #define ORD_WTOpen        WINELIB_NAME_AW(ORD_WTOpen) | 
|  | #define ORD_WTClose       22 | 
|  | #define ORD_WTPacketsGet  23 | 
|  | #define ORD_WTPacket      24 | 
|  |  | 
|  | UINT WINAPI WTInfoA(UINT, UINT, LPVOID); | 
|  | UINT WINAPI WTInfoW(UINT, UINT, LPVOID); | 
|  | #define WTInfo WINELIB_NAME_AW(WTInfo) | 
|  | HCTX WINAPI WTOpenA(HWND, LPLOGCONTEXTA, BOOL); | 
|  | HCTX WINAPI WTOpenW(HWND, LPLOGCONTEXTW, BOOL); | 
|  | #define WTOpen WINELIB_NAME_AW(WTOpen) | 
|  | BOOL WINAPI WTClose(HCTX); | 
|  | int  WINAPI WTPacketsGet(HCTX, int, LPVOID); | 
|  | BOOL WINAPI WTPacket(HCTX, UINT, LPVOID); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTVISIBILITYFXNS | 
|  | /* VISIBILITY FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTEnable   40 | 
|  | #define ORD_WTOverlap  41 | 
|  |  | 
|  | BOOL WINAPI WTEnable(HCTX, BOOL); | 
|  | BOOL WINAPI WTOverlap(HCTX, BOOL); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTCTXEDITFXNS | 
|  | /* CONTEXT EDITING FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTConfig   60 | 
|  | #define ORD_WTGetA     61 | 
|  | #define ORD_WTGetW     1061 | 
|  | #define ORD_WTGet      WINELIB_NAME_AW(ORD_WTGet) | 
|  | #define ORD_WTSetA     62 | 
|  | #define ORD_WTSetW     1062 | 
|  | #define ORD_WTSet      WINELIB_NAME_AW(ORD_WTSet) | 
|  | #define ORD_WTExtGet   63 | 
|  | #define ORD_WTExtSet   64 | 
|  | #define ORD_WTSave     65 | 
|  | #define ORD_WTRestore  66 | 
|  |  | 
|  | BOOL WINAPI WTConfig(HCTX, HWND); | 
|  | BOOL WINAPI WTGetA(HCTX, LPLOGCONTEXTA); | 
|  | BOOL WINAPI WTGetW(HCTX, LPLOGCONTEXTW); | 
|  | #define WTGet WINELIB_NAME_AW(WTGet) | 
|  | BOOL WINAPI WTSetA(HCTX, LPLOGCONTEXTA); | 
|  | BOOL WINAPI WTSetW(HCTX, LPLOGCONTEXTW); | 
|  | #define WTSet WINELIB_NAME_AW(WTSet) | 
|  | BOOL WINAPI WTExtGet(HCTX, UINT, LPVOID); | 
|  | BOOL WINAPI WTExtSet(HCTX, UINT, LPVOID); | 
|  | BOOL WINAPI WTSave(HCTX, LPVOID); | 
|  | HCTX WINAPI WTRestore(HWND, LPVOID, BOOL); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTQUEUEFXNS | 
|  | /* ADVANCED PACKET AND QUEUE FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTPacketsPeek   80 | 
|  | #define ORD_WTDataGet       81 | 
|  | #define ORD_WTDataPeek      82 | 
|  | #define ORD_WTQueueSizeGet  84 | 
|  | #define ORD_WTQueueSizeSet  85 | 
|  |  | 
|  | int WINAPI WTPacketsPeek(HCTX, int, LPVOID); | 
|  | int WINAPI WTDataGet(HCTX, UINT, UINT, int, LPVOID, LPINT); | 
|  | int WINAPI WTDataPeek(HCTX, UINT, UINT, int, LPVOID, LPINT); | 
|  | int WINAPI WTQueueSizeGet(HCTX); | 
|  | BOOL WINAPI WTQueueSizeSet(HCTX, int); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTHMGRFXNS | 
|  | /* MANAGER HANDLE FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTMgrOpen   100 | 
|  | #define ORD_WTMgrClose  101 | 
|  |  | 
|  | HMGR WINAPI WTMgrOpen(HWND, UINT); | 
|  | BOOL WINAPI WTMgrClose(HMGR); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTMGRCTXFXNS | 
|  | /* MANAGER CONTEXT FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTMgrContextEnum   120 | 
|  | #define ORD_WTMgrContextOwner  121 | 
|  | #define ORD_WTMgrDefContext    122 | 
|  | #define ORD_WTMgrDefContextEx  206 | 
|  |  | 
|  | BOOL WINAPI WTMgrContextEnum(HMGR, WTENUMPROC, LPARAM); | 
|  | HWND WINAPI WTMgrContextOwner(HMGR, HCTX); | 
|  | HCTX WINAPI WTMgrDefContext(HMGR, BOOL); | 
|  | HCTX WINAPI WTMgrDefContextEx(HMGR, UINT, BOOL);  /* 1.1 */ | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTMGRCONFIGFXNS | 
|  | /* MANAGER CONFIG BOX  FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTMgrDeviceConfig 140 | 
|  |  | 
|  | UINT WINAPI WTMgrDeviceConfig(HMGR, UINT, HWND); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTMGRHOOKFXNS | 
|  | /* MANAGER PACKET HOOK FUNCTIONS */ | 
|  |  | 
|  | /* OBSOLETE IN WIN32! */ | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTMGRPREFFXNS | 
|  | /* MANAGER PREFERENCE DATA FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTMgrExt                  180 | 
|  | #define ORD_WTMgrCsrEnable            181 | 
|  | #define ORD_WTMgrCsrButtonMap         182 | 
|  | #define ORD_WTMgrCsrPressureBtnMarks  183 | 
|  | #define ORD_WTMgrCsrPressureResponse  184 | 
|  | #define ORD_WTMgrCsrExt               185 | 
|  |  | 
|  | BOOL WINAPI WTMgrExt(HMGR, UINT, LPVOID); | 
|  | BOOL WINAPI WTMgrCsrEnable(HMGR, UINT, BOOL); | 
|  | BOOL WINAPI WTMgrCsrButtonMap(HMGR, UINT, LPBYTE, LPBYTE); | 
|  | BOOL WINAPI WTMgrCsrPressureBtnMarks(HMGR, UINT, DWORD, DWORD); | 
|  | BOOL WINAPI WTMgrCsrPressureResponse(HMGR, UINT, UINT *, UINT *); | 
|  | BOOL WINAPI WTMgrCsrExt(HMGR, UINT, UINT, LPVOID); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /*********************************************************************** | 
|  | * Win32 replacements for non-portable functions. | 
|  | */ | 
|  |  | 
|  | #ifndef NOWTQUEUEFXNS | 
|  | /* ADVANCED PACKET AND QUEUE FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTQueuePacketsEx  200 | 
|  |  | 
|  | BOOL WINAPI WTQueuePacketsEx(HCTX, UINT *, UINT *); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTMGRCONFIGFXNS | 
|  | /* MANAGER CONFIG BOX FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTMgrConfigReplaceExA  202 | 
|  | #define ORD_WTMgrConfigReplaceExW  1202 | 
|  | #define ORD_WTMgrConfigReplaceEx   WINELIB_NAME_AW(ORD_WTMgrConfigReplaceEx) | 
|  |  | 
|  | BOOL WINAPI WTMgrConfigReplaceExA(HMGR, BOOL, LPSTR, LPSTR); | 
|  | BOOL WINAPI WTMgrConfigReplaceExW(HMGR, BOOL, LPWSTR, LPSTR); | 
|  | #define WTMgrConfigReplaceEx WINELIB_NAME_AW(WTMgrConfigReplaceEx) | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTMGRHOOKFXNS | 
|  | /* MANAGER PACKET HOOK FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTMgrPacketHookExA   203 | 
|  | #define ORD_WTMgrPacketHookExW   1203 | 
|  | #define ORD_WTMgrPacketHookEx    WINELIB_NAME_AW(ORD_WTMgrPacketHookEx) | 
|  | #define ORD_WTMgrPacketUnhook    204 | 
|  | #define ORD_WTMgrPacketHookNext  205 | 
|  |  | 
|  | HWTHOOK WINAPI WTMgrPacketHookExA(HMGR, int, LPSTR, LPSTR); | 
|  | HWTHOOK WINAPI WTMgrPacketHookExW(HMGR, int, LPWSTR, LPSTR); | 
|  | #define WTMgrPacketHookEx WINELIB_NAME_AW(WTMgrPacketHookEx) | 
|  | BOOL    WINAPI WTMgrPacketUnhook(HWTHOOK); | 
|  | LRESULT WINAPI WTMgrPacketHookNext(HWTHOOK, int, WPARAM, LPARAM); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef NOWTMGRPREFFXNS | 
|  | /* MANAGER PREFERENCE DATA FUNCTIONS */ | 
|  |  | 
|  | #define ORD_WTMgrCsrPressureBtnMarksEx  201 | 
|  |  | 
|  | BOOL WINAPI WTMgrCsrPressureBtnMarksEx(HMGR, UINT, UINT *, UINT *); | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } /* extern "C" */ | 
|  | #endif /* defined(__cplusplus) */ | 
|  |  | 
|  | #endif /* defined(__WINE_WINTAB_H */ |