home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
pentlk11.zip
/
PENPM.H
< prev
next >
Wrap
C/C++ Source or Header
|
1993-07-01
|
56KB
|
1,111 lines
/****************************** Module Header ******************************\
* *
* Pen for OS/2 header file *
* *
* Copyright (c) 1992, 1993 IBM Corporation *
* *
* Module Name: penpm.h *
* *
\***************************************************************************/
#ifndef PENPMH_INCLUDED
#define PENPMH_INCLUDED
LONG APIENTRY WrtQuerySysValue(HWND DeskTop, ULONG id);
APIRET APIENTRY WrtSetSysValue(HWND DeskTop, ULONG id, LONG Val);
APIRET APIENTRY WrtReadSysValue(HWND DeskTop, ULONG id);
APIRET APIENTRY WrtWriteSysValue(HWND DeskTop, ULONG id);
#define RECO_MAX_COORD 4
typedef ULONG RECOID, HRECO;
typedef RECOID *PRECOID;
typedef HRECO *PHRECO;
typedef struct _RECODATA
{
ULONG cbSize; /* size of struc */
RECOID id; /* ID if reco event */
HRECO hReco; /* Reco subsystem handle */
ULONG virtual_id; /* virtual id of event */
ULONG char_code; /* character code of event */
RECTL bound_box; /* box that bounds gesture */
POINTL ptlHotSpot; /* Hot Spot X/Y screen coordinate */
HWND hwnd; /* Hwnd under hot spot */
HWND hwndActive; /* Active window */
HWND hwndFocus; /* Window that has the focus */
CHAR *pszCommand; /* Cmd and args gesture mapped to */
CHAR *pszCmdArgs;
CHAR *pszPrefixCmd;
} RECODATA;
typedef RECODATA *PRECODATA;
#define MAX_RECO_NAME_LENGTH 11 /* Maximum characters length for */
/* Reco subsystem and event names */
#define MAX_STROKE_POINTS 1000
/*************************************************************/
/* AUXPOINTDATA structure returned by WrtQueryAuxPointData() */
/* */
/* AUXPOINTDATA is a static data structure available on */
/* each WM_MOUSEMOVE. */
/*************************************************************/
typedef struct _AUXPOINTDATA /* apd */
{
USHORT cbStructSize; /* Structure size */
ULONG ulTimestamp; /* Point timestamp */
USHORT usFlags; /* Point flags */
USHORT usUser; /* For program use */
SHORT sScrZ; /* Normalize Z axis value (4K to -4K)*/
/* Height - 0 t0 4096 */
/* Pressure 0 to -4096 */
SHORT sDevZ; /* Device Z axis value is device */
/* dependant. See locator */
/* caps structure. */
SHORT sAngle; /* Stylus angle to XY */
SHORT sRotation; /* Stylus barrel rotation */
USHORT usButton; /* Button status */
UCHAR OEM[8]; /* OEM specific data */
} AUXPOINTDATA;
typedef AUXPOINTDATA *PAUXPOINTDATA; /* papd */
/* AUXPOINTDATA.usFlags Equates */
#define APD_MODEMASK 0x0003 /* Mode mask (see below) */
#define APD_IDLEMODE 0 /* Stylus is idle */
#define APD_PROXMODE 1 /* Stylus is in proximity */
#define APD_CONTACTMODE 2 /* Stylus is in contact */
#define APD_FILTERED 0x0004 /* Mouse event not passed to PM */
APIRET APIENTRY WrtQueryPointAuxData(PAUXPOINTDATA papdInfo);
/*****************************************************************/
/* AUXDATADESC structure used to build the AUXDATAINFO structure */
/*****************************************************************/
typedef struct _AUXDATADESC /* add */
{
ULONG id; /* Aux data type identity (See ADT_*) */
ULONG offset; /* Field offset */
ULONG cb; /* Aux data type byte count */
} AUXDATADESC;
typedef AUXDATADESC *PAUXDATADESC; /* padd */
/* AUXDATADESC.id Equates */
#define ADT_TIMESTAMP 0 /* Point timestamp. */
#define ADT_FLAGS 1 /* Point flags */
#define ADT_SCREENZ 2 /* Normalized Z axis value */
#define ADT_DEVZ 3 /* Device Z axis value */
#define ADT_ANGLE 4 /* Stylus angle to XY */
#define ADT_ROTATION 5 /* Stylus rotation */
#define ADT_BUTTON 6 /* Button status */
#define ADT_USER 7 /* For program use */
#define ADT_OEM 16 /* OEM specific data */
/*****************************************************************/
/* AUXDATAINFO structure pointed to by STROKEDATA.pAuxInfo */
/*****************************************************************/
typedef struct _AUXDATAINFO /* adi */
{
ULONG cbAuxDesc; /* Size of Aux desc structure */
ULONG ulNumElements; /* Number of data elements in */
/* aux data packet */
ULONG ulAuxSize; /* Length of aux data packet */
/* Sum of all AUXDATADESC.cb fields */
AUXDATADESC addAuxDesc[1]; /* Array of descriptors */
} AUXDATAINFO;
typedef AUXDATAINFO *PAUXDATAINFO; /* padi */
/*****************************************************************/
/* AUXSTROKEDATA structure pointed to by STROKEDATA.pAuxData */
/*****************************************************************/
typedef struct _AUXSTROKEDATA /* asd */
{
UCHAR bAuxData[1][1]; /* Auxiliary stroke data */
} AUXSTROKEDATA;
typedef AUXSTROKEDATA *PAUXSTROKEDATA; /* pasd */
/*********************************************************/
/* STROKEDATA structure returned by WrtQueryStrokeData() */
/*********************************************************/
typedef struct _STROKEDATA /* sd */
{
ULONG cbStructSize; /* Size of stroke data header */
ULONG ulSource; /* See Wrt Event Sources */
ULONG ulSeq; /* Sequence number wraps at 4G */
ULONG ulResolution; /* Points per Inch */
ULONG ulSampleRate; /* Points per Second */
RECTL rclCell; /* Rectangle Around Stroke */
ULONG ulNumPoints; /* Number of points in stroke */
ULONG flStrokeFlags; /* Stroke flags. (See SBF_*) */
ULONG ulXExtent; /* X extent used to scale coords */
ULONG ulYExtent; /* Y extent used to scale coords */
ULONG ulSensorResolution;/* Sensor resolution in dots/inch*/
ULONG ulSensorXExtent; /* Extent of sensor X axis */
ULONG ulSensorYExtent; /* Extent of sensor Y axis */
ULONG ulTimestamp; /* Timestamp of Button down */
ULONG ulDevTimestampRes; /* Resolution of device TS in usecs */
PPOINTL pXY; /* pointer to X/Y POINTL array */
PAUXDATAINFO pAuxInfo; /* See AUXDATAINFO */
PAUXSTROKEDATA pAuxData; /* See AUXPOINTDATA */
ULONG ulUser1;
ULONG ulUser2;
struct _STROKEDATA *psdFwd; /* Recommended use-Forward chain ptr */
struct _STROKEDATA *psdBack; /* Recommended use-Backward chain ptr */
} STROKEDATA;
typedef STROKEDATA *PSTROKEDATA; /* psd */
/* Stroke Buffer Flags */
#define SBF_SCREEN 0x00000001 /* 1=Screen coords 0=hi res coord*/
#define SBF_SCALE 0x00000001 /* 1=Scaled coords 0=hi res coord*/
#define SBF_INKED 0x00000002 /* Stroke was inked */
#define SBF_INK_NOT_REMOVED 0x00000004 /* Stroke left inked */
#define SBF_TD_LO_SAME_HWND 0x00000008 /* Touchdown/liftoff in same hwnd*/
#define SBF_STROKE_OUTSIDE_HWND 0x00000010 /* Stroke left the boundaries */
#define SBF_POINTS_LOST 0x00000040 /* Points were lost (HW overrun) */
#define SBF_BUFFER_OVERRUN 0x00000080 /* Points were lost (SB overrun) */
#define SBF_MBUTTON_MASK 0x00001C00 /* Mask for isolating mouse butto*/
#define SBF_TAP 0x00002000 /* Stroke was a tap */
#define SBF_DBLTAP 0x00004000 /* Stroke was a double tap */
#define SBF_NEGATIVE_COORDS 0x80000000 /* Contains negative window coord*/
APIRET APIENTRY WrtQueryStrokeData(PBYTE pStrokeBuf,
PULONG pBufLen,
HWND hwnd,
ULONG flConvopt, /* See QSD_* */
ULONG ulXOutput,
ULONG ulYOutput,
ULONG flAuxData); /* See ADF_* */
#define QSD_NO_CNV 0x00000000 /* No Conversion (sensor resolution) */
#define QSD_SCALE 0x00000001 /* Scale to specified resolution */
#define QSD_STANDARDIZED_RES 0x00000002 /* Scale to standardize resolution */
#define QSD_RESOLUTION 0x00000004 /* Scale factor specified in dots/inch */
APIRET APIENTRY WrtMapPointLong(HWND hwnd,
PPOINTL pXY,
ULONG flParms, /* See MP_* */
ULONG ulXInput,
ULONG ulYInput,
ULONG ulXOutput,
ULONG ulYOutput,
ULONG ulCount
);
#define MP_SCALE 0x00000000 /* Scale coordinates (Default) */
#define MP_NO_SCALE 0x00000001 /* Do not scale coordinates */
#define MP_RESOLUTION 0x00000002 /* Input and output expressed in resolution */
APIRET APIENTRY WrtSetStrictEmulation(HWND hwnd,
ULONG option);
#define SSE_RESET 0x00000000 /* Reset strict emulation for app*/
#define SSE_SET 0x00000001 /* Set strict emulation for appl */
APIRET APIENTRY WrtControlDisplayBacklight(ULONG option, ULONG displayID);
#define CDB_LIGHT_ON 0x00000001 /* Turn backlight on. */
#define CDB_LIGHT_OFF 0x00000002 /* Turn backlight off. */
/************************************************/
/* PenPM Messages Definition Section */
/* */
/************************************************/
#ifndef WM_PENFIRST
#define WM_PENFIRST 0x04C0 /* These equates taken */
#endif
#ifndef WM_PENLAST
#define WM_PENLAST 0x04FF /* from private pmwin.h */
#endif
#define WM_PEN_MSG WM_PENFIRST
#define WM_TOUCHDOWN WM_PEN_MSG + 0
#define WM_LIFTOFF WM_PEN_MSG + 1
#define WM_RECO WM_PEN_MSG + 2
#define WM_RECO_COMMAND WM_PEN_MSG + 3
#define WM_SENSOR_MOVE WM_PEN_MSG + 4
#define WM_EXIT_PROXIMITY WM_PEN_MSG + 6
#define WM_WRT_DEV_CAPS_CHANGE WM_PEN_MSG + 7
#define WM_WRT_SYSVALUECHANGED WM_PEN_MSG + 8
#define WM_PROXIMITY_TIMEOUT WM_PEN_MSG + 9
#define WM_PAUSE_TIMEOUT WM_PEN_MSG + 12
#define WM_STROKE WM_PEN_MSG + 13
#define WM_TAP WM_PEN_MSG + 14
#define WM_DBL_TAP WM_PEN_MSG + 15
/**************************************/
/* WM_TOUCHDOWN MRESULT Values */
/* ------------------------------- */
#define TDN_DEFAULT_DELAY 0x00000000 /* Delay Button 1 down (default) */
#define TDN_IMMEDIATE 0x00000001 /* Immediate BUTxDOWN */
#define TDN_INFINITE 0x00000002 /* Never Issue BUTxDOWN */
#define TDN_DELAY_BITMASK TDN_DEFAULT_DELAY+TDN_IMMEDIATE+TDN_INFINITE
/* */
#define TDN_INK_STROKE 0x00000000 /* Ink Stroke (Default) */
#define TDN_NO_INK_STROKE 0x00000010 /* Don't Ink Stroke */
#define TDN_LEAVE_INK 0x00000020 /* Leave Stroke Inked at liftoff */
#define TDN_INK_BITMASK TDN_INK_STROKE+TDN_NO_INK_STROKE+TDN_LEAVE_INK
/* */
#define TDN_HIFREQ_MOUSEMOVE 0x00000040 /* Regenerate coalesced mouse moves */
#define TDN_SENSOR_MOVE 0x00000080 /* Generate WM_SENSOR_MOVE msgs */
/*************************************/
/* WM_LIFTOFF MRESULT Values */
/* ----------------------------- */
#define LO_DEFAULT 0x00000000 /* App didn't process stroke,*/
/* do gesture processing */
#define LO_STROKE_PROCESSED 0x00000001 /* App processed stroke, */
/* take no other action */
#define LO_EMULATE_MOUSE 0x00000002 /* App processed stroke, */
/* perform mouse emulation */
/*************************************/
/* WM_STROKE MRESULT Values */
/* ----------------------------- */
#define STK_DEFAULT 0x00000000 /* App didn't process stroke,*/
/* do gesture processing */
#define STK_STROKE_PROCESSED 0x00000001 /* App processed stroke, */
/* take no other action */
/**************************************/
/* WM_PAUSE_TIMEOUT MRESULT Values */
/* -------------------------------- */
#define PTO_DEFAULT 0x00000000 /* Allow mouse emulation */
#define PTO_CONTINUE 0x00000001 /* Remain in gesture mode */
/* take no other action */
/********************************************/
/* WM_TAP and WM_DBL_TAP MRESULT Values */
/* -------------------------------------- */
#define TP_TAP_PROCESSED 0x00000001 /* App processed tap message, */
/* take no other action */
#define TP_DEFAULT 0x00000000 /* Mouse emulation is performed */
/* except if TDN_INFINITE was */
/* returned at touchdown */
/*************************************/
/* WM_RECO MRESULT Values */
/* -------------------------- */
#define RECO_MAP 0 /* App didn't process event, */
/* PPM will map event */
#define RECO_NOMAP -1 /* App doesn't want mapping */
/* done, only mou emulation*/
#define RECO_PROCESSED 1 /* App processed reco event, */
/* no mouse emul performed */
typedef struct _WRTEVENTDATA /* ed */
{
ULONG cbStructSize; /* Structure size */
USHORT usKCFlags; /* KC_* flags from mouse message */
USHORT usHitTest; /* Hit test results from mouse message */
POINTL ptlDisplay; /* Display X/Y coordinate */
POINTL ptlSensor; /* Sensor X/Y coordinate */
POINTL ptlStandard; /* Standard X/Y coordinate */
ULONG flEventStatus; /* Event status */
ULONG ulStrokeSeq; /* Stroke sequence number */
ULONG ulStrokeSize; /* Number of stroke points (Liftoff only)*/
ULONG ulLocatorID; /* ID of pointing device */
ULONG ulLocatorType; /* Type of pointing device (See LT_*) */
ULONG ulLocatorFlags; /* Pointing device flags (See LTYPE_*) */
ULONG ulValidityFlags; /* Aux data validity flags (See ADF_*) */
ULONG ulButtonStatus; /* Button device status */
HWND hwndUnderPtr; /* Hwnd under pointer */
} WRTEVENTDATA;
typedef WRTEVENTDATA *PWRTEVENTDATA; /* ped */
/*******************************************/
/* WRT_* Event and State Indicators */
/* */
/*******************************************/
/* WRTEVENTDATA.flEventStatus Equates */
#define WRT_STROKE_AVAIL 0x00000001 /* Stroke is avail for retrieval */
#define WRT_INKING 0x00000002 /* Stroke was inked */
/* Note: The next three flags are*/
/* only valid if the Stroke*/
/* Avail bit is set. */
#define WRT_INK_NOT_REMOVED 0x00000004 /* Stroke left inked as requested*/
#define WRT_TD_LO_SAME_HWND 0x00000008 /* Touchdown/liftoff in same hwnd*/
#define WRT_STROKE_OUTSIDE_HWND 0x00000010 /* Stroke left the boundaries */
/* of the TD window's hwnd. */
#define WRT_POINTS_LOST 0x00000040 /* Points were lost (HW overrun) */
#define WRT_BUFFER_OVERRUN 0x00000080 /* Points lost (Stroke buffer overrun)*/
#define WRT_NON_DEVICE_EVENT 0x00000100 /* Mouse event not generated by device*/
#define WRT_MBUTTON_MASK 0x00001C00 /* Mask for isolating mouse butto*/
#define WRT_MBUTTON1 0x00000400 /* Mouse button 1 */
#define WRT_MBUTTON2 0x00000800 /* Mouse button 2 */
#define WRT_MBUTTON3 0x00001000 /* Mouse button 3 */
#define WRT_TAP 0x00002000 /* Stroke is a tap */
#define WRT_DBLTAP 0x00004000 /* Stroke is a double tap */
/*******************************************/
/* Virtual Event IDs */
/* Intent-based are individual values; */
/* User/letter events covered by one. */
/*******************************************/
#define VE_TOGGLESELECTION (1)
#define VE_HELP (2)
#define VE_SPACE (3)
#define VE_EDIT (4)
#define VE_DELETE (5)
#define VE_PASTE (6)
#define VE_SCRATCHOUT (7)
#define VE_DELETECHAR (8)
#define VE_INSERT (9)
#define VE_CUT (10)
#define VE_COPY (11)
#define VE_ASSIGNMENTS (12)
#define VE_UNDO (13)
#define VE_ENTER (14)
#define VE_TAB (15)
#define VE_SCROLLUP (16)
#define VE_SCROLLDOWN (17)
#define VE_SCROLLLEFT (18)
#define VE_SCROLLRIGHT (19)
#define VE_SCROLLUPMORE (20)
#define VE_SCROLLDOWNMORE (21)
#define VE_SCROLLLEFTMORE (22)
#define VE_SCROLLRIGHTMORE (23)
#define VE_SCROLLUPMAX (24)
#define VE_SCROLLDOWNMAX (25)
#define VE_SCROLLLEFTMAX (26)
#define VE_SCROLLRIGHTMAX (27)
#define VE_BACKSPACE (28)
#define VE_EXTENDSELECTION (29)
#define VE_CONTEXTMENU (30)
#define VE_BOUNDSELECTIONLEFT (31)
#define VE_BOUNDSELECTIONRIGHT (32)
#define VE_LETTERGESTURE (100) /* Single value covers multiple. */
/* string types for WrtQueryDeviceNames */
typedef CHAR STR_32[32]; /* str32 */
typedef STR_32 *PSTR_32;
/* defines for all device types */
#define DT_LOCATOR 0x03 /* locator device */
#define DT_BUTTON 0x04 /* button device */
#define DT_DISPLAY 0x05 /* display device */
APIRET APIENTRY WrtQueryEventData(PWRTEVENTDATA pedInfo);
APIRET APIENTRY WrtQueryInputDeviceNames(PSZ pszDriverName,
PULONG ulNumDevices,
PSTR_32 aDeviceName,
PULONG aDeviceType,
PULONG aDeviceID);
APIRET APIENTRY WrtEnumInputDrivers(PULONG pulNumDrivers, PSTR_32 aDriverNames);
typedef struct _WRTSYSTEMINFO /* si */
{
ULONG cbStructSize; /* Structure size */
ULONG ulDisplayXPels; /* Number of display X pixels */
ULONG ulDisplayYPels; /* Number of display Y pixels */
ULONG ulDisplayXRes; /* Display resolution */
ULONG ulDisplayYRes; /* Display resolution */
ULONG ulStandardXRes; /* Standardized dots per inch X axis */
ULONG ulStandardYRes; /* Standardized dots per inch Y axis */
ULONG ulNumDrivers; /* Number of registered pen drivers */
ULONG ulNumLocators; /* Number of registered pointing devs */
ULONG ulNumButtons; /* Number of registered button device */
ULONG ulNumDisplays; /* Number of registered display devs */
} WRTSYSTEMINFO;
typedef WRTSYSTEMINFO *PWRTSYSTEMINFO; /* psi */
APIRET APIENTRY WrtQuerySystemCaps(PWRTSYSTEMINFO psiInfo);
typedef struct _WRTLOCATORDEVINFO /* ldi */
{
ULONG cbStructSize; /* Structure size */
ULONG ulLocatorID; /* ID of pointing device */
ULONG ulLocatorType; /* Type of pointing device */
ULONG ulLocatorFlags; /* Pointing device flags */
ULONG ulValidityFlags; /* Aux data validity flags */
ULONG ulOEMValidityCnt; /* Count of valid OEM bytes */
ULONG ulSensorHeight; /* Sensor height in thousands of inches */
ULONG ulSensorWidth; /* Sensor width in thousands of inches */
ULONG ulNumMouButtons; /* Number of mouse buttons emulated */
ULONG ulNumButtons; /* Number of buttons on pointing device */
ULONG ulButtonMask; /* Mask giving IDs of barrel buttons */
ULONG ulSensorXpts; /* Number of sensor X axis units */
ULONG ulSensorYpts; /* Number of sensor Y axis units */
LONG lSensorZptsP; /* Number of sensor Z axis pressure units*/
ULONG ulSensorZptsH; /* Number of sensor Z axis height units */
ULONG ulSensorXres; /* Sensor X resolution (points/inch) */
ULONG ulSensorYres; /* Sensor Y resolution (points/inch) */
ULONG ulStandardXpts; /* Number of Standardized X axis units */
ULONG ulStandardYpts; /* Number of Standardized Y axis units */
ULONG ulSampleRate; /* Sample rate of stylus */
ULONG ulMaxSampleRate; /* Maximum possible point rate supported */
ULONG ulTimestampRes; /* Dev timestamp resolution in microsecs */
UCHAR pszDriverName[32]; /* Name of controlling device driver */
UCHAR pszDeviceName[32]; /* Name of pointing device */
} WRTLOCATORDEVINFO;
typedef WRTLOCATORDEVINFO *PWRTLOCATORDEVINFO; /* pldi */
/* WRTLOCATORDEVINFO.ulLocatorType Values */
#define LT_MOUSE 0x00000001 /* Mouse */
#define LT_PEN 0x00000002 /* Stylus */
#define LT_TOUCH 0x00000003 /* Finger touch */
#define LT_OTHER 0x00000004 /* Other misc pointing device*/
/* WRTLOCATORDEVINFO.ulLocatorFlags Values */
#define LTYPE_TETHERED 0x00000001 /* Stylus is tethered */
#define LTYPE_PROXIMITY_EVENT 0x00000002 /* Proximity events reported */
#define LTYPE_TILT 0x00000004 /* Device reports angle to XY */
#define LTYPE_ROTATION 0x00000008 /* Device reports rotation */
#define LTYPE_OEMDATA 0x00000010 /* Device reports extra OEMata */
#define LTYPE_TIMESTAMP 0x00000020 /* Device reports hi res timestamp*/
#define LTYPE_PRESSURE 0x00000040 /* Device reports pressure */
#define LTYPE_HEIGHT 0x00000080 /* Device reports height */
#define LTYPE_PIN 0x00000100 /* Pen contains PIN */
#define LTYPE_BATTERY 0x00000800 /* Pen contains battery */
#define LTYPE_ERASURE 0x00000200 /* Erasure end of stylus reported */
#define LTYPE_INTEG_SENSOR 0x00000400 /* Sensor integrated in display*/
#define LTYPE_RELATIVE 0x00001000 /* Relative pointing device */
/* Sensor coords from relative */
/* devices are offsets from */
/* last reported point */
#define LTYPE_ABSOLUTE 0x00002000 /* Absolute pointing device */
/* WRTLOCATORDEVINFO.ulValidityFlags Values */
#define ADF_TIMESTAMP 0x00000001 /* Point timestamp */
#define ADF_FLAGS 0x00000002 /* Point flags */
#define ADF_SCREENZ 0x00000004 /* Normalized Z axis */
#define ADF_DEVZ 0x00000008 /* Device Z */
#define ADF_ANGLE 0x00000010 /* Stylus angle to XY */
#define ADF_ROTATION 0x00000020 /* Stylus barrel rotation */
#define ADF_BUTTON 0x00000040 /* Button status */
#define ADF_OEM 0x00000080 /* OEM specific data byte cnt */
#define ADF_OEM_COUNT_MASK 0x000F0000 /* OEM valid count */
#define ADF_USER 0x00000100 /* This bit is not HW relat and*/
/* is always set. For appl use.*/
#define ADF_ALL 0X000001FF /* All fields */
APIRET APIENTRY WrtQueryLocatorCaps(PULONG ulNumLocators,
PWRTLOCATORDEVINFO pldiInfo);
typedef struct _WRTBUTTONDEVINFO /* bdi */
{
ULONG cbStructSize; /* Structure size */
ULONG ulButtonID; /* ID of button device */
ULONG ulNumButtons; /* Number of configured buttons */
ULONG ulButtonMask; /* 1=barrel, 0=non-barrel button */
UCHAR pszDriverName[32]; /* Name of controlling device driver */
UCHAR pszDeviceName[32]; /* Name of button device */
} WRTBUTTONDEVINFO;
typedef WRTBUTTONDEVINFO *PWRTBUTTONDEVINFO; /* pbdi */
APIRET APIENTRY WrtQueryButtonCaps(PULONG ulNumButtons,
PWRTBUTTONDEVINFO pbdiInfo);
typedef struct _WRTDISPLAYDEVINFO /* ddi */
{
ULONG cbStructSize; /* Structure size */
ULONG ulDisplayID; /* ID of display device */
ULONG ulDisplayType; /* Type of display */
ULONG ulDisplayXPels; /* Number of display X pixels */
ULONG ulDisplayYPels; /* Number of display Y pixels */
ULONG ulDisplayXRes; /* Display pels per inch X axis */
ULONG ulDisplayYRes; /* Display pels per inch Y axis */
ULONG ulDisplayHeight; /* Height of display in thousandsths */
ULONG ulDisplayWidth; /* Width of display in thousandsths */
UCHAR pszDriverName[32]; /* Name of controlling device driver */
UCHAR pszDeviceName[32]; /* Name of display device */
} WRTDISPLAYDEVINFO;
typedef WRTDISPLAYDEVINFO *PWRTDISPLAYDEVINFO; /* pddi */
/* WRTDISPLAYDEVINFO.ulDisplayType Values */
#define DISPTYPE_LCD 0x0001 /* 1 - LCD, 0 - not LC */
#define DISPTYPE_CRT 0x0002 /* 1 - CRT, 0 - not CR */
#define DISPTYPE_BLANKING 0x0004 /* Display performs blankin */
#define DISPTYPE_COLOR 0x0008 /* 1 - Color, 0 - Monochme */
#define DISPTYPE_ATTACHED 0x0010 /* 1 - Attached, 0 - Portab */
#define DISPTYPE_NO_KBD 0x0020 /* No Keyboard Attached */
#define DISPTYPE_BATTERY 0x0040 /* 1 - Battery, 0 - AC pow */
#define DISPTYPE_SPEAKER 0x0080 /* 1 - Speaker integrated */
#define DISPTYPE_MICROPHONE 0x0100 /* 1 - Microphone integrate */
APIRET APIENTRY WrtQueryDisplayCaps(PULONG ulDisplayID,
PWRTDISPLAYDEVINFO pddiInfo);
APIRET APIENTRY WrtWaitActive( ULONG ulTimeout );
/* WrtWaitActive Timeout equates */
#define WRT_INDEFINITE_WAIT -1L
#define WRT_IMMEDIATE_RETURN 0L
APIRET APIENTRY VkpCloseKb( HWND hwnd );
APIRET APIENTRY VkpHideKeyboard( HWND hwnd );
APIRET APIENTRY VkpLoadKeyboard( PSZ pszKbd, HWND hwnd );
APIRET APIENTRY VkpDeleteKeyboard( PSZ pszKbd, HWND hwnd );
APIRET APIENTRY VkpIsKbRunning( PBOOL fRunning );
APIRET APIENTRY VkpIsKbHidden( PBOOL fHidden );
APIRET APIENTRY VkpQueryKbPos( PSWP pswp );
APIRET APIENTRY VkpSetKbPos( LONG x, LONG y, LONG cx, LONG cy,
ULONG fs, HWND hwnd );
/****************************/
/* PPMSV_* System Value IDs */
/****************************/
/* Not stored in Profile */
#define PPMSV_VERSION 0 /* PenPM version number */
#define PPMSV_RELEASE 1
#define PPMSV_LEVEL 2
#define PPMSV_SUSPEND 3 /* Suspend PenPM processing */
/* Stored in Profile */
#define PPMSV_PEN_PAUSE 13 /* Pen pause T.O value */
#define PPMSV_TOUCH_PAUSE 14 /* Touch pause T.O value */
#define PPMSV_MOUSE_PAUSE 15 /* Mouse pause T.O value */
#define PPMSV_OTHER_PAUSE 16 /* Other pause T.O value */
#define PPMSV_PAUSEBEEPFREQ 17 /* Pause T.O. beep freq */
#define PPMSV_RECO_BEEP_ENABLE 18 /* Enable beep for no reco map */
#define PPMSV_MINGESTUREPOINTS 19 /* Minimum gesture points */
#define PPMSV_RECOPTRTIMER 20 /* Timer display time */
#define PPMSV_GESTURE_CANCEL_TIMEOUT 21 /* Cancel gesture timeout */
#define PPMSV_GESTURE_TIMEOUT 22 /* Inter-stroke gesture timeout*/
#define PPMSV_STANDARDIZED_RESOLUTION 23 /* */
#define PPMSV_CHARACTER_BOX_DX 24 /* Character box dx and dy are */
#define PPMSV_CHARACTER_BOX_DY 25 /* read-only variables */
#define PPMSV_TOUCH_PAUSE_ENABLE 26 /* Touch pause T.O enable */
#define PPMSV_PEN_PAUSE_ENABLE 27 /* Pen pause T.O enable */
#define PPMSV_MOUSE_PAUSE_ENABLE 28 /* Mouse pause T.O enable */
#define PPMSV_OTHER_PAUSE_ENABLE 29 /* Other pause T.O enable */
#define PPMSV_RESERVED_FIRST 30 /* Reserved */
#define PPMSV_RESERVED_LAST 39 /* Reserved */
#define PPMSV_PROFILE_FIRST 13
#define PPMSV_PROFILE_LAST 39
#define PPMSV_NUM_PPMSV 40
#define PPMSV_PROTECTED PPMSV_LEVEL
/***********************************/
/* PPMSV_* Variables Range Values */
/***********************************/
#define PPMSV_TOUCH_PAUSE_MIN 150
#define PPMSV_TOUCH_PAUSE_MAX 2000
#define PPMSV_TOUCH_PAUSE_DEF 300
#define PPMSV_PEN_PAUSE_MIN 150
#define PPMSV_PEN_PAUSE_MAX 2000
#define PPMSV_PEN_PAUSE_DEF 400
#define PPMSV_MOUSE_PAUSE_MIN 150
#define PPMSV_MOUSE_PAUSE_MAX 2000
#define PPMSV_MOUSE_PAUSE_DEF 400
#define PPMSV_OTHER_PAUSE_MIN 150
#define PPMSV_OTHER_PAUSE_MAX 3500
#define PPMSV_OTHER_PAUSE_DEF 200
#define PPMSV_GESTURE_CANCEL_TIMEOUT_MIN 500
#define PPMSV_GESTURE_CANCEL_TIMEOUT_MAX 3000
#define PPMSV_GESTURE_CANCEL_TIMEOUT_DEF 1200
#define PPMSV_GESTURE_TIMEOUT_MIN 100
#define PPMSV_GESTURE_TIMEOUT_MAX 2000
#define PPMSV_GESTURE_TIMEOUT_DEF 900
#define PPMSV_PAUSEBEEPFREQ_MIN 100
#define PPMSV_PAUSEBEEPFREQ_MAX 4000
#define PPMSV_PAUSEBEEPFREQ_DEF 100
#define PPMSV_RECO_BEEP_ENABLE_MIN 0
#define PPMSV_RECO_BEEP_ENABLE_MAX 1
#define PPMSV_RECO_BEEP_ENABLE_DEF 1
#define PPMSV_MINGESTUREPOINTS_MIN 1
#define PPMSV_MINGESTUREPOINTS_MAX 20
#define PPMSV_MINGESTUREPOINTS_DEF 5
#define PPMSV_RECOPTRTIMER_MIN 200
#define PPMSV_RECOPTRTIMER_MAX 1250
#define PPMSV_RECOPTRTIMER_DEF 350
#define PPMSV_STANDARDIZED_RESOLUTION_MIN 1000
#define PPMSV_STANDARDIZED_RESOLUTION_MAX 1000
#define PPMSV_STANDARDIZED_RESOLUTION_DEF 1000
#define PPMSV_TOUCH_PAUSE_ENABLE_MIN 0
#define PPMSV_TOUCH_PAUSE_ENABLE_MAX 1
#define PPMSV_TOUCH_PAUSE_ENABLE_DEF 1
#define PPMSV_PEN_PAUSE_ENABLE_MIN 0
#define PPMSV_PEN_PAUSE_ENABLE_MAX 1
#define PPMSV_PEN_PAUSE_ENABLE_DEF 1
#define PPMSV_MOUSE_PAUSE_ENABLE_MIN 0
#define PPMSV_MOUSE_PAUSE_ENABLE_MAX 1
#define PPMSV_MOUSE_PAUSE_ENABLE_DEF 0
#define PPMSV_OTHER_PAUSE_ENABLE_MIN 0
#define PPMSV_OTHER_PAUSE_ENABLE_MAX 1
#define PPMSV_OTHER_PAUSE_ENABLE_DEF 1
APIRET APIENTRY WrtQueryInputDeviceVariable(PSZ pszDriverName,
PSZ pszDeviceName,
ULONG ulValueID, /* See PPMID_* */
PLONG lValue,
PULONG ulDatalen,
PVOID pData);
APIRET APIENTRY WrtSetInputDeviceVariable(PSZ pszDriverName,
PSZ pszDeviceName,
ULONG ulValueID, /* See PPMID_* */
LONG lValue,
ULONG ulDatalen,
PVOID pData);
/*************************************/
/* PPMID_* Input Device Variable IDs */
/*************************************/
/* Stored in Profile */
#define PPMID_MOTION_STOP 0
#define PPMID_MOTION_START 1
#define PPMID_MINGESTURELENGTH 2
#define PPMID_DISABLE_PROXIMITY 3
#define PPMID_TOUCHOFFSET_X 4
#define PPMID_TOUCHOFFSET_Y 5
#define PPMID_BACKLIGHTBLANK 6
#define PPMID_BACKLIGHTBLANK_INT 7
#define PPMID_POINT_RATE 8
#define PPMID_DIVIDE_RATE 9
#define PPMID_DEVICE_PARMS 10
#define PPMID_RSVD_1 11
#define PPMID_RSVD_2 12
#define PPMID_RSVD_3 13
#define PPMID_PROFILE_FIRST 0
#define PPMID_PROFILE_LAST 13
#define PPMID_NUM_PPMID 14
/***********************************/
/* PPMID_* Variables Range Values */
/***********************************/
#define PPMID_MOTION_STOP_MIN 28
#define PPMID_MOTION_STOP_MAX 300
#define PPMID_MOTION_STOP_DEF_PEN 28
#define PPMID_MOTION_STOP_DEF_TOUCH 56
#define PPMID_MOTION_STOP_DEF_MOUSE 28
#define PPMID_MOTION_STOP_DEF_OTHER 28
#define PPMID_MOTION_START_MIN 1
#define PPMID_MOTION_START_MAX 1000
#define PPMID_MOTION_START_DEF_PEN 64
#define PPMID_MOTION_START_DEF_TOUCH 104
#define PPMID_MOTION_START_DEF_MOUSE 52
#define PPMID_MOTION_START_DEF_OTHER 25
#define PPMID_MINGESTURELENGTH_MIN 0
#define PPMID_MINGESTURELENGTH_MAX 8000
#define PPMID_MINGESTURELENGTH_DEF_PEN 156
#define PPMID_MINGESTURELENGTH_DEF_TOUCH 233
#define PPMID_MINGESTURELENGTH_DEF_MOUSE 233
#define PPMID_MINGESTURELENGTH_DEF_OTHER 233
#define PPMID_DISABLE_PROXIMITY_MIN 0
#define PPMID_DISABLE_PROXIMITY_MAX 1
#define PPMID_DISABLE_PROXIMITY_DEF 1
#define PPMID_BACKLIGHTBLANK_MIN 0
#define PPMID_BACKLIGHTBLANK_MAX 1
#define PPMID_BACKLIGHTBLANK_DEF 1
#define PPMID_BACKLIGHTBLANK_INT_MIN 30
#define PPMID_BACKLIGHTBLANK_INT_MAX 500000
#define PPMID_BACKLIGHTBLANK_INT_DEF 1200
#define PPMID_POINT_RATE_MIN 40
#define PPMID_POINT_RATE_MAX 200
#define PPMID_POINT_RATE_DEF 100
#define PPMID_DIVIDE_RATE_MIN 1
#define PPMID_DIVIDE_RATE_MAX 8
#define PPMID_DIVIDE_RATE_DEF 2
#define PPMID_DEVICE_PARMS_MIN 0
#define PPMID_DEVICE_PARMS_MAX 1
#define PPMID_DEVICE_PARMS_DEF 1
#define PPMID_TOUCHOFFSET_X_MIN -1000
#define PPMID_TOUCHOFFSET_X_MAX 1000
#define PPMID_TOUCHOFFSET_X_DEF 60
#define PPMID_TOUCHOFFSET_Y_MIN -1000
#define PPMID_TOUCHOFFSET_Y_MAX 1000
#define PPMID_TOUCHOFFSET_Y_DEF 10
/* */
/* WM_WRT_SYSVALUECHANGED message mp1 values */
/* */
#define VT_PPMSV 1
#define VT_PPMID 2
/************************/
/* WRTERR_* Error Codes */
/************************/
#define WRT_NO_ERROR 0
#define WRTERR_START 0x7000
#define WRTERR_ALREADY_ACTIVE 0x7001
#define WRTERR_NOT_ENOUGH_MEMORY 0x7002
#define WRTERR_CREATETHREAD_FAILED 0x7003
#define WRTERR_SETHOOK_FAILED 0x7004
#define WRTERR_RELEASEHOOK_FAILED 0x7005
#define WRTERR_NOT_ACTIVE 0x7006
#define WRTERR_NOT_OWNER 0x7007
#define WRTERR_INVALID_HWND 0x7008
#define WRTERR_INVALID_ID 0x7009
#define WRTERR_INVALID_PID 0x700A
#define WRTERR_TOO_MANY_MAPPERS 0x700B
#define WRTERR_WRITE_FAILED 0x700C
#define WRTERR_NOT_PEN_ENV 0x700D
#define WRTERR_BUFFER_TOO_SMALL 0x700E
#define WRTERR_STROKE_INVALID 0x700F
#define WRTERR_BxDOWN_IN_STATEB 0x7010
#define WRTERR_BxUP_IN_STATE0 0x7011
#define WRTERR_APPL_NOT_ACTIVE 0x7012
#define REDERR_RECO_SUBSYS_NOT_REG 0x7015
#define REDERR_RECO_NAME_TOO_LONG 0x7016
#define REDERR_INVALID_RECO_NAME 0x7017
#define REDERR_EVENT_NAME_TOO_LONG 0x7018
#define REDERR_INVALID_EVENT_NAME 0x7019
#define REDERR_EVENT_NAME_NOT_REG 0x701A
#define REDERR_INVALID_EVENT_ID 0x701C
#define REDERR_INVALID_EVENT_PTR 0x701D
#define REDERR_RECO_DATA_INVALID 0x701E
#define WRTERR_SENSORRESOLUTION_UNAVAIL 0x701F
#define WRTERR_BxDOWN_IN_STATEA 0x7020
#define WRTERR_HITTEST_FAILED 0x7021
#define WRTERR_BACKLITE_CMD_FAILED 0x7022
#define WRTERR_INVALID_PARM 0x7023
#define WRTERR_INVALID_EXTENTS 0x7024
#define WRTERR_INVALID_OPTION 0x7025
#define WRTERR_PARM_OUT_OF_RANGE 0x7026
#define WRTERR_INVALID_BUFFER 0x7027
#define WRTERR_INVALID_DRIVER_NAME 0x7028
#define WRTERR_INVALID_DEVICE_NAME 0x7029
#define WRTERR_MORE_NAMES_AVAIL 0x702A
#define WRTERR_INVALID_POINTER 0x702B
#define WRTERR_INVALID_LOCATOR_ID 0x702C
#define WRTERR_INVALID_BUTTON_ID 0x702D
#define WRTERR_INVALID_DISPLAY_ID 0x702E
#define WRTERR_STRUCT_NOT_INIT 0x702F
#define WRTERR_VALUEID_DEVICE_MISMATCH 0x7030
#define WRTERR_NO_DEVICE_CAPABILITY 0x7031
#define WRTERR_INVALID_BUTTON_EVENT 0x7032
#define WRTERR_WAIT_TIMEOUT 0x7033
#define WRTERR_INVALID_MOUSE_EVENT 0x7034
#define WRTERR_INVALID_INPUT 0x7035
#define WRTERR_INVALID_COUNT 0x7036
#define WRTERR_ID_READ_ONLY 0x7037
#define WRTERR_PEN_NOT_INSTALLED 0x7038
/************************/
/* VKPERR_* Error Codes */
/************************/
#define VKP_NO_ERROR NO_ERROR
#define VKPERR_OUT_OF_MEMORY 0x7100
#define VKPERR_VKP_NOT_READY 0x7101
#define VKPERR_INVALID_KBD_NAME 0x7102
#define VKPERR_KBD_LOAD_FAILED 0x7103
#define VKPERR_KBD_LOAD_TIMEOUT 0x7104
#define VKPERR_INVALID_PARM 0x7105
#define VKPERR_WSWP_FAILED 0x7106
#define VKPERR_WQWP_FAILED 0x7107
#define VKPERR_INVALID_OWNER 0x7108
/* Start of handwriting control area */
#ifndef __HWXENTRY_INCLUDED__
#define __HWXENTRY_INCLUDED__
/*****************************************************************************/
/* */
/* Class Name */
/* */
/*****************************************************************************/
#ifndef WC_PENFIRST
#define WC_PENFIRST (0xffff0029L)
#endif
#define WC_HWXENTRY ((PSZ)0xffff0029L)
/*****************************************************************************/
/* */
/* Handwriting Control Style Bits */
/* */
/*****************************************************************************/
#define HX_BORDER 0x0001 /* Control displays a border */
#define HX_3DBORDER 0x0002 /* Control displays a 3D border */
/*****************************************************************************/
/* */
/* Parent Notification Messages */
/* */
/*****************************************************************************/
#define HXN_STROKE_ADDED WM_USER + 1 /* Stroke Add pending */
#define HXN_GESTURE_PENDING WM_USER + 2 /* Gesture pending */
#define HXN_DELETE_PENDING WM_USER + 3 /* Delete char pending */
#define HXN_INSERT_PENDING WM_USER + 4 /* Insert char pending */
#define HXN_OVERFLOW WM_USER + 5 /* Control text overflow */
#define HXN_SETFOCUS WM_USER + 6 /* Input focus activated */
#define HXN_KILLFOCUS WM_USER + 7 /* Input focus deactivated */
#define HXN_CONTENTS_CHANGED WM_USER + 8 /* Control Recognition change */
#endif /* ifndef __HWXENTRY_INCLUDED__ */
/* Start of Sketch area */
#ifndef __SKETCH_INCLUDED__
#define __SKETCH_INCLUDED__
/******************************************************************************/
/* */
/* Class Name */
/* */
/******************************************************************************/
#ifndef WC_PENFIRST
#define WC_PENFIRST (0xffff0029L)
#endif
#define WC_SKETCH ((PSZ)0xffff002AL)
/******************************************************************************/
/* */
/* Control Style Bits */
/* */
/******************************************************************************/
#define SKS_BORDER 0x0001 /* Control appearance is Bordered */
#define SKS_3DBORDER 0x0002 /* Control appearance is 3D Bordered */
/******************************************************************************/
/* */
/* Control Messages */
/* */
/* Messages sent to Sketch Control from Owner */
/* */
/* These constants below are used as messages to query and change */
/* the state of a WC_SKETCH window. */
/* They are sent to WC_SKETCH windows using WinSendMsg like so: */
/* */
/* rc = WinSendMsg (hwndSketch, SKM_xxx, mp1, mp2); */
/* */
/******************************************************************************/
/* Non modal messages */
#define SKM_DELETE_ALL_STROKES WM_USER + 1 /* */
#define SKM_GET_BITMAP WM_USER + 2 /* */
#define SKM_UNDO_LAST_STROKE WM_USER + 3 /* */
#define SKM_QUERY_BITMAP_SIZE WM_USER + 4 /* */
#define SKM_RENDER_TO_CLIPBOARD WM_USER + 5 /* */
/* */
/* Query control values */
#define SKM_QUERY_CTL_DRAW_POINTER WM_USER + 6 /* */
#define SKM_QUERY_CTL_INK_COLOR WM_USER + 7 /* */
#define SKM_QUERY_CTL_INK_WIDTH WM_USER + 8 /* */
#define SKM_QUERY_CTL_INVISIBLE_MODE WM_USER + 9 /* */
#define SKM_QUERY_CTL_STROKE_COUNT WM_USER + 10 /* */
/* */
/* Query stroke values */
#define SKM_QUERY_STROKE_DATA WM_USER + 11 /* */
#define SKM_QUERY_STROKE_INK_COLOR WM_USER + 12 /* */
#define SKM_QUERY_STROKE_INK_WIDTH WM_USER + 13 /* */
#define SKM_QUERY_STROKE_LENGTH WM_USER + 14 /* */
/* */
/* Set control values */
#define SKM_SET_CTL_AUXDATA_MODE WM_USER + 15 /* level of aux data */
#define SKM_SET_CTL_DRAW_POINTER WM_USER + 16 /* draw pointer */
#define SKM_SET_CTL_INK_COLOR WM_USER + 17 /* ink color */
#define SKM_SET_CTL_INK_WIDTH WM_USER + 18 /* ink width */
#define SKM_SET_CTL_INVISIBLE_MODE WM_USER + 19 /* invisible mode */
/* */
/* Set stroke values */
#define SKM_SET_STROKE_INK_COLOR WM_USER + 20 /* */
#define SKM_SET_STROKE_INK_WIDTH WM_USER + 21 /* */
#define SKM_ADD_STROKE WM_USER + 22 /* Add a stroke */
/******************************************************************************/
/* */
/* Parent Notification Messages */
/* */
/* The WC_SKETCH window will send a message to its parent */
/* */
/* WinSendMsg (hwndOwner, WM_CONTROL, */
/* MPFROM2SHORT (idSktWindow, usNotifyCode), mp2); */
/* */
/* These constants below are used as notification codes */
/* for WM_CONTROL messages. (These are usNotifyCode's.) */
/* */
/******************************************************************************/
#define SKN_FOCUS_ACTIVATE WM_USER + 100 /* Control has gained focus */
#define SKN_FOCUS_DEACTIVATE WM_USER + 102 /* Control has lost focus */
#define SKN_STROKE_ADD WM_USER + 103 /* Control is adding stroke */
#define SKN_STROKE_UNDO WM_USER + 104 /* Control is deleteting stroke */
#define SKN_CONTROL_CLEARED WM_USER + 105 /* Control is deleting all strokes */
#define SKN_INK_COLOR_CHANGE WM_USER + 106 /* Control has changed ink color */
#define SKN_INK_WIDTH_CHANGE WM_USER + 107 /* Control has changed ink width */
/******************************************************************************/
/* */
/* Structure used to retrieve stroke(i) from the stroke database. */
/* */
/* */
/* . ------------------------------- . */
/* 1 . . */
/* . SKTCTRLSTROKEDEF . */
/* . . */
/* . PSTROKEDATA . -> 2 */
/* . ------------------------------- . */
/* 2 . . */
/* . STROKEDATA . */
/* . . */
/* . PPOINTL . -> 3 */
/* . . */
/* . PAUXDATAINFO . -> 4 */
/* . PAUXSTROKEDATA . -> 5 */
/* . . */
/* . struct _STROKEDATA * . -> NULL */
/* . struct _STROKEDATA * . -> NULL */
/* . ------------------------------- . */
/* 3 . . */
/* . X/Y POINTL array . */
/* . . */
/* . ------------------------------- . */
/* 4 . . */
/* . AUXDATAINFO . */
/* . . */
/* . ------------------------------- . */
/* 5 . . */
/* . AUXPOINTDATA . */
/* . . */
/* . ------------------------------- . */
/* */
/******************************************************************************/
typedef struct _SKETCHSTROKEDEF
{
ULONG ulStrokeColor;
ULONG ulStrokeWidth;
POINTL reserved1;
ULONG reserved2;
ULONG reserved3;
PSTROKEDATA pStroke;
} SKETCHSTROKEDEF;
typedef SKETCHSTROKEDEF *PSKETCHSTROKEDEF; /* Ptr->SKETCHSTROKEDEF */
typedef PSKETCHSTROKEDEF *PPSKETCHSTROKEDEF; /* Ptr->Ptr->SKETCHSTROKEDEF */
#endif /* ifndef __SKETCH_INCLUDED__ */
/* Start of RED area */
#ifndef PPMRED_INCLUDED
#define PPMRED_INCLUDED
#define REDHOBJ_OS2 (HOBJECT)(0xfffffffe)
#define REDHOBJ_WIN (HOBJECT)(0xfffffffd)
#define REDHOBJ_DOS (HOBJECT)(0xfffffffc)
#define REDHOBJ_PM (HOBJECT)(0xfffffffb)
/*
* Error defines for Red layer
*/
#define RED_NO_ERROR (0)
#define REDERR_INVALID_BUTTON 0x0000a000
#define REDERR_INVALID_BI 0x0000a001
#define REDERR_BUF_TOO_SMALL 0x0000a002
#define REDERR_INVALID_PARM 0x0000a003
#define REDERR_NO_MEMORY 0x0000a004
#define REDERR_NOT_FOUND 0x0000a005
#define REDERR_WRITE_ERR 0x0000a006
#define REDERR_PROFILE_ERROR 0x0000a007
#define REDERR_CMD_IS_BUILTIN 0x0000a008
/*
* declarations for RED functions
*/
APIRET APIENTRY RedRegisterRecoCommand(PSZ pszCommand, ULONG id, HWND hwnd);
HWND APIENTRY RedQueryRecoCommand(PSZ cmdp);
APIRET APIENTRY RedDeregisterRecoCommand(HWND hwnd);
APIRET APIENTRY RedRecoDataFromEnv(PRECODATA prdEnv, ULONG *lenp);
APIRET APIENTRY RedQueryRecoHandle(PSZ pszRecoSubsystem,
PHRECO phReco,
PULONG pEventCount);
APIRET APIENTRY RedQueryRecoSubsystem(HRECO hReco,
PSZ pszRecoSubsystem,
PULONG pEventCount);
APIRET APIENTRY RedRecoIDFromName(HRECO hReco,
PSZ pszEventName,
PRECOID eventID);
APIRET APIENTRY RedRecoNameFromID(HRECO hReco,
RECOID eventID,
PSZ pszEventName);
APIRET APIENTRY RedWriteObjectEventMap(HOBJECT hobj, PSZ fnamep);
APIRET APIENTRY RedReadObjectEventMap(HOBJECT hobj, PSZ fnamep);
#endif /* ifndef RED_INCLUDED */
#endif