Patch level : 2.0 nopatch

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
Aggiunti prototipi per DLL e spostata gestione chiavi hardware


git-svn-id: svn://10.65.10.50/trunk@11072 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2003-04-30 15:43:51 +00:00
parent 37fce714ef
commit 4935031b66
12 changed files with 1482 additions and 293 deletions

View File

@ -4,40 +4,6 @@
#include "agasys.h"
bool aga_get_host_name(char* name, int maxlen)
{
wxString str = wxGetHostName();
const int len = str.Length();
strncpy(name, str, maxlen);
name[maxlen-1] = '\0';
return len > 0;
}
bool aga_get_user_name(char* name, int maxlen)
{
wxString str = wxGetUserId();
str.MakeUpper();
const int len = str.Length();
strncpy(name, str, maxlen);
name[maxlen-1] = '\0';
return len > 0;
}
void aga_log(const char* fmt, ...)
{
static bool bStarted = false;
FILE* log = fopen("aga.log", bStarted ? "a" : "w");
va_list argptr;
va_start(argptr,fmt);
vfprintf(log, fmt, argptr);
va_end(argptr);
fprintf(log, "\n");
fclose(log);
bStarted = true;
}
///////////////////////////////////////////////////////////
// Unzip support
///////////////////////////////////////////////////////////

View File

@ -1,12 +1,18 @@
#ifndef __AGASYS_H__
#define __AGASYS_H__
bool aga_get_user_name(char* name, int maxlen);
bool aga_get_host_name(char* name, int maxlen);
void aga_log(const char* fmt, ...);
#ifdef WIN32
#if XVAGADLL == 1
#define XVTDLL __declspec(dllexport)
#else
#define XVTDLL __declspec(dllimport)
#endif
#else
#define
#endif
bool aga_unzip(const char* zipfile, const char* destdir);
bool aga_zip(const char* zipmask, const char* zipfile);
bool aga_zip_filelist(const char* filelist, const char* zipfile);
XVTDLL bool aga_unzip(const char* zipfile, const char* destdir);
XVTDLL bool aga_zip(const char* zipmask, const char* zipfile);
XVTDLL bool aga_zip_filelist(const char* filelist, const char* zipfile);
#endif

652
xvaga/fastapi.h Executable file
View File

