/*++ 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 ); }