windows-nt/Source/XPSP1/NT/drivers/wdm/input/tabletpc/tabsrv/tsrpc.idl
2020-09-26 16:20:57 +08:00

211 lines
5 KiB
Plaintext

/*++
Copyright (c) 2000 Microsoft Corporation
Module Name:
tabsrv.idl
Abstract:
This module contains the server interface of TabSrv.
Author:
Michael Tsang (MikeTs) 05-Jun-2000
Environment:
User mode
Revision History:
--*/
import "WTypes.idl";
[
uuid(95a0c486-01fc-47eb-82f1-fb35a00097a8),
version(1.0),
helpstring("TabSrv Control Panel Interface")
]
interface TabSrv
{
const int NUM_LINEAR_XPTS = 32;
const int NUM_LINEAR_YPTS = 24;
const ULONG GESTURE_FEATURE_RECOG_ENABLED = 0x00000001;
const ULONG GESTURE_FEATURE_PRESSHOLD_ENABLED = 0x00000002;
const ULONG GESTURE_FEATURE_MOUSE_ENABLED = 0x00000004;
const ULONG GESTURE_FEATURE_UNUSED_BITS = 0xfffffff8;
const int NO_GESTURE = -1;
const int UP_SPIKE = 0;
const int DOWN_SPIKE = 1;
const int LEFT_SPIKE = 2;
const int RIGHT_SPIKE = 3;
const int NUM_GESTURES = 4;
const int BUTTON_1 = 0;
const int BUTTON_2 = 1;
const int BUTTON_3 = 2;
const int BUTTON_4 = 3;
const int BUTTON_5 = 4;
const int NUM_BUTTONS = 5;
typedef enum _SW_ACTION
{
SWNoAction = 0,
SWRightButton,
#ifdef DEBUG
SWDebugModeToggle
#endif
} SW_ACTION;
typedef struct _LINEAR_PT
{
USHORT wRefPtX;
USHORT wRefPtY;
USHORT wDigiPtX;
USHORT wDigiPtY;
} LINEAR_PT, *PLINEAR_PT;
typedef struct _LINEAR_MAP
{
ULONG dwcbLen;
USHORT wNumXPts;
USHORT wNumYPts;
LINEAR_PT Data[NUM_LINEAR_YPTS][NUM_LINEAR_XPTS];
} LINEAR_MAP, *PLINEAR_MAP;
typedef enum _BUTTON_ACTION
{
ButtonNoAction = 0,
InvokeNoteBook,
PageUp,
PageDown,
AltEsc,
AltTab,
Enter,
Esc
} BUTTON_ACTION;
typedef struct _BUTTON_SETTINGS
{
ULONG dwcbLen;
BUTTON_ACTION ButtonMap[NUM_BUTTONS];
ULONG dwHotKeyButtons;
} BUTTON_SETTINGS, *PBUTTON_SETTINGS;
typedef enum _GESTRUE_ACTION
{
GestureNoAction = 0,
PopupSuperTIP,
PopupMIP,
SendHotkey
} GESTURE_ACTION;
typedef struct _GESTURE_SETTINGS
{
ULONG dwcbLen;
ULONG dwfFeatures;
int iRadius;
int iMinOutPts;
int iMaxTimeToInspect;
int iAspectRatio;
int iCheckTime;
int iPointsToExamine;
int iStopDist;
int iStopTime;
int iPressHoldTime;
int iHoldTolerance;
int iCancelPressHoldTime;
GESTURE_ACTION GestureMap[NUM_GESTURES];
} GESTURE_SETTINGS, *PGESTURE_SETTINGS;
typedef enum _EVTNOTIFY
{
RawPtEvent = 0,
GestureEvent
} EVTNOTIFY;
typedef DWORD_PTR HEVTNOTIFY;
typedef DWORD_PTR HWIN;
HEVTNOTIFY
TabSrvRegisterEventNotify(
[in] handle_t hBinding,
[in] EVTNOTIFY Event,
[in] HWIN hWnd,
[in] UINT uiMsg
);
BOOL
TabSrvDeregisterEventNotify(
[in] handle_t hBinding,
[in] HEVTNOTIFY hEventNotify
);
void
TabSrvGetLastRawDigiReport(
[in] handle_t hBinding,
[out] WORD *pwButtonState,
[out] WORD *pwX,
[out] WORD *pwY
);
void
TabSrvSetPenTilt(
[in] handle_t hBinding,
[in] LONG dx,
[in] LONG dy
);
BOOL
TabSrvGetLinearityMap(
[in] handle_t hBinding,
[out] PLINEAR_MAP LinearityMap
);
void
TabSrvSetLinearityMap(
[in] handle_t hBinding,
[in] PLINEAR_MAP LinearityMap
);
BOOL
TabSrvGetPenFeatures(
[in] handle_t hBinding,
[in] WORD wReportID,
[in] WORD wUsagePage,
[in] WORD wUsage,
[out] DWORD *pdwFeature
);
BOOL
TabSrvSetPenFeatures(
[in] handle_t hBinding,
[in] WORD wReportID,
[in] WORD wUsagePage,
[in] WORD wUsage,
[in] DWORD dwFeature
);
BOOL
TabSrvGetGestureSettings(
[in] handle_t hBinding,
[out] PGESTURE_SETTINGS GestureSettings
);
BOOL
TabSrvSetGestureSettings(
[in] handle_t hBinding,
[in] PGESTURE_SETTINGS GestureSettings
);
BOOL
TabSrvGetButtonSettings(
[in] handle_t hBinding,
[out] PBUTTON_SETTINGS ButtonSettings
);
BOOL
TabSrvSetButtonSettings(
[in] handle_t hBinding,
[in] PBUTTON_SETTINGS ButtonSettings
);
}