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