Ajoutez des fichiers projet.
This commit is contained in:
parent
c8155fc129
commit
afd8b80ab8
|
@ -0,0 +1,4 @@
|
||||||
|
out
|
||||||
|
.vs
|
||||||
|
doc
|
||||||
|
releases
|
|
@ -0,0 +1,3 @@
|
||||||
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
project(yaw-audio)
|
||||||
|
add_subdirectory("src")
|
|
@ -0,0 +1,2 @@
|
||||||
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
add_subdirectory(yaw-tab)
|
|
@ -0,0 +1,3 @@
|
||||||
|
cmake_minimum_required(VERSION 3.10)
|
||||||
|
|
||||||
|
project(yaw-tab)
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* ------------------------------- msgpack.h -------------------------------- */
|
||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
Selected message unpacking macros from windowsx.h
|
||||||
|
to circumvent compile-time memory headaches.
|
||||||
|
|
||||||
|
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.
|
||||||
|
------------------------------------------------------------------------------*/
|
||||||
|
#ifdef WIN32
|
||||||
|
#define GET_WM_ACTIVATE_STATE(wp, lp) LOWORD(wp)
|
||||||
|
#define GET_WM_COMMAND_ID(wp, lp) LOWORD(wp)
|
||||||
|
#define GET_WM_COMMAND_HWND(wp, lp) (HWND)(lp)
|
||||||
|
#define GET_WM_COMMAND_CMD(wp, lp) HIWORD(wp)
|
||||||
|
#define FORWARD_WM_COMMAND(hwnd, id, hwndCtl, codeNotify, fn) \
|
||||||
|
(void)(fn)((hwnd), WM_COMMAND, MAKEWPARAM((UINT)(id),(UINT)(codeNotify)), (LPARAM)(HWND)(hwndCtl))
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
#else
|
||||||
|
#define GET_WM_ACTIVATE_STATE(wp, lp) (wp)
|
||||||
|
#define GET_WM_COMMAND_ID(wp, lp) (wp)
|
||||||
|
#define GET_WM_COMMAND_HWND(wp, lp) (HWND)LOWORD(lp)
|
||||||
|
#define GET_WM_COMMAND_CMD(wp, lp) HIWORD(lp)
|
||||||
|
#define FORWARD_WM_COMMAND(hwnd, id, hwndCtl, codeNotify, fn) \
|
||||||
|
(void)(fn)((hwnd), WM_COMMAND, (WPARAM)(int)(id), MAKELPARAM((UINT)(hwndCtl), (codeNotify)))
|
||||||
|
/* -------------------------------------------------------------------------- */
|
||||||
|
#endif
|
|
@ -0,0 +1,262 @@
|
||||||
|
/* -------------------------------- pktdef.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.
|
||||||
|
------------------------------------------------------------------------------*/
|
||||||
|
/*------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
How to use pktdef.h:
|
||||||
|
|
||||||
|
1. Include wintab.h
|
||||||
|
2. if using just one packet format:
|
||||||
|
a. Define PACKETDATA and PACKETMODE as or'ed combinations of WTPKT bits
|
||||||
|
(use the PK_* identifiers).
|
||||||
|
b. Include pktdef.h.
|
||||||
|
c. The generated structure typedef will be called PACKET. Use PACKETDATA
|
||||||
|
and PACKETMODE to fill in the LOGCONTEXT structure.
|
||||||
|
3. If using multiple packet formats, for each one:
|
||||||
|
a. Define PACKETNAME. Its text value will be a prefix for this packet's
|
||||||
|
parameters and names.
|
||||||
|
b. Define <PACKETNAME>PACKETDATA and <PACKETNAME>PACKETMODE similar to
|
||||||
|
2.a. above.
|
||||||
|
c. Include pktdef.h.
|
||||||
|
d. The generated structure typedef will be called
|
||||||
|
<PACKETNAME>PACKET. Compare with 2.c. above and example #2 below.
|
||||||
|
4. If using extension data for extensions that report thier data in the packet,
|
||||||
|
do the following additional steps for each extension:
|
||||||
|
a. Before including pktdef.h, define <PACKETNAME>PACKET<EXTENSION>
|
||||||
|
as either PKEXT_ABSOLUTE or PKEXT_RELATIVE.
|
||||||
|
b. The generated structure typedef will contain a field for the
|
||||||
|
extension data.
|
||||||
|
c. Scan the WTI_EXTENSION categories to find the extension's
|
||||||
|
packet mask bit.
|
||||||
|
d. OR the packet mask bit with <PACKETNAME>PACKETDATA and use the
|
||||||
|
result in the lcPktData field of the LOGCONTEXT structure.
|
||||||
|
e. If <PACKETNAME>PACKET<EXTENSION> was PKEXT_RELATIVE, OR the
|
||||||
|
packet mask bit with <PACKETNAME>PACKETMODE and use the result
|
||||||
|
in the lcPktMode field of the LOGCONTEXT structure.
|
||||||
|
5. If using extension data for extensions that report thier data in the extensions packet,
|
||||||
|
do the following additional steps for each extension:
|
||||||
|
a. Before including pktdef.h, define <PACKETNAME>PACKET<EXTENSION> as PKEXT_ABSOLUTE.
|
||||||
|
b. The generated extension structure typedef will contain a field for the
|
||||||
|
extension data.
|
||||||
|
c. Call WTExtSet to activate the extention. Use the context id in the WT_PACKETEXT
|
||||||
|
message to retrieve the extension data <PACKETNAME>PACKETEXT.
|
||||||
|
|
||||||
|
|
||||||
|
Example #1. -- single packet format
|
||||||
|
|
||||||
|
#include <wintab.h>
|
||||||
|
#define PACKETDATA PK_X | PK_Y | PK_BUTTONS /@ x, y, buttons @/
|
||||||
|
#define PACKETMODE PK_BUTTONS /@ buttons relative mode @/
|
||||||
|
#include <pktdef.h>
|
||||||
|
...
|
||||||
|
lc.lcPktData = PACKETDATA;
|
||||||
|
lc.lcPktMode = PACKETMODE;
|
||||||
|
|
||||||
|
Example #2. -- multiple formats
|
||||||
|
|
||||||
|
#include <wintab.h>
|
||||||
|
#define PACKETNAME MOE
|
||||||
|
#define MOEPACKETDATA PK_X | PK_Y | PK_BUTTONS /@ x, y, buttons @/
|
||||||
|
#define MOEPACKETMODE PK_BUTTONS /@ buttons relative mode @/
|
||||||
|
#include <pktdef.h>
|
||||||
|
#define PACKETNAME LARRY
|
||||||
|
#define LARRYPACKETDATA PK_Y | PK_Z | PK_BUTTONS /@ y, z, buttons @/
|
||||||
|
#define LARRYPACKETMODE PK_BUTTONS /@ buttons relative mode @/
|
||||||
|
#include <pktdef.h>
|
||||||
|
#define PACKETNAME CURLY
|
||||||
|
#define CURLYPACKETDATA PK_X | PK_Z | PK_BUTTONS /@ x, z, buttons @/
|
||||||
|
#define CURLYPACKETMODE PK_BUTTONS /@ buttons relative mode @/
|
||||||
|
#include <pktdef.h>
|
||||||
|
...
|
||||||
|
lcMOE.lcPktData = MOEPACKETDATA;
|
||||||
|
lcMOE.lcPktMode = MOEPACKETMODE;
|
||||||
|
...
|
||||||
|
lcLARRY.lcPktData = LARRYPACKETDATA;
|
||||||
|
lcLARRY.lcPktMode = LARRYPACKETMODE;
|
||||||
|
...
|
||||||
|
lcCURLY.lcPktData = CURLYPACKETDATA;
|
||||||
|
lcCURLY.lcPktMode = CURLYPACKETMODE;
|
||||||
|
|
||||||
|
Example #3. -- extension packet data "XFOO".
|
||||||
|
|
||||||
|
#include <wintab.h>
|
||||||
|
#define PACKETDATA PK_X | PK_Y | PK_BUTTONS /@ x, y, buttons @/
|
||||||
|
#define PACKETMODE PK_BUTTONS /@ buttons relative mode @/
|
||||||
|
#define PACKETXFOO PKEXT_ABSOLUTE /@ XFOO absolute mode @/
|
||||||
|
#include <pktdef.h>
|
||||||
|
...
|
||||||
|
UINT ScanExts(UINT wTag)
|
||||||
|
{
|
||||||
|
UINT i;
|
||||||
|
UINT wScanTag;
|
||||||
|
|
||||||
|
/@ scan for wTag's info category. @/
|
||||||
|
for (i = 0; WTInfo(WTI_EXTENSIONS + i, EXT_TAG, &wScanTag); i++) {
|
||||||
|
if (wTag == wScanTag) {
|
||||||
|
/@ return category offset from WTI_EXTENSIONS. @/
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/@ return error code. @/
|
||||||
|
return 0xFFFF;
|
||||||
|
}
|
||||||
|
...
|
||||||
|
lc.lcPktData = PACKETDATA;
|
||||||
|
lc.lcPktMode = PACKETMODE;
|
||||||
|
#ifdef PACKETXFOO
|
||||||
|
categoryXFOO = ScanExts(WTX_XFOO);
|
||||||
|
WTInfo(WTI_EXTENSIONS + categoryXFOO, EXT_MASK, &maskXFOO);
|
||||||
|
lc.lcPktData |= maskXFOO;
|
||||||
|
#if PACKETXFOO == PKEXT_RELATIVE
|
||||||
|
lc.lcPktMode |= maskXFOO;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
WTOpen(hWnd, &lc, TRUE);
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------*/
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
#ifndef PACKETNAME
|
||||||
|
/* if no packet name prefix */
|
||||||
|
#define __PFX(x) x
|
||||||
|
#define __IFX(x,y) x ## y
|
||||||
|
#else
|
||||||
|
/* add prefixes and infixes to packet format names */
|
||||||
|
#define __PFX(x) __PFX2(PACKETNAME,x)
|
||||||
|
#define __PFX2(p,x) __PFX3(p,x)
|
||||||
|
#define __PFX3(p,x) p ## x
|
||||||
|
#define __IFX(x,y) __IFX2(x,PACKETNAME,y)
|
||||||
|
#define __IFX2(x,i,y) __IFX3(x,i,y)
|
||||||
|
#define __IFX3(x,i,y) x ## i ## y
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define __SFX2(x,s) __SFX3(x,s)
|
||||||
|
#define __SFX3(x,s) x ## s
|
||||||
|
|
||||||
|
#define __TAG __IFX(tag,PACKET)
|
||||||
|
#define __TYPES __PFX(PACKET), * __IFX(P,PACKET), NEAR * __IFX(NP,PACKET), FAR * __IFX(LP,PACKET)
|
||||||
|
|
||||||
|
#define __TAGE __IFX(tag,PACKETEXT)
|
||||||
|
#define __TYPESE __PFX(PACKETEXT), * __IFX(P,PACKETEXT), NEAR * __IFX(NP,PACKETEXT), FAR * __IFX(LP,PACKETEXT)
|
||||||
|
|
||||||
|
#define __DATA (__PFX(PACKETDATA))
|
||||||
|
#define __MODE (__PFX(PACKETMODE))
|
||||||
|
#define __EXT(x) __SFX2(__PFX(PACKET),x)
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct __TAG {
|
||||||
|
#if (__DATA & PK_CONTEXT)
|
||||||
|
HCTX pkContext;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_STATUS)
|
||||||
|
UINT pkStatus;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_TIME)
|
||||||
|
DWORD pkTime;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_CHANGED)
|
||||||
|
WTPKT pkChanged;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_SERIAL_NUMBER)
|
||||||
|
UINT pkSerialNumber;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_CURSOR)
|
||||||
|
UINT pkCursor;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_BUTTONS)
|
||||||
|
DWORD pkButtons;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_X)
|
||||||
|
LONG pkX;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_Y)
|
||||||
|
LONG pkY;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_Z)
|
||||||
|
LONG pkZ;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_NORMAL_PRESSURE)
|
||||||
|
#if (__MODE & PK_NORMAL_PRESSURE)
|
||||||
|
/* relative */
|
||||||
|
int pkNormalPressure;
|
||||||
|
#else
|
||||||
|
/* absolute */
|
||||||
|
UINT pkNormalPressure;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_TANGENT_PRESSURE)
|
||||||
|
#if (__MODE & PK_TANGENT_PRESSURE)
|
||||||
|
/* relative */
|
||||||
|
int pkTangentPressure;
|
||||||
|
#else
|
||||||
|
/* absolute */
|
||||||
|
UINT pkTangentPressure;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_ORIENTATION)
|
||||||
|
ORIENTATION pkOrientation;
|
||||||
|
#endif
|
||||||
|
#if (__DATA & PK_ROTATION)
|
||||||
|
ROTATION pkRotation; /* 1.1 */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef NOWTEXTENSIONS
|
||||||
|
/* extensions begin here. */
|
||||||
|
#if (__EXT(FKEYS) == PKEXT_RELATIVE) || (__EXT(FKEYS) == PKEXT_ABSOLUTE)
|
||||||
|
UINT pkFKeys;
|
||||||
|
#endif
|
||||||
|
#if (__EXT(TILT) == PKEXT_RELATIVE) || (__EXT(TILT) == PKEXT_ABSOLUTE)
|
||||||
|
TILT pkTilt;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} __TYPES ;
|
||||||
|
|
||||||
|
#ifndef NOWTEXTENSIONS
|
||||||
|
typedef struct __TAGE {
|
||||||
|
EXTENSIONBASE pkBase;
|
||||||
|
|
||||||
|
#if (__EXT(EXPKEYS) == PKEXT_RELATIVE) || (__EXT(EXPKEYS) == PKEXT_ABSOLUTE)
|
||||||
|
EXPKEYSDATA pkExpKeys; /* 1.4 */
|
||||||
|
#endif
|
||||||
|
#if (__EXT(TOUCHSTRIP) == PKEXT_RELATIVE) || (__EXT(TOUCHSTRIP) == PKEXT_ABSOLUTE)
|
||||||
|
SLIDERDATA pkTouchStrip; /* 1.4 */
|
||||||
|
#endif
|
||||||
|
#if (__EXT(TOUCHRING) == PKEXT_RELATIVE) || (__EXT(TOUCHRING) == PKEXT_ABSOLUTE)
|
||||||
|
SLIDERDATA pkTouchRing; /* 1.4 */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} __TYPESE ;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef PACKETNAME
|
||||||
|
#undef __TAG
|
||||||
|
#undef __TAGE
|
||||||
|
#undef __TAG2
|
||||||
|
#undef __TYPES
|
||||||
|
#undef __TYPESE
|
||||||
|
#undef __TYPES2
|
||||||
|
#undef __DATA
|
||||||
|
#undef __MODE
|
||||||
|
#undef __PFX
|
||||||
|
#undef __PFX2
|
||||||
|
#undef __PFX3
|
||||||
|
#undef __IFX
|
||||||
|
#undef __IFX2
|
||||||
|
#undef __IFX3
|
||||||
|
#undef __SFX2
|
||||||
|
#undef __SFX3
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif /* __cplusplus */
|
|
@ -0,0 +1,927 @@
|
||||||
|
/* -------------------------------- 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 1998-2008 by Wacom Technology
|
||||||
|
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_OVERRIDE_ICON 7 // Image: Icon to show when control is overridden
|
||||||
|
#define TABLET_PROPERTY_ICON_WIDTH 8 // UINT32: Pixel width of icon display
|
||||||
|
#define TABLET_PROPERTY_ICON_HEIGHT 9 // UINT32: Pixel height of icon display
|
||||||
|
#define TABLET_PROPERTY_ICON_FORMAT 10 // UINT32: UINT32: Pixel format of icon display (see TABLET_ICON_FMT_*)
|
||||||
|
#define TABLET_PROPERTY_LOCATION 11 // UINT32: Physical location of control (see TABLET_LOC_*)
|
||||||
|
|
||||||
|
#define TABLET_ICON_FMT_NONE 0 // No display
|
||||||
|
#define TABLET_ICON_FMT_4BPP_GRAY 1 // 4bpp grayscale
|
||||||
|
|
||||||
|
#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 */
|
||||||
|
|
Loading…
Reference in New Issue