541 lines
14 KiB
C
541 lines
14 KiB
C
/*
|
|
* Tablet Win16
|
|
*
|
|
* Copyright 2002 Patrik Stridvall
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#include "config.h"
|
|
|
|
#include <stdarg.h>
|
|
|
|
#include "windef.h"
|
|
#include "winbase.h"
|
|
|
|
#include "wintab.h"
|
|
|
|
#include "wine/windef16.h"
|
|
#include "wine/debug.h"
|
|
|
|
WINE_DEFAULT_DEBUG_CHANNEL(wintab);
|
|
|
|
/**********************************************************************/
|
|
|
|
#define DECLARE_HANDLE16(a) \
|
|
typedef HANDLE16 a##16; \
|
|
typedef a##16 *P##a##16; \
|
|
typedef a##16 *NP##a##16; \
|
|
typedef a##16 *LP##a##16
|
|
|
|
DECLARE_HANDLE16(HMGR); /* manager handle */
|
|
DECLARE_HANDLE16(HCTX); /* context handle */
|
|
DECLARE_HANDLE16(HWTHOOK); /* hook handle */
|
|
|
|
/**********************************************************************/
|
|
|
|
typedef struct tagLOGCONTEXT16 {
|
|
char lcName[LCNAMELEN];
|
|
UINT16 lcOptions;
|
|
UINT16 lcStatus;
|
|
UINT16 lcLocks;
|
|
UINT16 lcMsgBase;
|
|
UINT16 lcDevice;
|
|
UINT16 lcPktRate;
|
|
WTPKT lcPktData;
|
|
WTPKT lcPktMode;
|
|
WTPKT lcMoveMask;
|
|
DWORD lcBtnDnMask;
|
|
DWORD lcBtnUpMask;
|
|
LONG lcInOrgX;
|
|
LONG lcInOrgY;
|
|
LONG lcInOrgZ;
|
|
LONG lcInExtX;
|
|
LONG lcInExtY;
|
|
LONG lcInExtZ;
|
|
LONG lcOutOrgX;
|
|
LONG lcOutOrgY;
|
|
LONG lcOutOrgZ;
|
|
LONG lcOutExtX;
|
|
LONG lcOutExtY;
|
|
LONG lcOutExtZ;
|
|
FIX32 lcSensX;
|
|
FIX32 lcSensY;
|
|
FIX32 lcSensZ;
|
|
BOOL16 lcSysMode;
|
|
INT16 lcSysOrgX;
|
|
INT16 lcSysOrgY;
|
|
INT16 lcSysExtX;
|
|
INT16 lcSysExtY;
|
|
FIX32 lcSysSensX;
|
|
FIX32 lcSysSensY;
|
|
} LOGCONTEXT16, *PLOGCONTEXT16, *NPLOGCONTEXT16, *LPLOGCONTEXT16;
|
|
|
|
/**********************************************************************/
|
|
|
|
typedef BOOL16 (WINAPI * WTENUMPROC16)(HCTX16, LPARAM); /* changed CALLBACK->WINAPI, 1.1 */
|
|
typedef BOOL16 (WINAPI * WTCONFIGPROC16)(HCTX16, HWND16);
|
|
typedef LRESULT (WINAPI * WTHOOKPROC16)(INT16, WPARAM16, LPARAM);
|
|
typedef WTHOOKPROC16 *LPWTHOOKPROC16;
|
|
|
|
/***********************************************************************
|
|
* WTInfo (WINTAB.20)
|
|
*/
|
|
UINT16 WINAPI WTInfo16(UINT16 wCategory, UINT16 nIndex, LPVOID lpOutput)
|
|
{
|
|
FIXME("(%hu, %hu, %p): stub\n", wCategory, nIndex, lpOutput);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTOpen (WINTAB.21)
|
|
*/
|
|
HCTX16 WINAPI WTOpen16(HWND16 hWnd, LPLOGCONTEXT16 lpLogCtx, BOOL16 fEnable)
|
|
{
|
|
FIXME("(0x%04hx, %p, %hu): stub\n", hWnd, lpLogCtx, fEnable);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTClose (WINTAB.22)
|
|
*/
|
|
BOOL16 WINAPI WTClose16(HCTX16 hCtx)
|
|
{
|
|
FIXME("(0x%04hx): stub\n", hCtx);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTPacketsGet (WINTAB.23)
|
|
*/
|
|
INT16 WINAPI WTPacketsGet16(HCTX16 hCtx, INT16 cMaxPkts, LPVOID lpPkts)
|
|
{
|
|
FIXME("(0x%04hx, %hd, %p): stub\n", hCtx, cMaxPkts, lpPkts);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTPacket (WINTAB.24)
|
|
*/
|
|
BOOL16 WINAPI WTPacket16(HCTX16 hCtx, UINT16 wSerial, LPVOID lpPkt)
|
|
{
|
|
FIXME("(0x%04hx, %hd, %p): stub\n", hCtx, wSerial, lpPkt);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTEnable (WINTAB.40)
|
|
*/
|
|
BOOL16 WINAPI WTEnable16(HCTX16 hCtx, BOOL16 fEnable)
|
|
{
|
|
FIXME("(0x%04hx, %hu): stub\n", hCtx, fEnable);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTOverlap (WINTAB.41)
|
|
*/
|
|
BOOL16 WINAPI WTOverlap16(HCTX16 hCtx, BOOL16 fToTop)
|
|
{
|
|
FIXME("(0x%04hx, %hu): stub\n", hCtx, fToTop);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTConfig (WINTAB.60)
|
|
*/
|
|
BOOL16 WINAPI WTConfig16(HCTX16 hCtx, HWND16 hWnd)
|
|
{
|
|
FIXME("(0x%04hx, 0x%04hx): stub\n", hCtx, hWnd);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTGet (WINTAB.61)
|
|
*/
|
|
BOOL16 WINAPI WTGet16(HCTX16 hCtx, LPLOGCONTEXT16 lpLogCtx)
|
|
{
|
|
FIXME("(0x%04hx, %p): stub\n", hCtx, lpLogCtx);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTSet (WINTAB.62)
|
|
*/
|
|
BOOL16 WINAPI WTSet16(HCTX16 hCtx, LPLOGCONTEXT16 lpLogCtx)
|
|
{
|
|
FIXME("(0x%04hx, %p): stub\n", hCtx, lpLogCtx);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTExtGet (WINTAB.63)
|
|
*/
|
|
BOOL16 WINAPI WTExtGet16(HCTX16 hCtx, UINT16 wExt, LPVOID lpData)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %p): stub\n", hCtx, wExt, lpData);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTExtSet (WINTAB.64)
|
|
*/
|
|
BOOL16 WINAPI WTExtSet16(HCTX16 hCtx, UINT16 wExt, LPVOID lpData)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %p): stub\n", hCtx, wExt, lpData);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTSave (WINTAB.65)
|
|
*/
|
|
BOOL16 WINAPI WTSave16(HCTX16 hCtx, LPVOID lpSaveInfo)
|
|
{
|
|
FIXME("(0x%04hx, %p): stub\n", hCtx, lpSaveInfo);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTRestore (WINTAB.66)
|
|
*/
|
|
HCTX16 WINAPI WTRestore16(HWND16 hWnd, LPVOID lpSaveInfo, BOOL16 fEnable)
|
|
{
|
|
FIXME("(0x%04hx, %p, %hu): stub\n", hWnd, lpSaveInfo, fEnable);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTPacketsPeek (WINTAB.80)
|
|
*/
|
|
INT16 WINAPI WTPacketsPeek16(HCTX16 hCtx, INT16 cMaxPkts, LPVOID lpPkts)
|
|
{
|
|
FIXME("(0x%04hx, %hd, %p): stub\n", hCtx, cMaxPkts, lpPkts);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTDataGet (WINTAB.81)
|
|
*/
|
|
INT16 WINAPI WTDataGet16(HCTX16 hCtx, UINT16 wBegin, UINT16 wEnd,
|
|
INT16 cMaxPkts, LPVOID lpPkts, LPINT16 lpNPkts)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %hu, %hd, %p, %p): stub\n",
|
|
hCtx, wBegin, wEnd, cMaxPkts, lpPkts, lpNPkts);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTDataPeek (WINTAB.82)
|
|
*/
|
|
INT16 WINAPI WTDataPeek16(HCTX16 hCtx, UINT16 wBegin, UINT16 wEnd,
|
|
INT16 cMaxPkts, LPVOID lpPkts, LPINT16 lpNPkts)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %hu, %hd, %p, %p): stub\n",
|
|
hCtx, wBegin, wEnd, cMaxPkts, lpPkts, lpNPkts);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTQueuePackets (WINTAB.83)
|
|
*
|
|
* OBSOLETE IN WIN32!
|
|
*/
|
|
DWORD WINAPI WTQueuePackets16(HCTX16 hCtx)
|
|
{
|
|
FIXME("(0x%04hx): stub\n", hCtx);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTQueuePacketsEx (WINTAB.200)
|
|
*/
|
|
BOOL16 WINAPI WTQueuePacketsEx16(HCTX16 hCtx, UINT16 *lpOld, UINT16 *lpNew)
|
|
{
|
|
FIXME("(0x%04hx, %p, %p): stub\n", hCtx, lpOld, lpNew);
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTQueueSizeGet (WINTAB.84)
|
|
*/
|
|
INT16 WINAPI WTQueueSizeGet16(HCTX16 hCtx)
|
|
{
|
|
FIXME("(0x%04hx): stub\n", hCtx);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTQueueSizeSet (WINTAB.85)
|
|
*/
|
|
BOOL16 WINAPI WTQueueSizeSet16(HCTX16 hCtx, INT16 nPkts)
|
|
{
|
|
FIXME("(0x%04hx, %hd): stub\n", hCtx, nPkts);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrOpen (WINTAB.100)
|
|
*/
|
|
HMGR16 WINAPI WTMgrOpen16(HWND16 hWnd, UINT16 wMsgBase)
|
|
{
|
|
FIXME("(0x%04hx, %hu): stub\n", hWnd, wMsgBase);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrClose (WINTAB.101)
|
|
*/
|
|
BOOL16 WINAPI WTMgrClose16(HMGR16 hMgr)
|
|
{
|
|
FIXME("(0x%04hx): stub\n", hMgr);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrContextEnum (WINTAB.120)
|
|
*/
|
|
BOOL16 WINAPI WTMgrContextEnum16(HMGR16 hMgr, WTENUMPROC16 lpEnumFunc, LPARAM lParam)
|
|
{
|
|
FIXME("(0x%04hx, %p, %ld): stub\n", hMgr, lpEnumFunc, lParam);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrContextOwner (WINTAB.121)
|
|
*/
|
|
HWND16 WINAPI WTMgrContextOwner16(HMGR16 hMgr, HCTX16 hCtx)
|
|
{
|
|
FIXME("(0x%04hx, 0x%04hx): stub\n", hMgr, hCtx);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrDefContext (WINTAB.122)
|
|
*/
|
|
HCTX16 WINAPI WTMgrDefContext16(HMGR16 hMgr, BOOL16 fSystem)
|
|
{
|
|
FIXME("(0x%04hx, %hu): stub\n", hMgr, fSystem);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrDefContextEx (WINTAB.206)
|
|
*
|
|
* 1.1
|
|
*/
|
|
HCTX16 WINAPI WTMgrDefContextEx16(HMGR16 hMgr, UINT16 wDevice, BOOL16 fSystem)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %hu): stub\n", hMgr, wDevice, fSystem);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrDeviceConfig (WINTAB.140)
|
|
*/
|
|
UINT16 WINAPI WTMgrDeviceConfig16(HMGR16 hMgr, UINT16 wDevice, HWND16 hWnd)
|
|
{
|
|
FIXME("(0x%04hx, %hu, 0x%04hx): stub\n", hMgr, wDevice, hWnd);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrConfigReplace (WINTAB.141)
|
|
*
|
|
* OBSOLETE IN WIN32!
|
|
*/
|
|
BOOL16 WINAPI WTMgrConfigReplace16(HMGR16 hMgr, BOOL16 fInstall,
|
|
WTCONFIGPROC16 lpConfigProc)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %p): stub\n", hMgr, fInstall, lpConfigProc);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrConfigReplaceEx (WINTAB.202)
|
|
*/
|
|
BOOL16 WINAPI WTMgrConfigReplaceEx16(HMGR16 hMgr, BOOL16 fInstall,
|
|
LPSTR lpszModule, LPSTR lpszCfgProc)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %s, %s): stub\n", hMgr, fInstall,
|
|
debugstr_a(lpszModule), debugstr_a(lpszCfgProc));
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrPacketHook (WINTAB.160)
|
|
*
|
|
* OBSOLETE IN WIN32!
|
|
*/
|
|
WTHOOKPROC16 WINAPI WTMgrPacketHook16(HMGR16 hMgr, BOOL16 fInstall,
|
|
INT16 nType, WTHOOKPROC16 lpFunc)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %hd, %p): stub\n", hMgr, fInstall, nType, lpFunc);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrPacketHookEx (WINTAB.203)
|
|
*/
|
|
HWTHOOK16 WINAPI WTMgrPacketHookEx16(HMGR16 hMgr, INT16 nType,
|
|
LPSTR lpszModule, LPSTR lpszHookProc)
|
|
{
|
|
FIXME("(0x%04hx, %hd, %s, %s): stub\n", hMgr, nType,
|
|
debugstr_a(lpszModule), debugstr_a(lpszHookProc));
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrPacketUnhook (WINTAB.204)
|
|
*/
|
|
BOOL16 WINAPI WTMgrPacketUnhook16(HWTHOOK16 hHook)
|
|
{
|
|
FIXME("(0x%04hx): stub\n", hHook);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrPacketHookDefProc (WINTAB.161)
|
|
*
|
|
* OBSOLETE IN WIN32!
|
|
*/
|
|
LRESULT WINAPI WTMgrPacketHookDefProc16(INT16 nCode, WPARAM16 wParam,
|
|
LPARAM lParam, LPWTHOOKPROC16 lplpFunc)
|
|
{
|
|
FIXME("(%hd, %hu, %lu, %p): stub\n", nCode, wParam, lParam, lplpFunc);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrPacketHookNext (WINTAB.205)
|
|
*/
|
|
LRESULT WINAPI WTMgrPacketHookNext16(HWTHOOK16 hHook, INT16 nCode,
|
|
WPARAM16 wParam, LPARAM lParam)
|
|
{
|
|
FIXME("(0x%04hx, %hd, %hu, %lu): stub\n", hHook, nCode, wParam, lParam);
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
/***********************************************************************
|
|
* WTMgrExt (WINTAB.180)
|
|
*/
|
|
BOOL16 WINAPI WTMgrExt16(HMGR16 hMgr, UINT16 wExt, LPVOID lpData)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %p): stub\n", hMgr, wExt, lpData);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrCsrEnable (WINTAB.181)
|
|
*/
|
|
BOOL16 WINAPI WTMgrCsrEnable16(HMGR16 hMgr, UINT16 wCursor, BOOL16 fEnable)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %hu): stub\n", hMgr, wCursor, fEnable);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrCsrButtonMap (WINTAB.182)
|
|
*/
|
|
BOOL16 WINAPI WTMgrCsrButtonMap16(HMGR16 hMgr, UINT16 wCursor,
|
|
LPBYTE lpLogBtns, LPBYTE lpSysBtns)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %p, %p): stub\n", hMgr, wCursor, lpLogBtns, lpSysBtns);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrCsrPressureBtnMarks (WINTAB.183)
|
|
*
|
|
* OBSOLETE IN WIN32! (But only according to documentation)
|
|
*/
|
|
BOOL16 WINAPI WTMgrCsrPressureBtnMarks16(HMGR16 hMgr, UINT16 wCsr,
|
|
DWORD dwNMarks, DWORD dwTMarks)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %u, %u): stub\n", hMgr, wCsr, dwNMarks, dwTMarks);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrCsrPressureBtnMarksEx (WINTAB.201)
|
|
*/
|
|
BOOL16 WINAPI WTMgrCsrPressureBtnMarksEx16(HMGR16 hMgr, UINT16 wCsr,
|
|
UINT16 *lpNMarks, UINT16 *lpTMarks)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %p, %p): stub\n", hMgr, wCsr, lpNMarks, lpTMarks);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrCsrPressureResponse (WINTAB.184)
|
|
*/
|
|
BOOL16 WINAPI WTMgrCsrPressureResponse16(HMGR16 hMgr, UINT16 wCsr,
|
|
UINT16 *lpNResp, UINT16 *lpTResp)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %p, %p): stub\n", hMgr, wCsr, lpNResp, lpTResp);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* WTMgrCsrExt (WINTAB.185)
|
|
*/
|
|
BOOL16 WINAPI WTMgrCsrExt16(HMGR16 hMgr, UINT16 wCsr, UINT16 wExt, LPVOID lpData)
|
|
{
|
|
FIXME("(0x%04hx, %hu, %hu, %p): stub\n", hMgr, wCsr, wExt, lpData);
|
|
|
|
return FALSE;
|
|
}
|