@ -0,0 +1,652 @@
/****************************************************************************/
/** **/
/** Hardlock **/
/** API-Structures and definitions **/
/** **/
/** This file contains some helpful defines to access a Hardlock using **/
/** the application programming interface (API) for Hardlock. **/
/** **/
/** Aladdin Germany **/
/** **/
/** Revision history **/
/** ----------------
*** $Log: not supported by cvs2svn $
*** Revision 1.2 2002/05/31 07:02:15 guy
*** Patch level : MAIN TRUNK
*** Files correlati :
*** Ricompilazione Demo : [ ]
*** Commento :
***
*** Allineato main trunk alla versione a 32 bit.
***
*** Revision 1.1.2.1 2002/05/30 13:42:20 guy
*** Patch level : 2.0 nopatch
*** Files correlati : fastapi.h
*** Ricompilazione Demo : [ ]
*** Commento :
*** Sarà d'uopo includere anch'esso, va !
***
*** Revision 1.46 2000/12/19 16:37:41 chris
*** detect MacOS X
***
*** Revision 1.45 2000/07/30 22:22:17 chris
*** ia64 detection
***
*** Revision 1.44 2000/07/10 09:45:09 chris
*** Module2 field
***
*** Revision 1.43 2000/05/25 14:11:43 chris
*** added some HASP stuff
***
*** Revision 1.42 2000/03/21 14:18:28 chris
*** HL_SIS and HL_LIS structure definitions
***
*** Revision 1.41 2000/02/18 14:04:44 chris
*** fixed pascal define for CygWin & MingW32
***
*** Revision 1.40 1999/12/06 13:06:11 chris
*** fixed structure packing for MSC compiler
***
*** Revision 1.39 1999/11/28 01:39:46 chris
*** added 64bit support (only tested with AlphaLinux currently)
***
*** Revision 1.38 1999/10/07 11:28:45 chris
*** Duplicate revision
***
*** Revision 1.37 1999/10/07 11:28:45 Henri
*** Removed uneeded TLV defines.
***
*** Revision 1.36 1999/10/07 10:47:04 Henri
*** Removed unused flags.
***
*** Revision 1.35 1999/09/30 09:27:46 Henri
*** Added PORT_BUSY.
***
*** Revision 1.34 1999/09/24 07:49:43 Werner
*** Added RUS_RTB_EXPIRED and RUS_SERIAL_MISMATCH
*** error codes.
***
*** Revision 1.33 1999/09/21 12:06:57 Henri
*** Arranged error codes.
***
*** Revision 1.32 1999/09/20 12:56:28 Werner
*** Added FORCE_ALF_CREATE constant.
***
*** Revision 1.31 1999/09/15 17:04:18 Henri
*** Changed WriteLicense.
***
*** Revision 1.30 1999/09/01 15:06:44 Adi
*** Added special handling of global expiration date.
***
*** Revision 1.29 1999/08/16 13:03:58 chris
*** restore previous structure packing after HL_API definition
*** (for MSVC)
***
*** Revision 1.28 1999/08/08 23:10:55 chris
*** added 2 bytes to reserved field: API structure was 2 bytes too short
***
*** Revision 1.27 1999/08/04 13:04:41 chris
*** API_FFS_GETRUSINFO define
***
*** Revision 1.26 1999/08/04 11:03:33 chris
*** API_FFS_WRITE_LIC definition and some more status codes
***
*** Revision 1.25 1999/08/03 20:36:15 chris
*** renamed FIB structure to RUS_FIB to avoid clash
*** with api_defs.h
***
*** Revision 1.24 1999/07/26 10:58:28 Henri
*** Added FIB structure.
***
*** Revision 1.23 1999/07/19 10:29:35 Henri
*** Renamed define for BUFFER_TOO_SMALL
***
*** Revision 1.22 1999/07/19 10:11:30 Henri
*** Added RUS functionality.
***
*** Revision 1.21 1998/10/21 15:56:53 Henri
*** Changed defines for Borland Builder.
***
*** Revision 1.20 1998/08/14 11:33:54 Henri
*** Changed driver comment.
***
*** Revision 1.19 1998/07/10 12:34:05 Henri
*** Added define for Borland Builder.
***
*** Revision 1.18 1998/06/29 09:01:36 Henri
*** Extended API struc.
***
*** Revision 1.17 1998/06/08 16:36:31 chris
*** fixed structure packing on gcc version 2.7 and above
***
*** Revision 1.16 1998/05/08 14:11:33 Henri
*** Added defines for HL_READID.
***
*** Revision 1.15 1998/04/07 13:14:59 chris
*** added API_READ_ID function code
***
*** Revision 1.14 1998/02/17 21:56:19 Henri
*** Added pragma pack(1) for Watcom 11/DOS
***
*** Revision 1.13 1997/07/01 13:56:54 henri
*** Fixed defines for LabView.
***
*** Revision 1.12 1997/04/28 15:30:53 chris
*** define UNIX32 ifdef __QNX__
***
*** Revision 1.11 1997/02/03 18:08:36 henri
*** Renamed error 17
***
*** Revision 1.10 1997/01/30 17:16:55 henri
*** Added LM return codes.
***
*** Revision 1.9 1997/01/28 08:23:30 henri
*** Missed a semicolon ;-)
***
*** Revision 1.8 1997/01/27 17:57:11 henri
*** Added slot number in API structure.
***
*** Revision 1.7 1997/01/16 18:18:11 henri
*** Added API_LMINIT function code.
***
*** Revision 1.6 1996/11/13 16:55:49 chris
*** added SOLARIS & UNIX32 define
***
*** Revision 1.5 1996/08/12 16:23:43 henri
*** Added VCS log.
***
**/
/****************************************************************************/
#if !defined(_FASTAPI_H_)
#define _FASTAPI_H_
#if defined(LINUX) || defined(SOLARIS) || defined(SCO) || defined(__QNX__) || defined(DARWIN) || defined(MACOSX)
#define UNIX32
#if defined(__alpha__) || defined(__ia64__)
#ifndef __64BIT__
#define __64BIT__
#endif
#define NO_UNALIGN
#endif
#endif
#ifdef __OS2__
#ifdef INTERNAL_16BITDLL
#define LOAD_DS
#else
#ifdef __WATCOMC__
#ifdef __386__ /* not the 16bit compiler */
#include <os2.h>
#endif
#else
#include <os2.h>
#endif
#endif
#ifdef OS_16
#define RET_ Word
#define FAR_ far pascal
#define DATAFAR_ far
#else
#define RET_ APIRET
#define FAR_
#define CALL_ APIENTRY
#define DATAFAR_
#endif
#pragma pack(2)
#endif
#ifdef UNIX32
#define __386__
#define pascal
#pragma pack(1)
#endif
#ifdef __GNUC__
#define __386__
#if !defined(__CYGWIN__) && !defined(__MINGW32__)
#define pascal
#endif
#if ((__GNUC__==2) && (__GNUC_MINOR__>=7)) || (__GNUC__>2)
#define ALIGN_GCC __attribute__ ((__packed__))
#ifdef NO_UNALIGN
#define AS_ALIGN __attribute__ ((__aligned__(8)))
#endif
#else
#pragma pack(1)
#endif
#endif
#ifdef _MSC_VER
#if _MSC_VER >= 900
#pragma pack(push,_fastapi_h_,1)
#else
#pragma pack(1)
#endif
#endif
#if defined(WINNT) || defined(__WIN32__) || defined(_WIN32)
#ifndef __386__ /* Watcom doesnt like it */
#define __386__
#endif
#ifdef DLL
#define CALL_ __stdcall
#else
#define CALL_
#endif
#endif
#ifdef DOS386 /* Symantec C */
#define __386__
#pragma pack(2)
#endif
#ifdef __HIGHC__ /* Metaware High C */
#define __386__
#define _PACKED _Packed
#endif
#ifdef __ZTC__ /* Zortech C */
#define __386__
#endif
#ifdef SALFORD /* Salford C */
#define ALIGN_ 8
#endif
#ifdef __WATCOMC__
#pragma pack(1)
#ifndef __386__
#ifndef OS_16
#define CALL_ cdecl
#endif
#endif
#endif
#ifdef _CVI_ /* LabWindows/CVI */
#define RET_ Word
#ifndef _NI_mswin32_
#define CALL_ pascal
#else /* No pascal in WIN32-Version of LabWindows/CVI 4.0.1 */
#define CALL_ _stdcall
#endif
#ifndef __386__ /* __386__ defined by LabWindows/CVI */
#define FAR_ far
#define DATAFAR_ far
#endif
#endif
#ifdef __386__
#define DATAFAR_
#define FAR_
#endif
#ifdef HLHIGH_DLL
#define CALL_ pascal _export
#endif
#ifdef LOAD_DS
#define CALL_ _loadds
#endif
#ifndef CALL_
#define CALL_
#endif
#ifndef _PACKED
#define _PACKED
#endif
#ifndef ALIGN_GCC
# define ALIGN_GCC
#endif
#ifndef DATAFAR_
#define DATAFAR_ far
#endif
#ifndef FAR_
#define FAR_ far
#endif
#ifndef RET_
#define RET_ Word
#endif
#ifndef ALIGN_
#define ALIGN_
#endif
#ifndef AS_ALIGN
#define AS_ALIGN
#endif
/* -------------------------------- */
/* Definitions and API structures : */
/* -------------------------------- */
#ifdef __64BIT__
typedef unsigned int Long;
typedef unsigned long Int64;
#else
typedef unsigned long Long;
#endif
#ifndef __BCPLUSPLUS__
typedef unsigned char Byte;
typedef unsigned short Word;
#else
#ifndef VCL_H
typedef unsigned char Byte;
typedef unsigned short Word;
#endif
#endif
#ifndef __64BIT__
#define set_data_ptr(api,buf) (api)->Data=(Byte DATAFAR_ *)(buf)
#define get_data_ptr(api) ((void *)((api)->Data))
#else /* above macros for <=32 bit, below macros for >32 bit */
#define set_data_ptr(api,buf) do { (api)->Data=(((Long)(buf)) & 0xffffffffu); \
(api)->DataHigh=(((Long)(((Int64)(buf))>>32)) \
& 0xffffffffu);} while (0)
#define get_data_ptr(api) ((void *)((Int64)((api)->Data) | \
(((Int64)((api)->DataHigh))<<32)))
#endif
typedef struct
{
Word Use_Key;
Byte Key[8];
} ALIGN_GCC DES_MODE;
typedef struct
{
Word ModAd; /* Hardlock module address */
Word Reg; /* Memory register adress */
Word Value; /* Memory value */
Byte Reserved[4];
} ALIGN_GCC EYE_MODE;
typedef struct
{
Long PW1; /* HASP passwords */
Long PW2;
Word P1;
} ALIGN_GCC HASP_MODE;
typedef struct
{
Word LT_Reserved;
Word Reg; /* Memory register adress */
Word Value; /* Memory value */
Word Password[2]; /* Access passwords */
} ALIGN_GCC LT_MODE;
typedef union
{
DES_MODE Des;
EYE_MODE Eye;
LT_MODE Lt;
HASP_MODE Hasp;
} HARDWARE;
typedef struct
{
Word P2;
Word P3;
} ALIGN_GCC HASP_MODE2;
typedef union
{
HASP_MODE2 Hasp2;
} HARDWARE2;
typedef struct rus_fib
{
Byte MARKER[2];
Long SERIAL_ID;
Byte VERSION[2];
Word FIXED;
Word VAR;
Word CRC;
} ALIGN_GCC RUS_FIB;
typedef _PACKED struct ALIGN_ hl_api
{
Byte API_Version_ID[2]; /* Version */
Word API_Options[2]; /* API Optionflags */
Word ModID; /* Modul-ID (EYE = 0...) */
HARDWARE Module; /* Hardware type */
#ifdef __OS2__ /* Pointer to cipher data */
#ifdef OS_16
void far *Data;
#else
#ifdef __BORLANDC__
void FAR16PTR Data;
#else
void * _Seg16 Data;
#endif
#endif
#else
#ifndef __64BIT__
void DATAFAR_ *Data;
#else
Long Data; /* low part only */
#endif
#endif
Word Bcnt; /* Number of blocks */
Word Function; /* Function number */
Word Status; /* Actual status */
Word Remote; /* Remote or local?? */
Word Port; /* Port address if local */
Word Speed; /* Speed of port if local */
Word NetUsers; /* Current Logins (HL-Server) */
Byte ID_Ref[8]; /* Referencestring */
Byte ID_Verify[8]; /* Encrypted ID_Ref */
Long Task_ID; /* Multitasking program ID */
Word MaxUsers; /* Maximum Logins (HL-Server) */
Long Timeout; /* Login Timeout in minutes */
Word ShortLife; /* (multiple use) */
Word Application; /* Application number */
Word Protocol; /* Protocol flags */
Word PM_Host; /* DOS Extender type */
Long OSspecific; /* ptr to OS specific data */
Word PortMask; /* Default local search (in) */
Word PortFlags; /* Default local search (out) */
Word EnvMask; /* Use env string search (in) */
Word EnvFlags; /* Use env string search (out) */
Byte EEFlags; /* EE type flags */
Word Prot4Info; /* (internal use) */
Byte FuncOptions; /* Enable add. functionality */
Word Slot_ID; /* Licence slot number */
Word Slot_ID_HIGH; /* Licence slot High value */
Word RUS_ExpDate; /* RUS Expiration date */
Long DataHigh; /* Pointer to data high value */
#ifndef __64BIT__
void DATAFAR_ *VendorKey; /* Pointer to RUS vendor key */
#else
Long VendorKey; /* dto. */
#endif
Long VendorKeyHigh; /* Vendor key high value */
Long OSspecificHigh; /* ptr to OS specific data */
Long RUS_MaxInfo; /* RUS max user/counter */
Long RUS_CurInfo; /* RUS current user/counter */
RUS_FIB RUS_Fib; /* RUS FIB structure */
HARDWARE2 Module2; /* 2nd hw dependend fields */
Byte Reserved2[122]; /* Reserved area */
} ALIGN_GCC AS_ALIGN HL_API, LT_API, HS_API;
typedef _PACKED struct ALIGN_ { /* HL_LIS slot information */
Long max_user;
Long cur_user;
Word exp_date;
Byte flag; /* singularity flag */
Byte res; /* filler to make structure size multiple of 4 bytes */
} ALIGN_GCC HL_SIS;
/* License Information Structure (HL_LIS) */
typedef _PACKED struct ALIGN_ {
Word current_date;
Word res;
Long num_slots;
Word glob_exp_date;
Word res2; /* filler to make size multiple of 4 bytes */
HL_SIS slots[1];
} ALIGN_GCC HL_LIS;
#ifdef UNIX32
#pragma pack()
#endif
#ifdef __OS2__
#pragma pack()
#endif
#ifdef _MSC_VER
#if _MSC_VER >= 900
#pragma pack(pop,_fastapi_h_)
#else
#pragma pack()
#endif
#endif
/* ------------- */
/* Module-ID's : */
/* ------------- */
#define EYE_DONGLE 0 /* Hardlock E-Y-E */
#define DES_DONGLE 1 /* FAST DES */
#define LT_DONGLE 3 /* Hardlock LT */
#define HASP_DONGLE 4 /* HASP */
/* --------------------- */
/* API function calls : */
/* --------------------- */
#define API_INIT 0 /* Init API structure */
#define API_DOWN 1 /* Free API structure */
#define API_FORCE_DOWN 31 /* Force deinintialization */
#define API_MULTI_SHELL_ON 2 /* MTS is enabled */
#define API_MULTI_SHELL_OFF 3 /* MTS is disabled */
#define API_MULTI_ON 4 /* Enable MTS */
#define API_MULTI_OFF 5 /* Disable MTS */
#define API_AVAIL 6 /* Dongle available? */
#define API_LOGIN 7 /* Login dongle server */
#define API_LOGOUT 8 /* Logout dongle server */
#define API_INFO 9 /* Get API informations */
#define API_GET_TASKID 32 /* Get TaskID from API */
#define API_LOGIN_INFO 34 /* Get API Login informations */
/* --------------------------- */
/* Data and memory functions : */
/* --------------------------- */
#define API_KEYE 11 /* Use KEYE for encryption */
#define API_READ 20 /* Read one word of dongle EEPROM */
#define API_WRITE 21 /* Write one word of dongle EEPROM */
#define API_READ_BLOCK 23 /* Read EEPROM in one block */
#define API_WRITE_BLOCK 24 /* Write EEPROM in one block */
#define API_READ_ID 29 /* Read USB ID memory */
#define API_ABORT 51 /* Critical Error Abort */
/* -------------- */
/* LM functions : */
/* -------------- */
#define API_LMINIT 40 /* LM compatible API_INIT replacement */
#define API_LMPING 41 /* checks if LM dongle and slot is available */
#define API_LMINFO 42 /* info about currently used LIMA */
/* --------------- */
/* RUS functions : */
/* --------------- */
#define API_FFS_INIT 256 /* RUS init function, downed with API_DOWN */
#define API_FFS_ISRUSHL 257 /* Is RUS HL ? */
#define API_FFS_LOGIN 258 /* RUS Login to Hardlock server */
#define API_FFS_CHECK_LIC 259 /* RUS Create LIS */
#define API_FFS_READ_LICBLOCK 260 /* RUS Read LIC Block */
#define API_FFS_QUERY_SLOT 261 /* RUS query slot function */
#define API_FFS_FREE_SLOT 262 /* RUS free slot */
#define API_FFS_OCCUPY_SLOT 263 /* RUS occupies a slot */
#define API_FFS_INC_CNTR 264 /* RUS counter increment */
#define API_FFS_PARSERTB 265 /* RUS Parse RTB */
#define API_FFS_GET_HWDEP_INFO 266 /* RUS get hardware dependent information */
#define API_FFS_WRITE_LIC 267 /* RUS write updated license information */
#define API_FFS_GETRUSINFO 269 /* get RUS info */
/* -------------------- */
/* Dongle access mode : */
/* -------------------- */
#define LOCAL_DEVICE 1 /* Query local HL only */
#define NET_DEVICE 2 /* Query remote HL only */
#define DONT_CARE 3 /* Query local or remote HL */
/* -------------------- */
/* EnvMask/Port Flags : */
/* -------------------- */
#define USB_DEVICE 256 /* Port flag for USB use */
#define IGNORE_ENVIRONMENT 0x8000 /* Ignore HL_SEARCH */
#define EEF_NOAUTOUSB 8 /* No automatic USB search */
/* ---------- */
/* RUS flags: */
/* ---------- */
#define FORCE_RUS 1 /* Enable RUS init without VK */
#define FORCE_ALF_CREATE 1 /* Force creation of ALF file in HLM_WRITELICENSE */
/* ------------------ */
/* API PM_Host ID's : */
/* ------------------ */
#define API_XTD_DETECT 0
#define API_XTD_DPMI 1 /* QDPMI, Borland, Windows ... */
#define API_XTD_PHAR386 2
#define API_XTD_PHAR286 3
#define API_XTD_CODEBLDR 4 /* Intel Code Builder */
#define API_XTD_COBOLXM 5
/* ------------------ */
/* API Status Codes : */
/* ------------------ */
#define STATUS_OK 0 /* API call was succesfull */
#define NOT_INIT 1 /* DONGLE not initialized */
#define ALREADY_INIT 2 /* Already initialized */
#define UNKNOWN_DONGLE 3 /* Device not supported */
#define UNKNOWN_FUNCTION 4 /* Function not supported */
#define HLS_FULL 6 /* HL-Server login table full */
#define NO_DONGLE 7 /* No device available */
#define NETWORK_ERROR 8 /* A network error occured */
#define NO_ACCESS 9 /* No device available */
#define INVALID_PARAM 10 /* A wrong parameter occured */
#define VERSION_MISMATCH 11 /* HL-Server not API version */
#define DOS_ALLOC_ERROR 12 /* Error on memory allocation */
#define CANNOT_OPEN_DRIVER 14 /* Can not open Hardlock driver */
#define INVALID_ENV 15 /* Invalid environment string */
#define DYNALINK_FAILED 16 /* Unable to get a function entry */
#define INVALID_LIC 17 /* No valid licence info (LM) */
#define NO_LICENSE 18 /* Slot/licence not enabled (LM) */
#define PORT_BUSY 19 /* Cannot acquire port */
#define RUS_NO_DEVICE 20 /* Key is no Hardlock RUS key */
#define RUS_INVALID_LIC 21 /* Invalid RUS license */
#define RUS_SYNC_ERR 22 /* FIB in key and api struc mismatch */
#define NOT_IMPLEMENTED 23 /* not (yet) implemented */
#define BUFFER_TOO_SMALL 24 /* Buffer for function too small */
#define UNKNOWN_HW_TYPE 25 /* unknown hardware descriptor */
#define RUS_INV_FBPOS 26 /* unknown fixed block position */
#define RUS_INVALID_SLOT 27 /* Non-existing slot number given */
#define RUS_DATE_FAKE 28 /* RUS Date fake detected */
#define RUS_COUNT_DOWN 29 /* RUS dead counter limit reached */
#define RUS_INVALID_VK 30 /* RUS Vendor key is invalid */
#define RUS_NO_LIC_FILE 31 /* RUS License file not found */
#define RUS_INV_VBLOCK 32 /* RUS invalid variable block */
#define RUS_LIC_FILE_WRITE_ERR 33 /* error writing (updated) license file */
#define RUS_NO_INFO_AVAILABLE 34 /* GET_HWDEP_INFO: no info there */
#define RUS_INFO_PACK_ERR 35 /* " " " " : cannot TLV encode data */
#define RUS_LIC_WRITE_ERR 36 /* write license failed */
#define RUS_DATE_EXPIRED 37 /* RUS Expiration Date reached. */
#define TS_DETECTED 38 /* Term. Server / Citrix Winframe detected*/
#define RUS_INVALID_RTB 39 /* Invalid updated data (RTB) */
#define RUS_RTB_EXPIRED 40 /* Update data (RTB) has expired. */
#define RUS_SERIAL_MISMATCH 41 /* Update data serial does not match */
#define TOO_MANY_USERS 256 /* Login table full (remote) */
#define SELECT_DOWN 257 /* Printer not On-line */
#define NO_SERIALID 258 /* Serial ID not readable or n/a */
#endif /*_FASTAPI_H_*/
/* eof */

