1 /* -------------------------------- wintab.h -------------------------------- */ 2 /* Combined 16 & 32-bit version. */ 3 4 /*------------------------------------------------------------------------------ 5 The text and information contained in this file may be freely used, 6 copied, or distributed without compensation or licensing restrictions. 7 8 This file is copyright 1991-1998 by LCS/Telegraphics. 9 ------------------------------------------------------------------------------*/ 10 11 #ifndef _INC_WINTAB /* prevent multiple includes */ 12 #define _INC_WINTAB 13 14 #ifdef __cplusplus 15 extern "C" { 16 #endif /* __cplusplus */ 17 18 /* -------------------------------------------------------------------------- */ 19 /* Messages */ 20 #ifndef NOWTMESSAGES 21 22 #define WT_DEFBASE 0x7FF0 23 #define WT_MAXOFFSET 0xF 24 25 #define _WT_PACKET(b) ((b)+0) 26 #define _WT_CTXOPEN(b) ((b)+1) 27 #define _WT_CTXCLOSE(b) ((b)+2) 28 #define _WT_CTXUPDATE(b) ((b)+3) 29 #define _WT_CTXOVERLAP(b) ((b)+4) 30 #define _WT_PROXIMITY(b) ((b)+5) 31 #define _WT_INFOCHANGE(b) ((b)+6) 32 #define _WT_CSRCHANGE(b) ((b)+7) /* 1.1 */ 33 #define _WT_MAX(b) ((b)+WT_MAXOFFSET) 34 35 #define WT_PACKET _WT_PACKET(WT_DEFBASE) 36 #define WT_CTXOPEN _WT_CTXOPEN(WT_DEFBASE) 37 #define WT_CTXCLOSE _WT_CTXCLOSE(WT_DEFBASE) 38 #define WT_CTXUPDATE _WT_CTXUPDATE(WT_DEFBASE) 39 #define WT_CTXOVERLAP _WT_CTXOVERLAP(WT_DEFBASE) 40 #define WT_PROXIMITY _WT_PROXIMITY(WT_DEFBASE) 41 #define WT_INFOCHANGE _WT_INFOCHANGE(WT_DEFBASE) 42 #define WT_CSRCHANGE _WT_CSRCHANGE(WT_DEFBASE) /* 1.1 */ 43 #define WT_MAX _WT_MAX(WT_DEFBASE) 44 45 #endif 46 47 /* -------------------------------------------------------------------------- */ 48 /* -------------------------------------------------------------------------- */ 49 /* Data Types */ 50 51 /* -------------------------------------------------------------------------- */ 52 /* COMMON DATA DEFS */ 53 54 DECLARE_HANDLE(HMGR); /* manager handle */ 55 DECLARE_HANDLE(HCTX); /* context handle */ 56 DECLARE_HANDLE(HWTHOOK); /* hook handle */ 57 58 typedef DWORD WTPKT; /* packet mask */ 59 60 61 #ifndef NOWTPKT 62 63 /* WTPKT bits */ 64 #define PK_CONTEXT 0x0001 /* reporting context */ 65 #define PK_STATUS 0x0002 /* status bits */ 66 #define PK_TIME 0x0004 /* time stamp */ 67 #define PK_CHANGED 0x0008 /* change bit vector */ 68 #define PK_SERIAL_NUMBER 0x0010 /* packet serial number */ 69 #define PK_CURSOR 0x0020 /* reporting cursor */ 70 #define PK_BUTTONS 0x0040 /* button information */ 71 #define PK_X 0x0080 /* x axis */ 72 #define PK_Y 0x0100 /* y axis */ 73 #define PK_Z 0x0200 /* z axis */ 74 #define PK_NORMAL_PRESSURE 0x0400 /* normal or tip pressure */ 75 #define PK_TANGENT_PRESSURE 0x0800 /* tangential or barrel pressure */ 76 #define PK_ORIENTATION 0x1000 /* orientation info: tilts */ 77 #define PK_ROTATION 0x2000 /* rotation info; 1.1 */ 78 79 #endif 80 81 typedef DWORD FIX32; /* fixed-point arithmetic type */ 82 83 #ifndef NOFIX32 84 #define INT(x) HIWORD(x) 85 #define FRAC(x) LOWORD(x) 86 87 #define CASTFIX32(x) ((FIX32)((x)*65536L)) 88 89 #define ROUND(x) (INT(x) + (FRAC(x) > (WORD)0x8000)) 90 91 #define FIX_MUL(c, a, b) \ 92 (c = (((DWORD)FRAC(a) * FRAC(b)) >> 16) + \ 93 (DWORD)INT(a) * FRAC(b) + \ 94 (DWORD)INT(b) * FRAC(a) + \ 95 ((DWORD)INT(a) * INT(b) << 16)) 96 97 #ifdef _WINDLL 98 #define FIX_DIV_SC static 99 #else 100 #define FIX_DIV_SC 101 #endif 102 103 #define FIX_DIV(c, a, b) \ 104 { \ 105 FIX_DIV_SC DWORD temp, rem, btemp; \ 106 \ 107 /* fraction done bytewise */ \ 108 temp = ((a / b) << 16); \ 109 rem = a % b; \ 110 btemp = b; \ 111 if (INT(btemp) < 256) { \ 112 rem <<= 8; \ 113 } \ 114 else { \ 115 btemp >>= 8; \ 116 } \ 117 temp += ((rem / btemp) << 8); \ 118 rem %= btemp; \ 119 rem <<= 8; \ 120 temp += rem / btemp; \ 121 c = temp; \ 122 } 123 #endif 124 125 /* -------------------------------------------------------------------------- */ 126 /* INFO DATA DEFS */ 127 128 #ifndef NOWTINFO 129 130 #ifndef NOWTAXIS 131 132 typedef struct tagAXIS { 133 LONG axMin; 134 LONG axMax; 135 UINT axUnits; 136 FIX32 axResolution; 137 } AXIS, *PAXIS, NEAR *NPAXIS, FAR *LPAXIS; 138 139 /* unit specifiers */ 140 #define TU_NONE 0 141 #define TU_INCHES 1 142 #define TU_CENTIMETERS 2 143 #define TU_CIRCLE 3 144 145 #endif 146 147 #ifndef NOWTSYSBUTTONS 148 149 /* system button assignment values */ 150 #define SBN_NONE 0x00 151 #define SBN_LCLICK 0x01 152 #define SBN_LDBLCLICK 0x02 153 #define SBN_LDRAG 0x03 154 #define SBN_RCLICK 0x04 155 #define SBN_RDBLCLICK 0x05 156 #define SBN_RDRAG 0x06 157 #define SBN_MCLICK 0x07 158 #define SBN_MDBLCLICK 0x08 159 #define SBN_MDRAG 0x09 160 /* for Pen Windows */ 161 #define SBN_PTCLICK 0x10 162 #define SBN_PTDBLCLICK 0x20 163 #define SBN_PTDRAG 0x30 164 #define SBN_PNCLICK 0x40 165 #define SBN_PNDBLCLICK 0x50 166 #define SBN_PNDRAG 0x60 167 #define SBN_P1CLICK 0x70 168 #define SBN_P1DBLCLICK 0x80 169 #define SBN_P1DRAG 0x90 170 #define SBN_P2CLICK 0xA0 171 #define SBN_P2DBLCLICK 0xB0 172 #define SBN_P2DRAG 0xC0 173 #define SBN_P3CLICK 0xD0 174 #define SBN_P3DBLCLICK 0xE0 175 #define SBN_P3DRAG 0xF0 176 177 #endif 178 179 #ifndef NOWTCAPABILITIES 180 181 /* hardware capabilities */ 182 #define HWC_INTEGRATED 0x0001 183 #define HWC_TOUCH 0x0002 184 #define HWC_HARDPROX 0x0004 185 #define HWC_PHYSID_CURSORS 0x0008 /* 1.1 */ 186 #endif 187 188 #ifndef NOWTIFC 189 190 #ifndef NOWTCURSORS 191 192 /* cursor capabilities */ 193 #define CRC_MULTIMODE 0x0001 /* 1.1 */ 194 #define CRC_AGGREGATE 0x0002 /* 1.1 */ 195 #define CRC_INVERT 0x0004 /* 1.1 */ 196 197 #endif 198 199 /* info categories */ 200 #define WTI_INTERFACE 1 201 #define IFC_WINTABID 1 202 #define IFC_SPECVERSION 2 203 #define IFC_IMPLVERSION 3 204 #define IFC_NDEVICES 4 205 #define IFC_NCURSORS 5 206 #define IFC_NCONTEXTS 6 207 #define IFC_CTXOPTIONS 7 208 #define IFC_CTXSAVESIZE 8 209 #define IFC_NEXTENSIONS 9 210 #define IFC_NMANAGERS 10 211 #define IFC_MAX 10 212 213 214 #endif 215 216 #ifndef NOWTSTATUS 217 218 #define WTI_STATUS 2 219 #define STA_CONTEXTS 1 220 #define STA_SYSCTXS 2 221 #define STA_PKTRATE 3 222 #define STA_PKTDATA 4 223 #define STA_MANAGERS 5 224 #define STA_SYSTEM 6 225 #define STA_BUTTONUSE 7 226 #define STA_SYSBTNUSE 8 227 #define STA_MAX 8 228 229 #endif 230 231 #ifndef NOWTDEFCONTEXT 232 233 #define WTI_DEFCONTEXT 3 234 #define WTI_DEFSYSCTX 4 235 #define WTI_DDCTXS 400 /* 1.1 */ 236 #define WTI_DSCTXS 500 /* 1.1 */ 237 #define CTX_NAME 1 238 #define CTX_OPTIONS 2 239 #define CTX_STATUS 3 240 #define CTX_LOCKS 4 241 #define CTX_MSGBASE 5 242 #define CTX_DEVICE 6 243 #define CTX_PKTRATE 7 244 #define CTX_PKTDATA 8 245 #define CTX_PKTMODE 9 246 #define CTX_MOVEMASK 10 247 #define CTX_BTNDNMASK 11 248 #define CTX_BTNUPMASK 12 249 #define CTX_INORGX 13 250 #define CTX_INORGY 14 251 #define CTX_INORGZ 15 252 #define CTX_INEXTX 16 253 #define CTX_INEXTY 17 254 #define CTX_INEXTZ 18 255 #define CTX_OUTORGX 19 256 #define CTX_OUTORGY 20 257 #define CTX_OUTORGZ 21 258 #define CTX_OUTEXTX 22 259 #define CTX_OUTEXTY 23 260 #define CTX_OUTEXTZ 24 261 #define CTX_SENSX 25 262 #define CTX_SENSY 26 263 #define CTX_SENSZ 27 264 #define CTX_SYSMODE 28 265 #define CTX_SYSORGX 29 266 #define CTX_SYSORGY 30 267 #define CTX_SYSEXTX 31 268 #define CTX_SYSEXTY 32 269 #define CTX_SYSSENSX 33 270 #define CTX_SYSSENSY 34 271 #define CTX_MAX 34 272 273 #endif 274 275 #ifndef NOWTDEVICES 276 277 #define WTI_DEVICES 100 278 #define DVC_NAME 1 279 #define DVC_HARDWARE 2 280 #define DVC_NCSRTYPES 3 281 #define DVC_FIRSTCSR 4 282 #define DVC_PKTRATE 5 283 #define DVC_PKTDATA 6 284 #define DVC_PKTMODE 7 285 #define DVC_CSRDATA 8 286 #define DVC_XMARGIN 9 287 #define DVC_YMARGIN 10 288 #define DVC_ZMARGIN 11 289 #define DVC_X 12 290 #define DVC_Y 13 291 #define DVC_Z 14 292 #define DVC_NPRESSURE 15 293 #define DVC_TPRESSURE 16 294 #define DVC_ORIENTATION 17 295 #define DVC_ROTATION 18 /* 1.1 */ 296 #define DVC_PNPID 19 /* 1.1 */ 297 #define DVC_MAX 19 298 299 #endif 300 301 #ifndef NOWTCURSORS 302 303 #define WTI_CURSORS 200 304 #define CSR_NAME 1 305 #define CSR_ACTIVE 2 306 #define CSR_PKTDATA 3 307 #define CSR_BUTTONS 4 308 #define CSR_BUTTONBITS 5 309 #define CSR_BTNNAMES 6 310 #define CSR_BUTTONMAP 7 311 #define CSR_SYSBTNMAP 8 312 #define CSR_NPBUTTON 9 313 #define CSR_NPBTNMARKS 10 314 #define CSR_NPRESPONSE 11 315 #define CSR_TPBUTTON 12 316 #define CSR_TPBTNMARKS 13 317 #define CSR_TPRESPONSE 14 318 #define CSR_PHYSID 15 /* 1.1 */ 319 #define CSR_MODE 16 /* 1.1 */ 320 #define CSR_MINPKTDATA 17 /* 1.1 */ 321 #define CSR_MINBUTTONS 18 /* 1.1 */ 322 #define CSR_CAPABILITIES 19 /* 1.1 */ 323 #define CSR_TYPE 20 /* 1.2 */ 324 #define CSR_MAX 20 325 326 #endif 327 328 #ifndef NOWTEXTENSIONS 329 330 #define WTI_EXTENSIONS 300 331 #define EXT_NAME 1 332 #define EXT_TAG 2 333 #define EXT_MASK 3 334 #define EXT_SIZE 4 335 #define EXT_AXES 5 336 #define EXT_DEFAULT 6 337 #define EXT_DEFCONTEXT 7 338 #define EXT_DEFSYSCTX 8 339 #define EXT_CURSORS 9 340 #define EXT_MAX 109 /* Allow 100 cursors */ 341 342 #endif 343 344 #endif 345 346 /* -------------------------------------------------------------------------- */ 347 /* CONTEXT DATA DEFS */ 348 349 #define LCNAMELEN 40 350 #define LC_NAMELEN 40 351 #ifdef WIN32 352 typedef struct tagLOGCONTEXTA { 353 char lcName[LCNAMELEN]; 354 UINT lcOptions; 355 UINT lcStatus; 356 UINT lcLocks; 357 UINT lcMsgBase; 358 UINT lcDevice; 359 UINT lcPktRate; 360 WTPKT lcPktData; 361 WTPKT lcPktMode; 362 WTPKT lcMoveMask; 363 DWORD lcBtnDnMask; 364 DWORD lcBtnUpMask; 365 LONG lcInOrgX; 366 LONG lcInOrgY; 367 LONG lcInOrgZ; 368 LONG lcInExtX; 369 LONG lcInExtY; 370 LONG lcInExtZ; 371 LONG lcOutOrgX; 372 LONG lcOutOrgY; 373 LONG lcOutOrgZ; 374 LONG lcOutExtX; 375 LONG lcOutExtY; 376 LONG lcOutExtZ; 377 FIX32 lcSensX; 378 FIX32 lcSensY; 379 FIX32 lcSensZ; 380 BOOL lcSysMode; 381 int lcSysOrgX; 382 int lcSysOrgY; 383 int lcSysExtX; 384 int lcSysExtY; 385 FIX32 lcSysSensX; 386 FIX32 lcSysSensY; 387 } LOGCONTEXTA, *PLOGCONTEXTA, NEAR *NPLOGCONTEXTA, FAR *LPLOGCONTEXTA; 388 typedef struct tagLOGCONTEXTW { 389 WCHAR lcName[LCNAMELEN]; 390 UINT lcOptions; 391 UINT lcStatus; 392 UINT lcLocks; 393 UINT lcMsgBase; 394 UINT lcDevice; 395 UINT lcPktRate; 396 WTPKT lcPktData; 397 WTPKT lcPktMode; 398 WTPKT lcMoveMask; 399 DWORD lcBtnDnMask; 400 DWORD lcBtnUpMask; 401 LONG lcInOrgX; 402 LONG lcInOrgY; 403 LONG lcInOrgZ; 404 LONG lcInExtX; 405 LONG lcInExtY; 406 LONG lcInExtZ; 407 LONG lcOutOrgX; 408 LONG lcOutOrgY; 409 LONG lcOutOrgZ; 410 LONG lcOutExtX; 411 LONG lcOutExtY; 412 LONG lcOutExtZ; 413 FIX32 lcSensX; 414 FIX32 lcSensY; 415 FIX32 lcSensZ; 416 BOOL lcSysMode; 417 int lcSysOrgX; 418 int lcSysOrgY; 419 int lcSysExtX; 420 int lcSysExtY; 421 FIX32 lcSysSensX; 422 FIX32 lcSysSensY; 423 } LOGCONTEXTW, *PLOGCONTEXTW, NEAR *NPLOGCONTEXTW, FAR *LPLOGCONTEXTW; 424 #ifdef UNICODE 425 typedef LOGCONTEXTW LOGCONTEXT; 426 typedef PLOGCONTEXTW PLOGCONTEXT; 427 typedef NPLOGCONTEXTW NPLOGCONTEXT; 428 typedef LPLOGCONTEXTW LPLOGCONTEXT; 429 #else 430 typedef LOGCONTEXTA LOGCONTEXT; 431 typedef PLOGCONTEXTA PLOGCONTEXT; 432 typedef NPLOGCONTEXTA NPLOGCONTEXT; 433 typedef LPLOGCONTEXTA LPLOGCONTEXT; 434 #endif /* UNICODE */ 435 #else /* WIN32 */ 436 typedef struct tagLOGCONTEXT { 437 char lcName[LCNAMELEN]; 438 UINT lcOptions; 439 UINT lcStatus; 440 UINT lcLocks; 441 UINT lcMsgBase; 442 UINT lcDevice; 443 UINT lcPktRate; 444 WTPKT lcPktData; 445 WTPKT lcPktMode; 446 WTPKT lcMoveMask; 447 DWORD lcBtnDnMask; 448 DWORD lcBtnUpMask; 449 LONG lcInOrgX; 450 LONG lcInOrgY; 451 LONG lcInOrgZ; 452 LONG lcInExtX; 453 LONG lcInExtY; 454 LONG lcInExtZ; 455 LONG lcOutOrgX; 456 LONG lcOutOrgY; 457 LONG lcOutOrgZ; 458 LONG lcOutExtX; 459 LONG lcOutExtY; 460 LONG lcOutExtZ; 461 FIX32 lcSensX; 462 FIX32 lcSensY; 463 FIX32 lcSensZ; 464 BOOL lcSysMode; 465 int lcSysOrgX; 466 int lcSysOrgY; 467 int lcSysExtX; 468 int lcSysExtY; 469 FIX32 lcSysSensX; 470 FIX32 lcSysSensY; 471 } LOGCONTEXT, *PLOGCONTEXT, NEAR *NPLOGCONTEXT, FAR *LPLOGCONTEXT; 472 #endif /* WIN32 */ 473 474 /* context option values */ 475 #define CXO_SYSTEM 0x0001 476 #define CXO_PEN 0x0002 477 #define CXO_MESSAGES 0x0004 478 #define CXO_MARGIN 0x8000 479 #define CXO_MGNINSIDE 0x4000 480 #define CXO_CSRMESSAGES 0x0008 /* 1.1 */ 481 482 /* context status values */ 483 #define CXS_DISABLED 0x0001 484 #define CXS_OBSCURED 0x0002 485 #define CXS_ONTOP 0x0004 486 487 /* context lock values */ 488 #define CXL_INSIZE 0x0001 489 #define CXL_INASPECT 0x0002 490 #define CXL_SENSITIVITY 0x0004 491 #define CXL_MARGIN 0x0008 492 #define CXL_SYSOUT 0x0010 493 494 /* -------------------------------------------------------------------------- */ 495 /* EVENT DATA DEFS */ 496 497 /* For packet structure definition, see pktdef.h */ 498 499 /* packet status values */ 500 #define TPS_PROXIMITY 0x0001 501 #define TPS_QUEUE_ERR 0x0002 502 #define TPS_MARGIN 0x0004 503 #define TPS_GRAB 0x0008 504 #define TPS_INVERT 0x0010 /* 1.1 */ 505 506 typedef struct tagORIENTATION { 507 int orAzimuth; 508 int orAltitude; 509 int orTwist; 510 } ORIENTATION, *PORIENTATION, NEAR *NPORIENTATION, FAR *LPORIENTATION; 511 512 typedef struct tagROTATION { /* 1.1 */ 513 int roPitch; 514 int roRoll; 515 int roYaw; 516 } ROTATION, *PROTATION, NEAR *NPROTATION, FAR *LPROTATION; 517 // grandfather in obsolete member names. 518 #define rotPitch roPitch 519 #define rotRoll roRoll 520 #define rotYaw roYaw 521 522 /* relative buttons */ 523 #define TBN_NONE 0 524 #define TBN_UP 1 525 #define TBN_DOWN 2 526 527 /* -------------------------------------------------------------------------- */ 528 /* DEVICE CONFIG CONSTANTS */ 529 530 #ifndef NOWTDEVCFG 531 532 #define WTDC_NONE 0 533 #define WTDC_CANCEL 1 534 #define WTDC_OK 2 535 #define WTDC_RESTART 3 536 537 #endif 538 539 /* -------------------------------------------------------------------------- */ 540 /* HOOK CONSTANTS */ 541 542 #ifndef NOWTHOOKS 543 544 #define WTH_PLAYBACK 1 545 #define WTH_RECORD 2 546 547 #define WTHC_GETLPLPFN (-3) 548 #define WTHC_LPLPFNNEXT (-2) 549 #define WTHC_LPFNNEXT (-1) 550 #define WTHC_ACTION 0 551 #define WTHC_GETNEXT 1 552 #define WTHC_SKIP 2 553 554 #endif 555 556 /* -------------------------------------------------------------------------- */ 557 /* PREFERENCE FUNCTION CONSTANTS */ 558 559 #ifndef NOWTPREF 560 561 #define WTP_LPDEFAULT ((LPVOID)-1L) 562 #define WTP_DWDEFAULT ((DWORD)-1L) 563 564 #endif 565 566 /* -------------------------------------------------------------------------- */ 567 /* EXTENSION TAGS AND CONSTANTS */ 568 569 #ifndef NOWTEXTENSIONS 570 571 /* constants for use with pktdef.h */ 572 #define PKEXT_ABSOLUTE 1 573 #define PKEXT_RELATIVE 2 574 575 /* Extension tags. */ 576 #define WTX_OBT 0 /* Out of bounds tracking */ 577 #define WTX_FKEYS 1 /* Function keys */ 578 #define WTX_TILT 2 /* Raw Cartesian tilt; 1.1 */ 579 #define WTX_CSRMASK 3 /* select input by cursor type; 1.1 */ 580 #define WTX_XBTNMASK 4 /* Extended button mask; 1.1 */ 581 582 typedef struct tagXBTNMASK { 583 BYTE xBtnDnMask[32]; 584 BYTE xBtnUpMask[32]; 585 } XBTNMASK; 586 587 typedef struct tagTILT { /* 1.1 */ 588 int tiltX; 589 int tiltY; 590 } TILT; 591 592 #endif 593 594 /* -------------------------------------------------------------------------- */ 595 /* -------------------------------------------------------------------------- */ 596 /* Functions */ 597 598 #ifndef API 599 #ifndef WINAPI 600 #define API FAR PASCAL 601 #else 602 #define API WINAPI 603 #endif 604 #endif 605 606 #ifndef NOWTCALLBACKS 607 608 #ifndef CALLBACK 609 #define CALLBACK FAR PASCAL 610 #endif 611 612 #ifndef NOWTMANAGERFXNS 613 /* callback function types */ 614 typedef BOOL (WINAPI * WTENUMPROC)(HCTX, LPARAM); /* changed CALLBACK->WINAPI, 1.1 */ 615 typedef BOOL (WINAPI * WTCONFIGPROC)(HCTX, HWND); 616 typedef LRESULT (WINAPI * WTHOOKPROC)(int, WPARAM, LPARAM); 617 typedef WTHOOKPROC FAR *LPWTHOOKPROC; 618 #endif 619 620 #endif 621 622 623 #ifndef NOWTFUNCTIONS 624 625 #ifndef NOWTBASICFXNS 626 /* BASIC FUNCTIONS */ 627 #ifdef WIN32 628 UINT API WTInfoA(UINT, UINT, LPVOID); 629 #define ORD_WTInfoA 20 630 UINT API WTInfoW(UINT, UINT, LPVOID); 631 #define ORD_WTInfoW 1020 632 #ifdef UNICODE 633 #define WTInfo WTInfoW 634 #define ORD_WTInfo ORD_WTInfoW 635 #else 636 #define WTInfo WTInfoA 637 #define ORD_WTInfo ORD_WTInfoA 638 #endif /* !UNICODE */ 639 #else 640 UINT API WTInfo(UINT, UINT, LPVOID); 641 #define ORD_WTInfo 20 642 #endif 643 #ifdef WIN32 644 HCTX API WTOpenA(HWND, LPLOGCONTEXTA, BOOL); 645 #define ORD_WTOpenA 21 646 HCTX API WTOpenW(HWND, LPLOGCONTEXTW, BOOL); 647 #define ORD_WTOpenW 1021 648 #ifdef UNICODE 649 #define WTOpen WTOpenW 650 #define ORD_WTOpen ORD_WTOpenW 651 #else 652 #define WTOpen WTOpenA 653 #define ORD_WTOpen ORD_WTOpenA 654 #endif /* !UNICODE */ 655 #else 656 HCTX API WTOpen(HWND, LPLOGCONTEXT, BOOL); 657 #define ORD_WTOpen 21 658 #endif 659 BOOL API WTClose(HCTX); 660 #define ORD_WTClose 22 661 int API WTPacketsGet(HCTX, int, LPVOID); 662 #define ORD_WTPacketsGet 23 663 BOOL API WTPacket(HCTX, UINT, LPVOID); 664 #define ORD_WTPacket 24 665 #endif 666 667 #ifndef NOWTVISIBILITYFXNS 668 /* VISIBILITY FUNCTIONS */ 669 BOOL API WTEnable(HCTX, BOOL); 670 #define ORD_WTEnable 40 671 BOOL API WTOverlap(HCTX, BOOL); 672 #define ORD_WTOverlap 41 673 #endif 674 675 #ifndef NOWTCTXEDITFXNS 676 /* CONTEXT EDITING FUNCTIONS */ 677 BOOL API WTConfig(HCTX, HWND); 678 #define ORD_WTConfig 60 679 #ifdef WIN32 680 BOOL API WTGetA(HCTX, LPLOGCONTEXTA); 681 #define ORD_WTGetA 61 682 BOOL API WTGetW(HCTX, LPLOGCONTEXTW); 683 #define ORD_WTGetW 1061 684 #ifdef UNICODE 685 #define WTGet WTGetW 686 #define ORD_WTGet ORD_WTGetW 687 #else 688 #define WTGet WTGetA 689 #define ORD_WTGet ORD_WTGetA 690 #endif /* !UNICODE */ 691 #else 692 BOOL API WTGet(HCTX, LPLOGCONTEXT); 693 #define ORD_WTGet 61 694 #endif 695 #ifdef WIN32 696 BOOL API WTSetA(HCTX, LPLOGCONTEXTA); 697 #define ORD_WTSetA 62 698 BOOL API WTSetW(HCTX, LPLOGCONTEXTW); 699 #define ORD_WTSetW 1062 700 #ifdef UNICODE 701 #define WTSet WTSetW 702 #define ORD_WTSet ORD_WTSetW 703 #else 704 #define WTSet WTSetA 705 #define ORD_WTSet ORD_WTSetA 706 #endif /* !UNICODE */ 707 #else 708 BOOL API WTSet(HCTX, LPLOGCONTEXT); 709 #define ORD_WTSet 62 710 #endif 711 BOOL API WTExtGet(HCTX, UINT, LPVOID); 712 #define ORD_WTExtGet 63 713 BOOL API WTExtSet(HCTX, UINT, LPVOID); 714 #define ORD_WTExtSet 64 715 BOOL API WTSave(HCTX, LPVOID); 716 #define ORD_WTSave 65 717 HCTX API WTRestore(HWND, LPVOID, BOOL); 718 #define ORD_WTRestore 66 719 #endif 720 721 #ifndef NOWTQUEUEFXNS 722 /* ADVANCED PACKET AND QUEUE FUNCTIONS */ 723 int API WTPacketsPeek(HCTX, int, LPVOID); 724 #define ORD_WTPacketsPeek 80 725 int API WTDataGet(HCTX, UINT, UINT, int, LPVOID, LPINT); 726 #define ORD_WTDataGet 81 727 int API WTDataPeek(HCTX, UINT, UINT, int, LPVOID, LPINT); 728 #define ORD_WTDataPeek 82 729 #ifndef WIN32 730 /* OBSOLETE IN WIN32! */ 731 DWORD API WTQueuePackets(HCTX); 732 #define ORD_WTQueuePackets 83 733 #endif 734 int API WTQueueSizeGet(HCTX); 735 #define ORD_WTQueueSizeGet 84 736 BOOL API WTQueueSizeSet(HCTX, int); 737 #define ORD_WTQueueSizeSet 85 738 #endif 739 740 #ifndef NOWTHMGRFXNS 741 /* MANAGER HANDLE FUNCTIONS */ 742 HMGR API WTMgrOpen(HWND, UINT); 743 #define ORD_WTMgrOpen 100 744 BOOL API WTMgrClose(HMGR); 745 #define ORD_WTMgrClose 101 746 #endif 747 748 #ifndef NOWTMGRCTXFXNS 749 /* MANAGER CONTEXT FUNCTIONS */ 750 BOOL API WTMgrContextEnum(HMGR, WTENUMPROC, LPARAM); 751 #define ORD_WTMgrContextEnum 120 752 HWND API WTMgrContextOwner(HMGR, HCTX); 753 #define ORD_WTMgrContextOwner 121 754 HCTX API WTMgrDefContext(HMGR, BOOL); 755 #define ORD_WTMgrDefContext 122 756 HCTX API WTMgrDefContextEx(HMGR, UINT, BOOL); /* 1.1 */ 757 #define ORD_WTMgrDefContextEx 206 758 #endif 759 760 #ifndef NOWTMGRCONFIGFXNS 761 /* MANAGER CONFIG BOX FUNCTIONS */ 762 UINT API WTMgrDeviceConfig(HMGR, UINT, HWND); 763 #define ORD_WTMgrDeviceConfig 140 764 #ifndef WIN32 765 /* OBSOLETE IN WIN32! */ 766 BOOL API WTMgrConfigReplace(HMGR, BOOL, WTCONFIGPROC); 767 #define ORD_WTMgrConfigReplace 141 768 #endif 769 #endif 770 771 #ifndef NOWTMGRHOOKFXNS 772 /* MANAGER PACKET HOOK FUNCTIONS */ 773 #ifndef WIN32 774 /* OBSOLETE IN WIN32! */ 775 WTHOOKPROC API WTMgrPacketHook(HMGR, BOOL, int, WTHOOKPROC); 776 #define ORD_WTMgrPacketHook 160 777 LRESULT API WTMgrPacketHookDefProc(int, WPARAM, LPARAM, LPWTHOOKPROC); 778 #define ORD_WTMgrPacketHookDefProc 161 779 #endif 780 #endif 781 782 #ifndef NOWTMGRPREFFXNS 783 /* MANAGER PREFERENCE DATA FUNCTIONS */ 784 BOOL API WTMgrExt(HMGR, UINT, LPVOID); 785 #define ORD_WTMgrExt 180 786 BOOL API WTMgrCsrEnable(HMGR, UINT, BOOL); 787 #define ORD_WTMgrCsrEnable 181 788 BOOL API WTMgrCsrButtonMap(HMGR, UINT, LPBYTE, LPBYTE); 789 #define ORD_WTMgrCsrButtonMap 182 790 BOOL API WTMgrCsrPressureBtnMarks(HMGR, UINT, DWORD, DWORD); 791 #define ORD_WTMgrCsrPressureBtnMarks 183 792 BOOL API WTMgrCsrPressureResponse(HMGR, UINT, UINT FAR *, UINT FAR *); 793 #define ORD_WTMgrCsrPressureResponse 184 794 BOOL API WTMgrCsrExt(HMGR, UINT, UINT, LPVOID); 795 #define ORD_WTMgrCsrExt 185 796 #endif 797 798 /* Win32 replacements for non-portable functions. */ 799 #ifndef NOWTQUEUEFXNS 800 /* ADVANCED PACKET AND QUEUE FUNCTIONS */ 801 BOOL API WTQueuePacketsEx(HCTX, UINT FAR *, UINT FAR *); 802 #define ORD_WTQueuePacketsEx 200 803 #endif 804 805 #ifndef NOWTMGRCONFIGFXNS 806 /* MANAGER CONFIG BOX FUNCTIONS */ 807 #ifdef WIN32 808 BOOL API WTMgrConfigReplaceExA(HMGR, BOOL, LPSTR, LPSTR); 809 #define ORD_WTMgrConfigReplaceExA 202 810 BOOL API WTMgrConfigReplaceExW(HMGR, BOOL, LPWSTR, LPSTR); 811 #define ORD_WTMgrConfigReplaceExW 1202 812 #ifdef UNICODE 813 #define WTMgrConfigReplaceEx WTMgrConfigReplaceExW 814 #define ORD_WTMgrConfigReplaceEx ORD_WTMgrConfigReplaceExW 815 #else 816 #define WTMgrConfigReplaceEx WTMgrConfigReplaceExA 817 #define ORD_WTMgrConfigReplaceEx ORD_WTMgrConfigReplaceExA 818 #endif /* !UNICODE */ 819 #else 820 BOOL API WTMgrConfigReplaceEx(HMGR, BOOL, LPSTR, LPSTR); 821 #define ORD_WTMgrConfigReplaceEx 202 822 #endif 823 #endif 824 825 #ifndef NOWTMGRHOOKFXNS 826 /* MANAGER PACKET HOOK FUNCTIONS */ 827 #ifdef WIN32 828 HWTHOOK API WTMgrPacketHookExA(HMGR, int, LPSTR, LPSTR); 829 #define ORD_WTMgrPacketHookExA 203 830 HWTHOOK API WTMgrPacketHookExW(HMGR, int, LPWSTR, LPSTR); 831 #define ORD_WTMgrPacketHookExW 1203 832 #ifdef UNICODE 833 #define WTMgrPacketHookEx WTMgrPacketHookExW 834 #define ORD_WTMgrPacketHookEx ORD_WTMgrPacketHookExW 835 #else 836 #define WTMgrPacketHookEx WTMgrPacketHookExA 837 #define ORD_WTMgrPacketHookEx ORD_WTMgrPacketHookExA 838 #endif /* !UNICODE */ 839 #else 840 HWTHOOK API WTMgrPacketHookEx(HMGR, int, LPSTR, LPSTR); 841 #define ORD_WTMgrPacketHookEx 203 842 #endif 843 BOOL API WTMgrPacketUnhook(HWTHOOK); 844 #define ORD_WTMgrPacketUnhook 204 845 LRESULT API WTMgrPacketHookNext(HWTHOOK, int, WPARAM, LPARAM); 846 #define ORD_WTMgrPacketHookNext 205 847 #endif 848 849 #ifndef NOWTMGRPREFFXNS 850 /* MANAGER PREFERENCE DATA FUNCTIONS */ 851 BOOL API WTMgrCsrPressureBtnMarksEx(HMGR, UINT, UINT FAR *, UINT FAR *); 852 #define ORD_WTMgrCsrPressureBtnMarksEx 201 853 #endif 854 855 856 857 #endif 858 859 #ifdef __cplusplus 860 } 861 #endif /* __cplusplus */ 862 863 #endif /* #define _INC_WINTAB */ 864 865