3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/*
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 1991-1998 by LCS/Telegraphics
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Copyright (C) 2002 Patrik Stridvall
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is free software; you can redistribute it and/or
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * modify it under the terms of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License as published by the Free Software Foundation; either
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * version 2.1 of the License, or (at your option) any later version.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * This library is distributed in the hope that it will be useful,
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Lesser General Public License for more details.
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync *
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * You should have received a copy of the GNU Lesser General Public
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * License along with this library; if not, write to the Free Software
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync/*
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * a choice of LGPL license versions is made available with the language indicating
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync * of the LGPL is applied is otherwise unspecified.
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync */
930b5f872e89407f445d4000d4e4aaecaa6a0998vboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef __WINE_WINTABX_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define __WINE_WINTABX_H
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncextern "C" {
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* defined(__cplusplus) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/***********************************************************************
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Wintab message crackers
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifndef HANDLE_MSG
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync# define HANDLE_MSG(hwnd, message, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync case (message): return HANDLE_##message((hwnd), (wParam), (lParam), (fn))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* void Cls_OnWintabPacket(HWND hwnd, HCTX hCtx, UINT sn) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HANDLE_WT_PACKET(hwnd, wParam, lParam, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ((fn)((hwnd), (HCTX)(lParam), (UINT)(wParam)), 0L)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD__WT_PACKET(hwnd, bs, hCtx, sn, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (void)(fn)((hwnd), _WT_PACKET(bs), (WPARAM)(UINT)(sn), (LPARAM)(HCTX)(hCtx))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD_WT_PACKET(hwnd, hCtx, sn, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FORWARD__WT_PACKET(hwnd, WT_DEFBASE, hCtx, sn, fn)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* void Cls_OnWintabCtxOpen(HWND hwnd, HCTX hCtx, UINT sf) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HANDLE_WT_CTXOPEN(hwnd, wParam, lParam, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ((fn)((hwnd), (HCTX)(wParam), (UINT)(lParam)), 0L)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD__WT_CTXOPEN(hwnd, bs, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (void)(fn)((hwnd), _WT_CTXOPEN(bs), (WPARAM)(HCTX)(hCtx), (LPARAM)(UINT)(sf))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD_WT_CTXOPEN(hwnd, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FORWARD__WT_CTXOPEN(hwnd, WT_DEFBASE, hCtx, sf, fn)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* void Cls_OnWintabCtxClose(HWND hwnd, HCTX hCtx, UINT sf) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HANDLE_WT_CTXCLOSE(hwnd, wParam, lParam, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ((fn)((hwnd), (HCTX)(wParam), (UINT)(lParam)), 0L)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD__WT_CTXCLOSE(hwnd, bs, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (void)(fn)((hwnd), _WT_CTXCLOSE(bs), (WPARAM)(HCTX)(hCtx), (LPARAM)(UINT)(sf))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD_WT_CTXCLOSE(hwnd, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FORWARD__WT_CTXCLOSE(hwnd, WT_DEFBASE, hCtx, sf, fn)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* void Cls_OnWintabCtxUpdate(HWND hwnd, HCTX hCtx, UINT sf) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HANDLE_WT_CTXUPDATE(hwnd, wParam, lParam, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ((fn)((hwnd), (HCTX)(wParam), (UINT)(lParam)), 0L)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD__WT_CTXUPDATE(hwnd, bs, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (void)(fn)((hwnd), _WT_CTXUPDATE(bs), (WPARAM)(HCTX)(hCtx), (LPARAM)(UINT)(sf))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD_WT_CTXUPDATE(hwnd, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FORWARD__WT_CTXUPDATE(hwnd, WT_DEFBASE, hCtx, sf, fn)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* void Cls_OnWintabCtxOverlap(HWND hwnd, HCTX hCtx, UINT sf) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HANDLE_WT_CTXOVERLAP(hwnd, wParam, lParam, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ((fn)((hwnd), (HCTX)(wParam), (UINT)(lParam)), 0L)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD__WT_CTXOVERLAP(hwnd, bs, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (void)(fn)((hwnd), _WT_CTXOVERLAP(bs), (WPARAM)(HCTX)(hCtx), (LPARAM)(UINT)(sf))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD_WT_CTXOVERLAP(hwnd, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FORWARD__WT_CTXOVERLAP(hwnd, WT_DEFBASE, hCtx, sf, fn)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* void Cls_OnWintabProximity(HWND hwnd, HCTX hCtx, BOOL cp, BOOL hp) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HANDLE_WT_PROXIMITY(hwnd, wParam, lParam, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ((fn)((hwnd), (HCTX)(wParam), (BOOL)LOWORD(lParam), (BOOL)HIWORD(lParam)), 0L)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD__WT_PROXIMITY(hwnd, bs, hCtx, cp, hp, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (void)(fn)((hwnd), _WT_PROXIMITY(bs), (WPARAM)(HCTX)(hCtx), MAKELPARAM((cp), (hp))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD_WT_PROXIMITY(hwnd, hCtx, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FORWARD__WT_PROXIMITY(hwnd, WT_DEFBASE, hCtx, cp, hp, fn)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/* void Cls_OnWintabInfoChange(HWND hwnd, HMGR hMgr, UINT c, UINT i) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define HANDLE_WT_INFOCHANGE(hwnd, wParam, lParam, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync ((fn)((hwnd), (HMGR)(wParam), (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)), 0L)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD__WT_INFOCHANGE(hwnd, bs, hMgr, cp, hp, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync (void)(fn)((hwnd), _WT_INFOCHANGE(bs), (WPARAM)(HMGR)(hMgr), MAKELPARAM((c), (i))
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define FORWARD_WT_INFOCHANGE(hwnd, hMgr, sf, fn) \
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync FORWARD__WT_INFOCHANGE(hwnd, WT_DEFBASE, hMgr, cp, hp, fn)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync/***********************************************************************
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync * Alternate porting layer macros
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_PACKET_HCTX(wp, lp) ((HCTX)lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_PACKET_SERIAL(wp, lp) (wp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_PACKET_MPS(h, s) (s), (LPARAM)(h)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXOPEN_HCTX(wp, lp) ((HCTX)wp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXOPEN_STATUS(wp, lp) ((UINT)lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXOPEN_MPS(h, s) (WPARAM)(h), (LPARAM)(s)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXCLOSE_HCTX(wp, lp) ((HCTX)wp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXCLOSE_STATUS(wp, lp) ((UINT)lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXCLOSE_MPS(h, s) (WPARAM)(h), (LPARAM)(s)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXUPDATE_HCTX(wp, lp) ((HCTX)wp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXUPDATE_STATUS(wp, lp) ((UINT)lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXUPDATE_MPS(h, s) (WPARAM)(h), (LPARAM)(s)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXOVERLAP_HCTX(wp, lp) ((HCTX)wp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXOVERLAP_STATUS(wp, lp) ((UINT)lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_CTXOVERLAP_MPS(h, s) (WPARAM)(h), (LPARAM)(s)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_PROXIMITY_HCTX(wp, lp) ((HCTX)wp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_PROXIMITY_CTXPROX(wp, lp) LOWORD(lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_PROXIMITY_HARDPROX(wp, lp) HIWORD(lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_PROXIMITY_MPS(h, fc, fh) (WPARAM)(h), MAKELONG(fc, fh)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_INFOCHANGE_HMGR(wp, lp) ((HMGR)wp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_INFOCHANGE_CATEGORY(wp, lp) LOWORD(lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_INFOCHANGE_INDEX(wp, lp) HIWORD(lp)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define GET_WT_INFOCHANGE_MPS(h, c, i) (WPARAM)(h), MAKELONG(c, i)
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#ifdef __cplusplus
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync} /* extern "C" */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* defined(__cplusplus) */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#endif /* defined(__WINE_WINTABX_H */