/*
 * Tablet Manager
 *
 * 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 "winerror.h"

#include "wintab.h"

#include "wine/debug.h"

WINE_DEFAULT_DEBUG_CHANNEL(wintab32);

/***********************************************************************
 *		WTMgrOpen (WINTAB32.100)
 */
HMGR WINAPI WTMgrOpen(HWND hWnd, UINT wMsgBase)
{
    FIXME("(%p, %u): stub\n", hWnd, wMsgBase);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return NULL;
}

/***********************************************************************
 *		WTMgrClose (WINTAB32.101)
 */
BOOL WINAPI WTMgrClose(HMGR hMgr)
{
    FIXME("(%p): stub\n", hMgr);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrContextEnum (WINTAB32.120)
 */
BOOL WINAPI WTMgrContextEnum(HMGR hMgr, WTENUMPROC lpEnumFunc, LPARAM lParam)
{
    FIXME("(%p, %p, %ld): stub\n", hMgr, lpEnumFunc, lParam);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrContextOwner (WINTAB32.121)
 */
HWND WINAPI WTMgrContextOwner(HMGR hMgr, HCTX hCtx)
{
    FIXME("(%p, %p): stub\n", hMgr, hCtx);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return NULL;
}

/***********************************************************************
 *		WTMgrDefContext (WINTAB32.122)
 */
HCTX WINAPI WTMgrDefContext(HMGR hMgr, BOOL fSystem)
{
    FIXME("(%p, %u): stub\n", hMgr, fSystem);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return NULL;
}

/***********************************************************************
 *		WTMgrDefContextEx (WINTAB32.206)
 *
 * 1.1
 */
HCTX WINAPI WTMgrDefContextEx(HMGR hMgr, UINT wDevice, BOOL fSystem)
{
    FIXME("(%p, %u, %u): stub\n", hMgr, wDevice, fSystem);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return NULL;
}

/***********************************************************************
 *		WTMgrDeviceConfig (WINTAB32.140)
 */
UINT WINAPI WTMgrDeviceConfig(HMGR hMgr, UINT wDevice, HWND hWnd)
{
    FIXME("(%p, %u, %p): stub\n", hMgr, wDevice, hWnd);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return 0;
}

/***********************************************************************
 *		WTMgrConfigReplaceExA (WINTAB32.202)
 */
BOOL WINAPI WTMgrConfigReplaceExA(HMGR hMgr, BOOL fInstall,
				  LPSTR lpszModule, LPSTR lpszCfgProc)
{
    FIXME("(%p, %u, %s, %s): stub\n", hMgr, fInstall,
	  debugstr_a(lpszModule), debugstr_a(lpszCfgProc));

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrConfigReplaceExW (WINTAB32.1202)
 */
BOOL WINAPI WTMgrConfigReplaceExW(HMGR hMgr, BOOL fInstall,
				  LPWSTR lpszModule, LPSTR lpszCfgProc)
{
    FIXME("(%p, %u, %s, %s): stub\n", hMgr, fInstall,
	  debugstr_w(lpszModule), debugstr_a(lpszCfgProc));

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrPacketHookExA (WINTAB32.203)
 */
HWTHOOK WINAPI WTMgrPacketHookExA(HMGR hMgr, int nType,
				  LPSTR lpszModule, LPSTR lpszHookProc)
{
    FIXME("(%p, %d, %s, %s): stub\n", hMgr, nType,
	  debugstr_a(lpszModule), debugstr_a(lpszHookProc));

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return NULL;
}

/***********************************************************************
 *		WTMgrPacketHookExW (WINTAB32.1203)
 */
HWTHOOK WINAPI WTMgrPacketHookExW(HMGR hMgr, int nType,
				  LPWSTR lpszModule, LPSTR lpszHookProc)
{
    FIXME("(%p, %d, %s, %s): stub\n", hMgr, nType,
	  debugstr_w(lpszModule), debugstr_a(lpszHookProc));

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return NULL;
}

/***********************************************************************
 *		WTMgrPacketUnhook (WINTAB32.204)
 */
BOOL WINAPI WTMgrPacketUnhook(HWTHOOK hHook)
{
    FIXME("(%p): stub\n", hHook);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrPacketHookNext (WINTAB32.205)
 */
LRESULT WINAPI WTMgrPacketHookNext(HWTHOOK hHook, int nCode,
				   WPARAM wParam, LPARAM lParam)
{
    FIXME("(%p, %d, %lu, %lu): stub\n", hHook, nCode, wParam, lParam);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return 0;
}


/***********************************************************************
 *		WTMgrExt (WINTAB32.180)
 */
BOOL WINAPI WTMgrExt(HMGR hMgr, UINT wExt, LPVOID lpData)
{
    FIXME("(%p, %u, %p): stub\n", hMgr, wExt, lpData);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrCsrEnable (WINTAB32.181)
 */
BOOL WINAPI WTMgrCsrEnable(HMGR hMgr, UINT wCursor, BOOL fEnable)
{
    FIXME("(%p, %u, %u): stub\n", hMgr, wCursor, fEnable);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrCsrButtonMap (WINTAB32.182)
 */
BOOL WINAPI WTMgrCsrButtonMap(HMGR hMgr, UINT wCursor,
			      LPBYTE lpLogBtns, LPBYTE lpSysBtns)
{
    FIXME("(%p, %u, %p, %p): stub\n", hMgr, wCursor, lpLogBtns, lpSysBtns);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrCsrPressureBtnMarks (WINTAB32.183)
 *
 * OBSOLETE IN WIN32! (But only according to documentation)
 */
BOOL WINAPI WTMgrCsrPressureBtnMarks(HMGR hMgr, UINT wCsr,
				     DWORD dwNMarks, DWORD dwTMarks)
{
    FIXME("(%p, %u, %u, %u): stub\n", hMgr, wCsr, dwNMarks, dwTMarks);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrCsrPressureBtnMarksEx (WINTAB32.201)
 */
BOOL WINAPI WTMgrCsrPressureBtnMarksEx(HMGR hMgr, UINT wCsr,
				       UINT *lpNMarks, UINT *lpTMarks)
{
    FIXME("(%p, %u, %p, %p): stub\n", hMgr, wCsr, lpNMarks, lpTMarks);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrCsrPressureResponse (WINTAB32.184)
 */
BOOL WINAPI WTMgrCsrPressureResponse(HMGR hMgr, UINT wCsr,
				     UINT *lpNResp, UINT *lpTResp)
{
    FIXME("(%p, %u, %p, %p): stub\n", hMgr, wCsr, lpNResp, lpTResp);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}

/***********************************************************************
 *		WTMgrCsrExt (WINTAB32.185)
 */
BOOL WINAPI WTMgrCsrExt(HMGR hMgr, UINT wCsr, UINT wExt, LPVOID lpData)
{
    FIXME("(%p, %u, %u, %p): stub\n", hMgr, wCsr, wExt, lpData);

    SetLastError(ERROR_CALL_NOT_IMPLEMENTED);

    return FALSE;
}