home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wpentk.zip / WBPENTK1.DSK / PENPM.H < prev    next >
C/C++ Source or Header  |  1994-10-06  |  86KB  |  1,710 lines

  1. /****************************** Module Header ******************************\
  2. *                                                                          *
  3. * Copyright (c) 1994 IBM Corporation                                       *
  4. *                                                                          *
  5. * Module Name: penpm.h                                                     *
  6. *                                                                          *
  7. \***************************************************************************/
  8.  
  9. #ifndef PENPMH_INCLUDED
  10. #define PENPMH_INCLUDED
  11.  
  12.  
  13. LONG    APIENTRY WrtQuerySysValue(HWND DeskTop, ULONG  id);
  14. APIRET  APIENTRY WrtSetSysValue(HWND DeskTop, ULONG  id, LONG Val);
  15. APIRET  APIENTRY WrtReadSysValue(HWND DeskTop, ULONG id);
  16. APIRET  APIENTRY WrtWriteSysValue(HWND DeskTop, ULONG  id);
  17.  
  18. #define RECO_MAX_COORD   4
  19.  
  20. typedef ULONG    RECOID, HRECO;
  21. typedef RECOID   *PRECOID;
  22. typedef HRECO    *PHRECO;
  23.  
  24. typedef struct _RECODATA
  25.   {
  26.   ULONG  cbSize;              /* size of struc                       */
  27.   RECOID id;                  /* ID if reco event                    */
  28.   HRECO  hReco;               /* Reco subsystem handle               */
  29.   ULONG  virtual_id;          /* virtual id of event                 */
  30.   ULONG  char_code;           /* character code of event             */
  31.   RECTL  bound_box;           /* box that bounds gesture             */
  32.   POINTL ptlHotSpot;          /* Hot Spot X/Y screen coordinate      */
  33.   HWND   hwnd;                /* Hwnd under hot spot                 */
  34.   HWND   hwndActive;          /* Active window                       */
  35.   HWND   hwndFocus;           /* Window that has the focus           */
  36.   CHAR   *pszCommand;         /* Cmd and args gesture mapped to      */
  37.   CHAR   *pszCmdArgs;
  38.   CHAR   *pszPrefixCmd;       /* Action to be done before Command    */
  39.   CHAR   *pszDescription;     /* Contents of description field       */
  40.   ULONG  ulMappingInfo;       /* Flags detailing where gesture map   */
  41.   } RECODATA;                 /*                       was found     */
  42. typedef RECODATA *PRECODATA;
  43.  
  44. /* Flag bits for the mapping info ULONG */
  45.  
  46. #define RED_DEFAULT_MAP     0x00000001
  47. #define RED_USER_MAP        0x00000002
  48.  
  49. #define RED_INSTANCE_MAP    0x00000010
  50. #define RED_FOLDER_MAP      0x00000020
  51. #define RED_SESSION_MAP     0x00000040
  52. #define RED_SYSTEM_MAP      0x00000080
  53.  
  54. #define MAX_RECO_NAME_LENGTH   11  /* Maximum characters length for  */
  55.                                    /* Reco subsystem and event names */
  56.  
  57. #define MAX_STROKE_POINTS 8000
  58.  
  59. /*************************************************************/
  60. /* AUXPOINTDATA structure returned by WrtQueryAuxPointData() */
  61. /*                                                           */
  62. /*  AUXPOINTDATA is a static data structure available on     */
  63. /*  each WM_MOUSEMOVE.                                       */
  64. /*************************************************************/
  65.  
  66. typedef struct  _AUXPOINTDATA  /* apd */
  67.   {
  68.   USHORT         cbStructSize;   /* Structure size                */
  69.   ULONG          ulTimestamp;    /* Point timestamp               */
  70.   USHORT         usFlags;        /* Point flags                   */
  71.   USHORT         usUser;         /* For program use               */
  72.   SHORT          sScrZ;          /* Normalize Z axis value (4K to -4K)*/
  73.                                  /* Height - 0 t0 4096            */
  74.                                  /* Pressure 0 to -4096           */
  75.   SHORT          sDevZ;          /* Device Z axis value is device */
  76.                                  /*   dependant. See locator      */
  77.                                  /*   caps structure.             */
  78.   SHORT          sAngle;         /* Stylus angle to XY            */
  79.   SHORT          sRotation;      /* Stylus barrel rotation        */
  80.   USHORT         usButton;       /* Button status                 */
  81.   UCHAR          OEM[8];         /* OEM specific data             */
  82.   } AUXPOINTDATA;
  83. typedef AUXPOINTDATA *PAUXPOINTDATA; /* papd */
  84.  
  85. /* AUXPOINTDATA.usFlags Equates */
  86. #define APD_MODEMASK         0x0003   /* Mode mask (see below)          */
  87. #define APD_IDLEMODE              0   /* Stylus is idle                 */
  88. #define APD_PROXMODE              1   /* Stylus is in proximity         */
  89. #define APD_CONTACTMODE           2   /* Stylus is in contact           */
  90. #define APD_FILTERED         0x0004   /* Mouse event not passed to PM   */
  91.  
  92.  
  93. APIRET APIENTRY WrtQueryPointAuxData(PAUXPOINTDATA  papdInfo);
  94.  
  95.  
  96. /*****************************************************************/
  97. /* AUXDATADESC structure used to build the AUXDATAINFO structure */
  98. /*****************************************************************/
  99.  
  100. typedef struct  _AUXDATADESC  /* add */
  101.   {
  102.   ULONG          id;             /* Aux data type identity (See ADT_*) */
  103.   ULONG          offset;         /* Field offset                 */
  104.   ULONG          cb;             /* Aux data type byte count     */
  105.   } AUXDATADESC;
  106. typedef AUXDATADESC *PAUXDATADESC; /* padd */
  107.  
  108. /* AUXDATADESC.id Equates  */
  109. #define ADT_TIMESTAMP   0        /* Point timestamp.             */
  110. #define ADT_FLAGS       1        /* Point flags                  */
  111. #define ADT_SCREENZ     2        /* Normalized Z axis value      */
  112. #define ADT_DEVZ        3        /* Device Z axis value          */
  113. #define ADT_ANGLE       4        /* Stylus angle to XY           */
  114. #define ADT_ROTATION    5        /* Stylus rotation              */
  115. #define ADT_BUTTON      6        /* Button status                */
  116. #define ADT_USER        7        /* For program use              */
  117. #define ADT_OEM         16       /* OEM specific data            */
  118.  
  119.  
  120. /*****************************************************************/
  121. /* AUXDATAINFO structure pointed to by STROKEDATA.pAuxInfo       */
  122. /*****************************************************************/
  123.  
  124. typedef struct  _AUXDATAINFO  /* adi */
  125.   {
  126.   ULONG          cbAuxDesc;      /* Size of Aux desc structure   */
  127.   ULONG          ulNumElements;  /* Number of data elements in   */
  128.                                  /* aux data packet              */
  129.   ULONG          ulAuxSize;      /* Length of aux data packet    */
  130.                                  /* Sum of all AUXDATADESC.cb fields */
  131.   AUXDATADESC    addAuxDesc[1];  /* Array of descriptors         */
  132.   } AUXDATAINFO;
  133. typedef AUXDATAINFO *PAUXDATAINFO; /* padi */
  134.  
  135. /*****************************************************************/
  136. /* AUXSTROKEDATA structure pointed to by STROKEDATA.pAuxData     */
  137. /*****************************************************************/
  138.  
  139. typedef struct  _AUXSTROKEDATA  /* asd */
  140.   {
  141.   UCHAR          bAuxData[1][1]; /* Auxiliary stroke data        */
  142.   } AUXSTROKEDATA;
  143. typedef AUXSTROKEDATA *PAUXSTROKEDATA; /* pasd */
  144.  
  145.  
  146. /*********************************************************/
  147. /* STROKEDATA structure returned by WrtQueryStrokeData() */
  148. /*********************************************************/
  149.  
  150. typedef struct _STROKEDATA  /* sd */
  151.   {
  152.   ULONG          cbStructSize;      /* Size of stroke data header    */
  153.   ULONG          ulSource;          /* See Wrt Event Sources         */
  154.   ULONG          ulSeq;             /* Sequence number wraps at 4G   */
  155.   ULONG          ulResolution;      /* Points per Inch               */
  156.   ULONG          ulSampleRate;      /* Points per Second             */
  157.   RECTL          rclCell;           /* Rectangle Around Stroke       */
  158.   ULONG          ulNumPoints;       /* Number of points in stroke    */
  159.   ULONG          flStrokeFlags;     /* Stroke flags. (See SBF_*)     */
  160.   ULONG          ulXExtent;         /* X extent used to scale coords */
  161.   ULONG          ulYExtent;         /* Y extent used to scale coords */
  162.   ULONG          ulSensorResolution;/* Sensor resolution in dots/inch*/
  163.   ULONG          ulSensorXExtent;   /* Extent of sensor X axis       */
  164.   ULONG          ulSensorYExtent;   /* Extent of sensor Y axis       */
  165.   ULONG          ulTimestamp;       /* Timestamp of Button down      */
  166.   ULONG          ulDevTimestampRes; /* Resolution of device TS in usecs */
  167.   PPOINTL        pXY;               /* pointer to X/Y POINTL array   */
  168.   PAUXDATAINFO   pAuxInfo;          /* See AUXDATAINFO               */
  169.   PAUXSTROKEDATA pAuxData;          /* See AUXPOINTDATA              */
  170.   ULONG          ulUser1;
  171.   ULONG          ulUser2;
  172.   struct _STROKEDATA *psdFwd;       /* Recommended use-Forward chain ptr  */
  173.   struct _STROKEDATA *psdBack;      /* Recommended use-Backward chain ptr */
  174.   ULONG          ulInkColor;        /* Ink color                     */
  175.   ULONG          ulInkWidth;        /* Ink width in pels             */
  176.   ULONG          ulInkMix;          /* Foregound mix type            */
  177.   ULONG          ulLineType;        /* Line type attribute           */
  178.   ULONG          ulLocatorFlags;    /* Pointing device flags         */
  179.   PUCHAR         pszDriverName;     /* Pointer to name of controlling device driver */
  180.   PUCHAR         pszDeviceName;     /* Pointer to name of pointing device  */
  181.   ULONG          cbStrokeBufferSize;/* Size of entire stroke buffer as requested */
  182.   POINTL         ptlOrigin;         /* Window origin used when mapping points */
  183.   ULONG          flAuxData;         /* Aux data requested (See ADF_*)*/
  184.   } STROKEDATA;
  185. typedef STROKEDATA *PSTROKEDATA; /* psd */
  186.  
  187. /* Stroke Buffer Flags */
  188. #define SBF_SCREEN          0x00000001  /* 1=Screen coords 0=hi res coord   */
  189. #define SBF_SCALE           0x00000001  /* 1=Scaled coords 0=hi res coord   */
  190. #define SBF_INKED           0x00000002  /* Stroke was inked                 */
  191. #define SBF_INK_NOT_REMOVED 0x00000004  /* Stroke left inked                */
  192. #define SBF_TD_LO_SAME_HWND 0x00000008  /* Touchdown/liftoff in same hwnd   */
  193. #define SBF_STROKE_OUTSIDE_HWND 0x00000010 /* Stroke left the boundaries    */
  194. #define SBF_POINTS_LOST     0x00000040  /* Points were lost (HW overrun)    */
  195. #define SBF_BUFFER_OVERRUN  0x00000080  /* Points were lost (SB overrun)    */
  196. #define SBF_MBUTTON_MASK    0x00001C00  /* Mask for isolating mouse button  */
  197. #define SBF_TAP             0x00002000  /* Stroke was a tap                 */
  198. #define SBF_DBLTAP          0x00004000  /* Stroke was a double tap          */
  199. #define SBF_MIGRATED        0x01000000  /* Stroke buffer migrated to new format */
  200. #define SBF_FLAT_STRUCTURE  0x02000000  /* Buffer pointers changed to offsets */
  201. #define SBF_OTHER_RES       0x04000000  /* Coords are in specified resolution */
  202. #define SBF_DISPLAY_RES     0x08000000  /* Coords are display resolution    */
  203. #define SBF_SENSOR_RES      0x10000000  /* Coords are sensor resolution     */
  204. #define SBF_STANDARD_RES    0x20000000  /* Coords are standard resolution   */
  205. #define SBF_COORDS_MAPPED   0x40000000  /* Coords were mapped to specified window */
  206. #define SBF_NEGATIVE_COORDS 0x80000000  /* Contains negative window coords  */
  207.  
  208. APIRET APIENTRY WrtQueryStrokeData(PBYTE    pStrokeBuf,
  209.                                    PULONG   pBufLen,
  210.                                    HWND     hwnd,
  211.                                    ULONG    flConvopt,   /* See QSD_* */
  212.                                    ULONG    ulXOutput,
  213.                                    ULONG    ulYOutput,
  214.                                    ULONG    flAuxData);  /* See ADF_* */
  215. /* flConvopt equates    */
  216. #define QSD_NO_CNV           0x00000000  /* No Conversion (sensor resolution)   */
  217. #define QSD_SCALE            0x00000001  /* Scale to specified resolution       */
  218. #define QSD_STANDARDIZED_RES 0x00000002  /* Scale to standardize resolution     */
  219. #define QSD_RESOLUTION       0x00000004  /* Scale factor specified in dots/inch */
  220.  
  221.  
  222. APIRET APIENTRY WrtCopyStrokeData(PSTROKEDATA  pStrokeBuf,
  223.                                   PBYTE        pMem,
  224.                                   ULONG        flCopyopt);
  225. /* flCopyopt equates    */
  226. #define CSD_COPY             0x00000001  /* Copy stroke data to buffer          */
  227. #define CSD_FLATTEN          0x00000002  /* Change buffer pointers to offsets   */
  228. #define CSD_UNFLATTEN        0x00000004  /* Change buffer offsets to pointers   */
  229. #define CSD_MIGRATE          0x00000008  /* Migrate stroke data to current format*/
  230.  
  231.  
  232. APIRET  APIENTRY WrtMapPointLong(HWND     hwnd,
  233.                                  PPOINTL  pXY,
  234.                                  ULONG    flParms,     /* See MP_*  */
  235.                                  ULONG    ulXInput,
  236.                                  ULONG    ulYInput,
  237.                                  ULONG    ulXOutput,
  238.                                  ULONG    ulYOutput,
  239.                                  ULONG    ulCount
  240.                                  );
  241.  
  242. #define MP_SCALE        0x00000000    /* Scale coordinates (Default)              */
  243. #define MP_NO_SCALE     0x00000001    /* Do not scale coordinates                 */
  244. #define MP_RESOLUTION   0x00000002    /* Input and output expressed in resolution */
  245.  
  246.  
  247. APIRET  APIENTRY WrtSetStrictEmulation(HWND    hwnd,
  248.                                        ULONG   option);
  249. #define SSE_RESET     0x00000000    /* Reset strict emulation for app*/
  250. #define SSE_SET       0x00000001    /* Set strict emulation for appl */
  251.  
  252.  
  253. APIRET  APIENTRY WrtControlDisplayBacklight(ULONG  option, ULONG displayID);
  254. #define CDB_LIGHT_ON    0x00000001  /* Turn backlight on.            */
  255. #define CDB_LIGHT_OFF   0x00000002  /* Turn backlight off.           */
  256.  
  257. /************************************************/
  258. /*      PenPM Messages Definition Section       */
  259. /*                                              */
  260. /************************************************/
  261.  
  262. #ifndef WM_PENFIRST
  263. #define WM_PENFIRST             0x04C0        /* These equates taken    */
  264. #endif
  265.  
  266. #ifndef WM_PENLAST
  267. #define WM_PENLAST              0x04FF        /* from private pmwin.h   */
  268. #endif
  269.  
  270. #define WM_PEN_MSG   WM_PENFIRST
  271.  
  272. #define WM_TOUCHDOWN           WM_PEN_MSG + 0
  273. #define WM_LIFTOFF             WM_PEN_MSG + 1
  274. #define WM_RECO                WM_PEN_MSG + 2
  275. #define WM_RECO_COMMAND        WM_PEN_MSG + 3
  276. #define WM_SENSOR_MOVE         WM_PEN_MSG + 4
  277.  
  278. #define WM_ENTER_PROXIMITY     WM_PEN_MSG + 5
  279. #define WM_EXIT_PROXIMITY      WM_PEN_MSG + 6
  280. #define WM_WRT_DEV_CAPS_CHANGE WM_PEN_MSG + 7
  281. #define WM_WRT_SYSVALUECHANGED WM_PEN_MSG + 8
  282. #define WM_PROXIMITY_TIMEOUT   WM_PEN_MSG + 9
  283.  
  284. #define WM_PAUSE_TIMEOUT       WM_PEN_MSG + 12
  285. #define WM_STROKE              WM_PEN_MSG + 13
  286. #define WM_TAP                 WM_PEN_MSG + 14
  287. #define WM_DBL_TAP             WM_PEN_MSG + 15
  288. #define WM_ENTER_WINDOW        WM_PEN_MSG + 17
  289. #define WM_EXIT_WINDOW         WM_PEN_MSG + 18
  290. #define WM_WRITING_MODE        WM_PEN_MSG + 19
  291. #define WM_RESULT              WM_PEN_MSG + 20
  292. #define WM_WRX_CONFIG_CHANGE   WM_PEN_MSG + 21 /* mp1=type of object (idt_???)
  293.                                                   mp2=key to new default */
  294. #define IDR_RESULT             WM_PEN_MSG + 22
  295. #define IDR_ERROR              WM_PEN_MSG + 23
  296. #define IDM_NOTIFY             WM_PEN_MSG + 26
  297. #define IDM_ERROR              WM_PEN_MSG + 27
  298. #define WM_PEN_HXM             WM_PEN_MSG + 28
  299.  
  300. /**************************************/
  301. /*   WM_TOUCHDOWN MRESULT Values      */
  302. /*   -------------------------------  */
  303. #define TDN_DEFAULT_DELAY    0x00000000  /* Delay Button 1 down (default) */
  304. #define TDN_IMMEDIATE        0x00000001  /* Immediate BUTxDOWN            */
  305. #define TDN_INFINITE         0x00000002  /* Never Issue BUTxDOWN          */
  306. #define TDN_DELAY_BITMASK TDN_DEFAULT_DELAY+TDN_IMMEDIATE+TDN_INFINITE
  307.                                          /*                               */
  308. #define TDN_INK_STROKE       0x00000000  /* Ink Stroke (Default)          */
  309. #define TDN_NO_INK_STROKE    0x00000010  /* Don't Ink Stroke              */
  310. #define TDN_LEAVE_INK        0x00000020  /* Leave Stroke Inked at liftoff */
  311. #define TDN_INK_BITMASK  TDN_INK_STROKE+TDN_NO_INK_STROKE+TDN_LEAVE_INK
  312.                                          /*                               */
  313. #define TDN_HIFREQ_MOUSEMOVE 0x00000040  /* Regenerate coalesced mouse moves */
  314. #define TDN_SENSOR_MOVE      0x00000080  /* Generate WM_SENSOR_MOVE msgs  */
  315.  
  316.  
  317.  
  318. /*************************************/
  319. /*  WM_LIFTOFF MRESULT Values        */
  320. /*  -----------------------------    */
  321. #define LO_DEFAULT           0x00000000  /* App didn't process stroke,*/
  322.                                          /*   do gesture processing   */
  323. #define LO_STROKE_PROCESSED  0x00000001  /* App processed stroke,     */
  324.                                          /*   take no other action    */
  325. #define LO_EMULATE_MOUSE     0x00000002  /* App processed stroke,     */
  326.                                          /*   perform mouse emulation */
  327.  
  328.  
  329. /*************************************/
  330. /*  WM_STROKE MRESULT Values         */
  331. /*  -----------------------------    */
  332. #define STK_DEFAULT          0x00000000  /* App didn't process stroke,*/
  333.                                          /*   do gesture processing   */
  334. #define STK_STROKE_PROCESSED 0x00000001  /* App processed stroke,     */
  335.                                          /*   take no other action    */
  336.  
  337.  
  338. /**************************************/
  339. /*  WM_PAUSE_TIMEOUT MRESULT Values   */
  340. /*  --------------------------------  */
  341.  
  342. #define PTO_DEFAULT          0x00000000  /* Allow mouse B1 emulation     */
  343. #define PTO_CONTINUE         0x00000001  /* Remain in stroke capture mode*/
  344.  
  345. #define PTO_NO_MAP           0x00000002  /* Same as PTO_DEFAULT except   */
  346.                                          /* tap pause and dbl tap pause  */
  347.                                          /* are not mapped.              */
  348. #define PTO_BUTTON1          0x00000004  /* Generate mouse button 1 down */
  349. #define PTO_BUTTON2          0x00000008  /* Generate mouse button 2 down */
  350. #define PTO_BUTTON3          0x00000010  /* Generate mouse button 3 down */
  351. #define PTO_BUTTON_MASK      0x0000001C
  352.  
  353. #define PTO_SHIFT_AUG        0x00000020  /* Augment button down w/shift key   */
  354. #define PTO_CTRL_AUG         0x00000040  /* Augment button down w/control key */
  355. #define PTO_ALT_AUG          0x00000080  /* Augment button down w/alt key     */
  356. #define PTO_AUG_MASK         0x000000E0
  357.  
  358.  
  359. /**************************************/
  360. /*  WM_WRITING_MODE MRESULT Values    */
  361. /*  --------------------------------  */
  362.  
  363. #define WRM_DEFAULT          0x00000000  /* Default return            */
  364.  
  365.  
  366. /********************************************/
  367. /*   WM_TAP and WM_DBL_TAP MRESULT Values   */
  368. /*  --------------------------------------  */
  369.  
  370. #define TP_TAP_PROCESSED    0x00000001  /* App processed tap message,   */
  371.                                         /*   take no other action       */
  372. #define TP_DEFAULT          0x00000000  /* Mouse B1 emulation is performed */
  373.                                         /* except if TDN_INFINITE was   */
  374.                                         /* returned at touchdown        */
  375.  
  376. #define TP_BUTTON1_CLICK    0x00000004  /* Generate mouse button 1 click*/
  377. #define TP_BUTTON2_CLICK    0x00000008  /* Generate mouse button 2 click*/
  378. #define TP_BUTTON3_CLICK    0x00000010  /* Generate mouse button 3 click*/
  379. #define TP_BUTTON_MASK      0x0000001C
  380.  
  381. #define TP_SHIFT_AUG        0x00000020  /* Augment click with shift key */
  382. #define TP_CTRL_AUG         0x00000040  /* Augment click with control key */
  383. #define TP_ALT_AUG          0x00000080  /* Augment click with alt key */
  384. #define TP_AUG_MASK         0x000000E0
  385.  
  386.  
  387.  
  388. /*************************************/
  389. /*  WM_RECO MRESULT Values           */
  390. /*  --------------------------       */
  391. #define RECO_MAP             0         /* App didn't process event, */
  392.                                        /*   PPM will map event      */
  393. #define RECO_NOMAP          -1         /* App doesn't want mapping  */
  394.                                        /*   done, only mou emulation*/
  395. #define RECO_PROCESSED       1         /* App processed reco event, */
  396.                                        /*   no mouse emul performed */
  397.  
  398.  
  399. typedef struct _WRTEVENTDATA   /* ed */
  400.   {
  401.   ULONG     cbStructSize;       /* Structure size                        */
  402.   USHORT    usKCFlags;          /* KC_* flags from mouse message         */
  403.   USHORT    usHitTest;          /* Hit test results from mouse message   */
  404.   POINTL    ptlDisplay;         /* Display X/Y coordinate                */
  405.   POINTL    ptlSensor;          /* Sensor X/Y coordinate                 */
  406.   POINTL    ptlStandard;        /* Standard X/Y coordinate               */
  407.   ULONG     flEventStatus;      /* Event status                          */
  408.   ULONG     ulStrokeSeq;        /* Stroke sequence number                */
  409.   ULONG     ulStrokeSize;       /* Number of stroke points (Liftoff only)*/
  410.   ULONG     ulLocatorID;        /* ID of pointing device                 */
  411.   ULONG     ulLocatorType;      /* Type of pointing device (See LT_*)    */
  412.   ULONG     ulLocatorFlags;     /* Pointing device flags   (See LTYPE_*) */
  413.   ULONG     ulValidityFlags;    /* Aux data validity flags (See ADF_*)   */
  414.   ULONG     ulButtonStatus;     /* Button device status                  */
  415.   HWND      hwndUnderPtr;       /* Hwnd under pointer                    */
  416.   } WRTEVENTDATA;
  417. typedef WRTEVENTDATA *PWRTEVENTDATA; /* ped */
  418.  
  419.  
  420. /*******************************************/
  421. /*   WRT_*  Event and State Indicators     */
  422. /*                                         */
  423. /*******************************************/
  424.  
  425. /* WRTEVENTDATA.flEventStatus Equates */
  426. #define WRT_STROKE_AVAIL     0x00000001   /* Stroke is avail for retrieval   */
  427. #define WRT_INKING           0x00000002   /* Stroke was inked                */
  428.                                           /* Note: The next three flags are  */
  429.                                           /*       only valid if the Stroke  */
  430.                                           /*       Avail bit is set.         */
  431. #define WRT_INK_NOT_REMOVED  0x00000004   /* Stroke left inked as requested  */
  432. #define WRT_TD_LO_SAME_HWND  0x00000008   /* Touchdown/liftoff in same hwnd  */
  433. #define WRT_STROKE_OUTSIDE_HWND 0x00000010 /* Stroke left the boundaries     */
  434.                                            /* of the TD window's hwnd.       */
  435. #define WRT_POINTS_LOST      0x00000040   /* Points were lost (HW overrun)   */
  436. #define WRT_BUFFER_OVERRUN   0x00000080   /* Points lost (Stroke buffer overrun)*/
  437. #define WRT_NON_DEVICE_EVENT 0x00000100   /* Mouse event not generated by device*/
  438. #define WRT_MBUTTON_MASK     0x00001C00   /* Mask for isolating mouse butto  */
  439. #define WRT_MBUTTON1         0x00000400   /* Mouse button 1                  */
  440. #define WRT_MBUTTON2         0x00000800   /* Mouse button 2                  */
  441. #define WRT_MBUTTON3         0x00001000   /* Mouse button 3                  */
  442. #define WRT_TAP              0x00002000   /* Stroke is a tap                 */
  443. #define WRT_DBLTAP           0x00004000   /* Stroke is a double tap          */
  444. #define WRT_TAP_PAUSE        0x00008000   /* Tap pause event                  */
  445. #define WRT_DBLTAP_PAUSE     0x00010000   /* Double tap pause event           */
  446.                                           /* Note: The next five flags are   */
  447.                                           /*   only valid for WM_ENTER_WINDOW*/
  448.                                           /*   and WM_ENTER_WINDOW messages  */
  449. #define WRT_ENTEXT_TOP       0x08000000   /* Entered/exited window from top  */
  450. #define WRT_ENTEXT_BOTTOM    0x10000000   /* Entered/exited window from bottom */
  451. #define WRT_ENTEXT_RIGHT     0x20000000   /* Entered/exited window from right  */
  452. #define WRT_ENTEXT_LEFT      0x40000000   /* Entered/exited window from left   */
  453. #define WRT_ENTEXT_Z         0x80000000   /* Entered/exited window from Z axis */
  454. #define WRT_ENTEXT_MASK      0xF8000000   /* Enter/exit mask               */
  455.  
  456.  
  457. /*******************************************/
  458. /*   Virtual Event IDs                     */
  459. /*     Intent-based are individual values; */
  460. /*     User/letter events covered by one.  */
  461. /*******************************************/
  462.  
  463. #define VE_TOGGLESELECTION      (1)
  464. #define VE_HELP                 (2)
  465. #define VE_SPACE                (3)
  466. #define VE_EDIT                 (4)
  467. #define VE_DELETE               (5)
  468. #define VE_PASTE                (6)
  469. #define VE_SCRATCHOUT           (7)
  470. #define VE_DELETECHAR           (8)
  471. #define VE_INSERT               (9)
  472. #define VE_CUT                  (10)
  473. #define VE_COPY                 (11)
  474. #define VE_ASSIGNMENTS          (12)
  475. #define VE_UNDO                 (13)
  476. #define VE_ENTER                (14)
  477. #define VE_TAB                  (15)
  478. #define VE_SCROLLUP             (16)
  479. #define VE_SCROLLDOWN           (17)
  480. #define VE_SCROLLLEFT           (18)
  481. #define VE_SCROLLRIGHT          (19)
  482. #define VE_SCROLLUPMORE         (20)
  483. #define VE_SCROLLDOWNMORE       (21)
  484. #define VE_SCROLLLEFTMORE       (22)
  485. #define VE_SCROLLRIGHTMORE      (23)
  486. #define VE_SCROLLUPMAX          (24)
  487. #define VE_SCROLLDOWNMAX        (25)
  488. #define VE_SCROLLLEFTMAX        (26)
  489. #define VE_SCROLLRIGHTMAX       (27)
  490. #define VE_BACKSPACE            (28)
  491. #define VE_EXTENDSELECTION      (29)
  492. #define VE_CONTEXTMENU          (30)
  493. #define VE_BOUNDSELECTIONLEFT   (31)
  494. #define VE_BOUNDSELECTIONRIGHT  (32)
  495. #define VE_PICKUP               (33)
  496. #define VE_PICKUPCANCEL         (34)
  497. #define VE_PLACEDEFAULT         (35)
  498. #define VE_PLACEMOVE            (36)
  499. #define VE_PLACECOPY            (37)
  500. #define VE_PLACESHADOW          (38)
  501. #define VE_UPPERCASE            (39)
  502. #define VE_LOWERCASE            (40)
  503.  
  504. #define VE_LETTERGESTURE          (100)   /* Single value covers multiple. */
  505.  
  506. APIRET  APIENTRY WrtSetRecoPointer(HRECO hReco, RECOID id);
  507.  
  508. /* string types for WrtQueryDeviceNames */
  509. typedef CHAR STR_32[32];     /* str32 */
  510. typedef STR_32 *PSTR_32;
  511.  
  512. /* defines for all device types */
  513. #define DT_LOCATOR  0x03          /* locator device  */
  514. #define DT_BUTTON   0x04          /* button device   */
  515. #define DT_DISPLAY  0x05          /* display device  */
  516.  
  517. APIRET APIENTRY WrtQueryEventData(PWRTEVENTDATA  pedInfo);
  518.  
  519. APIRET APIENTRY WrtQueryInputDeviceNames(PSZ     pszDriverName,
  520.                                          PULONG  ulNumDevices,
  521.                                          PSTR_32  aDeviceName,
  522.                                          PULONG  aDeviceType,
  523.                                          PULONG  aDeviceID);
  524.  
  525. APIRET APIENTRY WrtEnumInputDrivers(PULONG pulNumDrivers, PSTR_32 aDriverNames);
  526.  
  527. typedef struct _WRTSYSTEMINFO       /* si */
  528.   {
  529.   ULONG     cbStructSize;      /* Structure size                      */
  530.   ULONG     ulDisplayXPels;    /* Number of display X pixels          */
  531.   ULONG     ulDisplayYPels;    /* Number of display Y pixels          */
  532.   ULONG     ulDisplayXRes;     /* Display resolution                  */
  533.   ULONG     ulDisplayYRes;     /* Display resolution                  */
  534.   ULONG     ulStandardXRes;    /* Standardized dots per inch X axis   */
  535.   ULONG     ulStandardYRes;    /* Standardized dots per inch Y axis   */
  536.   ULONG     ulNumDrivers;      /* Number of registered pen drivers    */
  537.   ULONG     ulNumLocators;     /* Number of registered pointing devs  */
  538.   ULONG     ulNumButtons;      /* Number of registered button device  */
  539.   ULONG     ulNumDisplays;     /* Number of registered display devs   */
  540.   } WRTSYSTEMINFO;
  541. typedef WRTSYSTEMINFO *PWRTSYSTEMINFO; /* psi */
  542.  
  543. APIRET APIENTRY WrtQuerySystemCaps(PWRTSYSTEMINFO  psiInfo);
  544.  
  545. typedef struct _WRTLOCATORDEVINFO   /* ldi */
  546.   {
  547.   ULONG     cbStructSize;       /* Structure size                        */
  548.   ULONG     ulLocatorID;        /* ID of pointing device                 */
  549.   ULONG     ulLocatorType;      /* Type of pointing device               */
  550.   ULONG     ulLocatorFlags;     /* Pointing device flags                 */
  551.   ULONG     ulValidityFlags;    /* Aux data validity flags               */
  552.   ULONG     ulOEMValidityCnt;   /* Count of valid OEM bytes              */
  553.   ULONG     ulSensorHeight;     /* Sensor height in thousands of inches  */
  554.   ULONG     ulSensorWidth;      /* Sensor width in thousands of inches   */
  555.   ULONG     ulNumMouButtons;    /* Number of mouse buttons emulated      */
  556.   ULONG     ulNumButtons;       /* Number of buttons on pointing device  */
  557.   ULONG     ulButtonMask;       /* Mask giving IDs of barrel buttons     */
  558.   ULONG     ulSensorXpts;       /* Number of sensor X axis units         */
  559.   ULONG     ulSensorYpts;       /* Number of sensor Y axis units         */
  560.   LONG      lSensorZptsP;       /* Number of sensor Z axis pressure units*/
  561.   ULONG     ulSensorZptsH;      /* Number of sensor Z axis height units  */
  562.   ULONG     ulSensorXres;       /* Sensor X resolution (points/inch)     */
  563.   ULONG     ulSensorYres;       /* Sensor Y resolution (points/inch)     */
  564.   ULONG     ulStandardXpts;     /* Number of Standardized X axis units   */
  565.   ULONG     ulStandardYpts;     /* Number of Standardized Y axis units   */
  566.   ULONG     ulSampleRate;       /* Sample rate of stylus                 */
  567.   ULONG     ulMaxSampleRate;    /* Maximum possible point rate supported */
  568.   ULONG     ulTimestampRes;     /* Dev timestamp resolution in microsecs */
  569.   UCHAR     pszDriverName[32];  /* Name of controlling device driver     */
  570.   UCHAR     pszDeviceName[32];  /* Name of pointing device               */
  571.   } WRTLOCATORDEVINFO;
  572. typedef WRTLOCATORDEVINFO *PWRTLOCATORDEVINFO; /* pldi */
  573.  
  574. /* WRTLOCATORDEVINFO.ulLocatorType Values */
  575. #define LT_MOUSE              0x00000001 /* Mouse                     */
  576. #define LT_PEN                0x00000002 /* Stylus                    */
  577. #define LT_TOUCH              0x00000003 /* Finger touch              */
  578. #define LT_OTHER              0x00000004 /* Other misc pointing device*/
  579.  
  580. /* WRTLOCATORDEVINFO.ulLocatorFlags Values */
  581. #define LTYPE_TETHERED        0x00000001 /* Pointing device is tethered */
  582. #define LTYPE_PROXIMITY_EVENT 0x00000002 /* Proximity events reported   */
  583. #define LTYPE_TILT            0x00000004 /* Device reports angle to XY  */
  584. #define LTYPE_ROTATION        0x00000008 /* Device reports rotation     */
  585. #define LTYPE_OEMDATA         0x00000010 /* Device reports extra OEMata */
  586. #define LTYPE_TIMESTAMP       0x00000020 /* Device reports hi res timestamp*/
  587. #define LTYPE_PRESSURE        0x00000040 /* Device reports pressure     */
  588. #define LTYPE_HEIGHT          0x00000080 /* Device reports height       */
  589. #define LTYPE_PIN             0x00000100 /* Pen contains PIN            */
  590. #define LTYPE_ERASURE         0x00000200 /* Erasure end of stylus reported */
  591. #define LTYPE_INTEG_SENSOR    0x00000400 /* Sensor integrated in display*/
  592. #define LTYPE_BATTERY         0x00000800 /* Pen contains battery        */
  593. #define LTYPE_RELATIVE        0x00001000 /* Relative pointing device    */
  594.                                          /* Sensor coords from relative */
  595.                                          /* devices are offsets from    */
  596.                                          /* last reported point         */
  597. #define LTYPE_ABSOLUTE        0x00002000 /* Absolute pointing device    */
  598. #define LTYPE_FIXED_POINT_RATE 0x00004000 /* Device point rate is not adjustable  */
  599.  
  600.  
  601. /* WRTLOCATORDEVINFO.ulValidityFlags Values */
  602. #define ADF_TIMESTAMP         0x00000001 /* Point timestamp             */
  603. #define ADF_FLAGS             0x00000002 /* Point flags                 */
  604. #define ADF_SCREENZ           0x00000004 /* Normalized Z axis           */
  605. #define ADF_DEVZ              0x00000008 /* Device Z                    */
  606. #define ADF_ANGLE             0x00000010 /* Stylus angle to XY          */
  607. #define ADF_ROTATION          0x00000020 /* Stylus barrel rotation      */
  608. #define ADF_BUTTON            0x00000040 /* Button status               */
  609. #define ADF_OEM               0x00000080 /* OEM specific data byte cnt  */
  610. #define ADF_OEM_COUNT_MASK    0x000F0000 /* OEM valid count             */
  611. #define ADF_USER              0x00000100 /* This bit is not HW relat and*/
  612.                                          /* is always set. For appl use.*/
  613. #define ADF_ALL               0X000001FF /* All fields                  */
  614.  
  615. APIRET APIENTRY WrtQueryLocatorCaps(PULONG              ulNumLocators,
  616.                                     PWRTLOCATORDEVINFO  pldiInfo);
  617.  
  618. typedef struct _WRTBUTTONDEVINFO    /* bdi */
  619.   {
  620.   ULONG     cbStructSize;       /* Structure size                    */
  621.   ULONG     ulButtonID;         /* ID of button device               */
  622.   ULONG     ulNumButtons;       /* Number of configured buttons      */
  623.   ULONG     ulButtonMask;       /* 1=barrel,  0=non-barrel button    */
  624.   UCHAR     pszDriverName[32];  /* Name of controlling device driver */
  625.   UCHAR     pszDeviceName[32];  /* Name of button device             */
  626.   } WRTBUTTONDEVINFO;
  627. typedef WRTBUTTONDEVINFO *PWRTBUTTONDEVINFO;   /* pbdi */
  628.  
  629. APIRET APIENTRY WrtQueryButtonCaps(PULONG             ulNumButtons,
  630.                                    PWRTBUTTONDEVINFO  pbdiInfo);
  631.  
  632. typedef struct _WRTDISPLAYDEVINFO     /* ddi */
  633.   {
  634.   ULONG     cbStructSize;      /* Structure size                    */
  635.   ULONG     ulDisplayID;       /* ID of display device              */
  636.   ULONG     ulDisplayType;     /* Type of display                   */
  637.   ULONG     ulDisplayXPels;    /* Number of display X pixels        */
  638.   ULONG     ulDisplayYPels;    /* Number of display Y pixels        */
  639.   ULONG     ulDisplayXRes;     /* Display pels per inch X axis      */
  640.   ULONG     ulDisplayYRes;     /* Display pels per inch Y axis      */
  641.   ULONG     ulDisplayHeight;   /* Height of display in thousandsths */
  642.   ULONG     ulDisplayWidth;    /* Width of display in thousandsths  */
  643.   UCHAR     pszDriverName[32]; /* Name of controlling device driver */
  644.   UCHAR     pszDeviceName[32]; /* Name of display device            */
  645.   } WRTDISPLAYDEVINFO;
  646. typedef WRTDISPLAYDEVINFO *PWRTDISPLAYDEVINFO;   /* pddi */
  647.  
  648. /* WRTDISPLAYDEVINFO.ulDisplayType Values */
  649. #define DISPTYPE_LCD        0x0001   /* 1 - LCD,      0 - not LC   */
  650. #define DISPTYPE_CRT        0x0002   /* 1 - CRT,      0 - not CR   */
  651. #define DISPTYPE_BLANKING   0x0004   /* Display performs blankin   */
  652. #define DISPTYPE_COLOR      0x0008   /* 1 - Color,    0 - Monochme */
  653. #define DISPTYPE_ATTACHED   0x0010   /* 1 - Attached, 0 - Portab   */
  654. #define DISPTYPE_NO_KBD     0x0020   /* No Keyboard Attached       */
  655. #define DISPTYPE_BATTERY    0x0040   /* 1 - Battery,  0 - AC pow   */
  656. #define DISPTYPE_SPEAKER    0x0080   /* 1 - Speaker integrated     */
  657. #define DISPTYPE_MICROPHONE 0x0100   /* 1 - Microphone integrate   */
  658.  
  659. APIRET APIENTRY WrtQueryDisplayCaps(PULONG              ulDisplayID,
  660.                                     PWRTDISPLAYDEVINFO  pddiInfo);
  661.  
  662.  
  663. APIRET APIENTRY WrtWaitActive( ULONG ulTimeout );
  664.  
  665. /* WrtWaitActive Timeout equates */
  666. #define WRT_INDEFINITE_WAIT     -1L
  667. #define WRT_IMMEDIATE_RETURN     0L
  668.  
  669. APIRET APIENTRY WrtQueryWindowPointRate (HWND hwnd, PULONG pulRate, PULONG pflFlags);
  670. #define QWPR_USER   0x0001     /* Point rate set by user via object override */
  671. #define QWPR_APP    0x0002     /* Point rate set by application.             */
  672.  
  673. APIRET APIENTRY WrtSetWindowPointRate (HWND hwnd, ULONG ulRate );
  674. /* Valid range of point rate settings */
  675. #define PPMSV_POINTRATE_MAX  200
  676. #define PPMSV_POINTRATE_MIN   40
  677. #define PPMSV_POINTRATE_DEF  100
  678.  
  679. typedef struct _CHARBOXINFO    /* cbi */
  680.   {
  681.   ULONG     cbStructSize;       /* Structure size                    */
  682.   SIZEL     sizlMinBox;         /* Minimum box size                  */
  683.   SIZEL     sizlMaxBox;         /* Maximum box size                  */
  684.   SIZEL     sizlDefBox;         /* Default box size                  */
  685.   } CHARBOXINFO;
  686. typedef CHARBOXINFO *PCHARBOXINFO;   /* pcbi */
  687.  
  688. APIRET APIENTRY WrtQueryCharacterBoxInfo(PCHARBOXINFO  pcbiBox);
  689.  
  690.  
  691. APIRET APIENTRY VkpCloseKb( HWND hwnd );
  692. APIRET APIENTRY VkpHideKeyboard( HWND hwnd );
  693. APIRET APIENTRY VkpLoadKeyboard( PSZ pszKbd, HWND hwnd );
  694. APIRET APIENTRY VkpDeleteKeyboard( PSZ pszKbd, HWND hwnd );
  695. APIRET APIENTRY VkpIsKbRunning( PBOOL fRunning );
  696. APIRET APIENTRY VkpIsKbHidden( PBOOL fHidden );
  697. APIRET APIENTRY VkpQueryKbPos( PSWP pswp );
  698. APIRET APIENTRY VkpSetKbPos( LONG x, LONG y, LONG cx, LONG cy,
  699.                              ULONG fs, HWND hwnd );
  700.  
  701.  
  702. /****************************/
  703. /* PPMSV_* System Value IDs */
  704. /****************************/
  705.  
  706. /* Not stored in Profile */
  707. #define  PPMSV_VERSION                  0    /*  PenPM version number        */
  708. #define  PPMSV_RELEASE                  1
  709. #define  PPMSV_LEVEL                    2
  710. #define  PPMSV_SUSPEND                  3    /*  Suspend PenPM processing    */
  711.  
  712. /* Stored in Profile */
  713. #define  PPMSV_PEN_PAUSE               13    /*  Pen pause T.O value         */
  714. #define  PPMSV_TOUCH_PAUSE             14    /*  Touch pause T.O value       */
  715. #define  PPMSV_MOUSE_PAUSE             15    /*  Mouse pause T.O value       */
  716. #define  PPMSV_OTHER_PAUSE             16    /*  Other pause T.O value       */
  717.  
  718. #define  PPMSV_PAUSEBEEPFREQ           17    /*  Pause T.O. beep freq        */
  719. #define  PPMSV_RECO_BEEP_ENABLE        18    /*  Enable beep for no reco map */
  720. #define  PPMSV_MINGESTUREPOINTS        19    /*  Minimum gesture points      */
  721. #define  PPMSV_RECOPTRTIMER            20    /*  Timer display time          */
  722. #define  PPMSV_GESTURE_CANCEL_TIMEOUT  21    /*  Cancel gesture timeout      */
  723. #define  PPMSV_GESTURE_TIMEOUT         22    /*  Inter-stroke gesture timeout*/
  724. #define  PPMSV_STANDARDIZED_RESOLUTION 23    /*                              */
  725.  
  726. #define  PPMSV_CHARACTER_BOX_DX        24    /*  Character box dx and dy are */
  727. #define  PPMSV_CHARACTER_BOX_DY        25    /*   read-only variables        */
  728.  
  729. #define  PPMSV_TOUCH_PAUSE_ENABLE      26    /*  Touch pause T.O enable      */
  730. #define  PPMSV_PEN_PAUSE_ENABLE        27    /*  Pen pause T.O enable        */
  731. #define  PPMSV_MOUSE_PAUSE_ENABLE      28    /*  Mouse pause T.O enable      */
  732. #define  PPMSV_OTHER_PAUSE_ENABLE      29    /*  Other pause T.O enable      */
  733.  
  734. #define  PPMSV_RESERVED_FIRST          30    /*  Reserved                    */
  735. #define  PPMSV_RESERVED_LAST           39    /*  Reserved                    */
  736.  
  737. #define  PPMSV_INK_WIDTH               40    /*  Width of system ink in pels */
  738.  
  739. #define  PPMSV_HW_PAD_STYLE            41    /*  Appearence style of HW pop-up*/
  740. #define  PPMSV_NEW_FUNCTION            42    /*  Reserved                     */
  741.  
  742. #define  PPMSV_SIZEABLE_CHARACTER_BOX_DX 43  /*  Sizeable character box width  */
  743. #define  PPMSV_SIZEABLE_CHARACTER_BOX_DY 44  /*  Sizeable character box height */
  744.  
  745. #define  PPMSV_BASELINE_LEADING        45    /*  Space above baseline        */
  746. #define  PPMSV_HW_PAD_POINT_SIZE       46    /*  Point size of HW pad font   */
  747.  
  748. #define  PPMSV_TAP_PAUSE_MAPPING       47    /*  Result of tap pause event   */
  749. #define  PPMSV_DBLTAP_PAUSE_MAPPING    48    /*  Result of tap pause event   */
  750.  
  751. #define  PPMSV_PROFILE_FIRST           13
  752. #define  PPMSV_PROFILE_LAST            48
  753.  
  754. #define  PPMSV_NUM_PPMSV               49
  755. #define  PPMSV_PROTECTED               PPMSV_LEVEL
  756.  
  757.  
  758. /***********************************/
  759. /* PPMSV_* Variables Range Values  */
  760. /***********************************/
  761.  
  762. #define  PPMSV_TOUCH_PAUSE_MIN             150
  763. #define  PPMSV_TOUCH_PAUSE_MAX            2000
  764. #define  PPMSV_TOUCH_PAUSE_DEF             300
  765. #define  PPMSV_PEN_PAUSE_MIN               150
  766. #define  PPMSV_PEN_PAUSE_MAX              2000
  767. #define  PPMSV_PEN_PAUSE_DEF               300
  768. #define  PPMSV_MOUSE_PAUSE_MIN             150
  769. #define  PPMSV_MOUSE_PAUSE_MAX            2000
  770. #define  PPMSV_MOUSE_PAUSE_DEF             400
  771. #define  PPMSV_OTHER_PAUSE_MIN             150
  772. #define  PPMSV_OTHER_PAUSE_MAX            3500
  773. #define  PPMSV_OTHER_PAUSE_DEF             200
  774.  
  775. #define  PPMSV_GESTURE_CANCEL_TIMEOUT_MIN  500
  776. #define  PPMSV_GESTURE_CANCEL_TIMEOUT_MAX 3000
  777. #define  PPMSV_GESTURE_CANCEL_TIMEOUT_DEF 1200
  778. #define  PPMSV_GESTURE_TIMEOUT_MIN         100
  779. #define  PPMSV_GESTURE_TIMEOUT_MAX        2000
  780. #define  PPMSV_GESTURE_TIMEOUT_DEF         900
  781.  
  782. #define  PPMSV_PAUSEBEEPFREQ_MIN           100
  783. #define  PPMSV_PAUSEBEEPFREQ_MAX          4000
  784. #define  PPMSV_PAUSEBEEPFREQ_DEF           100
  785. #define  PPMSV_RECO_BEEP_ENABLE_MIN          0
  786. #define  PPMSV_RECO_BEEP_ENABLE_MAX          1
  787. #define  PPMSV_RECO_BEEP_ENABLE_DEF          1
  788.  
  789. #define  PPMSV_MINGESTUREPOINTS_MIN          1
  790. #define  PPMSV_MINGESTUREPOINTS_MAX         20
  791. #define  PPMSV_MINGESTUREPOINTS_DEF          5
  792. #define  PPMSV_RECOPTRTIMER_MIN            200
  793. #define  PPMSV_RECOPTRTIMER_MAX           1250
  794. #define  PPMSV_RECOPTRTIMER_DEF            350
  795.  
  796. #define  PPMSV_STANDARDIZED_RESOLUTION_MIN 1000
  797. #define  PPMSV_STANDARDIZED_RESOLUTION_MAX 1000
  798. #define  PPMSV_STANDARDIZED_RESOLUTION_DEF 1000
  799.  
  800. #define  PPMSV_TOUCH_PAUSE_ENABLE_MIN        0
  801. #define  PPMSV_TOUCH_PAUSE_ENABLE_MAX        1
  802. #define  PPMSV_TOUCH_PAUSE_ENABLE_DEF        1
  803. #define  PPMSV_PEN_PAUSE_ENABLE_MIN          0
  804. #define  PPMSV_PEN_PAUSE_ENABLE_MAX          1
  805. #define  PPMSV_PEN_PAUSE_ENABLE_DEF          1
  806. #define  PPMSV_MOUSE_PAUSE_ENABLE_MIN        0
  807. #define  PPMSV_MOUSE_PAUSE_ENABLE_MAX        1
  808. #define  PPMSV_MOUSE_PAUSE_ENABLE_DEF        0
  809. #define  PPMSV_OTHER_PAUSE_ENABLE_MIN        0
  810. #define  PPMSV_OTHER_PAUSE_ENABLE_MAX        1
  811. #define  PPMSV_OTHER_PAUSE_ENABLE_DEF        1
  812. #define  PPMSV_INK_WIDTH_MIN                 1
  813. #define  PPMSV_INK_WIDTH_MAX                 4
  814. #define  PPMSV_INK_WIDTH_DEF                 1
  815.  
  816. /* HW pop preference equates  */
  817. #define  HW_PAD_RULED     1       /* Ruled    */
  818. #define  HW_PAD_UNRULED   2       /* Unruled  */
  819. #define  HW_PAD_BOXED     3       /* Boxed    */
  820.  
  821. #define  PPMSV_HW_PAD_STYLE_MIN   HW_PAD_RULED
  822. #define  PPMSV_HW_PAD_STYLE_MAX   HW_PAD_BOXED
  823. #define  PPMSV_HW_PAD_STYLE_DEF   HW_PAD_BOXED
  824.  
  825. #define  PPMSV_BASELINE_LEADING_MIN          0
  826. #define  PPMSV_BASELINE_LEADING_MAX        640      /* Max Y value */
  827. #define  PPMSV_BASELINE_LEADING_DEF          0
  828.  
  829. #define  PPMSV_HW_PAD_POINT_SIZE_MIN         8
  830. #define  PPMSV_HW_PAD_POINT_SIZE_MAX        72
  831. #define  PPMSV_HW_PAD_POINT_SIZE_DEF        14
  832.  
  833. #define  PPMSV_TAP_PAUSE_MAPPING_MIN      PTO_BUTTON1
  834. #define  PPMSV_TAP_PAUSE_MAPPING_MAX     (PTO_BUTTON_MASK + PTO_AUG_MASK)
  835. #define  PPMSV_TAP_PAUSE_MAPPING_DEF     (PTO_BUTTON2 + PTO_SHIFT_AUG) /* Shift Button 2 (Move) */
  836.  
  837. #define  PPMSV_DBLTAP_PAUSE_MAPPING_MIN   PTO_BUTTON1
  838. #define  PPMSV_DBLTAP_PAUSE_MAPPING_MAX  (PTO_BUTTON_MASK + PTO_AUG_MASK)
  839. #define  PPMSV_DBLTAP_PAUSE_MAPPING_DEF  (PTO_BUTTON2 + PTO_CTRL_AUG) /* Ctrl Button 2 (Copy)  */
  840.  
  841.  
  842. APIRET APIENTRY WrtQueryInputDeviceVariable(PSZ     pszDriverName,
  843.                                             PSZ     pszDeviceName,
  844.                                             ULONG   ulValueID, /* See PPMID_* */
  845.                                             PLONG   lValue,
  846.                                             PULONG  ulDatalen,
  847.                                             PVOID   pData);
  848. APIRET APIENTRY WrtSetInputDeviceVariable(PSZ     pszDriverName,
  849.                                           PSZ     pszDeviceName,
  850.                                           ULONG   ulValueID, /* See PPMID_* */
  851.                                           LONG    lValue,
  852.                                           ULONG   ulDatalen,
  853.                                           PVOID   pData);
  854. /*************************************/
  855. /* PPMID_* Input Device Variable IDs */
  856. /*************************************/
  857.  
  858. /* Stored in Profile */
  859. #define  PPMID_MOTION_STOP           0
  860. #define  PPMID_MOTION_START          1
  861. #define  PPMID_MINGESTURELENGTH      2
  862. #define  PPMID_DISABLE_PROXIMITY     3
  863. #define  PPMID_TOUCHOFFSET_X         4
  864. #define  PPMID_TOUCHOFFSET_Y         5
  865. #define  PPMID_BACKLIGHTBLANK        6
  866. #define  PPMID_BACKLIGHTBLANK_INT    7
  867. #define  PPMID_POINT_RATE            8
  868. #define  PPMID_DIVIDE_RATE           9
  869. #define  PPMID_DEVICE_PARMS         10
  870. #define  PPMID_TAP_LENGTH           11
  871. #define  PPMID_RSVD_2               12
  872. #define  PPMID_RSVD_3               13
  873.  
  874. #define  PPMID_PROFILE_FIRST         0
  875. #define  PPMID_PROFILE_LAST         13
  876.  
  877. #define  PPMID_NUM_PPMID            14
  878.  
  879.  
  880. /***********************************/
  881. /* PPMID_* Variables Range Values  */
  882. /***********************************/
  883. #define  PPMID_MOTION_STOP_MIN             28
  884. #define  PPMID_MOTION_STOP_MAX            300
  885. #define  PPMID_MOTION_STOP_DEF_PEN         28
  886. #define  PPMID_MOTION_STOP_DEF_TOUCH       56
  887. #define  PPMID_MOTION_STOP_DEF_MOUSE       28
  888. #define  PPMID_MOTION_STOP_DEF_OTHER       28
  889. #define  PPMID_MOTION_START_MIN             1
  890. #define  PPMID_MOTION_START_MAX          1000
  891. #define  PPMID_MOTION_START_DEF_PEN        64
  892. #define  PPMID_MOTION_START_DEF_TOUCH     104
  893. #define  PPMID_MOTION_START_DEF_MOUSE      52
  894. #define  PPMID_MOTION_START_DEF_OTHER      25
  895.  
  896. #define  PPMID_MINGESTURELENGTH_MIN         0
  897. #define  PPMID_MINGESTURELENGTH_MAX      8000
  898. #define  PPMID_MINGESTURELENGTH_DEF_PEN   156
  899. #define  PPMID_MINGESTURELENGTH_DEF_TOUCH 233
  900. #define  PPMID_MINGESTURELENGTH_DEF_MOUSE 233
  901. #define  PPMID_MINGESTURELENGTH_DEF_OTHER 233
  902.  
  903. #define  PPMID_DISABLE_PROXIMITY_MIN        0
  904. #define  PPMID_DISABLE_PROXIMITY_MAX        1
  905. #define  PPMID_DISABLE_PROXIMITY_DEF        1
  906.  
  907. #define  PPMID_BACKLIGHTBLANK_MIN           0
  908. #define  PPMID_BACKLIGHTBLANK_MAX           1
  909. #define  PPMID_BACKLIGHTBLANK_DEF           1
  910. #define  PPMID_BACKLIGHTBLANK_INT_MIN      30
  911. #define  PPMID_BACKLIGHTBLANK_INT_MAX  500000
  912. #define  PPMID_BACKLIGHTBLANK_INT_DEF    1200
  913.  
  914. #define  PPMID_POINT_RATE_MIN              40
  915. #define  PPMID_POINT_RATE_MAX             200
  916. #define  PPMID_POINT_RATE_DEF             100
  917.  
  918. #define  PPMID_DIVIDE_RATE_MIN              1
  919. #define  PPMID_DIVIDE_RATE_MAX              8
  920. #define  PPMID_DIVIDE_RATE_DEF              2
  921. #define  PPMID_DEVICE_PARMS_MIN             0
  922. #define  PPMID_DEVICE_PARMS_MAX             1
  923. #define  PPMID_DEVICE_PARMS_DEF             1
  924.  
  925. #define  PPMID_TOUCHOFFSET_X_MIN        -1000
  926. #define  PPMID_TOUCHOFFSET_X_MAX         1000
  927. #define  PPMID_TOUCHOFFSET_X_DEF           60
  928. #define  PPMID_TOUCHOFFSET_Y_MIN        -1000
  929. #define  PPMID_TOUCHOFFSET_Y_MAX         1000
  930. #define  PPMID_TOUCHOFFSET_Y_DEF           10
  931.  
  932. #define  PPMID_TAP_LENGTH_MIN            PPMID_MOTION_START_MIN
  933. #define  PPMID_TAP_LENGTH_MAX            PPMID_MOTION_START_MAX
  934. #define  PPMID_TAP_LENGTH_DEF_PEN          73  //91   7/28/94  JMZ
  935. #define  PPMID_TAP_LENGTH_DEF_TOUCH       131  /* PPMID_MOTION_START_DEF_TOUCH */
  936. #define  PPMID_TAP_LENGTH_DEF_MOUSE        79  /* PPMID_MOTION_START_DEF_MOUSE */
  937. #define  PPMID_TAP_LENGTH_DEF_OTHER        62  /* PPMID_MOTION_START_DEF_OTHER */
  938. /*                                                 */
  939. /*  WM_WRT_SYSVALUECHANGED message mp1 values      */
  940. /*                                                 */
  941. #define   VT_PPMSV     1
  942. #define   VT_PPMID     2
  943.  
  944.  
  945. /************************/
  946. /* WRTERR_* Error Codes */
  947. /************************/
  948. #define WRT_NO_ERROR                        0
  949. #define WRTERR_START                   0x7000
  950. #define WRTERR_ALREADY_ACTIVE          0x7001
  951. #define WRTERR_NOT_ENOUGH_MEMORY       0x7002
  952. #define WRTERR_CREATETHREAD_FAILED     0x7003
  953. #define WRTERR_SETHOOK_FAILED          0x7004
  954. #define WRTERR_RELEASEHOOK_FAILED      0x7005
  955. #define WRTERR_NOT_ACTIVE              0x7006
  956. #define WRTERR_NOT_OWNER               0x7007
  957. #define WRTERR_INVALID_HWND            0x7008
  958. #define WRTERR_INVALID_ID              0x7009
  959. #define WRTERR_INVALID_PID             0x700A
  960. #define WRTERR_TOO_MANY_MAPPERS        0x700B
  961. #define WRTERR_WRITE_FAILED            0x700C
  962. #define WRTERR_NOT_PEN_ENV             0x700D
  963. #define WRTERR_BUFFER_TOO_SMALL        0x700E
  964. #define WRTERR_STROKE_INVALID          0x700F
  965. #define WRTERR_BxDOWN_IN_STATEB        0x7010
  966. #define WRTERR_BxUP_IN_STATE0          0x7011
  967. #define WRTERR_APPL_NOT_ACTIVE         0x7012
  968.  
  969. #define REDERR_RECO_SYS_ALREADY_REG    0x7013
  970. #define REDERR_RECO_SUBSYS_ALREADY_REG 0x7014
  971. #define REDERR_RECO_SUBSYS_NOT_REG     0x7015
  972. #define REDERR_RECO_NAME_TOO_LONG      0x7016
  973. #define REDERR_INVALID_RECO_NAME       0x7017
  974. #define REDERR_EVENT_NAME_TOO_LONG     0x7018
  975. #define REDERR_INVALID_EVENT_NAME      0x7019
  976. #define REDERR_EVENT_NAME_NOT_REG      0x701A
  977. #define REDERR_EVENT_NAME_ALREADY_REG  0x701B
  978. #define REDERR_INVALID_EVENT_ID        0x701C
  979. #define REDERR_INVALID_EVENT_PTR       0x701D
  980. #define REDERR_RECO_DATA_INVALID       0x701E
  981.  
  982.  
  983. #define WRTERR_SENSORRESOLUTION_UNAVAIL 0x701F
  984. #define WRTERR_BxDOWN_IN_STATEA        0x7020
  985. #define WRTERR_HITTEST_FAILED          0x7021
  986. #define WRTERR_BACKLITE_CMD_FAILED     0x7022
  987. #define WRTERR_INVALID_PARM            0x7023
  988. #define WRTERR_INVALID_EXTENTS         0x7024
  989. #define WRTERR_INVALID_OPTION          0x7025
  990. #define WRTERR_PARM_OUT_OF_RANGE       0x7026
  991. #define WRTERR_INVALID_BUFFER          0x7027
  992. #define WRTERR_INVALID_DRIVER_NAME     0x7028
  993. #define WRTERR_INVALID_DEVICE_NAME     0x7029
  994. #define WRTERR_MORE_NAMES_AVAIL        0x702A
  995. #define WRTERR_INVALID_POINTER         0x702B
  996. #define WRTERR_INVALID_LOCATOR_ID      0x702C
  997. #define WRTERR_INVALID_BUTTON_ID       0x702D
  998. #define WRTERR_INVALID_DISPLAY_ID      0x702E
  999. #define WRTERR_STRUCT_NOT_INIT         0x702F
  1000. #define WRTERR_VALUEID_DEVICE_MISMATCH 0x7030
  1001. #define WRTERR_NO_DEVICE_CAPABILITY    0x7031
  1002. #define WRTERR_INVALID_BUTTON_EVENT    0x7032
  1003. #define WRTERR_WAIT_TIMEOUT            0x7033
  1004. #define WRTERR_INVALID_MOUSE_EVENT     0x7034
  1005. #define WRTERR_INVALID_INPUT           0x7035
  1006. #define WRTERR_INVALID_COUNT           0x7036
  1007. #define WRTERR_ID_READ_ONLY            0x7037
  1008. #define WRTERR_PEN_NOT_INSTALLED       0x7038
  1009. #define WRTERR_NOT_ABLE_TO_CREATE_CONTROL 0x7039
  1010. #define WRTERR_NOT_ABLE_TO_CREATE_DLG  0x703A
  1011. #define WRTERR_INVALID_STROKE_BUFFER   0x703B
  1012.  
  1013. /************************/
  1014. /* VKPERR_* Error Codes */
  1015. /************************/
  1016.  
  1017. #define VKP_NO_ERROR                   NO_ERROR
  1018. #define VKPERR_OUT_OF_MEMORY           0x7100
  1019. #define VKPERR_VKP_NOT_READY           0x7101
  1020. #define VKPERR_INVALID_KBD_NAME        0x7102
  1021. #define VKPERR_KBD_LOAD_FAILED         0x7103
  1022. #define VKPERR_KBD_LOAD_TIMEOUT        0x7104
  1023. #define VKPERR_INVALID_PARM            0x7105
  1024. #define VKPERR_WSWP_FAILED             0x7106
  1025. #define VKPERR_WQWP_FAILED             0x7107
  1026. #define VKPERR_INVALID_OWNER           0x7108
  1027.  
  1028. /* Start of handwriting control area */
  1029.  
  1030. #ifndef __HWXENTRY_INCLUDED__
  1031. #define __HWXENTRY_INCLUDED__
  1032.  
  1033. /*****************************************************************************/
  1034. /*                                                                           */
  1035. /* Class Name                                                                */
  1036. /*                                                                           */
  1037. /*****************************************************************************/
  1038.  
  1039. #define WC_HWXENTRY     ((PSZ)0xffff0029L)
  1040.  
  1041. /*****************************************************************************/
  1042. /*                                                                           */
  1043. /* Handwriting Control Style Bits                                            */
  1044. /*                                                                           */
  1045. /*****************************************************************************/
  1046.  
  1047. #define HX_BORDER       0x0001   /* Control displays a    border        */
  1048. #define HX_3DBORDER     0x0002   /* Control displays a 3D border        */
  1049.  
  1050. /******************************************************************************/
  1051. /*                                                                            */
  1052. /* Control Messages                                                           */
  1053. /*                                                                            */
  1054. /*  Messages sent to Handwriting Control from Owner                           */
  1055. /*                                                                            */
  1056. /******************************************************************************/
  1057.  
  1058.                                                       /* Non modal messages     */
  1059. #define HXM_QUERY_BACK_COLOR            WM_USER +  1  /* query background color */
  1060. #define HXM_SET_BACK_COLOR              WM_USER +  2  /* set background color   */
  1061. #define HXM_QUERY_BOX_COLOR             WM_USER +  3  /* query box color        */
  1062. #define HXM_SET_BOX_COLOR               WM_USER +  4  /* set box color          */
  1063. #define HXM_QUERY_BOX_SIZE              WM_USER +  5  /* query box size         */
  1064. #define HXM_SET_BOX_SIZE                WM_USER +  6  /* set box size           */
  1065. #define HXM_QUERY_CHAR_BOX              WM_USER +  7  /* query character        */
  1066. #define HXM_SET_CHAR_BOX                WM_USER +  8  /* set character          */
  1067. #define HXM_QUERY_DLM_COERCION          WM_USER +  9  /* query Dict. Lng. Mod.  */
  1068. #define HXM_SET_DLM_COERCION            WM_USER + 10  /* set Dict. Lng. Mod.    */
  1069. #define HXM_QUERY_EXCLUDE_RECTL         WM_USER + 11  /* query exclusion rectls */
  1070. #define HXM_SET_EXCLUDE_RECTL           WM_USER + 12  /* set exclusion rectls   */
  1071. #define HXM_QUERY_WRITING_POINTER       WM_USER + 13  /* query writing pointer  */
  1072. #define HXM_SET_WRITING_POINTER         WM_USER + 14  /* set writing pointer    */
  1073. #define HXM_QUERY_INK_COLOR             WM_USER + 15  /* query ink color        */
  1074. #define HXM_SET_INK_COLOR               WM_USER + 16  /* set ink color          */
  1075. #define HXM_QUERY_INK_TYPE              WM_USER + 17  /* query ink type         */
  1076. #define HXM_SET_INK_TYPE                WM_USER + 18  /* set ink type           */
  1077. #define HXM_QUERY_INK_MIX               WM_USER + 19  /* query ink mix          */
  1078. #define HXM_SET_INK_MIX                 WM_USER + 20  /* set ink mix            */
  1079. #define HXM_QUERY_INK_WIDTH             WM_USER + 21  /* query ink width        */
  1080. #define HXM_SET_INK_WIDTH               WM_USER + 22  /* set ink width          */
  1081. #define HXM_QUERY_LINE_COLOR            WM_USER + 23  /* query line color       */
  1082. #define HXM_SET_LINE_COLOR              WM_USER + 24  /* set line color         */
  1083. #define HXM_QUERY_LINE_SPACING          WM_USER + 25  /* query line spacing     */
  1084. #define HXM_SET_LINE_SPACING            WM_USER + 26  /* set line spacing       */
  1085. #define HXM_QUERY_LINE_WIDTH            WM_USER + 27  /* query line width       */
  1086. #define HXM_SET_LINE_WIDTH              WM_USER + 28  /* set line width         */
  1087. #define HXM_QUERY_MAX_RESULTS           WM_USER + 29  /* query line width       */
  1088. #define HXM_SET_MAX_RESULTS             WM_USER + 30  /* set line width         */
  1089. #define HXM_QUERY_WLM_COERCION          WM_USER + 31  /* query wordlist coercion*/
  1090. #define HXM_SET_WLM_COERCION            WM_USER + 32  /* set wordlist coercion  */
  1091. #define HXM_QUERY_RECO_FORM            WM_USER + 33  /* query recognition style*/
  1092. #define HXM_SET_RECO_FORM              WM_USER + 34  /* set recognition style  */
  1093. #define HXM_QUERY_PROXIMITY_POINTER     WM_USER + 35  /* query proximity pointer*/
  1094. #define HXM_SET_PROXIMITY_POINTER       WM_USER + 36  /* set proximity pointer  */
  1095. #define HXM_QUERY_RECO_TRIGGER          WM_USER + 37  /* query reco trigger     */
  1096. #define HXM_SET_RECO_TRIGGER            WM_USER + 38  /* set reco trigger       */
  1097. #define HXM_RECO_STROKES                WM_USER + 39  /* App specify reco       */
  1098. #define HXM_QUERY_SYMBOL_SUBSET         WM_USER + 40  /* query symbol subset    */
  1099. #define HXM_SET_SYMBOL_SUBSET           WM_USER + 41  /* set symbol subset      */
  1100. #define HXM_QUERY_SMBOL_SUBSET_PRIORITY WM_USER + 42  /* query symbol subset priority*/
  1101. #define HXM_SET_SYMBOL_SUBSET_PRIORITY  WM_USER + 43  /* set symbol subset priority  */
  1102. #define HXM_QUERY_WORDLIST_HANDLE       WM_USER + 44  /* query word list handle */
  1103. #define HXM_SET_WORDLIST_HANDLE         WM_USER + 45  /* set word list handle   */
  1104. #define HXM_QUERY_INKING_STYLE          WM_USER + 46  /* query inking style     */
  1105. #define HXM_SET_INKING_STYLE            WM_USER + 47  /* set inking style       */
  1106.  
  1107. /*****************************************************************************/
  1108. /*                                                                           */
  1109. /*  Parent Notification Messages                                             */
  1110. /*                                                                           */
  1111. /*****************************************************************************/
  1112.  
  1113. #define HXN_STROKE_ADDED          WM_USER + 1   /* Stroke Add pending         */
  1114. #define HXN_GESTURE_PENDING       WM_USER + 2   /* Gesture pending            */
  1115. #define HXN_DELETE_PENDING        WM_USER + 3   /* Delete char pending        */
  1116. #define HXN_INSERT_PENDING        WM_USER + 4   /* Insert char pending        */
  1117. #define HXN_OVERFLOW              WM_USER + 5   /* Control text overflow      */
  1118. #define HXN_SETFOCUS              WM_USER + 6   /* Input focus activated      */
  1119. #define HXN_KILLFOCUS             WM_USER + 7   /* Input focus deactivated    */
  1120. #define HXN_CONTENTS_CHANGED      WM_USER + 8   /* Control Recognition change */
  1121. #define HXN_RECO_RESULTS          WM_USER + 9   /* recognition result message */
  1122. #define HXN_STATE_CHANGED         WM_USER + 10  /* HWX state changed          */
  1123. #define HXN_TERMINATE             WM_USER + 11  /* HWX state changed          */
  1124.  
  1125.  
  1126. /*****************************************************************************/
  1127. /*                                                                           */
  1128. /*  Result Data structure passed in WinSendMsg() for HXN_RECO_RESULTS        */
  1129. /*                                                                           */
  1130. /*****************************************************************************/
  1131.  
  1132. /**** Reco Text Array  *****/
  1133.  
  1134. #define CSF_CHAR_EMPTY          1               /* Character cell is empty   */
  1135. #define CSF_CHAR_VALID          2               /* Character cell has valid char*/
  1136. #define CSF_CHAR_NOT_RECOD      3               /* Character cell not reco'd */
  1137.  
  1138. typedef struct _HWXCHAR {                       /* HWX CHAR Definition       */
  1139.   unsigned char      ucChar;                    /* Character                 */
  1140.   ULONG              ulCharStatus;              /* Character status flags    */
  1141. } HWXCHAR, *PHWXCHAR, **PPHWXCHAR;              /*                           */
  1142.  
  1143. /**** Reco Results Array  *****/
  1144.  
  1145. #define IDRCSF_TXTSYM_VALID    ((ULONG)0)       /* valid symbol              */
  1146. #define IDRCSF_TXTSYM_EMPTY    ((ULONG)1)       /* no data for symbol(s)     */
  1147. #define IDRCSF_TXTSYM_UNKNOWN  ((ULONG)2)       /* unrecognized              */
  1148.  
  1149. typedef struct _IDRCHAR {                       /* HWX CHAR Definition       */
  1150.   ULONG             reserved1;
  1151.   USHORT            reserved2;
  1152.   unsigned char     ucChar;                     /* Character                 */
  1153.   ULONG             ulCharStatus;               /* IDR Character status flags*/
  1154. } IDRCHAR, *PIDRCHAR, **PPIDRCHAR;              /*                           */
  1155.  
  1156. /**** Results Type  *****/
  1157.  
  1158. #define HWXRES_TEXT       0x00000001            /* primary result is text    */
  1159. #define HWXRES_GESTURE    0x00000002            /* primary result is gesture */
  1160.  
  1161. typedef struct _HWXRECORESULTS {                /* HWX Reco Results          */
  1162.   ULONG            ulResultType;                /* Result type               */
  1163.   PSZ              pszRecoText;                 /* Recoed string             */
  1164.   PSZ              pszCtrlText;                 /* Ctrl string before update */
  1165.   PRECODATA        pRecoData;                   /* gesture data              */
  1166.   PHWXCHAR         pRecoTextArray;              /* Reco Text Array           */
  1167.   PIDRCHAR         pRecoResultsArray;           /* Ptr to Reco Results Array */
  1168.   ULONG            reserved;                    /* reserved                  */
  1169. } HWXRECORESULTS, *PHWXRECORESULTS, **PPHWXRECORESULTS;
  1170.  
  1171. /*****************************************************************************/
  1172. /*                                                                           */
  1173. /*  Application return code for WinSendMsg() for HXN_RECO_RESULTS            */
  1174. /*                                                                           */
  1175. /*****************************************************************************/
  1176.  
  1177. #define RE_RECO_TEXT               0x00000003  /*recognize text              */
  1178. #define RE_RECO_GESTURE            0x00000004  /*recognize gesture           */
  1179. #define RE_RECO_GESTURE_NO_MAP     0x00000005  /*recognize not mapped gesture*/
  1180. #define RE_NO_RECO                 0x00000006  /*no further action           */
  1181.  
  1182. /*****************************************************************************/
  1183. /*                                                                           */
  1184. /*  MLE,SLE,COMBOBOX,SPINBUTTON interface                                    */
  1185. /*                                                                           */
  1186. /*****************************************************************************/
  1187.  
  1188. typedef struct _HXMI {                          /* HXMI     Definition       */
  1189.   MPARAM mp1;                                   /* mp1                       */
  1190.   MPARAM mp2;                                   /* mp2                       */
  1191.   ULONG  reserved;                              /* reserve                   */
  1192. } HXMI, *PHXMI, **PPHXMI;                       /*                           */
  1193.  
  1194. /*****************************************************************************/
  1195. /*                                                                           */
  1196. /*  Control Data structure passed in WinCreateWindow()                       */
  1197. /*                                                                           */
  1198. /*****************************************************************************/
  1199.  
  1200. typedef struct _BOX_LAYOUT {
  1201.           ULONG    cbSize;         /*size of BOX_LAYOUT structure           */
  1202.           POINTL   ptlBox;         /*height and width of individual box     */
  1203.           LONG     lBoxColor;      /*Box Color                              */
  1204.       } BOX_LAYOUT;
  1205. typedef BOX_LAYOUT * PBOX_LAYOUT;
  1206.  
  1207. typedef struct _LINE_LAYOUT {
  1208.           ULONG    cbSize;         /*size of LINBE_LAYOUT structure        */
  1209.           LONG     lLineColor;     /*line Color                            */
  1210.           LONG     lSpacing;       /*line spacing                          */
  1211.           LONG     lWidth;         /*line width                            */
  1212.       } LINE_LAYOUT;
  1213. typedef LINE_LAYOUT * PLINE_LAYOUT;
  1214.  
  1215. typedef struct _HWXCTLDATA {
  1216.            ULONG       cbSize;         /*size of HWX_CTLDATA structure     */
  1217.            BOX_LAYOUT  BoxLayout;      /*box layout                        */
  1218.            LINE_LAYOUT LineLayout;     /*Line layout                       */
  1219.            ULONG       ulRecoForm;     /*type of segmentation              */
  1220.            ULONG       ulSymSets;      /*Symbol subset definition          */
  1221.            ULONG       ulInkingStyle;  /*System or Window PS ink           */
  1222.            LONG        lInkColor;      /*ink color                         */
  1223.            LONG        lInkType;       /*cosmetic ink type                 */
  1224.            LONG        lInkMix;        /*ink color mix                     */
  1225.            LONG        lInkWidth;      /*ink color width                   */
  1226.            HBITMAP     hbmpBackBitmap; /*background bitmap                 */
  1227.            HPOINTER    hProximityPtr;  /*in proximity, not writing         */
  1228.            HPOINTER    hWritingPointer;/*in proximity, writing             */
  1229.            ULONG       ulRecoTrigger;  /*events starting recognition       */
  1230.            PVOID       pRectList;      /*PIDM_RECTLIST invalid regions     */
  1231.            LHANDLE     hWordList;      /*global word list handle           */
  1232.            ULONG       ulWLCoercion;   /*degree of wordlist influence      */
  1233.            PVOID       pSymSet;        /*PIDR_SYMSET list of valid symbols */
  1234.            ULONG       ulSymSetPrio;   /*subsets priority                  */
  1235.            ULONG       DictCoer;       /*degree of dictionary influence    */
  1236.            ULONG       ulTextSpecLM;   /*text language modeling            */
  1237.            ULONG       ulMaxResults;   /*max # of results returned         */
  1238.            ULONG       ulUser1;        /*userdefined                       */
  1239.       } HWXCTLDATA;
  1240.  
  1241. typedef HWXCTLDATA * PHWXCTLDATA;
  1242.  
  1243. /********************************/
  1244. /* HWX structure definitions    */
  1245. /********************************/
  1246.  
  1247. /*******************************************/
  1248. /* HWXCTLDATA.ulRecoForm values            */
  1249. /*******************************************/
  1250.  
  1251. #define HWX_INKFORM_BOXED           (0x00000004)
  1252. #define HWX_INKFORM_LINED           (0x00000008)
  1253. #define HWX_INKFORM_UNLINED         (0x00000010)
  1254.  
  1255. /*******************************************/
  1256. /* HWXCTLDATA.ulSymSets values             */
  1257. /*******************************************/
  1258.  
  1259. /*
  1260. **  Defines for text symbol subsets.
  1261. */
  1262.  
  1263. #define HWX_SYMSET_ALPHALO     (0x00000001)   /* lower-alphabetic text symbols */
  1264. #define HWX_SYMSET_ALPHAHI     (0x00000002)   /* upper-alphabetic text symbols */
  1265. #define HWX_SYMSET_DIGIT       (0x00000004)   /* digits; 0 through 9 */
  1266. #define HWX_SYMSET_MONETARY    (0x00000008)   /* monetary symbols */
  1267. #define HWX_SYMSET_MATH        (0x00000010)   /* mathematical symbols */
  1268. #define HWX_SYMSET_PUNCTUATION (0x00000020)   /* punctuation symbols */
  1269. #define HWX_SYMSET_SPECIAL     (0x00000040)   /* special symbols */
  1270. #define HWX_SYMSET_FULL        (0x10000000)    /* full symbol set; this is the default */
  1271.  
  1272. /* *************************************** */
  1273. /* The following #defines are included     */
  1274. /* for compabibility with the Pen for OS/2 */
  1275. /* 1.1 alpha.  Do not utilized these       */
  1276. /* #defines, as they will be removed       */
  1277. /* in the final release.                   */
  1278. /* *************************************** */
  1279. #define HX_UPPER           HWX_SYMSET_ALPHALO
  1280. #define HX_LOWER           HWX_SYMSET_ALPHAHI
  1281. #define HX_DIGIT           HWX_SYMSET_DIGIT
  1282. #define HX_SPECIAL         HWX_SYMSET_SPECIAL
  1283. #define HX_PUNCTUATION     HWX_SYMSET_PUNCTUATION
  1284. #define HX_FULLSET         HWX_SYMSET_FULL
  1285. /* *************************************** */
  1286.  
  1287.  
  1288. /*******************************************/
  1289. /* HWXCTLDATA.ulInkStyle values            */
  1290. /*******************************************/
  1291.  
  1292. #define HWX_INK_SYSTEM  0               /* Use system inking       */
  1293. #define HWX_INK_WINDOW  1               /* Use Window Inking       */
  1294.  
  1295. #define HWX_INKTYPE_BITMASK HWX_INK_SYSTEM+HWX_INK_WINDOW
  1296.  
  1297. #define HWX_REMOVE_INK  0x00000000      /* Remove ink at end of operation */
  1298. #define HWX_LEAVE_INK   0x00000010      /* Leave ink at end of operation */
  1299.  
  1300. #define HWX_REMOVEINK_BITMASK HWX_REMOVE_INK+HWX_LEAVE_INK
  1301.  
  1302. #define HWX_ERASE_BACKCOLOR  0x00000100 /* erase doodle to a background color        */
  1303. #define HWX_ERASE_BACKBITMAP 0x00000200 /* erase doodle to a background bitmap       */
  1304. #define HWX_INVALIDATE_RECT  0x00000400 /* invalidate the bounding box or the doodle */
  1305.  
  1306. #define HWX_ERASE_OPTION_BITMASK HWX_ERASE_BACKCOLOR+HWX_ERASE_BACKBITMAP+HWX_INVALIDATE_RECT
  1307.  
  1308. /*******************************************/
  1309. /* HWXCTLDATA.lInkColor values             */
  1310. /*******************************************/
  1311.  
  1312. /*
  1313. ** default color table indices (pmgppi.h)
  1314. */
  1315.  
  1316. /*******************************************/
  1317. /* HWXCTLDATA.lInkType values              */
  1318. /*******************************************/
  1319.  
  1320. /*
  1321. ** basic line type styles (pmgpi.h)
  1322. */
  1323.  
  1324. /*******************************************/
  1325. /* HWXCTLDATA.lInkMix values               */
  1326. /*******************************************/
  1327.  
  1328. /*
  1329. ** foreground mixes (pmgpi.h)
  1330. */
  1331.  
  1332. /*******************************************/
  1333. /* HWXCTLDATA.lInkWidth values             */
  1334. /*******************************************/
  1335.  
  1336. /*
  1337. ** cosmetic line widths (pmgpi.h)
  1338. */
  1339.  
  1340. /*******************************************/
  1341. /* HWXCTLDATA.hbmpBackBitmap values        */
  1342. /*******************************************/
  1343.  
  1344. /*
  1345. ** bitmap handle of type HBITMAP
  1346. */
  1347.  
  1348. /*******************************************/
  1349. /* HWXCTLDATA.hProximityPtr values         */
  1350. /*******************************************/
  1351.  
  1352. /*
  1353. ** pointer handle of type HPOINTER
  1354. */
  1355.  
  1356. /*******************************************/
  1357. /* HWXCTLDATA.hWritingPointer values       */
  1358. /*******************************************/
  1359.  
  1360. /*
  1361. ** pointer handle of type HPOINTER
  1362. */
  1363.  
  1364. /*******************************************/
  1365. /* HWXCTLDATA.ulRecoTrigger values         */
  1366. /*******************************************/
  1367.  
  1368. #define HWX_RTE_EXITPROX    0x00000001  /* WM_EXIT_PROXIMITY-Stop collecting */
  1369. #define HWX_RTE_LIFTOFF     0x00000002  /* WM_LIFTOFF - Stop collecting      */
  1370. #define HWX_RTE_WRTTIMEOUT  0x00000004  /* WM_WRITING_TIMEOUT-Stop collecting*/
  1371. #define HWX_RTE_FOCUSLOST   0x00000008  /* Window Focus Lost-Stop collecting */
  1372.  
  1373. /*******************************************/
  1374. /* HWXCTLDATA.pRectList values             */
  1375. /*******************************************/
  1376.  
  1377. /*
  1378. ** PIDM_RECTLIST is an array of exclude rectangles  (idmobj.h)
  1379. */
  1380.  
  1381. /*******************************************/
  1382. /* HWXCTLDATA.hWordList values             */
  1383. /*******************************************/
  1384.  
  1385. /*
  1386. ** Word list handle returned by idrclsCreateWordList or
  1387. ** idrclsCreateWordListFromRes
  1388. */
  1389.  
  1390. /*******************************************/
  1391. /* HWXCTLDATA.ulWLCoercion values          */
  1392. /*******************************************/
  1393.  
  1394. /*
  1395. **  Word list and dictionary language modeling coercion flags. (idrtext.h)
  1396. */
  1397.  
  1398.  
  1399. /*******************************************/
  1400. /* HWXCTLDATA.pSymSet values               */
  1401. /*******************************************/
  1402.  
  1403. /*
  1404. ** PIDR_SYMSET is a pointer to text and gesture symbol subsets (idrreco.h)
  1405. */
  1406.  
  1407. /*******************************************/
  1408. /* HWXCTLDATA.ulSymSetPrio values          */
  1409. /*******************************************/
  1410.  
  1411. /*
  1412. ** Symbol Subset Priority (idrtext.h)
  1413. */
  1414.  
  1415. /*******************************************/
  1416. /* HWXCTLDATA.DictCoer values              */
  1417. /*******************************************/
  1418.  
  1419. /*
  1420. **  Word list and dictionary language modeling coercion flags. (idrtext.h)
  1421. */
  1422.  
  1423. /*******************************************/
  1424. /* HWXCTLDATA.ulTextSpecLM values          */
  1425. /*******************************************/
  1426.  
  1427. /*
  1428. **  Defines for text-specific domain language modeling. (idrtext.h)
  1429. */
  1430.  
  1431. /*******************************************/
  1432. /* HWXCTLDATA.ulMaxResults values          */
  1433. /*******************************************/
  1434.  
  1435. /*
  1436. **   max number of alternate results the recognition engine returns
  1437. */
  1438.  
  1439. /*******************************************/
  1440. /* HWXCTLDATA.user1 values                 */
  1441. /*******************************************/
  1442.  
  1443. /*
  1444. **  user cached control data
  1445. */
  1446. /*******************************************/
  1447. /* HWX  ERROR CODE                         */
  1448. /*******************************************/
  1449.  
  1450. #define HWX_ERROR_NO_CHAR            0
  1451.  
  1452. #endif                              /* ifndef __HWXENTRY_INCLUDED__ */
  1453.  
  1454. /* Start of Sketch area */
  1455.  
  1456. #ifndef __SKETCH_INCLUDED__
  1457. #define __SKETCH_INCLUDED__
  1458.  
  1459. /******************************************************************************/
  1460. /*                                                                            */
  1461. /* Class Name                                                                 */
  1462. /*                                                                            */
  1463. /******************************************************************************/
  1464.  
  1465. #define WC_SKETCH       ((PSZ)0xffff002AL)
  1466.  
  1467.  
  1468.  
  1469. /******************************************************************************/
  1470. /*                                                                            */
  1471. /* Control Style Bits                                                         */
  1472. /*                                                                            */
  1473. /******************************************************************************/
  1474.  
  1475. #define SKS_BORDER       0x0001   /* Control appearance is Bordered     */
  1476. #define SKS_3DBORDER     0x0002   /* Control appearance is 3D Bordered  */
  1477.  
  1478. /******************************************************************************/
  1479. /*                                                                            */
  1480. /* Control Messages                                                           */
  1481. /*                                                                            */
  1482. /*  Messages sent to Sketch Control from Owner                                */
  1483. /*                                                                            */
  1484. /* These constants below are used as messages to query and change             */
  1485. /* the state of a WC_SKETCH window.                                           */
  1486. /* They are sent to WC_SKETCH windows using WinSendMsg like so:               */
  1487. /*                                                                            */
  1488. /*    rc = WinSendMsg (hwndSketch, SKM_xxx, mp1, mp2);                        */
  1489. /*                                                                            */
  1490. /******************************************************************************/
  1491.  
  1492.  
  1493.                                                     /* Non modal messages     */
  1494. #define SKM_DELETE_ALL_STROKES        WM_USER +  1  /*                        */
  1495. #define SKM_GET_BITMAP                WM_USER +  2  /*                        */
  1496. #define SKM_UNDO_LAST_STROKE          WM_USER +  3  /*                        */
  1497. #define SKM_QUERY_BITMAP_SIZE         WM_USER +  4  /*                        */
  1498. #define SKM_RENDER_TO_CLIPBOARD       WM_USER +  5  /*                        */
  1499.                                                     /*                        */
  1500.                                                     /* Query control values   */
  1501. #define SKM_QUERY_CTL_DRAW_POINTER    WM_USER +  6  /*                        */
  1502. #define SKM_QUERY_CTL_INK_COLOR       WM_USER +  7  /*                        */
  1503. #define SKM_QUERY_CTL_INK_WIDTH       WM_USER +  8  /*                        */
  1504. #define SKM_QUERY_CTL_INVISIBLE_MODE  WM_USER +  9  /*                        */
  1505. #define SKM_QUERY_CTL_STROKE_COUNT    WM_USER + 10  /*                        */
  1506.                                                     /*                        */
  1507.                                                     /* Query stroke values    */
  1508. #define SKM_QUERY_STROKE_DATA         WM_USER + 11  /*                        */
  1509. #define SKM_QUERY_STROKE_INK_COLOR    WM_USER + 12  /*                        */
  1510. #define SKM_QUERY_STROKE_INK_WIDTH    WM_USER + 13  /*                        */
  1511. #define SKM_QUERY_STROKE_LENGTH       WM_USER + 14  /*                        */
  1512.                                                     /*                        */
  1513.                                                     /* Set control values     */
  1514. #define SKM_SET_CTL_AUXDATA_MODE      WM_USER + 15  /* level of aux data      */
  1515. #define SKM_SET_CTL_DRAW_POINTER      WM_USER + 16  /* draw pointer           */
  1516. #define SKM_SET_CTL_INK_COLOR         WM_USER + 17  /* ink color              */
  1517. #define SKM_SET_CTL_INK_WIDTH         WM_USER + 18  /* ink width              */
  1518. #define SKM_SET_CTL_INVISIBLE_MODE    WM_USER + 19  /* invisible mode         */
  1519.                                                     /*                        */
  1520.                                                     /* Set stroke values      */
  1521. #define SKM_SET_STROKE_INK_COLOR      WM_USER + 20  /*                        */
  1522. #define SKM_SET_STROKE_INK_WIDTH      WM_USER + 21  /*                        */
  1523.  
  1524. #define SKM_ADD_STROKE                WM_USER + 22  /* Add a stroke           */
  1525.  
  1526. /******************************************************************************/
  1527. /*                                                                            */
  1528. /* Parent Notification Messages                                               */
  1529. /*                                                                            */
  1530. /* The WC_SKETCH window will send a message to its parent                     */
  1531. /*                                                                            */
  1532. /*     WinSendMsg (hwndOwner, WM_CONTROL,                                     */
  1533. /*             MPFROM2SHORT (idSktWindow, usNotifyCode), mp2);                */
  1534. /*                                                                            */
  1535. /* These constants below are used as notification codes                       */
  1536. /* for WM_CONTROL messages. (These are usNotifyCode's.)                       */
  1537. /*                                                                            */
  1538. /******************************************************************************/
  1539.  
  1540. #define SKN_FOCUS_ACTIVATE        WM_USER + 100   /* Control has gained focus        */
  1541. #define SKN_FOCUS_DEACTIVATE      WM_USER + 102   /* Control has lost focus          */
  1542. #define SKN_STROKE_ADD            WM_USER + 103   /* Control is adding stroke        */
  1543. #define SKN_STROKE_UNDO           WM_USER + 104   /* Control is deleteting stroke    */
  1544. #define SKN_CONTROL_CLEARED       WM_USER + 105   /* Control is deleting all strokes */
  1545. #define SKN_INK_COLOR_CHANGE      WM_USER + 106   /* Control has changed ink color   */
  1546. #define SKN_INK_WIDTH_CHANGE      WM_USER + 107   /* Control has changed ink width   */
  1547.  
  1548. /******************************************************************************/
  1549. /*                                                                            */
  1550. /*     Structure used to retrieve stroke(i) from the stroke database.         */
  1551. /*                                                                            */
  1552. /*                                                                            */
  1553. /*             . ------------------------------- .                            */
  1554. /*           1 .                                 .                            */
  1555. /*             . SKTCTRLSTROKEDEF                .                            */
  1556. /*             .                                 .                            */
  1557. /*             .         PSTROKEDATA             . -> 2                       */
  1558. /*             . ------------------------------- .                            */
  1559. /*           2 .                                 .                            */
  1560. /*             . STROKEDATA                      .                            */
  1561. /*             .                                 .                            */
  1562. /*             .         PPOINTL                 . -> 3                       */
  1563. /*             .                                 .                            */
  1564. /*             .         PAUXDATAINFO            . -> 4                       */
  1565. /*             .         PAUXSTROKEDATA          . -> 5                       */
  1566. /*             .                                 .                            */
  1567. /*             .         struct _STROKEDATA *    . -> NULL                    */
  1568. /*             .         struct _STROKEDATA *    . -> NULL                    */
  1569. /*             . ------------------------------- .                            */
  1570. /*           3 .                                 .                            */
  1571. /*             . X/Y POINTL array                .                            */
  1572. /*             .                                 .                            */
  1573. /*             . ------------------------------- .                            */
  1574. /*           4 .                                 .                            */
  1575. /*             . AUXDATAINFO                     .                            */
  1576. /*             .                                 .                            */
  1577. /*             . ------------------------------- .                            */
  1578. /*           5 .                                 .                            */
  1579. /*             . AUXPOINTDATA                    .                            */
  1580. /*             .                                 .                            */
  1581. /*             . ------------------------------- .                            */
  1582. /*                                                                            */
  1583. /******************************************************************************/
  1584.  
  1585. typedef struct _SKETCHSTROKEDEF
  1586. {
  1587.    ULONG  ulStrokeColor;
  1588.    ULONG  ulStrokeWidth;
  1589.    POINTL reserved1;
  1590.    ULONG  reserved2;
  1591.    ULONG  reserved3;
  1592.    PSTROKEDATA pStroke;
  1593. } SKETCHSTROKEDEF;
  1594.  
  1595. typedef SKETCHSTROKEDEF *PSKETCHSTROKEDEF;    /* Ptr->SKETCHSTROKEDEF         */
  1596. typedef PSKETCHSTROKEDEF *PPSKETCHSTROKEDEF;  /* Ptr->Ptr->SKETCHSTROKEDEF    */
  1597.  
  1598. #endif                                  /* ifndef __SKETCH_INCLUDED__ */
  1599.  
  1600. /* Start of RED area */
  1601.  
  1602. #ifndef PPMRED_INCLUDED
  1603. #define PPMRED_INCLUDED
  1604.  
  1605.  
  1606. #define REDHOBJ_OS2 (HOBJECT)(0xfffffffe)
  1607. #define REDHOBJ_WIN (HOBJECT)(0xfffffffd)
  1608. #define REDHOBJ_DOS (HOBJECT)(0xfffffffc)
  1609. #define REDHOBJ_PM  (HOBJECT)(0xfffffffb)
  1610. #define REDHOBJ_FLDR (HOBJECT)(0xfffffffa)
  1611. #define REDHOBJ_SYS  (HOBJECT)(0xfffffff9)
  1612.  
  1613.  
  1614. /*
  1615.  * Error defines for Red layer
  1616.  */
  1617. #define RED_NO_ERROR (0)
  1618. #define RED_INVALID_BUTTON        0x0000a000
  1619. #define RED_INVALID_BI            0x0000a001
  1620. #define RED_ERR_BUF_TOO_SMALL     0x0000a002
  1621. #define RED_INVALID_PARM          0x0000a003
  1622. #define RED_NO_MEMORY             0x0000a004
  1623. #define RED_NOT_FOUND             0x0000a005
  1624. #define RED_WRITE_ERR             0x0000a006
  1625. #define RED_PROFILE_ERROR         0x0000a007
  1626. #define RED_CMD_IS_BUILTIN        0x0000a008
  1627.  
  1628.  
  1629. /*
  1630.  * declarations for RED functions
  1631.  */
  1632.  
  1633. APIRET APIENTRY RedRegisterRecoCommand(PSZ pszCommand, ULONG id, HWND hwnd);
  1634.  
  1635. HWND APIENTRY RedQueryRecoCommand(UCHAR *cmdp);
  1636.  
  1637. APIRET APIENTRY RedDeregisterRecoCommand(HWND hwnd);
  1638.  
  1639.  
  1640. APIRET APIENTRY RedRecoDataFromEnv(PRECODATA prdEnv, ULONG *lenp);
  1641.  
  1642.  
  1643. APIRET APIENTRY RedQueryRecoHandle(PSZ     pszRecoSubsystem,
  1644.                                     PHRECO  phReco,
  1645.                                     PULONG pEventCount);
  1646.  
  1647.  
  1648. APIRET APIENTRY RedQueryRecoSubsystem(HRECO   hReco,
  1649.                                       PSZ     pszRecoSubsystem,
  1650.                                       PULONG pEventCount);
  1651.  
  1652.  
  1653. APIRET APIENTRY RedRecoIDFromName(HRECO   hReco,
  1654.                                   PSZ     pszEventName,
  1655.                                   PRECOID eventID);
  1656.  
  1657. APIRET APIENTRY RedRecoNameFromID(HRECO   hReco,
  1658.                                   RECOID  eventID,
  1659.                                   PSZ     pszEventName);
  1660.  
  1661. APIRET APIENTRY RedWriteObjectEventMap(HOBJECT hobj, UCHAR *fnamep);
  1662.  
  1663. APIRET APIENTRY RedReadObjectEventMap(HOBJECT hobj, UCHAR *fnamep);
  1664.  
  1665. APIRET APIENTRY RedHandleRecoEvent(RECODATA    *prdQ,
  1666.                                    BOOL        fSendRecoMsg,
  1667.                                    BOOL        fRecoPtr);
  1668. #endif      /* ifndef RED_INCLUDED */
  1669.  
  1670. /*****************************************************************************/
  1671. /* WrtHandwritingWindow define                                               */
  1672. /*****************************************************************************/
  1673.  
  1674. #ifndef WRT_HANDWRITING
  1675. #define WRT_HANDWRITING
  1676.  
  1677. /* Control style */
  1678. #define HW_BOX             0x0000000  /* default is BOX    */
  1679. #define HW_LINE            0x0010000  /* MLE with lines    */
  1680. #define HW_NOLINE          0x0030000  /* MLE with no lines */
  1681.  
  1682. /* Button or Button Group  */
  1683. #define HW_BUTTONMASK      0x03000000
  1684. #define HW_SEND            0x00000000 /*defualt */ /* 1 button */
  1685. #define HW_SENDCLEAR       0x01000000              /* 2 button */
  1686. #define HW_SENDCANCEL      0x02000000              /* 2 button */
  1687. #define HW_SENDCANCELCLEAR 0x03000000              /* 3 button */
  1688.  
  1689. /* Help button */
  1690. #define HW_HELP            0x04000000 /* add the Help button */
  1691.                                       /* default is no Help button */
  1692. /* Modality indicator */
  1693. #define HW_APPLMODAL       0x00000000 /*defualt */
  1694. #define HW_SYSTEMMODAL     0x10000000
  1695.  
  1696. /* Mobility indicator */
  1697. #define HW_MOVEABLE        0x20000000 /* default is not moveable */
  1698. #define HW_SIZABLE         0x40000000 /* default is not sizeable */
  1699.  
  1700. /* return code */
  1701. #define   HWID_SEND         DID_OK
  1702. #define   HWID_CANCEL       DID_CANCEL
  1703. #define   HWID_TRUNCATED    3
  1704.  
  1705. ULONG APIENTRY WrtHandwritingWindow ( HWND hwndParent, HWND hwndOwner, PSZ pszTitle, PSZ pszText,
  1706.                                        ULONG ulMaxHWXLength, ULONG  ulWindow, ULONG  flStyle,
  1707.                                        ULONG flCtlStyle, PVOID pCtlData, PVOID pPresParams );
  1708. #endif      /* ifndef WRT_HANDWRITING */
  1709. #endif
  1710.