 f6b4585c98
			
		
	
	f6b4585c98
	
	
	
		
			
			2007-01-19 Tor Lillqvist <tml@novell.com> Build Wintab support always on Windows. Don't require the Wintab SDK. * configure.in: Drop the --with-wintab option. Drop the HAVE_WINTAB feature test macro and Automake variable. * acconfig.h * config.h.win32.in: Drop HAVE_WINTAB. * gdk/win32/gdkevents-win32.c * gdk/win32/gdkinput.c * gdk/win32/gdkinput-win32.h * gdk/win32/gdkinput-win32.c * gdk/win32/gdkmain-win32.c: Make HAVE_WINTAB ifdef blocks unconditional. * gdk/win32/gdkinput-win32.c (_gdk_input_wintab_init_check): Try to load wintab32.dll dynamically here. If it is found look up the handful Wintab functions we use. (rest of file): Use these function pointers instead of calling the functions from wntab32x.lib. The code in wntab32x.lib did the same thing anyway: tried to load wintab32.dll, and looked up the addresses of the actual functions from it. * gdk/Makefile.am * gdk/win32/Makefile.am: Drop the libwntab32x hacks. * gdk/win32/wintab.h * gdk/win32/pktdef.h: New files. Copied from the Wintab SDK. Copyright blurb says: "The text and information contained in this file may be freely used, copied, or distributed without compensation or licensing restrictions." * README.win32: Update a bit. Remove the text about the Wintab SDK. svn path=/trunk/; revision=17186
		
			
				
	
	
		
			864 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			864 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* -------------------------------- 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 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_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
 | |
| 
 | |
| /* -------------------------------------------------------------------------- */
 | |
| /* -------------------------------------------------------------------------- */
 | |
| /* 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_MAX				19
 | |
| 
 | |
| #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
 | |
| #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 */
 | |
| 
 | |
| typedef struct tagXBTNMASK {
 | |
| 	BYTE xBtnDnMask[32];
 | |
| 	BYTE xBtnUpMask[32];
 | |
| } XBTNMASK;
 | |
| 
 | |
| typedef struct tagTILT { /* 1.1 */
 | |
| 	int tiltX;
 | |
| 	int tiltY;
 | |
| } TILT;
 | |
| 
 | |
| #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 */
 | |
| 
 |