⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pktdef.h

📁 奇趣公司比较新的qt/emd版本
💻 H
字号:
/* -------------------------------- 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 1991-1998 by LCS/Telegraphics.------------------------------------------------------------------------------*//*------------------------------------------------------------------------------How to use pktdef.h:1. Include wintab.h2. 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 packet data, 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.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 __cplusplusextern "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 __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 ;#undef PACKETNAME#undef __TAG#undef __TAG2#undef __TYPES#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 */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -