You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.1 KiB

/*----------------------------------------------------------------------------
NAME
Utils.h
PURPOSE
Defines for the general-purpose functions for the WinTab demos.
COPYRIGHT
Copyright (c) Wacom Company, Ltd. 2014 All Rights Reserved
All rights reserved.
The text and information contained in this file may be freely used,
copied, or distributed without compensation or licensing restrictions.
---------------------------------------------------------------------------- */
#pragma once
#include <windows.h>
#include <stdio.h>
#include <assert.h>
#include <stdarg.h>
#include "wintab.h" // NOTE: get from wactab header package
//////////////////////////////////////////////////////////////////////////////
#define WACOM_DEBUG
// Ignore warnings about using unsafe string functions.
#pragma warning( disable : 4996 )
//////////////////////////////////////////////////////////////////////////////
// Function pointers to Wintab functions exported from wintab32.dll.
typedef UINT ( API * WTINFOW ) ( UINT, UINT, LPVOID );
typedef UINT(API * WTINFOA) (UINT, UINT, LPVOID);
typedef HCTX ( API * WTOPENW )( HWND, LPLOGCONTEXTW, BOOL );
typedef BOOL ( API * WTGETW ) ( HCTX, LPLOGCONTEXT );
typedef BOOL ( API * WTSETW ) ( HCTX, LPLOGCONTEXT );
typedef BOOL ( API * WTCLOSE ) ( HCTX );
typedef BOOL ( API * WTENABLE ) ( HCTX, BOOL );
typedef BOOL ( API * WTPACKET ) ( HCTX, UINT, LPVOID );
typedef BOOL ( API * WTOVERLAP ) ( HCTX, BOOL );
typedef BOOL ( API * WTSAVE ) ( HCTX, LPVOID );
typedef BOOL ( API * WTCONFIG ) ( HCTX, HWND );
typedef HCTX ( API * WTRESTORE ) ( HWND, LPVOID, BOOL );
typedef BOOL ( API * WTEXTSET ) ( HCTX, UINT, LPVOID );
typedef BOOL ( API * WTEXTGET ) ( HCTX, UINT, LPVOID );
typedef BOOL ( API * WTQUEUESIZESET ) ( HCTX, int );
typedef BOOL(API * WTQUEUESIZEGET) (HCTX);
typedef int ( API * WTDATAPEEK ) ( HCTX, UINT, UINT, int, LPVOID, LPINT);
typedef int ( API * WTPACKETSGET ) (HCTX, int, LPVOID);
// TODO - add more wintab32 function defs as needed
//////////////////////////////////////////////////////////////////////////////
// Loaded Wintab32 API functions.
extern HINSTANCE ghWintab;
extern WTINFOW gpWTInfoW;
extern WTINFOA gpWTInfoA;
extern WTOPENW gpWTOpenW;
extern WTGETW gpWTGetW;
extern WTSETW gpWTSetW;
extern WTCLOSE gpWTClose;
extern WTPACKET gpWTPacket;
extern WTENABLE gpWTEnable;
extern WTOVERLAP gpWTOverlap;
extern WTSAVE gpWTSave;
extern WTCONFIG gpWTConfig;
extern WTRESTORE gpWTRestore;
extern WTEXTSET gpWTExtSet;
extern WTEXTGET gpWTExtGet;
extern WTQUEUESIZESET gpWTQueueSizeSet;
extern WTQUEUESIZEGET gpWTQueueSizeGet;
extern WTDATAPEEK gpWTDataPeek;
extern WTPACKETSGET gpWTPacketsGet;
// TODO - add more wintab32 function pointers as needed
//////////////////////////////////////////////////////////////////////////////
BOOL LoadWintab( void );
void UnloadWintab( void );
//////////////////////////////////////////////////////////////////////////////
#ifdef WACOM_DEBUG
void WacomTrace( char *lpszFormat, ...);
#define WACOM_ASSERT( x ) assert( x )
#define WACOM_TRACE(...) WacomTrace(__VA_ARGS__)
#else
#define WACOM_TRACE(...)
#define WACOM_ASSERT( x )
#endif // WACOM_DEBUG