Added some new Rtl* tests.
[wine] / dlls / wintab32 / wintab16.c
1 /*
2  * Tablet Win16
3  *
4  * Copyright 2002 Patrik Stridvall
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 #include "config.h"
22
23 #include "windef.h"
24
25 #include "wintab.h"
26
27 #include "wine/windef16.h"
28 #include "wine/debug.h"
29
30 WINE_DEFAULT_DEBUG_CHANNEL(wintab);
31
32 /**********************************************************************/
33
34 #define DECLARE_HANDLE16(a) \
35         typedef HANDLE16 a##16; \
36         typedef a##16 *P##a##16; \
37         typedef a##16 *NP##a##16; \
38         typedef a##16 *LP##a##16
39
40 DECLARE_HANDLE16(HMGR);     /* manager handle */
41 DECLARE_HANDLE16(HCTX);     /* context handle */
42 DECLARE_HANDLE16(HWTHOOK);  /* hook handle */
43
44 /**********************************************************************/
45
46 typedef struct tagLOGCONTEXT16 {
47     char    lcName[LCNAMELEN];
48     UINT16  lcOptions;
49     UINT16  lcStatus;
50     UINT16  lcLocks;
51     UINT16  lcMsgBase;
52     UINT16  lcDevice;
53     UINT16  lcPktRate;
54     WTPKT   lcPktData;
55     WTPKT   lcPktMode;
56     WTPKT   lcMoveMask;
57     DWORD   lcBtnDnMask;
58     DWORD   lcBtnUpMask;
59     LONG    lcInOrgX;
60     LONG    lcInOrgY;
61     LONG    lcInOrgZ;
62     LONG    lcInExtX;
63     LONG    lcInExtY;
64     LONG    lcInExtZ;
65     LONG    lcOutOrgX;
66     LONG    lcOutOrgY;
67     LONG    lcOutOrgZ;
68     LONG    lcOutExtX;
69     LONG    lcOutExtY;
70     LONG    lcOutExtZ;
71     FIX32   lcSensX;
72     FIX32   lcSensY;
73     FIX32   lcSensZ;
74     BOOL16  lcSysMode;
75     INT16   lcSysOrgX;
76     INT16   lcSysOrgY;
77     INT16   lcSysExtX;
78     INT16   lcSysExtY;
79     FIX32   lcSysSensX;
80     FIX32   lcSysSensY;
81 } LOGCONTEXT16, *PLOGCONTEXT16, *NPLOGCONTEXT16, *LPLOGCONTEXT16;
82
83 /**********************************************************************/
84
85 typedef BOOL16 (WINAPI * WTENUMPROC16)(HCTX16, LPARAM);  /* changed CALLBACK->WINAPI, 1.1 */
86 typedef BOOL16 (WINAPI * WTCONFIGPROC16)(HCTX16, HWND16);
87 typedef LRESULT (WINAPI * WTHOOKPROC16)(INT16, WPARAM16, LPARAM);
88 typedef WTHOOKPROC16 *LPWTHOOKPROC16;
89
90 /***********************************************************************
91  *              WTInfo (WINTAB.20)
92  */
93 UINT16 WINAPI WTInfo16(UINT16 wCategory, UINT16 nIndex, LPVOID lpOutput)
94 {
95     FIXME("(%hu, %hu, %p): stub\n", wCategory, nIndex, lpOutput);
96
97     return 0;
98 }
99
100 /***********************************************************************
101  *              WTOpen (WINTAB.21)
102  */
103 HCTX16 WINAPI WTOpen16(HWND16 hWnd, LPLOGCONTEXT16 lpLogCtx, BOOL16 fEnable)
104 {
105     FIXME("(0x%04hx, %p, %hu): stub\n", hWnd, lpLogCtx, fEnable);
106
107     return 0;
108 }
109
110 /***********************************************************************
111  *              WTClose (WINTAB.22)
112  */
113 BOOL16 WINAPI WTClose16(HCTX16 hCtx)
114 {
115     FIXME("(0x%04hx): stub\n", hCtx);
116
117     return TRUE;
118 }
119
120 /***********************************************************************
121  *              WTPacketsGet (WINTAB.23)
122  */
123 INT16 WINAPI WTPacketsGet16(HCTX16 hCtx, INT16 cMaxPkts, LPVOID lpPkts)
124 {
125     FIXME("(0x%04hx, %hd, %p): stub\n", hCtx, cMaxPkts, lpPkts);
126
127     return 0;
128 }
129
130 /***********************************************************************
131  *              WTPacket (WINTAB.24)
132  */
133 BOOL16 WINAPI WTPacket16(HCTX16 hCtx, UINT16 wSerial, LPVOID lpPkt)
134 {
135     FIXME("(0x%04hx, %hd, %p): stub\n", hCtx, wSerial, lpPkt);
136
137     return FALSE;
138 }
139
140 /***********************************************************************
141  *              WTEnable (WINTAB.40)
142  */
143 BOOL16 WINAPI WTEnable16(HCTX16 hCtx, BOOL16 fEnable)
144 {
145     FIXME("(0x%04hx, %hu): stub\n", hCtx, fEnable);
146
147     return FALSE;
148 }
149
150 /***********************************************************************
151  *              WTOverlap (WINTAB.41)
152  */
153 BOOL16 WINAPI WTOverlap16(HCTX16 hCtx, BOOL16 fToTop)
154 {
155     FIXME("(0x%04hx, %hu): stub\n", hCtx, fToTop);
156
157     return FALSE;
158 }
159
160 /***********************************************************************
161  *              WTConfig (WINTAB.60)
162  */
163 BOOL16 WINAPI WTConfig16(HCTX16 hCtx, HWND16 hWnd)
164 {
165     FIXME("(0x%04hx, 0x%04hx): stub\n", hCtx, hWnd);
166
167     return FALSE;
168 }
169
170 /***********************************************************************
171  *              WTGet (WINTAB.61)
172  */
173 BOOL16 WINAPI WTGet16(HCTX16 hCtx, LPLOGCONTEXT16 lpLogCtx)
174 {
175     FIXME("(0x%04hx, %p): stub\n", hCtx, lpLogCtx);
176
177     return FALSE;
178 }
179
180 /***********************************************************************
181  *              WTSet (WINTAB.62)
182  */
183 BOOL16 WINAPI WTSet16(HCTX16 hCtx, LPLOGCONTEXT16 lpLogCtx)
184 {
185     FIXME("(0x%04hx, %p): stub\n", hCtx, lpLogCtx);
186
187     return FALSE;
188 }
189
190 /***********************************************************************
191  *              WTExtGet (WINTAB.63)
192  */
193 BOOL16 WINAPI WTExtGet16(HCTX16 hCtx, UINT16 wExt, LPVOID lpData)
194 {
195     FIXME("(0x%04hx, %hu, %p): stub\n", hCtx, wExt, lpData);
196
197     return FALSE;
198 }
199
200 /***********************************************************************
201  *              WTExtSet (WINTAB.64)
202  */
203 BOOL16 WINAPI WTExtSet16(HCTX16 hCtx, UINT16 wExt, LPVOID lpData)
204 {
205     FIXME("(0x%04hx, %hu, %p): stub\n", hCtx, wExt, lpData);
206
207     return FALSE;
208 }
209
210 /***********************************************************************
211  *              WTSave (WINTAB.65)
212  */
213 BOOL16 WINAPI WTSave16(HCTX16 hCtx, LPVOID lpSaveInfo)
214 {
215     FIXME("(0x%04hx, %p): stub\n", hCtx, lpSaveInfo);
216
217     return FALSE;
218 }
219
220 /***********************************************************************
221  *              WTRestore (WINTAB.66)
222  */
223 HCTX16 WINAPI WTRestore16(HWND16 hWnd, LPVOID lpSaveInfo, BOOL16 fEnable)
224 {
225     FIXME("(0x%04hx, %p, %hu): stub\n", hWnd, lpSaveInfo, fEnable);
226
227     return 0;
228 }
229
230 /***********************************************************************
231  *              WTPacketsPeek (WINTAB.80)
232  */
233 INT16 WINAPI WTPacketsPeek16(HCTX16 hCtx, INT16 cMaxPkts, LPVOID lpPkts)
234 {
235     FIXME("(0x%04hx, %hd, %p): stub\n", hCtx, cMaxPkts, lpPkts);
236
237     return 0;
238 }
239
240 /***********************************************************************
241  *              WTDataGet (WINTAB.81)
242  */
243 INT16 WINAPI WTDataGet16(HCTX16 hCtx, UINT16 wBegin, UINT16 wEnd,
244                          INT16 cMaxPkts, LPVOID lpPkts, LPINT16 lpNPkts)
245 {
246     FIXME("(0x%04hx, %hu, %hu, %hd, %p, %p): stub\n",
247           hCtx, wBegin, wEnd, cMaxPkts, lpPkts, lpNPkts);
248
249     return 0;
250 }
251
252 /***********************************************************************
253  *              WTDataPeek (WINTAB.82)
254  */
255 INT16 WINAPI WTDataPeek16(HCTX16 hCtx, UINT16 wBegin, UINT16 wEnd,
256                           INT16 cMaxPkts, LPVOID lpPkts, LPINT16 lpNPkts)
257 {
258     FIXME("(0x%04hx, %hu, %hu, %hd, %p, %p): stub\n",
259           hCtx, wBegin, wEnd, cMaxPkts, lpPkts, lpNPkts);
260
261     return 0;
262 }
263
264 /***********************************************************************
265  *              WTQueuePackets (WINTAB.83)
266  *
267  * OBSOLETE IN WIN32!
268  */
269 DWORD WINAPI WTQueuePackets16(HCTX16 hCtx)
270 {
271     FIXME("(0x%04hx): stub\n", hCtx);
272
273     return 0;
274 }
275
276 /***********************************************************************
277  *              WTQueuePacketsEx (WINTAB.200)
278  */
279 BOOL16 WINAPI WTQueuePacketsEx16(HCTX16 hCtx, UINT16 *lpOld, UINT16 *lpNew)
280 {
281     FIXME("(0x%04hx, %p, %p): stub\n", hCtx, lpOld, lpNew);
282
283     return TRUE;
284 }
285
286 /***********************************************************************
287  *              WTQueueSizeGet (WINTAB.84)
288  */
289 INT16 WINAPI WTQueueSizeGet16(HCTX16 hCtx)
290 {
291     FIXME("(0x%04hx): stub\n", hCtx);
292
293     return 0;
294 }
295
296 /***********************************************************************
297  *              WTQueueSizeSet (WINTAB.85)
298  */
299 BOOL16 WINAPI WTQueueSizeSet16(HCTX16 hCtx, INT16 nPkts)
300 {
301     FIXME("(0x%04hx, %hd): stub\n", hCtx, nPkts);
302
303     return FALSE;
304 }
305
306 /***********************************************************************
307  *              WTMgrOpen (WINTAB.100)
308  */
309 HMGR16 WINAPI WTMgrOpen16(HWND16 hWnd, UINT16 wMsgBase)
310 {
311     FIXME("(0x%04hx, %hu): stub\n", hWnd, wMsgBase);
312
313     return 0;
314 }
315
316 /***********************************************************************
317  *              WTMgrClose (WINTAB.101)
318  */
319 BOOL16 WINAPI WTMgrClose16(HMGR16 hMgr)
320 {
321     FIXME("(0x%04hx): stub\n", hMgr);
322
323     return FALSE;
324 }
325
326 /***********************************************************************
327  *              WTMgrContextEnum (WINTAB.120)
328  */
329 BOOL16 WINAPI WTMgrContextEnum16(HMGR16 hMgr, WTENUMPROC16 lpEnumFunc, LPARAM lParam)
330 {
331     FIXME("(0x%04hx, %p, %ld): stub\n", hMgr, lpEnumFunc, lParam);
332
333     return FALSE;
334 }
335
336 /***********************************************************************
337  *              WTMgrContextOwner (WINTAB.121)
338  */
339 HWND16 WINAPI WTMgrContextOwner16(HMGR16 hMgr, HCTX16 hCtx)
340 {
341     FIXME("(0x%04hx, 0x%04hx): stub\n", hMgr, hCtx);
342
343     return 0;
344 }
345
346 /***********************************************************************
347  *              WTMgrDefContext (WINTAB.122)
348  */
349 HCTX16 WINAPI WTMgrDefContext16(HMGR16 hMgr, BOOL16 fSystem)
350 {
351     FIXME("(0x%04hx, %hu): stub\n", hMgr, fSystem);
352
353     return 0;
354 }
355
356 /***********************************************************************
357  *              WTMgrDefContextEx (WINTAB.206)
358  *
359  * 1.1
360  */
361 HCTX16 WINAPI WTMgrDefContextEx16(HMGR16 hMgr, UINT16 wDevice, BOOL16 fSystem)
362 {
363     FIXME("(0x%04hx, %hu, %hu): stub\n", hMgr, wDevice, fSystem);
364
365     return 0;
366 }
367
368 /***********************************************************************
369  *              WTMgrDeviceConfig (WINTAB.140)
370  */
371 UINT16 WINAPI WTMgrDeviceConfig16(HMGR16 hMgr, UINT16 wDevice, HWND16 hWnd)
372 {
373     FIXME("(0x%04hx, %hu, 0x%04hx): stub\n", hMgr, wDevice, hWnd);
374
375     return 0;
376 }
377
378 /***********************************************************************
379  *              WTMgrConfigReplace (WINTAB.141)
380  *
381  * OBSOLETE IN WIN32!
382  */
383 BOOL16 WINAPI WTMgrConfigReplace16(HMGR16 hMgr, BOOL16 fInstall,
384                                    WTCONFIGPROC16 lpConfigProc)
385 {
386     FIXME("(0x%04hx, %hu, %p): stub\n", hMgr, fInstall, lpConfigProc);
387
388     return FALSE;
389 }
390
391 /***********************************************************************
392  *              WTMgrConfigReplaceEx (WINTAB.202)
393  */
394 BOOL16 WINAPI WTMgrConfigReplaceEx16(HMGR16 hMgr, BOOL16 fInstall,
395                                      LPSTR lpszModule, LPSTR lpszCfgProc)
396 {
397     FIXME("(0x%04hx, %hu, %s, %s): stub\n", hMgr, fInstall,
398           debugstr_a(lpszModule), debugstr_a(lpszCfgProc));
399
400     return FALSE;
401 }
402
403 /***********************************************************************
404  *              WTMgrPacketHook (WINTAB.160)
405  *
406  * OBSOLETE IN WIN32!
407  */
408 WTHOOKPROC16 WINAPI WTMgrPacketHook16(HMGR16 hMgr, BOOL16 fInstall,
409                                       INT16 nType, WTHOOKPROC16 lpFunc)
410 {
411     FIXME("(0x%04hx, %hu, %hd, %p): stub\n", hMgr, fInstall, nType, lpFunc);
412
413     return 0;
414 }
415
416 /***********************************************************************
417  *              WTMgrPacketHookEx (WINTAB.203)
418  */
419 HWTHOOK16 WINAPI WTMgrPacketHookEx16(HMGR16 hMgr, INT16 nType,
420                                      LPSTR lpszModule, LPSTR lpszHookProc)
421 {
422     FIXME("(0x%04hx, %hd, %s, %s): stub\n", hMgr, nType,
423           debugstr_a(lpszModule), debugstr_a(lpszHookProc));
424
425     return 0;
426 }
427
428 /***********************************************************************
429  *              WTMgrPacketUnhook (WINTAB.204)
430  */
431 BOOL16 WINAPI WTMgrPacketUnhook16(HWTHOOK16 hHook)
432 {
433     FIXME("(0x%04hx): stub\n", hHook);
434
435     return FALSE;
436 }
437
438 /***********************************************************************
439  *              WTMgrPacketHookDefProc (WINTAB.161)
440  *
441  * OBSOLETE IN WIN32!
442  */
443 LRESULT WINAPI WTMgrPacketHookDefProc16(INT16 nCode, WPARAM16 wParam,
444                                         LPARAM lParam, LPWTHOOKPROC16 lplpFunc)
445 {
446     FIXME("(%hd, %hu, %lu, %p): stub\n", nCode, wParam, lParam, lplpFunc);
447
448     return 0;
449 }
450
451 /***********************************************************************
452  *              WTMgrPacketHookNext (WINTAB.205)
453  */
454 LRESULT WINAPI WTMgrPacketHookNext16(HWTHOOK16 hHook, INT16 nCode,
455                                      WPARAM16 wParam, LPARAM lParam)
456 {
457     FIXME("(0x%04hx, %hd, %hu, %lu): stub\n", hHook, nCode, wParam, lParam);
458
459     return 0;
460 }
461
462
463 /***********************************************************************
464  *              WTMgrExt (WINTAB.180)
465  */
466 BOOL16 WINAPI WTMgrExt16(HMGR16 hMgr, UINT16 wExt, LPVOID lpData)
467 {
468     FIXME("(0x%04hx, %hu, %p): stub\n", hMgr, wExt, lpData);
469
470     return FALSE;
471 }
472
473 /***********************************************************************
474  *              WTMgrCsrEnable (WINTAB.181)
475  */
476 BOOL16 WINAPI WTMgrCsrEnable16(HMGR16 hMgr, UINT16 wCursor, BOOL16 fEnable)
477 {
478     FIXME("(0x%04hx, %hu, %hu): stub\n", hMgr, wCursor, fEnable);
479
480     return FALSE;
481 }
482
483 /***********************************************************************
484  *              WTMgrCsrButtonMap (WINTAB.182)
485  */
486 BOOL16 WINAPI WTMgrCsrButtonMap16(HMGR16 hMgr, UINT16 wCursor,
487                                   LPBYTE lpLogBtns, LPBYTE lpSysBtns)
488 {
489     FIXME("(0x%04hx, %hu, %p, %p): stub\n", hMgr, wCursor, lpLogBtns, lpSysBtns);
490
491     return FALSE;
492 }
493
494 /***********************************************************************
495  *              WTMgrCsrPressureBtnMarks (WINTAB.183)
496  *
497  * OBSOLETE IN WIN32! (But only according to documentation)
498  */
499 BOOL16 WINAPI WTMgrCsrPressureBtnMarks16(HMGR16 hMgr, UINT16 wCsr,
500                                          DWORD dwNMarks, DWORD dwTMarks)
501 {
502     FIXME("(0x%04hx, %hu, %lu, %lu): stub\n", hMgr, wCsr, dwNMarks, dwTMarks);
503
504     return FALSE;
505 }
506
507 /***********************************************************************
508  *              WTMgrCsrPressureBtnMarksEx (WINTAB.201)
509  */
510 BOOL16 WINAPI WTMgrCsrPressureBtnMarksEx16(HMGR16 hMgr, UINT16 wCsr,
511                                            UINT16 *lpNMarks, UINT16 *lpTMarks)
512 {
513     FIXME("(0x%04hx, %hu, %p, %p): stub\n", hMgr, wCsr, lpNMarks, lpTMarks);
514
515     return FALSE;
516 }
517
518 /***********************************************************************
519  *              WTMgrCsrPressureResponse (WINTAB.184)
520  */
521 BOOL16 WINAPI WTMgrCsrPressureResponse16(HMGR16 hMgr, UINT16 wCsr,
522                                          UINT16 *lpNResp, UINT16 *lpTResp)
523 {
524     FIXME("(0x%04hx, %hu, %p, %p): stub\n", hMgr, wCsr, lpNResp, lpTResp);
525
526     return FALSE;
527 }
528
529 /***********************************************************************
530  *              WTMgrCsrExt (WINTAB.185)
531  */
532 BOOL16 WINAPI WTMgrCsrExt16(HMGR16 hMgr, UINT16 wCsr, UINT16 wExt, LPVOID lpData)
533 {
534     FIXME("(0x%04hx, %hu, %hu, %p): stub\n", hMgr, wCsr, wExt, lpData);
535
536     return FALSE;
537 }