123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920 |
- /* -------------------------------- wintab.h -------------------------------- */
- /* Combined 16 & 32-bit version. */
- /*------------------------------------------------------------------------------
- The text and information contained in this file may be freely used,
- copied, or distributed without compensation or licensing restrictions.
- This file is Copyright (c) Wacom Company, Ltd. 2010 All Rights Reserved
- with portions copyright 1991-1998 by LCS/Telegraphics.
- ------------------------------------------------------------------------------*/
- #ifndef _INC_WINTAB /* prevent multiple includes */
- #define _INC_WINTAB
- #ifdef __cplusplus
- extern "C" {
- #endif /* __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_PACKETEXT(b) ((b)+8) /* 1.4 */
- #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_PACKETEXT _WT_PACKETEXT(WT_DEFBASE) /* 1.4 */
- #define WT_MAX _WT_MAX(WT_DEFBASE)
- #endif
- /* -------------------------------------------------------------------------- */
- /* -------------------------------------------------------------------------- */
- /* Data Types */
- /* -------------------------------------------------------------------------- */
- /* 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, NEAR* NPAXIS, FAR* 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 */
- #define CSR_TYPE 20 /* 1.2 */
- #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_DEVICES 110 /* Allow 100 cursors */
- #define EXT_MAX 210 /* Allow 100 devices */
- #endif
- #endif
- /* -------------------------------------------------------------------------- */
- /* CONTEXT DATA DEFS */
- #define LCNAMELEN 40
- #define LC_NAMELEN 40
- #ifdef WIN32
- 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, NEAR* NPLOGCONTEXTA, FAR* 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, NEAR* NPLOGCONTEXTW, FAR* LPLOGCONTEXTW;
- #ifdef UNICODE
- typedef LOGCONTEXTW LOGCONTEXT;
- typedef PLOGCONTEXTW PLOGCONTEXT;
- typedef NPLOGCONTEXTW NPLOGCONTEXT;
- typedef LPLOGCONTEXTW LPLOGCONTEXT;
- #else
- typedef LOGCONTEXTA LOGCONTEXT;
- typedef PLOGCONTEXTA PLOGCONTEXT;
- typedef NPLOGCONTEXTA NPLOGCONTEXT;
- typedef LPLOGCONTEXTA LPLOGCONTEXT;
- #endif /* UNICODE */
- #else /* WIN32 */
- typedef struct tagLOGCONTEXT {
- 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;
- } LOGCONTEXT, * PLOGCONTEXT, NEAR* NPLOGCONTEXT, FAR* LPLOGCONTEXT;
- #endif /* WIN32 */
- /* 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, NEAR* NPORIENTATION, FAR* LPORIENTATION;
- typedef struct tagROTATION { /* 1.1 */
- int roPitch;
- int roRoll;
- int roYaw;
- } ROTATION, * PROTATION, NEAR* NPROTATION, FAR* 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 */
- #define WTX_EXPKEYS 5 /* ExpressKeys; 1.3 - DEPRECATED: see WTX_EXPKEYS2 */
- #define WTX_TOUCHSTRIP 6 /* TouchStrips; 1.4 */
- #define WTX_TOUCHRING 7 /* TouchRings; 1.4 */
- #define WTX_EXPKEYS2 8 /* ExpressKeys; 1.4 */
- typedef struct tagXBTNMASK {
- BYTE xBtnDnMask[32];
- BYTE xBtnUpMask[32];
- } XBTNMASK;
- typedef struct tagTILT { /* 1.1 */
- int tiltX;
- int tiltY;
- } TILT;
- typedef struct tagEXTENSIONBASE { /* 1.4 */
- HCTX nContext;
- UINT nStatus;
- DWORD nTime;
- UINT nSerialNumber;
- } EXTENSIONBASE;
- typedef struct tagEXPKEYSDATA { /* 1.4 */
- BYTE nTablet;
- BYTE nControl;
- BYTE nLocation;
- BYTE nReserved;
- DWORD nState;
- } EXPKEYSDATA;
- typedef struct tagSLIDERDATA { /* 1.4 */
- BYTE nTablet;
- BYTE nControl;
- BYTE nMode;
- BYTE nReserved;
- DWORD nPosition;
- } SLIDERDATA;
- typedef struct tagEXTPROPERTY { /* 1.4 */
- BYTE version; // Structure version, 0 for now
- BYTE tabletIndex; // 0-based index for tablet
- BYTE controlIndex; // 0-based index for control
- BYTE functionIndex; // 0-based index for control's sub-function
- WORD propertyID; // property ID
- WORD reserved; // DWORD-alignment filler
- DWORD dataSize; // number of bytes in data[] buffer
- BYTE data[1]; // raw data
- } EXTPROPERTY;
- #define TABLET_PROPERTY_CONTROLCOUNT 0 // UINT32: number of physical controls on tablet
- #define TABLET_PROPERTY_FUNCCOUNT 1 // UINT32: number of functions of control
- #define TABLET_PROPERTY_AVAILABLE 2 // BOOL: control/mode is available for override
- #define TABLET_PROPERTY_MIN 3 // UINT32: minimum value
- #define TABLET_PROPERTY_MAX 4 // UINT32: maximum value
- #define TABLET_PROPERTY_OVERRIDE 5 // BOOL: control is overridden
- #define TABLET_PROPERTY_OVERRIDE_NAME 6 // UTF-8: Displayable name when control is overridden
- #define TABLET_PROPERTY_LOCATION 11 // UINT32: Physical location of control (see TABLET_LOC_*)
- #define TABLET_LOC_LEFT 0
- #define TABLET_LOC_RIGHT 1
- #define TABLET_LOC_TOP 2
- #define TABLET_LOC_BOTTOM 3
- #define TABLET_LOC_TRANSDUCER 4
- #endif
- /* -------------------------------------------------------------------------- */
- /* -------------------------------------------------------------------------- */
- /* Functions */
- #ifndef API
- #ifndef WINAPI
- #define API FAR PASCAL
- #else
- #define API WINAPI
- #endif
- #endif
- #ifndef NOWTCALLBACKS
- #ifndef CALLBACK
- #define CALLBACK FAR PASCAL
- #endif
- #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 FAR* LPWTHOOKPROC;
- #endif
- #endif
- #ifndef NOWTFUNCTIONS
- #ifndef NOWTBASICFXNS
- /* BASIC FUNCTIONS */
- #ifdef WIN32
- UINT API WTInfoA(UINT, UINT, LPVOID);
- #define ORD_WTInfoA 20
- UINT API WTInfoW(UINT, UINT, LPVOID);
- #define ORD_WTInfoW 1020
- #ifdef UNICODE
- #define WTInfo WTInfoW
- #define ORD_WTInfo ORD_WTInfoW
- #else
- #define WTInfo WTInfoA
- #define ORD_WTInfo ORD_WTInfoA
- #endif /* !UNICODE */
- #else
- UINT API WTInfo(UINT, UINT, LPVOID);
- #define ORD_WTInfo 20
- #endif
- #ifdef WIN32
- HCTX API WTOpenA(HWND, LPLOGCONTEXTA, BOOL);
- #define ORD_WTOpenA 21
- HCTX API WTOpenW(HWND, LPLOGCONTEXTW, BOOL);
- #define ORD_WTOpenW 1021
- #ifdef UNICODE
- #define WTOpen WTOpenW
- #define ORD_WTOpen ORD_WTOpenW
- #else
- #define WTOpen WTOpenA
- #define ORD_WTOpen ORD_WTOpenA
- #endif /* !UNICODE */
- #else
- HCTX API WTOpen(HWND, LPLOGCONTEXT, BOOL);
- #define ORD_WTOpen 21
- #endif
- BOOL API WTClose(HCTX);
- #define ORD_WTClose 22
- int API WTPacketsGet(HCTX, int, LPVOID);
- #define ORD_WTPacketsGet 23
- BOOL API WTPacket(HCTX, UINT, LPVOID);
- #define ORD_WTPacket 24
- #endif
- #ifndef NOWTVISIBILITYFXNS
- /* VISIBILITY FUNCTIONS */
- BOOL API WTEnable(HCTX, BOOL);
- #define ORD_WTEnable 40
- BOOL API WTOverlap(HCTX, BOOL);
- #define ORD_WTOverlap 41
- #endif
- #ifndef NOWTCTXEDITFXNS
- /* CONTEXT EDITING FUNCTIONS */
- BOOL API WTConfig(HCTX, HWND);
- #define ORD_WTConfig 60
- #ifdef WIN32
- BOOL API WTGetA(HCTX, LPLOGCONTEXTA);
- #define ORD_WTGetA 61
- BOOL API WTGetW(HCTX, LPLOGCONTEXTW);
- #define ORD_WTGetW 1061
- #ifdef UNICODE
- #define WTGet WTGetW
- #define ORD_WTGet ORD_WTGetW
- #else
- #define WTGet WTGetA
- #define ORD_WTGet ORD_WTGetA
- #endif /* !UNICODE */
- #else
- BOOL API WTGet(HCTX, LPLOGCONTEXT);
- #define ORD_WTGet 61
- #endif
- #ifdef WIN32
- BOOL API WTSetA(HCTX, LPLOGCONTEXTA);
- #define ORD_WTSetA 62
- BOOL API WTSetW(HCTX, LPLOGCONTEXTW);
- #define ORD_WTSetW 1062
- #ifdef UNICODE
- #define WTSet WTSetW
- #define ORD_WTSet ORD_WTSetW
- #else
- #define WTSet WTSetA
- #define ORD_WTSet ORD_WTSetA
- #endif /* !UNICODE */
- #else
- BOOL API WTSet(HCTX, LPLOGCONTEXT);
- #define ORD_WTSet 62
- #endif
- BOOL API WTExtGet(HCTX, UINT, LPVOID);
- #define ORD_WTExtGet 63
- BOOL API WTExtSet(HCTX, UINT, LPVOID);
- #define ORD_WTExtSet 64
- BOOL API WTSave(HCTX, LPVOID);
- #define ORD_WTSave 65
- HCTX API WTRestore(HWND, LPVOID, BOOL);
- #define ORD_WTRestore 66
- #endif
- #ifndef NOWTQUEUEFXNS
- /* ADVANCED PACKET AND QUEUE FUNCTIONS */
- int API WTPacketsPeek(HCTX, int, LPVOID);
- #define ORD_WTPacketsPeek 80
- int API WTDataGet(HCTX, UINT, UINT, int, LPVOID, LPINT);
- #define ORD_WTDataGet 81
- int API WTDataPeek(HCTX, UINT, UINT, int, LPVOID, LPINT);
- #define ORD_WTDataPeek 82
- #ifndef WIN32
- /* OBSOLETE IN WIN32! */
- DWORD API WTQueuePackets(HCTX);
- #define ORD_WTQueuePackets 83
- #endif
- int API WTQueueSizeGet(HCTX);
- #define ORD_WTQueueSizeGet 84
- BOOL API WTQueueSizeSet(HCTX, int);
- #define ORD_WTQueueSizeSet 85
- #endif
- #ifndef NOWTHMGRFXNS
- /* MANAGER HANDLE FUNCTIONS */
- HMGR API WTMgrOpen(HWND, UINT);
- #define ORD_WTMgrOpen 100
- BOOL API WTMgrClose(HMGR);
- #define ORD_WTMgrClose 101
- #endif
- #ifndef NOWTMGRCTXFXNS
- /* MANAGER CONTEXT FUNCTIONS */
- BOOL API WTMgrContextEnum(HMGR, WTENUMPROC, LPARAM);
- #define ORD_WTMgrContextEnum 120
- HWND API WTMgrContextOwner(HMGR, HCTX);
- #define ORD_WTMgrContextOwner 121
- HCTX API WTMgrDefContext(HMGR, BOOL);
- #define ORD_WTMgrDefContext 122
- HCTX API WTMgrDefContextEx(HMGR, UINT, BOOL); /* 1.1 */
- #define ORD_WTMgrDefContextEx 206
- #endif
- #ifndef NOWTMGRCONFIGFXNS
- /* MANAGER CONFIG BOX FUNCTIONS */
- UINT API WTMgrDeviceConfig(HMGR, UINT, HWND);
- #define ORD_WTMgrDeviceConfig 140
- #ifndef WIN32
- /* OBSOLETE IN WIN32! */
- BOOL API WTMgrConfigReplace(HMGR, BOOL, WTCONFIGPROC);
- #define ORD_WTMgrConfigReplace 141
- #endif
- #endif
- #ifndef NOWTMGRHOOKFXNS
- /* MANAGER PACKET HOOK FUNCTIONS */
- #ifndef WIN32
- /* OBSOLETE IN WIN32! */
- WTHOOKPROC API WTMgrPacketHook(HMGR, BOOL, int, WTHOOKPROC);
- #define ORD_WTMgrPacketHook 160
- LRESULT API WTMgrPacketHookDefProc(int, WPARAM, LPARAM, LPWTHOOKPROC);
- #define ORD_WTMgrPacketHookDefProc 161
- #endif
- #endif
- #ifndef NOWTMGRPREFFXNS
- /* MANAGER PREFERENCE DATA FUNCTIONS */
- BOOL API WTMgrExt(HMGR, UINT, LPVOID);
- #define ORD_WTMgrExt 180
- BOOL API WTMgrCsrEnable(HMGR, UINT, BOOL);
- #define ORD_WTMgrCsrEnable 181
- BOOL API WTMgrCsrButtonMap(HMGR, UINT, LPBYTE, LPBYTE);
- #define ORD_WTMgrCsrButtonMap 182
- BOOL API WTMgrCsrPressureBtnMarks(HMGR, UINT, DWORD, DWORD);
- #define ORD_WTMgrCsrPressureBtnMarks 183
- BOOL API WTMgrCsrPressureResponse(HMGR, UINT, UINT FAR*, UINT FAR*);
- #define ORD_WTMgrCsrPressureResponse 184
- BOOL API WTMgrCsrExt(HMGR, UINT, UINT, LPVOID);
- #define ORD_WTMgrCsrExt 185
- #endif
- /* Win32 replacements for non-portable functions. */
- #ifndef NOWTQUEUEFXNS
- /* ADVANCED PACKET AND QUEUE FUNCTIONS */
- BOOL API WTQueuePacketsEx(HCTX, UINT FAR*, UINT FAR*);
- #define ORD_WTQueuePacketsEx 200
- #endif
- #ifndef NOWTMGRCONFIGFXNS
- /* MANAGER CONFIG BOX FUNCTIONS */
- #ifdef WIN32
- BOOL API WTMgrConfigReplaceExA(HMGR, BOOL, LPSTR, LPSTR);
- #define ORD_WTMgrConfigReplaceExA 202
- BOOL API WTMgrConfigReplaceExW(HMGR, BOOL, LPWSTR, LPSTR);
- #define ORD_WTMgrConfigReplaceExW 1202
- #ifdef UNICODE
- #define WTMgrConfigReplaceEx WTMgrConfigReplaceExW
- #define ORD_WTMgrConfigReplaceEx ORD_WTMgrConfigReplaceExW
- #else
- #define WTMgrConfigReplaceEx WTMgrConfigReplaceExA
- #define ORD_WTMgrConfigReplaceEx ORD_WTMgrConfigReplaceExA
- #endif /* !UNICODE */
- #else
- BOOL API WTMgrConfigReplaceEx(HMGR, BOOL, LPSTR, LPSTR);
- #define ORD_WTMgrConfigReplaceEx 202
- #endif
- #endif
- #ifndef NOWTMGRHOOKFXNS
- /* MANAGER PACKET HOOK FUNCTIONS */
- #ifdef WIN32
- HWTHOOK API WTMgrPacketHookExA(HMGR, int, LPSTR, LPSTR);
- #define ORD_WTMgrPacketHookExA 203
- HWTHOOK API WTMgrPacketHookExW(HMGR, int, LPWSTR, LPSTR);
- #define ORD_WTMgrPacketHookExW 1203
- #ifdef UNICODE
- #define WTMgrPacketHookEx WTMgrPacketHookExW
- #define ORD_WTMgrPacketHookEx ORD_WTMgrPacketHookExW
- #else
- #define WTMgrPacketHookEx WTMgrPacketHookExA
- #define ORD_WTMgrPacketHookEx ORD_WTMgrPacketHookExA
- #endif /* !UNICODE */
- #else
- HWTHOOK API WTMgrPacketHookEx(HMGR, int, LPSTR, LPSTR);
- #define ORD_WTMgrPacketHookEx 203
- #endif
- BOOL API WTMgrPacketUnhook(HWTHOOK);
- #define ORD_WTMgrPacketUnhook 204
- LRESULT API WTMgrPacketHookNext(HWTHOOK, int, WPARAM, LPARAM);
- #define ORD_WTMgrPacketHookNext 205
- #endif
- #ifndef NOWTMGRPREFFXNS
- /* MANAGER PREFERENCE DATA FUNCTIONS */
- BOOL API WTMgrCsrPressureBtnMarksEx(HMGR, UINT, UINT FAR*, UINT FAR*);
- #define ORD_WTMgrCsrPressureBtnMarksEx 201
- #endif
- #endif
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
- #endif /* #define _INC_WINTAB */
|