72
xvaga/hlapi_c.h Executable file
View File

@ -0,0 +1,72 @@
/* $Id: hlapi_c.h,v 1.1 2003-04-30 15:43:50 guy Exp $ */
#include "fastapi.h"
/* --------------------- */
/* Function prototypes : */
/* --------------------- */
#ifdef __cplusplus
extern "C" {
#endif
/* ------------------ */
/* Basic Hardlock API */
/* ------------------ */
RET_ FAR_ CALL_ HL_LOGIN (Word ModAd, Word Access, Byte DATAFAR_ *RefKey, Byte DATAFAR_ *VerKey);
RET_ FAR_ CALL_ HL_LOGOUT (void);
RET_ FAR_ CALL_ HL_AVAIL (void);
RET_ FAR_ CALL_ HL_PORTINF (void);
RET_ FAR_ CALL_ HL_ACCINF (void);
RET_ FAR_ CALL_ HL_USERINF (void);
RET_ FAR_ CALL_ HL_MAXUSER (void);
RET_ FAR_ CALL_ HL_MEMINF (void);
RET_ FAR_ CALL_ HL_CODE (void DATAFAR_ *Data, Word Count);
RET_ FAR_ CALL_ HL_WRITE (Word Reg, Word Value);
RET_ FAR_ CALL_ HL_READ (Word Reg, Word DATAFAR_ *Value);
RET_ FAR_ CALL_ HL_READBL (Byte DATAFAR_ *Eeprom);
RET_ FAR_ CALL_ HL_WRITEBL (Byte DATAFAR_ *Eeprom);
RET_ FAR_ CALL_ HL_ABORT (void);
RET_ FAR_ CALL_ HL_VERSION (void);
RET_ FAR_ CALL_ HL_HLSVERS (void);
RET_ FAR_ CALL_ HL_SELECT (HL_API DATAFAR_ *hl_ptr);
RET_ FAR_ CALL_ HL_READID (Word DATAFAR_ *IDLow, Word DATAFAR_ *IDHigh);
/* ---------------- */
/* Hardlock RUS API */
/* ---------------- */
RET_ FAR_ CALL_ HLM_LOGIN (Word ModAd, Word Access, Byte DATAFAR_ *RefKey, Byte DATAFAR_ *VerKey, Byte DATAFAR_ * VKey, Long RUSOptions, Byte DATAFAR_ * SearchStr);
RET_ FAR_ CALL_ HLM_OCCUPYSLOT (Long Slot);
RET_ FAR_ CALL_ HLM_FREESLOT (Long Slot);
RET_ FAR_ CALL_ HLM_CHECKSLOT (Long Slot, Long * MaxUser, Long * CurrentUser);
RET_ FAR_ CALL_ HLM_CHECKCOUNTER (Word IncVal, Long * MaxCounter, Long * CurrentCounter);
RET_ FAR_ CALL_ HLM_CHECKEXPDATE (Long Slot, Word * Year, Word * Month, Word * Day);
RET_ FAR_ CALL_ HLM_GETRUSINFO (Long * BufLen, Byte DATAFAR_ * RTBBuffer, Word Base64);
RET_ FAR_ CALL_ HLM_WRITELICENSE (Long BufLen, Byte DATAFAR_ * RTBBuffer, Word Access, Byte DATAFAR_ * SearchStr,Word Options);
RET_ FAR_ CALL_ HLM_ISRUSHL (Long * ID);
RET_ FAR_ CALL_ HLM_CHECKALLSLOTS (Long *BufLen, HL_LIS *Buffer);
RET_ FAR_ CALL_ HLM_LOGOUT (void);
/* ---------------------- */
/* Hardlock Error Routine */
/* ---------------------- */
const char * FAR_ CALL_ HL_ERRMSG (Word num, Long options, Byte ** errdefine, Byte ** errextmsg);
/* ------------------------------------------- */
/* Obsolete functions, for compatiblity only!! */
/* ------------------------------------------- */
#ifndef __OS2__
void FAR_ CALL_ HL_ON (Word Port, Word ModAd);
void FAR_ CALL_ HL_OFF (Word Port);
Word FAR_ CALL_ K_EYE (Word Port, char DATAFAR_ *Inp, Word BlkCnt);
void FAR_ CALL_ HL_WR (Word Port, Word Reg, Word Val);
Word FAR_ CALL_ HL_RD (Word Port, Word Reg);
void FAR_ CALL_ INT_ON (void);
void FAR_ CALL_ INT_OFF (void);
#endif
RET_ FAR_ CALL_ HL_CALC (Word i1, Word i2, Word i3, Word i4);
RET_ FAR_ CALL_ HL_LMLOGIN (Word ModAd, Word Access, Byte DATAFAR_ *RefKey, Byte DATAFAR_ *VerKey, Word SlotID, Byte DATAFAR_ *SearchStr);
#ifdef __cplusplus
};
#endif
/* eof */

View File

@ -231,8 +231,9 @@ void OsWin32_DrawBitmap(unsigned int hBitmap, unsigned int hDC,
void OsWin32_DrawDottedRect(unsigned int hDC, int left, int top, int right, int bottom)
{
LOGBRUSH lBrush; lBrush.lbHatch = 0; lBrush.lbStyle = BS_SOLID;
lBrush.lbColor = ::GetTextColor((HDC)hDC);
LOGBRUSH lBrush;
lBrush.lbHatch = 0; lBrush.lbStyle = BS_SOLID;
lBrush.lbColor = ::GetTextColor((HDC)hDC);
HPEN hPen = ::ExtCreatePen(PS_COSMETIC|PS_ALTERNATE, 1, &lBrush, 0, NULL);
HGDIOBJ hOldPen = ::SelectObject((HDC)hDC, hPen);
HGDIOBJ hBrush = ::GetStockObject(HOLLOW_BRUSH);
@ -391,6 +392,115 @@ void OsWin32_PlaceProcessInWindow(unsigned int instance, const char* name, unsig
}
}
///////////////////////////////////////////////////////////
// Hardlock Support
///////////////////////////////////////////////////////////
#include "hlapi_c.h"
bool OsWin32_HL_Login(unsigned short address, const unsigned char* label, const unsigned char* password)
{
int err = HL_LOGIN(address, LOCAL_DEVICE, (unsigned char*)label, (unsigned char*)password);
return err == STATUS_OK;
}
bool OsWin32_HL_Logout()
{
HL_LOGOUT();
return TRUE;
}
bool OsWin32_HL_Read(unsigned short reg, unsigned short* data)
{
int err = HL_READ(reg, data);
return err == STATUS_OK;
}
bool OsWin32_HL_ReadBlock(unsigned char* data)
{
int err = HL_READBL(data);
return err == STATUS_OK;
}
bool OsWin32_HL_Write(unsigned short reg, unsigned short data)
{
int err = HL_WRITE(reg, data);
return err == STATUS_OK;
}
bool OsWin32_HL_Crypt(unsigned short* data) // Array di 4 words (8 bytes)
{
int err = HL_CODE(data, 1);
return err == STATUS_OK;
}
///////////////////////////////////////////////////////////
// Eutron Smartlink Support
///////////////////////////////////////////////////////////
#include "skeylink.h"
static KEY_NET _eutron_key;
bool OsWin32_SL_Crypt(unsigned short* data)
{
_eutron_key.net_command = NET_KEY_ACCESS;
_eutron_key.command = SCRAMBLING_MODE;
memcpy(_eutron_key.data, data, 8);
smartlink(&_eutron_key);
if (_eutron_key.status == ST_OK)
memcpy(data, _eutron_key.data, 8);
return _eutron_key.status == ST_OK;
}
bool OsWin32_SL_Login(const unsigned char* label, const unsigned char* password)
{
memset(&_eutron_key, 0, sizeof(KEY_NET));
_eutron_key.net_command = NET_KEY_OPEN;
_eutron_key.status = ST_HW_FAILURE; // Don't leave ST_OK = 0 here!
memcpy(_eutron_key.label, label, strlen((const char*)label));
memcpy(_eutron_key.password, password, strlen((const char*)password));
smartlink(&_eutron_key);
return _eutron_key.status == ST_OK;
}
bool OsWin32_SL_Logout()
{
_eutron_key.net_command = NET_KEY_CLOSE;
_eutron_key.command = 0;
smartlink(&_eutron_key);
return true;
}
bool OsWin32_SL_ReadBlock(unsigned short reg, unsigned short size, unsigned short* data)
{
_eutron_key.net_command = NET_KEY_ACCESS;
_eutron_key.command = BLOCK_READING_MODE;
unsigned short* pointer = (unsigned short*)(&_eutron_key.data[0]);
unsigned short* number = (unsigned short*)(&_eutron_key.data[2]);
*pointer = reg;
*number = size;
smartlink(&_eutron_key);
bool ok = _eutron_key.status == ST_OK;
if (ok)
memcpy(data, &_eutron_key.data[4], size*sizeof(unsigned short));
return ok;
}
bool OsWin32_SL_WriteBlock(unsigned short reg, unsigned short size, const unsigned short* data)
{
_eutron_key.net_command = NET_KEY_ACCESS;
_eutron_key.command = BLOCK_WRITING_MODE;
unsigned short* pointer = (unsigned short*)(&_eutron_key.data[0]);
unsigned short* number = (unsigned short*)(&_eutron_key.data[2]);
*pointer = reg;
*number = size;
memcpy(&_eutron_key.data[4], data, size*sizeof(unsigned short));
smartlink(&_eutron_key);
return _eutron_key.status == ST_OK;
}
///////////////////////////////////////////////////////////
// Ex-Golem utilities
///////////////////////////////////////////////////////////
@ -531,3 +641,12 @@ unsigned int OsWin32_LoadIcon(const char* filename)
return icon;
}
bool OsWin32_GotoUrl(const char* url, const char* action)
{
// action = [ open, edit, print ];
HINSTANCE hinst = ShellExecute(NULL, action, url, NULL, NULL, SW_SHOWNORMAL);
DWORD winst = DWORD((DWORD*)hinst);
UINT error = UINT(winst); // Tutto 'sto giro per evitare un warning
return error > 32;
}

View File

@ -7,6 +7,7 @@ void OsWin32_DrawBitmap(unsigned int hBitmap, unsigned int hDC,
void OsWin32_DrawDottedRect(unsigned int hDC, int left, int top, int right, int bottom);
wxString OsWin32_File2App(const char* filename);
bool OsWin32_GotoUrl(const char* url, const char* action);
unsigned int OsWin32_LoadIcon(const char* file);
int OsWin32_EnumerateFamilies(unsigned int hDC, char** families, int max_count);
@ -22,3 +23,16 @@ void OsWin32_UpdateWindow(unsigned int handle);
int OsWin32_Help(unsigned int handle, const char* hlp, unsigned int cmd, const char* topic);
bool OsWin32_TestNetworkVersion();
bool OsWin32_HL_Crypt(unsigned short* data);
bool OsWin32_HL_Login(unsigned short address, const unsigned char* label, const unsigned char* password);
bool OsWin32_HL_Logout() ;
bool OsWin32_HL_Read(unsigned short reg, unsigned short* data);
bool OsWin32_HL_ReadBlock(unsigned char* data);
bool OsWin32_HL_Write(unsigned short reg, unsigned short data);
bool OsWin32_SL_Crypt(unsigned short* data);
bool OsWin32_SL_Login(const unsigned char* label, const unsigned char* password);
bool OsWin32_SL_Logout() ;
bool OsWin32_SL_ReadBlock(unsigned short reg, unsigned short size, unsigned short* data);
bool OsWin32_SL_WriteBlock(unsigned short reg, unsigned short size, const unsigned short* data);

181
xvaga/skeylink.h Executable file
View File

@ -0,0 +1,181 @@
#ifndef __SKEYLINK_H
#define __SKEYLINK_H
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __SKEYDRV_H
#define __SKEYDRV_H
/*
Smartkey commands
*/
#define MAKE_KEY_CODE(low,high) (((unsigned short)(low)) | (((unsigned short)(high)) << 8))
#define SCRAMBLING_MODE 's'
#define READING_MODE 'r'
#define WRITING_MODE 'w'
#define FIXING_MODE 'f'
#define LOCATING_MODE 'l'
#define COMPARING_MODE 'c'
#define PROGRAMMING_MODE 'p'
#define MODEL_READING_MODE 'm'
#define ENCRYPTING_MODE 'e'
#define BLOCK_READING_MODE MAKE_KEY_CODE('b','r')
#define BLOCK_WRITING_MODE MAKE_KEY_CODE('b','w')
/*
Smartkey NEW commands
*/
#define SERIAL_NUMBER_READING_MODE 'n'
#define FIX_READING_MODE 'x'
#define EXT_MODEL_READING_MODE 'h'
#define FAIL_COUNTER_READING_MODE 'a'
/*
Legacy commands
*/
#define DEACTIVATE_ACCESS_MODE MAKE_KEY_CODE('d','d')
#define ACTIVATE_ACCESS_MODE MAKE_KEY_CODE('d','a')
#define ANTIHACKER_MODE 't'
/*
Smartkey models
*/
#define SKEY_NONE '0' /* No Smartkey */
#define SKEY_FX '1' /* Smartkey mod. FX */
#define SKEY_PR '2' /* Smartkey mod. PR */
#define SKEY_EP '3' /* Smartkey mod. EP */
#define SKEY_NET_5 '4' /* Smartkey mod. NET 5 users */
#define SKEY_NET_10 '5' /* Smartkey mod. NET 10 users */
#define SKEY_NET_25 '6' /* Smartkey mod. NET 25 users */
#define SKEY_NET_50 '7' /* Smartkey mod. NET 50 users */
#define SKEY_NET_NL '8' /* Smartkey mod. NET no limit */
#define SKEY_SP '9' /* Smartkey mod. SP */
#define SKEY_NET 'A' /* Smartkey mod. NET */
#define SKEY_SB 'B' /* Smartkey mod. SB */
#define SKEY_WI 'C' /* Smartkey mod. WI */
/*
Return codes
*/
#define ST_OK 0 /* No errors */
#define ST_NONE_KEY -1 /* No Smartkey present */
#define ST_SYNT_ERR -2 /* Syntax error */
#define ST_LABEL_FAILED -3 /* Uncorrect label */
#define ST_PW_DATA_FAILED -4 /* Uncorrect password or data */
#define ST_EXEC_ERROR -16 /* Max exec reached */
#define ST_HW_FAILURE -20 /* Smartkey damaged */
/*
Field length
*/
#define LABEL_LENGTH 16
#define PASSWORD_LENGTH 16
#define DATA_LENGTH 64
#define EXTENDED_DATA_LENGTH 352
#define SCRAMBLE_LENGTH 8
/*
Communication structure definition
*/
#pragma pack(push,1)
typedef struct __SKEY_DATA {
short lpt;
short command;
unsigned char label[LABEL_LENGTH];
unsigned char password[PASSWORD_LENGTH];
unsigned char data[DATA_LENGTH];
short fail_counter;
short status;
unsigned char ext_data[EXTENDED_DATA_LENGTH];
} SKEY_DATA;
#pragma pack(pop)
#endif /* __SKEYDRV_H */
/*
Smartkey net command codes
*/
#define NET_KEY_OPEN 'O'
#define NET_KEY_ACCESS 'A'
#define NET_KEY_CLOSE 'C'
/*
Smartkey command codes
*/
#define USER_NUMBER_MODE 'U'
/*
Net return codes
*/
#define ST_NET_ERROR -5 /* Lan error */
#define ST_CLOSE_ERROR -6 /* Attempting to CLOSE without OPENing */
#define ST_ACCESS_ERROR -7 /* Attempting to ACCESS without OPENing */
#define ST_USER_ERROR -8 /* Max user reached */
#define ST_NET_PWD_ERR -9 /* Net password wrong */
#define ST_TSR_NOT_INST -10 /* SKEYSRV not found */
#define ST_INIT_ERROR -11 /* Insufficient PC memory */
#define ST_PATH_ERR -12 /* Path error of file not found */
#define ST_DRIVER_NOT_INST -13 /* SKEYTSR not installed */
#define ST_TOO_MANY_OPEN_KEY -14 /* Too many open SmartKey */
#define ST_NET_PASS_INVALID -15 /* Invalid net password */
#define ST_NET_CONF_ERROR -21 /* Configuration error in INI/Registry/Environment */
#define ST_NET_ANP_INIT_ERROR -22 /* Error inizializing the ANP protocol */
#define ST_NET_TCPIP_INIT_ERROR -23 /* Error inizializing the TCPIP protocol */
#define ST_NET_NOVELL_INIT_ERROR -24 /* Error inizializing the Novell protocol */
#define ST_NET_LOCAL_INIT_ERROR -25 /* Error inizializing the Local protocol */
#define ST_NET_KEY_NOT_MAP -26 /* Not MAP programmed key found when MAP is requested */
/*
Code returned in data[0] after NET_OPEN
*/
#define NET_TYPE_LOCAL 0
#define NET_TYPE_IPX 1
#define NET_TYPE_ANP 2
#define NET_TYPE_TCPIP 3
/*
Structure definition
*/
#pragma pack(push,1)
typedef struct __KEY_NET {
short net_command;
unsigned long net_password;
short lpt;
short command;
unsigned char label[LABEL_LENGTH];
unsigned char password[PASSWORD_LENGTH];
unsigned char data[DATA_LENGTH];
short fail_counter;
short status;
unsigned char ext_data[EXTENDED_DATA_LENGTH];
} KEY_NET;
#pragma pack(pop)
/*
int smartlink_inizialize(void)
Inizialize the smartlink driver
Return 0 if successfull
void smartlink_deinizialize(void)
Deinizialize the smartlink driver
Return 0 if successfull
short smartlink(KEY_NET* key)
Call the driver.
Return key->k.status code
*/
short __cdecl smartlink(KEY_NET*);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -1,6 +1,6 @@
/* STATBAR.H for dynamic custom control for XVT/Design 2.01
$Revision: 1.1 $ $Author: guy $ $Date: 2002-02-28 14:26:20 $
$Revision: 1.2 $ $Author: guy $ $Date: 2003-04-30 15:43:51 $
This code was written by Christopher Williamson,
May be distributed in object form only when embedded in a
@ -24,16 +24,16 @@ extern "C" {
#endif
/* the following CIS functions are external and may be called by the app */
const char *statbar_set_title(WINDOW win, const char *text);
const char *statbar_set_default_title(WINDOW win, const char *text);
XVTDLL const char *statbar_set_title(WINDOW win, const char *text);
XVTDLL const char *statbar_set_default_title(WINDOW win, const char *text);
/* the following CIS functions are external and are usable in all font modes */
XVT_FNTID statbar_set_fontid(WINDOW win, XVT_FNTID fontid);
XVT_FNTID statbar_get_fontid(WINDOW win, XVT_FNTID fontid);
XVTDLL XVT_FNTID statbar_set_fontid(WINDOW win, XVT_FNTID fontid);
XVTDLL XVT_FNTID statbar_get_fontid(WINDOW win, XVT_FNTID fontid);
/* the event handler and create function for statbar */
extern WINDOW statbar_create
XVTDLL WINDOW statbar_create
(int cid, int left, int top, int right, int bottom,
int prop_count, char **prop_list, WINDOW parent_win,
int parent_rid, long parent_flags, char *parent_class);

View File

@ -9,6 +9,7 @@
#define __WIN32__
#define WINVER 0x0400
#define STRICT
#define WXUSINGDLL 1
#endif
#include "wx/wxprec.h"

View File

@ -6,8 +6,6 @@
#include "wx/fileconf.h"
#include "wx/fontdlg.h"
#include "wx/image.h"
#include "wx/print.h"
#include "wx/printdlg.h"
#include "wx/fs_zip.h"
#include "wx/html/helpctrl.h"
@ -197,8 +195,6 @@ public:
void TwxCaret::Kill()
{
_owner = NULL_WIN;
// if (IsRunning())
// Stop();
}
void TwxCaret::Show(WINDOW w, bool on)
@ -248,7 +244,7 @@ void TwxCaret::Toggle()
///////////////////////////////////////////////////////////
// Dummy application
///////////////////////////////////////////////////////////
/*
class TMainApp : public wxApp
{
virtual bool OnInit();
@ -264,6 +260,11 @@ DECLARE_APP(TMainApp)
// IMPLEMENT_APP_NO_MAIN(TMainApp)
IMPLEMENT_APP(TMainApp)
extern "C"
{
int xvt_main(int argc, char** argv);
}
bool TMainApp::OnInit()
{
::wxInitAllImageHandlers();
@ -276,6 +277,7 @@ int TMainApp::OnExit()
{
return wxApp::OnExit();
}
*/
///////////////////////////////////////////////////////////
// Generic Display context
@ -1137,16 +1139,18 @@ TTaskWin::~TTaskWin()
void xvt_app_allow_quit(void)
{
wxGetApp().ExitMainLoop(); // Giŕ lo fa la destroy
wxTheApp->ExitMainLoop(); // Già lo fa la destroy
}
void xvt_app_create(int argc, char **argv, unsigned long flags,
EVENT_HANDLER eh, XVT_CONFIG *config)
{
::wxInitAllImageHandlers();
_task_win_handler = eh;
_config_ = config;
wxString title = config->taskwin_title;
const wxString title = config->taskwin_title;
wxPoint pos = wxDefaultPosition;
wxSize size = wxDefaultSize;
@ -1201,14 +1205,13 @@ void xvt_app_create(int argc, char **argv, unsigned long flags,
e.type = E_CREATE;
long ret = _task_win_handler((WINDOW)_task_win, &e);
if (ret != 0)
wxGetApp().MainLoop();
wxGetApp().ExitMainLoop(); // Non entrare nel main loop di xwWindows
wxTheApp->MainLoop();
wxTheApp->ExitMainLoop(); // Non entrare nel main loop di xwWindows
}
void xvt_app_destroy(void)
{
wxGetApp().ExitMainLoop();
wxTheApp->ExitMainLoop();
_task_win->Destroy();
}
@ -1222,9 +1225,11 @@ DRAW_CTOOLS* xvt_app_get_default_ctools(DRAW_CTOOLS *ct)
void xvt_app_process_pending_events(void)
{
wxApp& app = wxGetApp();
while (app.Pending())
app.Dispatch();
if (wxTheApp != NULL)
{
for (int m = 0; m < 4 && wxTheApp->Pending(); m++)
wxTheApp->Dispatch();
}
}
///////////////////////////////////////////////////////////
@ -1350,6 +1355,98 @@ void xvt_debug_printf(const char* fmt, ...)
#endif
}
///////////////////////////////////////////////////////////
// Dongle functions
///////////////////////////////////////////////////////////
BOOLEAN xvt_dongle_hl_crypt(unsigned short* data) // Array di 4 words (8 bytes)
{
#ifdef WIN32
return OsWin32_HL_Crypt(data);
#endif
return FALSE;
}
BOOLEAN xvt_dongle_hl_login(unsigned short address, const unsigned char* label, const unsigned char* password)
{
#ifdef WIN32
return OsWin32_HL_Login(address, label, password);
#endif
return FALSE;
}
BOOLEAN xvt_dongle_hl_logout()
{
#ifdef WIN32
return OsWin32_HL_Logout();
#endif
return TRUE;
}
BOOLEAN xvt_dongle_hl_read(unsigned short reg, unsigned short* data)
{
#ifdef WIN32
return OsWin32_HL_Read(reg, data);
#endif
return FALSE;
}
BOOLEAN xvt_dongle_hl_read_block(unsigned char* data)
{
#ifdef WIN32
return OsWin32_HL_ReadBlock(data);
#endif
return FALSE;
}
BOOLEAN xvt_dongle_hl_write(unsigned short reg, unsigned short data)
{
#ifdef WIN32
return OsWin32_HL_Write(reg, data);
#endif
return FALSE;
}
BOOLEAN xvt_dongle_sl_crypt(unsigned short* data)
{
#ifdef WIN32
return OsWin32_SL_Crypt(data);
#endif
return FALSE;
}
BOOLEAN xvt_dongle_sl_login(const unsigned char* label, const unsigned char* password)
{
#ifdef WIN32
return OsWin32_SL_Login(label, password);
#endif
return FALSE;
}
BOOLEAN xvt_dongle_sl_logout()
{
#ifdef WIN32
return OsWin32_SL_Logout();
#endif
return TRUE;
}
BOOLEAN xvt_dongle_sl_read_block(unsigned short reg, unsigned short size, unsigned short* data)
{
#ifdef WIN32
return OsWin32_SL_ReadBlock(reg, size, data);
#endif
return FALSE;
}
BOOLEAN xvt_dongle_sl_write_block(unsigned short reg, unsigned short size, const unsigned short* data)
{
#ifdef WIN32
return OsWin32_SL_WriteBlock(reg, size, data);
#endif
return FALSE;
}
///////////////////////////////////////////////////////////
// Common dialogs
///////////////////////////////////////////////////////////
@ -3001,7 +3098,7 @@ MENU_ITEM* xvt_res_get_menu(int rid)
if (rid >= 10000 && rid < 10100)
{
wxFileName::SplitPath(wxGetApp().argv[0], NULL, &strName, NULL);
wxFileName::SplitPath(wxTheApp->argv[0], NULL, &strName, NULL);
strName.MakeUpper();
strName = wxString::Format("/Menu_%s-%X", strName.Left(3), (rid-1)%16);
}
@ -3340,6 +3437,25 @@ void xvt_sys_beep(int severity)
#endif
}
BOOLEAN xvt_sys_get_host_name(char* name, int maxlen)
{
wxString str = wxGetHostName();
const int len = str.Length();
strncpy(name, str, maxlen);
name[maxlen-1] = '\0';
return len > 0;
}
BOOLEAN xvt_sys_get_user_name(char* name, int maxlen)
{
wxString str = wxGetUserId();
str.MakeUpper();
const int len = str.Length();
strncpy(name, str, maxlen);
name[maxlen-1] = '\0';
return len > 0;
}
long xvt_sys_execute(const char* cmdline, BOOLEAN sync, BOOLEAN iconizetask)
{
long exitcode = 0;
@ -3375,6 +3491,16 @@ long xvt_sys_execute_in_window(const char* cmdline, WINDOW win)
return inst;
}
BOOLEAN xvt_sys_goto_url(const char* url, const char* action)
{
#ifdef WIN32
return OsWin32_GotoUrl(url, action);
#else
SORRY_BOX(); // TBI
#endif
return FALSE;
}
BOOLEAN xvt_sys_dongle_server_is_running()
{
#ifdef WIN32

28
xvaga/xvapp.cpp Executable file
View File

@ -0,0 +1,28 @@
#include "..\xvaga\wxinc.h"
extern int xvt_main(int argc, char** argv);
class TMainApp : public wxApp
{
virtual bool OnInit();
virtual int OnExit();
DECLARE_DYNAMIC_CLASS(TMainApp);
};
IMPLEMENT_DYNAMIC_CLASS(TMainApp, wxApp)
DECLARE_APP(TMainApp)
IMPLEMENT_APP(TMainApp)
bool TMainApp::OnInit()
{
xvt_main(argc, argv);
return FALSE; // Prevents entering the Main Loop
}
int TMainApp::OnExit()
{
return wxApp::OnExit();
}

View File

@ -12,6 +12,16 @@
#endif
#ifdef WIN32
#if XVAGADLL == 1
#define XVTDLL __declspec(dllexport)
#else
#define XVTDLL __declspec(dllimport)
#endif
#else
#define XVTDLL
#endif
#define XVAGA 1
#include <ctype.h>
@ -31,270 +41,284 @@
extern "C" {
#endif
int xvt_main(int argc, char** argv);
XVTDLL void xvt_app_allow_quit(void);
XVTDLL void xvt_app_create(int argc, char **argv, unsigned long flags, EVENT_HANDLER eh, XVT_CONFIG *config);
XVTDLL void xvt_app_destroy(void);
XVTDLL BOOLEAN xvt_app_escape(int esc_code, PRINT_RCD*, long* ph, long* pw, long* pvr, long* phr);
XVTDLL DRAW_CTOOLS* xvt_app_get_default_ctools(DRAW_CTOOLS* ct);
XVTDLL void xvt_app_process_pending_events(void);
void xvt_app_allow_quit(void);
void xvt_app_create(int argc, char **argv, unsigned long flags, EVENT_HANDLER eh, XVT_CONFIG *config);
void xvt_app_destroy(void);
BOOLEAN xvt_app_escape(int esc_code, PRINT_RCD*, long* ph, long* pw, long* pvr, long* phr);
DRAW_CTOOLS* xvt_app_get_default_ctools(DRAW_CTOOLS* ct);
void xvt_app_process_pending_events(void);
XVTDLL char* xvt_cb_alloc_data(long size);
XVTDLL BOOLEAN xvt_cb_close(void);
XVTDLL void xvt_cb_free_data(void);
XVTDLL char* xvt_cb_get_data(CB_FORMAT cbfmt, char *name, long *sizep);
XVTDLL BOOLEAN xvt_cb_has_format(CB_FORMAT fmt, char *name);
XVTDLL BOOLEAN xvt_cb_open(BOOLEAN writing);
XVTDLL BOOLEAN xvt_cb_put_data(CB_FORMAT cbfmt, char *name, long size, PICTURE pic);
char* xvt_cb_alloc_data(long size);
BOOLEAN xvt_cb_close(void);
void xvt_cb_free_data(void);
char* xvt_cb_get_data(CB_FORMAT cbfmt, char *name, long *sizep);
BOOLEAN xvt_cb_has_format(CB_FORMAT fmt, char *name);
BOOLEAN xvt_cb_open(BOOLEAN writing);
BOOLEAN xvt_cb_put_data(CB_FORMAT cbfmt, char *name, long size, PICTURE pic);
XVTDLL void xvt_ctl_check_radio_button(WINDOW Win, WINDOW* Wins, int NbrWindows);
XVTDLL WINDOW xvt_ctl_create_def(WIN_DEF *win_def_p, WINDOW parent_win, long app_data);
XVTDLL void xvt_ctl_set_checked(WINDOW Win, BOOLEAN Check);
void xvt_ctl_check_radio_button(WINDOW Win, WINDOW* Wins, int NbrWindows);
WINDOW xvt_ctl_create_def(WIN_DEF *win_def_p, WINDOW parent_win, long app_data);
void xvt_ctl_set_checked(WINDOW Win, BOOLEAN Check);
XVTDLL void xvt_debug_printf(const char* fmt, ...);
void xvt_debug_printf(const char* fmt, ...);
XVTDLL ASK_RESPONSE xvt_dm_post_ask(const char* Btn1, const char*Btn2, const char* Btn3, const char* xin_buffer);
XVTDLL COLOR xvt_dm_post_choose_color(WINDOW win, COLOR c); // Added by guy
XVTDLL void xvt_dm_post_error(const char *fmt);
XVTDLL void xvt_dm_post_fatal_exit(const char *fmt);
XVTDLL FL_STATUS xvt_dm_post_file_open(FILE_SPEC *fsp, const char *msg);
XVTDLL FL_STATUS xvt_dm_post_file_save(FILE_SPEC *fsp, const char *msg);
XVTDLL BOOLEAN xvt_dm_post_font_sel(WINDOW win, XVT_FNTID font_id, PRINT_RCD *precp, unsigned long reserved);
XVTDLL void xvt_dm_post_message(const char *fmt);
XVTDLL void xvt_dm_post_note(const char *fmt);
XVTDLL BOOLEAN xvt_dm_post_page_setup(PRINT_RCD *precp);
XVTDLL char* xvt_dm_post_string_prompt(const char* message, char* response, int response_len);
XVTDLL void xvt_dm_post_warning(const char *fmt);
ASK_RESPONSE xvt_dm_post_ask(const char* Btn1, const char*Btn2, const char* Btn3, const char* xin_buffer);
COLOR xvt_dm_post_choose_color(WINDOW win, COLOR c); // Added by guy
void xvt_dm_post_error(const char *fmt);
void xvt_dm_post_fatal_exit(const char *fmt);
FL_STATUS xvt_dm_post_file_open(FILE_SPEC *fsp, const char *msg);
FL_STATUS xvt_dm_post_file_save(FILE_SPEC *fsp, const char *msg);
BOOLEAN xvt_dm_post_font_sel(WINDOW win, XVT_FNTID font_id, PRINT_RCD *precp, unsigned long reserved);
void xvt_dm_post_message(const char *fmt);
void xvt_dm_post_note(const char *fmt);
BOOLEAN xvt_dm_post_page_setup(PRINT_RCD *precp);
char* xvt_dm_post_string_prompt(const char* message, char* response, int response_len);
void xvt_dm_post_warning(const char *fmt);
// Dongle support by AGA
XVTDLL BOOLEAN xvt_dongle_hl_crypt(unsigned short* data);
XVTDLL BOOLEAN xvt_dongle_hl_login(unsigned short address, const unsigned char* label, const unsigned char* password);
XVTDLL BOOLEAN xvt_dongle_hl_logout();
XVTDLL BOOLEAN xvt_dongle_hl_read(unsigned short reg, unsigned short* data);
XVTDLL BOOLEAN xvt_dongle_hl_read_block(unsigned char* data);
XVTDLL BOOLEAN xvt_dongle_hl_write(unsigned short reg, unsigned short data);
XVTDLL BOOLEAN xvt_dongle_sl_crypt(unsigned short* data);
XVTDLL BOOLEAN xvt_dongle_sl_login(const unsigned char* label, const unsigned char* password);
XVTDLL BOOLEAN xvt_dongle_sl_logout();
XVTDLL BOOLEAN xvt_dongle_sl_read_block(unsigned short reg, unsigned short size, unsigned short* data);
XVTDLL BOOLEAN xvt_dongle_sl_write_block(unsigned short reg, unsigned short size, const unsigned short* data);
void xvt_dwin_clear(WINDOW win, COLOR col);
void xvt_dwin_draw_arc(WINDOW Win, RCT* r, int sx, int sy, int ex, int ey);
void xvt_dwin_draw_icon(WINDOW win, int x, int y, int rid);
void xvt_dwin_draw_image(WINDOW win, XVT_IMAGE image, RCT* dest, RCT* source);
void xvt_dwin_draw_oval(WINDOW Win, RCT* r);
void xvt_dwin_draw_pie(WINDOW win, RCT *rctp, int start_x, int start_y, int stop_x, int stop_y);
void xvt_dwin_draw_polygon(WINDOW win, PNT *lpnts, int npnts);
void xvt_dwin_draw_rect(WINDOW win, RCT *rctp);
void xvt_dwin_draw_dotted_rect(WINDOW win, RCT *rctp); // Added by Guy
void xvt_dwin_draw_set_pos(WINDOW win, PNT pnt);
void xvt_dwin_draw_text(WINDOW win, int x, int y, const char *s, int len);
RCT* xvt_dwin_get_clip(WINDOW win, RCT* rct);
DRAW_CTOOLS* xvt_dwin_get_draw_ctools(WINDOW win, DRAW_CTOOLS *ctoolsp);
XVT_FNTID xvt_dwin_get_font(WINDOW win);
void xvt_dwin_get_font_metrics(WINDOW win, int *leadingp, int *ascentp, int *descentp);
long xvt_dwin_get_font_size_mapped(WINDOW win);
int xvt_dwin_get_text_width(WINDOW win, const char *s, int len);
void xvt_dwin_invalidate_rect(WINDOW win, RCT *rctp);
BOOLEAN xvt_dwin_is_update_needed(WINDOW Win, RCT* rctp);
void xvt_dwin_scroll_rect(WINDOW win, RCT *rctp, int dh, int dv);
void xvt_dwin_set_back_color(WINDOW win, COLOR color);
void xvt_dwin_set_cbrush(WINDOW win, CBRUSH* cbrush);
void xvt_dwin_set_clip(WINDOW win, RCT* rct);
void xvt_dwin_set_cpen(WINDOW win, CPEN* cpen);
void xvt_dwin_set_draw_ctools(WINDOW win, DRAW_CTOOLS* xct);
void xvt_dwin_set_draw_mode(WINDOW win, DRAW_MODE mode);
void xvt_dwin_set_font(WINDOW win, XVT_FNTID font_id);
void xvt_dwin_set_fore_color(WINDOW win, COLOR color);
void xvt_dwin_set_std_cpen(WINDOW win, long flag);
void xvt_dwin_draw_line(WINDOW win, PNT pnt);
void xvt_dwin_update(WINDOW Win);
XVTDLL void xvt_dwin_clear(WINDOW win, COLOR col);
XVTDLL void xvt_dwin_draw_arc(WINDOW Win, RCT* r, int sx, int sy, int ex, int ey);
XVTDLL void xvt_dwin_draw_icon(WINDOW win, int x, int y, int rid);
XVTDLL void xvt_dwin_draw_image(WINDOW win, XVT_IMAGE image, RCT* dest, RCT* source);
XVTDLL void xvt_dwin_draw_oval(WINDOW Win, RCT* r);
XVTDLL void xvt_dwin_draw_pie(WINDOW win, RCT *rctp, int start_x, int start_y, int stop_x, int stop_y);
XVTDLL void xvt_dwin_draw_polygon(WINDOW win, PNT *lpnts, int npnts);
XVTDLL void xvt_dwin_draw_rect(WINDOW win, RCT *rctp);
XVTDLL void xvt_dwin_draw_dotted_rect(WINDOW win, RCT *rctp); // Added by Guy
XVTDLL void xvt_dwin_draw_set_pos(WINDOW win, PNT pnt);
XVTDLL void xvt_dwin_draw_text(WINDOW win, int x, int y, const char *s, int len);
XVTDLL RCT* xvt_dwin_get_clip(WINDOW win, RCT* rct);
XVTDLL DRAW_CTOOLS* xvt_dwin_get_draw_ctools(WINDOW win, DRAW_CTOOLS *ctoolsp);
XVTDLL XVT_FNTID xvt_dwin_get_font(WINDOW win);
XVTDLL void xvt_dwin_get_font_metrics(WINDOW win, int *leadingp, int *ascentp, int *descentp);
XVTDLL long xvt_dwin_get_font_size_mapped(WINDOW win);
XVTDLL int xvt_dwin_get_text_width(WINDOW win, const char *s, int len);
XVTDLL void xvt_dwin_invalidate_rect(WINDOW win, RCT *rctp);
XVTDLL BOOLEAN xvt_dwin_is_update_needed(WINDOW Win, RCT* rctp);
XVTDLL void xvt_dwin_scroll_rect(WINDOW win, RCT *rctp, int dh, int dv);
XVTDLL void xvt_dwin_set_back_color(WINDOW win, COLOR color);
XVTDLL void xvt_dwin_set_cbrush(WINDOW win, CBRUSH* cbrush);
XVTDLL void xvt_dwin_set_clip(WINDOW win, RCT* rct);
XVTDLL void xvt_dwin_set_cpen(WINDOW win, CPEN* cpen);
XVTDLL void xvt_dwin_set_draw_ctools(WINDOW win, DRAW_CTOOLS* xct);
XVTDLL void xvt_dwin_set_draw_mode(WINDOW win, DRAW_MODE mode);
XVTDLL void xvt_dwin_set_font(WINDOW win, XVT_FNTID font_id);
XVTDLL void xvt_dwin_set_fore_color(WINDOW win, COLOR color);
XVTDLL void xvt_dwin_set_std_cpen(WINDOW win, long flag);
XVTDLL void xvt_dwin_draw_line(WINDOW win, PNT pnt);
XVTDLL void xvt_dwin_update(WINDOW Win);
XVT_ERRSEV xvt_errmsg_get_sev_id(XVT_ERRMSG err);
XVTDLL XVT_ERRSEV xvt_errmsg_get_sev_id(XVT_ERRMSG err);
long xvt_fmap_get_family_sizes(PRINT_RCD *precp, char *family, long *size_array, BOOLEAN *scalable, long max_sizes);
long xvt_fmap_get_families(PRINT_RCD *precp, char **family_array, long max_families);
XVTDLL long xvt_fmap_get_family_sizes(PRINT_RCD *precp, char *family, long *size_array, BOOLEAN *scalable, long max_sizes);
XVTDLL long xvt_fmap_get_families(PRINT_RCD *precp, char **family_array, long max_families);
void xvt_font_copy(XVT_FNTID dest_font_id, XVT_FNTID src_font_id, XVT_FONT_ATTR_MASK mask);
XVT_FNTID xvt_font_create(void);
void xvt_font_deserialize(XVT_FNTID font_id, char *buf);
void xvt_font_destroy(XVT_FNTID font_id);
BOOLEAN xvt_font_get_family(XVT_FNTID font_id, char* buf, long max_buf);
BOOLEAN xvt_font_get_family_mapped(XVT_FNTID font_id, char* buf, long max_buf);
void xvt_font_get_metrics(XVT_FNTID font_id, int *leadingp, int *ascentp, int *descentp);
BOOLEAN xvt_font_get_native_desc(XVT_FNTID font_id, char *buf, long max_buf);
long xvt_font_get_size(XVT_FNTID font_id);
XVT_FONT_STYLE_MASK xvt_font_get_style(XVT_FNTID font_id);
WINDOW xvt_font_get_win(XVT_FNTID font_id);
BOOLEAN xvt_font_is_mapped(XVT_FNTID font_id);
void xvt_font_map(XVT_FNTID font_id, WINDOW font_win );
void xvt_font_map_using_default(XVT_FNTID font_id);
void xvt_font_set_family(XVT_FNTID font_id, char* family);
void xvt_font_set_size(XVT_FNTID font_id, long size);
void xvt_font_set_style(XVT_FNTID font_id, XVT_FONT_STYLE_MASK mask);
long xvt_font_serialize(XVT_FNTID font_id, char *buf, long max_buf);
void xvt_font_unmap(XVT_FNTID font_id);
XVTDLL void xvt_font_copy(XVT_FNTID dest_font_id, XVT_FNTID src_font_id, XVT_FONT_ATTR_MASK mask);
XVTDLL XVT_FNTID xvt_font_create(void);
XVTDLL void xvt_font_deserialize(XVT_FNTID font_id, char *buf);
XVTDLL void xvt_font_destroy(XVT_FNTID font_id);
XVTDLL BOOLEAN xvt_font_get_family(XVT_FNTID font_id, char* buf, long max_buf);
XVTDLL BOOLEAN xvt_font_get_family_mapped(XVT_FNTID font_id, char* buf, long max_buf);
XVTDLL void xvt_font_get_metrics(XVT_FNTID font_id, int *leadingp, int *ascentp, int *descentp);
XVTDLL BOOLEAN xvt_font_get_native_desc(XVT_FNTID font_id, char *buf, long max_buf);
XVTDLL long xvt_font_get_size(XVT_FNTID font_id);
XVTDLL XVT_FONT_STYLE_MASK xvt_font_get_style(XVT_FNTID font_id);
XVTDLL WINDOW xvt_font_get_win(XVT_FNTID font_id);
XVTDLL BOOLEAN xvt_font_is_mapped(XVT_FNTID font_id);
XVTDLL void xvt_font_map(XVT_FNTID font_id, WINDOW font_win );
XVTDLL void xvt_font_map_using_default(XVT_FNTID font_id);
XVTDLL void xvt_font_set_family(XVT_FNTID font_id, char* family);
XVTDLL void xvt_font_set_size(XVT_FNTID font_id, long size);
XVTDLL void xvt_font_set_style(XVT_FNTID font_id, XVT_FONT_STYLE_MASK mask);
XVTDLL long xvt_font_serialize(XVT_FNTID font_id, char *buf, long max_buf);
XVTDLL void xvt_font_unmap(XVT_FNTID font_id);
BOOLEAN xvt_fsys_build_pathname(char *mbs, const char *volname, const char *dirname, const char *leafroot, const char *leafext, const char *leafvers);
BOOLEAN xvt_fsys_convert_dir_to_str(DIRECTORY *dirp, char *path, int sz_path);
BOOLEAN xvt_fsys_convert_str_to_dir(const char *path, DIRECTORY *dirp);
BOOLEAN xvt_fsys_get_dir(DIRECTORY *dirp);
void xvt_fsys_get_default_dir(DIRECTORY *dirp);
SLIST xvt_fsys_list_files(char *type, char *pat, BOOLEAN dirs);
BOOLEAN xvt_fsys_parse_pathname (const char *mbs, char *volname, char *dirname, char *leafroot, char *leafext, char *leafvers);
void xvt_fsys_restore_dir();
void xvt_fsys_save_dir();
BOOLEAN xvt_fsys_set_dir(DIRECTORY *dirp);
XVTDLL BOOLEAN xvt_fsys_build_pathname(char *mbs, const char *volname, const char *dirname, const char *leafroot, const char *leafext, const char *leafvers);
XVTDLL BOOLEAN xvt_fsys_convert_dir_to_str(DIRECTORY *dirp, char *path, int sz_path);
XVTDLL BOOLEAN xvt_fsys_convert_str_to_dir(const char *path, DIRECTORY *dirp);
XVTDLL BOOLEAN xvt_fsys_get_dir(DIRECTORY *dirp);
XVTDLL void xvt_fsys_get_default_dir(DIRECTORY *dirp);
XVTDLL SLIST xvt_fsys_list_files(char *type, char *pat, BOOLEAN dirs);
XVTDLL BOOLEAN xvt_fsys_parse_pathname (const char *mbs, char *volname, char *dirname, char *leafroot, char *leafext, char *leafvers);
XVTDLL void xvt_fsys_restore_dir();
XVTDLL void xvt_fsys_save_dir();
XVTDLL BOOLEAN xvt_fsys_set_dir(DIRECTORY *dirp);
// Added by Guy
unsigned long xvt_fsys_get_disk_size(const char* path, char unit);
unsigned long xvt_fsys_get_disk_free_space(const char* path, char unit);
BOOLEAN xvt_fsys_is_removable_drive(const char* path);
BOOLEAN xvt_fsys_is_network_drive(const char* path);
BOOLEAN xvt_fsys_is_fixed_drive(const char* path);
BOOLEAN xvt_fsys_test_disk_free_space(const char* path, unsigned long filesize);
XVTDLL unsigned long xvt_fsys_get_disk_size(const char* path, char unit);
XVTDLL unsigned long xvt_fsys_get_disk_free_space(const char* path, char unit);
XVTDLL BOOLEAN xvt_fsys_is_removable_drive(const char* path);
XVTDLL BOOLEAN xvt_fsys_is_network_drive(const char* path);
XVTDLL BOOLEAN xvt_fsys_is_fixed_drive(const char* path);
XVTDLL BOOLEAN xvt_fsys_test_disk_free_space(const char* path, unsigned long filesize);
void xvt_help_close_helpfile(XVT_HELP_INFO hi);
XVT_HELP_INFO xvt_help_open_helpfile(FILE_SPEC *fs, unsigned long flags);
BOOLEAN xvt_help_process_event(XVT_HELP_INFO hi, WINDOW win, EVENT *ev);
XVTDLL void xvt_help_close_helpfile(XVT_HELP_INFO hi);
XVTDLL XVT_HELP_INFO xvt_help_open_helpfile(FILE_SPEC *fs, unsigned long flags);
XVTDLL BOOLEAN xvt_help_process_event(XVT_HELP_INFO hi, WINDOW win, EVENT *ev);
XVT_IMAGE xvt_image_create(XVT_IMAGE_FORMAT format, short width, short height, long reserved);
void xvt_image_destroy(XVT_IMAGE image);
COLOR xvt_image_get_clut(XVT_IMAGE image, short index);
void xvt_image_get_dimensions(XVT_IMAGE image, short *width, short *height);
XVT_IMAGE_FORMAT xvt_image_get_format(XVT_IMAGE image);
short xvt_image_get_ncolors(XVT_IMAGE image);
COLOR xvt_image_get_pixel(XVT_IMAGE image, short x, short y);
XVT_IMAGE xvt_image_read(const char *filenamep);
XVT_IMAGE xvt_image_read_bmp(const char *filenamep);
void xvt_image_set_clut(XVT_IMAGE image, short index, COLOR color);
void xvt_image_set_ncolors(XVT_IMAGE image, short ncolors);
void xvt_image_set_pixel(XVT_IMAGE image, short x, short y, COLOR color);
void xvt_image_transfer(XVT_IMAGE dstimage, XVT_IMAGE srcimage, RCT *dstrctp, RCT *srcrctp);
XVTDLL XVT_IMAGE xvt_image_create(XVT_IMAGE_FORMAT format, short width, short height, long reserved);
XVTDLL void xvt_image_destroy(XVT_IMAGE image);
XVTDLL COLOR xvt_image_get_clut(XVT_IMAGE image, short index);
XVTDLL void xvt_image_get_dimensions(XVT_IMAGE image, short *width, short *height);
XVTDLL XVT_IMAGE_FORMAT xvt_image_get_format(XVT_IMAGE image);
XVTDLL short xvt_image_get_ncolors(XVT_IMAGE image);
XVTDLL COLOR xvt_image_get_pixel(XVT_IMAGE image, short x, short y);
XVTDLL XVT_IMAGE xvt_image_read(const char *filenamep);
XVTDLL XVT_IMAGE xvt_image_read_bmp(const char *filenamep);
XVTDLL void xvt_image_set_clut(XVT_IMAGE image, short index, COLOR color);
XVTDLL void xvt_image_set_ncolors(XVT_IMAGE image, short ncolors);
XVTDLL void xvt_image_set_pixel(XVT_IMAGE image, short x, short y, COLOR color);
XVTDLL void xvt_image_transfer(XVT_IMAGE dstimage, XVT_IMAGE srcimage, RCT *dstrctp, RCT *srcrctp);
DATA_PTR xvt_mem_alloc(size_t size);
void xvt_mem_free(DATA_PTR p);
DATA_PTR xvt_mem_realloc(DATA_PTR p, size_t size);
DATA_PTR xvt_mem_rep(DATA_PTR dst, DATA_PTR src, unsigned int srclen, long reps);
DATA_PTR xvt_mem_zalloc(size_t size);
XVTDLL DATA_PTR xvt_mem_alloc(size_t size);
XVTDLL void xvt_mem_free(DATA_PTR p);
XVTDLL DATA_PTR xvt_mem_realloc(DATA_PTR p, size_t size);
XVTDLL DATA_PTR xvt_mem_rep(DATA_PTR dst, DATA_PTR src, unsigned int srclen, long reps);
XVTDLL DATA_PTR xvt_mem_zalloc(size_t size);
MENU_ITEM* xvt_menu_get_tree(WINDOW win);
void xvt_menu_set_font_sel(WINDOW win, XVT_FNTID font_id);
void xvt_menu_set_item_checked(WINDOW win, MENU_TAG tag, BOOLEAN check);
void xvt_menu_set_item_enabled(WINDOW win, MENU_TAG tag, BOOLEAN enable);
void xvt_menu_set_item_title(WINDOW win, MENU_TAG tag, char* text);
void xvt_menu_set_tree(WINDOW win, MENU_ITEM* tree);
void xvt_menu_update(WINDOW win);
XVTDLL MENU_ITEM* xvt_menu_get_tree(WINDOW win);
XVTDLL void xvt_menu_set_font_sel(WINDOW win, XVT_FNTID font_id);
XVTDLL void xvt_menu_set_item_checked(WINDOW win, MENU_TAG tag, BOOLEAN check);
XVTDLL void xvt_menu_set_item_enabled(WINDOW win, MENU_TAG tag, BOOLEAN enable);
XVTDLL void xvt_menu_set_item_title(WINDOW win, MENU_TAG tag, char* text);
XVTDLL void xvt_menu_set_tree(WINDOW win, MENU_ITEM* tree);
XVTDLL void xvt_menu_update(WINDOW win);
// Added by Guy
typedef const char* TRANSLATE_CALLBACK(const char* ita);
void xvt_menu_translate_tree(WINDOW win, TRANSLATE_CALLBACK tc);
XVTDLL void xvt_menu_translate_tree(WINDOW win, TRANSLATE_CALLBACK tc);
short xvt_palet_add_colors(XVT_PALETTE palet, COLOR *colorsp, short numcolors);
short xvt_palet_add_colors_from_image(XVT_PALETTE palet, XVT_IMAGE image);
XVT_PALETTE xvt_palet_create(XVT_PALETTE_TYPE type, XVT_PALETTE_ATTR reserved);
void xvt_palet_destroy(XVT_PALETTE palet);
short xvt_palet_get_colors(XVT_PALETTE palet, COLOR *colorsp, short maxcolors);
short xvt_palet_get_ncolors(XVT_PALETTE palet);
int xvt_palet_get_tolerance(XVT_PALETTE p);
void xvt_palet_set_tolerance(XVT_PALETTE p, int t);
XVTDLL short xvt_palet_add_colors(XVT_PALETTE palet, COLOR *colorsp, short numcolors);
XVTDLL short xvt_palet_add_colors_from_image(XVT_PALETTE palet, XVT_IMAGE image);
XVTDLL XVT_PALETTE xvt_palet_create(XVT_PALETTE_TYPE type, XVT_PALETTE_ATTR reserved);
XVTDLL void xvt_palet_destroy(XVT_PALETTE palet);
XVTDLL short xvt_palet_get_colors(XVT_PALETTE palet, COLOR *colorsp, short maxcolors);
XVTDLL short xvt_palet_get_ncolors(XVT_PALETTE palet);
XVTDLL int xvt_palet_get_tolerance(XVT_PALETTE p);
XVTDLL void xvt_palet_set_tolerance(XVT_PALETTE p, int t);
void xvt_print_close(void);
BOOLEAN xvt_print_close_page(PRINT_RCD *precp);
PRINT_RCD* xvt_print_create(int *sizep);
PRINT_RCD* xvt_print_create_by_name(int* sizep, const char* name);
WINDOW xvt_print_create_win(PRINT_RCD *precp, char *title);
void xvt_print_destroy(PRINT_RCD *precp);
RCT* xvt_print_get_next_band(void);
BOOLEAN xvt_print_is_valid(PRINT_RCD *precp);
BOOLEAN xvt_print_open(void);
BOOLEAN xvt_print_start_thread (BOOLEAN (* print_fcn)(long), long data);
BOOLEAN xvt_print_open_page(PRINT_RCD *precp);
XVTDLL void xvt_print_close(void);
XVTDLL BOOLEAN xvt_print_close_page(PRINT_RCD *precp);
XVTDLL PRINT_RCD* xvt_print_create(int *sizep);
XVTDLL PRINT_RCD* xvt_print_create_by_name(int* sizep, const char* name);
XVTDLL WINDOW xvt_print_create_win(PRINT_RCD *precp, char *title);
XVTDLL void xvt_print_destroy(PRINT_RCD *precp);
XVTDLL RCT* xvt_print_get_next_band(void);
XVTDLL BOOLEAN xvt_print_is_valid(PRINT_RCD *precp);
XVTDLL BOOLEAN xvt_print_open(void);
XVTDLL BOOLEAN xvt_print_start_thread (BOOLEAN (* print_fcn)(long), long data);
XVTDLL BOOLEAN xvt_print_open_page(PRINT_RCD *precp);
// Added XVAGA
SLIST xvt_print_list_devices();
BOOLEAN xvt_print_set_default_device(const char* name);
BOOLEAN xvt_print_get_default_device(char* name, int namesize);
XVTDLL SLIST xvt_print_list_devices();
XVTDLL BOOLEAN xvt_print_set_default_device(const char* name);
XVTDLL BOOLEAN xvt_print_get_default_device(char* name, int namesize);
int xvt_rect_get_height(RCT *rctp);
int xvt_rect_get_width(RCT *rctp);
BOOLEAN xvt_rect_has_point(RCT *rctp, PNT pnt);
BOOLEAN xvt_rect_intersect(RCT *drctp, RCT *rctp1, RCT *rctp2);
BOOLEAN xvt_rect_is_empty(const RCT *rctp);
void xvt_rect_offset(RCT *rctp, short dh, short dv);
void xvt_rect_set(RCT *rctp, short left, short top, short right, short bottom);
void xvt_rect_set_empty(RCT *rctp);
BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos);
XVTDLL int xvt_rect_get_height(RCT *rctp);
XVTDLL int xvt_rect_get_width(RCT *rctp);
XVTDLL BOOLEAN xvt_rect_has_point(RCT *rctp, PNT pnt);
XVTDLL BOOLEAN xvt_rect_intersect(RCT *drctp, RCT *rctp1, RCT *rctp2);
XVTDLL BOOLEAN xvt_rect_is_empty(const RCT *rctp);
XVTDLL void xvt_rect_offset(RCT *rctp, short dh, short dv);
XVTDLL void xvt_rect_set(RCT *rctp, short left, short top, short right, short bottom);
XVTDLL void xvt_rect_set_empty(RCT *rctp);
XVTDLL BOOLEAN xvt_rect_set_pos(RCT *rctp, PNT pos);
void xvt_res_free_menu_tree(MENU_ITEM* tree);
XVT_IMAGE xvt_res_get_image(int rid);
MENU_ITEM* xvt_res_get_menu(int rid);
char* xvt_res_get_str(int rid, char *s, int sz_s);
XVTDLL void xvt_res_free_menu_tree(MENU_ITEM* tree);
XVTDLL XVT_IMAGE xvt_res_get_image(int rid);
XVTDLL MENU_ITEM* xvt_res_get_menu(int rid);
XVTDLL char* xvt_res_get_str(int rid, char *s, int sz_s);
int xvt_sbar_get_pos(WINDOW win, SCROLL_TYPE t);
int xvt_sbar_get_proportion(WINDOW win, SCROLL_TYPE t);
void xvt_sbar_get_range(WINDOW win, SCROLL_TYPE t, int *minp, int *maxp);
void xvt_sbar_set_pos(WINDOW win, SCROLL_TYPE t, int pos);
void xvt_sbar_set_proportion(WINDOW win, SCROLL_TYPE t, int proportion);
void xvt_sbar_set_range(WINDOW win, SCROLL_TYPE t, int min, int max);
XVTDLL int xvt_sbar_get_pos(WINDOW win, SCROLL_TYPE t);
XVTDLL int xvt_sbar_get_proportion(WINDOW win, SCROLL_TYPE t);
XVTDLL void xvt_sbar_get_range(WINDOW win, SCROLL_TYPE t, int *minp, int *maxp);
XVTDLL void xvt_sbar_set_pos(WINDOW win, SCROLL_TYPE t, int pos);
XVTDLL void xvt_sbar_set_proportion(WINDOW win, SCROLL_TYPE t, int proportion);
XVTDLL void xvt_sbar_set_range(WINDOW win, SCROLL_TYPE t, int min, int max);
void xvt_scr_beep(void);
WINDOW xvt_scr_get_focus_topwin(void);
WINDOW xvt_scr_get_focus_vobj(void);
SLIST xvt_scr_list_wins();
void xvt_scr_set_busy_cursor();
void xvt_scr_set_focus_vobj(WINDOW win);
XVTDLL void xvt_scr_beep(void);
XVTDLL WINDOW xvt_scr_get_focus_topwin(void);
XVTDLL WINDOW xvt_scr_get_focus_vobj(void);
XVTDLL SLIST xvt_scr_list_wins();
XVTDLL void xvt_scr_set_busy_cursor();
XVTDLL void xvt_scr_set_focus_vobj(WINDOW win);
BOOLEAN xvt_slist_add_at_elt(SLIST x, SLIST_ELT e, const char *sx, long data);
int xvt_slist_count(SLIST x);
SLIST xvt_slist_create();
void xvt_slist_destroy(SLIST list);
char* xvt_slist_get(SLIST x, SLIST_ELT e, long *datap);
long* xvt_slist_get_data(SLIST_ELT elt);
SLIST_ELT xvt_slist_get_first(SLIST list);
SLIST_ELT xvt_slist_get_next(SLIST list, SLIST_ELT item);
XVTDLL BOOLEAN xvt_slist_add_at_elt(SLIST x, SLIST_ELT e, const char *sx, long data);
XVTDLL int xvt_slist_count(SLIST x);
XVTDLL SLIST xvt_slist_create();
XVTDLL void xvt_slist_destroy(SLIST list);
XVTDLL char* xvt_slist_get(SLIST x, SLIST_ELT e, long *datap);
XVTDLL long* xvt_slist_get_data(SLIST_ELT elt);
XVTDLL SLIST_ELT xvt_slist_get_first(SLIST list);
XVTDLL SLIST_ELT xvt_slist_get_next(SLIST list, SLIST_ELT item);
char* xvt_str_duplicate(const char* str);
BOOLEAN xvt_str_match(const char* str, const char* pat, BOOLEAN case_sensitive);
XVTDLL char* xvt_str_duplicate(const char* str);
XVTDLL BOOLEAN xvt_str_match(const char* str, const char* pat, BOOLEAN case_sensitive);
// System calls by XVAGA
void xvt_sys_beep(int severity);
long xvt_sys_execute(const char* cmdline, BOOLEAN sync, BOOLEAN iconizetask);
long xvt_sys_execute_in_window(const char* cmdline, WINDOW win);
BOOLEAN xvt_sys_dongle_server_is_running();
BOOLEAN xvt_sys_find_editor(const char* file, char* editor, int editorsize);
int xvt_sys_get_profile_string(const char* file, const char* paragraph, const char* name,
XVTDLL void xvt_sys_beep(int severity);
XVTDLL long xvt_sys_execute(const char* cmdline, BOOLEAN sync, BOOLEAN iconizetask);
XVTDLL long xvt_sys_execute_in_window(const char* cmdline, WINDOW win);
XVTDLL BOOLEAN xvt_sys_get_host_name(char* name, int maxlen);
XVTDLL BOOLEAN xvt_sys_get_user_name(char* name, int maxlen);
XVTDLL BOOLEAN xvt_sys_goto_url(const char* url, const char* action);
XVTDLL BOOLEAN xvt_sys_dongle_server_is_running();
XVTDLL BOOLEAN xvt_sys_find_editor(const char* file, char* editor, int editorsize);
XVTDLL int xvt_sys_get_profile_string(const char* file, const char* paragraph, const char* name,
const char* defval, char* value, int maxsize);
BOOLEAN xvt_sys_set_profile_string(const char* file, const char* paragraph, const char* name,
XVTDLL BOOLEAN xvt_sys_set_profile_string(const char* file, const char* paragraph, const char* name,
const char* value);
unsigned long xvt_sys_get_free_memory();
unsigned long xvt_sys_get_free_memory_kb();
int xvt_sys_get_os_version();
unsigned int xvt_sys_load_icon(const char* file);
void xvt_sys_sleep(unsigned long msec);
BOOLEAN xvt_sys_test_network_version();
XVTDLL unsigned long xvt_sys_get_free_memory();
XVTDLL unsigned long xvt_sys_get_free_memory_kb();
XVTDLL int xvt_sys_get_os_version();
XVTDLL unsigned int xvt_sys_load_icon(const char* file);
XVTDLL void xvt_sys_sleep(unsigned long msec);
XVTDLL BOOLEAN xvt_sys_test_network_version();
long xvt_timer_create(WINDOW win, long interval);
void xvt_timer_destroy(long id);
XVTDLL long xvt_timer_create(WINDOW win, long interval);
XVTDLL void xvt_timer_destroy(long id);
void xvt_vobj_destroy(WINDOW win);
long xvt_vobj_get_attr(WINDOW win, long data);
RCT* xvt_vobj_get_client_rect(WINDOW win, RCT *rctp);
long xvt_vobj_get_data(WINDOW win);
RCT* xvt_vobj_get_outer_rect(WINDOW win, RCT *rctp);
XVT_PALETTE xvt_vobj_get_palet(WINDOW win);
WINDOW xvt_vobj_get_parent(WINDOW win);
char* xvt_vobj_get_title(WINDOW win, char *title, int sz_title);
WIN_TYPE xvt_vobj_get_type(WINDOW win);
void xvt_vobj_maximize(WINDOW win); // Added by XVAGA
void xvt_vobj_minimize(WINDOW win); // Added by XVAGA
void xvt_vobj_move(WINDOW win, RCT *rctp);
void xvt_vobj_raise(WINDOW win);
void xvt_vobj_set_attr(WINDOW win, long data, long value);
void xvt_vobj_set_data(WINDOW win, long AppData);
void xvt_vobj_set_enabled(WINDOW win, BOOLEAN enabled);
void xvt_vobj_set_palet(WINDOW win, XVT_PALETTE palet);
void xvt_vobj_set_title(WINDOW win, char *title);
void xvt_vobj_set_visible(WINDOW win, BOOLEAN show);
void xvt_vobj_translate_points(WINDOW from_win, WINDOW to_win, PNT *pntp, int npnts);
XVTDLL void xvt_vobj_destroy(WINDOW win);
XVTDLL long xvt_vobj_get_attr(WINDOW win, long data);
XVTDLL RCT* xvt_vobj_get_client_rect(WINDOW win, RCT *rctp);
XVTDLL long xvt_vobj_get_data(WINDOW win);
XVTDLL RCT* xvt_vobj_get_outer_rect(WINDOW win, RCT *rctp);
XVTDLL XVT_PALETTE xvt_vobj_get_palet(WINDOW win);
XVTDLL WINDOW xvt_vobj_get_parent(WINDOW win);
XVTDLL char* xvt_vobj_get_title(WINDOW win, char *title, int sz_title);
XVTDLL WIN_TYPE xvt_vobj_get_type(WINDOW win);
XVTDLL void xvt_vobj_maximize(WINDOW win); // Added by XVAGA
XVTDLL void xvt_vobj_minimize(WINDOW win); // Added by XVAGA
XVTDLL void xvt_vobj_move(WINDOW win, RCT *rctp);
XVTDLL void xvt_vobj_raise(WINDOW win);
XVTDLL void xvt_vobj_set_attr(WINDOW win, long data, long value);
XVTDLL void xvt_vobj_set_data(WINDOW win, long AppData);
XVTDLL void xvt_vobj_set_enabled(WINDOW win, BOOLEAN enabled);
XVTDLL void xvt_vobj_set_palet(WINDOW win, XVT_PALETTE palet);
XVTDLL void xvt_vobj_set_title(WINDOW win, char *title);
XVTDLL void xvt_vobj_set_visible(WINDOW win, BOOLEAN show);
XVTDLL void xvt_vobj_translate_points(WINDOW from_win, WINDOW to_win, PNT *pntp, int npnts);
WINDOW xvt_win_create(WIN_TYPE wtype, RCT *rct_p, char *title, int menu_rid, WINDOW parent_win, long win_flags, EVENT_MASK mask, EVENT_HANDLER eh, long app_data);
long xvt_win_dispatch_event(WINDOW win, EVENT* event_p);
void xvt_win_post_event(WINDOW win, EVENT* event_p); // Added by XVAGA
void xvt_win_release_pointer(void);
void xvt_win_set_caret_size(WINDOW win, int width, int height);
void xvt_win_set_caret_pos(WINDOW win, PNT p);
void xvt_win_set_caret_visible(WINDOW win, BOOLEAN on);
void xvt_win_set_cursor(WINDOW win, CURSOR Cursor);
void xvt_win_set_handler(WINDOW win, EVENT_HANDLER eh);
void xvt_win_trap_pointer(WINDOW win);
XVTDLL WINDOW xvt_win_create(WIN_TYPE wtype, RCT *rct_p, char *title, int menu_rid, WINDOW parent_win, long win_flags, EVENT_MASK mask, EVENT_HANDLER eh, long app_data);
XVTDLL long xvt_win_dispatch_event(WINDOW win, EVENT* event_p);
XVTDLL void xvt_win_post_event(WINDOW win, EVENT* event_p); // Added by XVAGA
XVTDLL void xvt_win_release_pointer(void);
XVTDLL void xvt_win_set_caret_size(WINDOW win, int width, int height);
XVTDLL void xvt_win_set_caret_pos(WINDOW win, PNT p);
XVTDLL void xvt_win_set_caret_visible(WINDOW win, BOOLEAN on);
XVTDLL void xvt_win_set_cursor(WINDOW win, CURSOR Cursor);
XVTDLL void xvt_win_set_handler(WINDOW win, EVENT_HANDLER eh);
XVTDLL void xvt_win_trap_pointer(WINDOW win);
#ifdef __cplusplus
}