Zum Hauptinhalt springen

c16.h

c16.h Header-Datei von CONZEPT 16

/************************************************************************/
/* */
/* Project : CONZEPT 16 */
/* Project ID : C16.ALL */
/* */
/* Program : CONZEPT 16 PROGRAMMING INTERFACE - TYPES */
/* Revision : 5.9.01 */
/* FileName : c16.h */
/* */
/************************************************************************/

#if !defined(INCL_C16_TYPES)
#define INCL_C16_TYPES

#ifdef __cplusplus
extern "C"
{
#endif

/****************************************************************************/
/* */
/* BASIC TYPES (only for 32/64-Bit environment) */
/* */
/****************************************************************************/

#ifndef INCL_S_DEFINE /* - internal - */

#ifdef LNX
#include <inttypes.h>
#endif

#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef NULL
#define NULL 0
#endif

typedef unsigned short vWORD; /* 16 bit unsigned */
typedef signed short vWORDs; /* 16 bit signed */
typedef unsigned int vLONG; /* 32 bit unsigned */
typedef signed int vLONGs; /* 32 bit signed */
#ifdef LNX
typedef uint64_t vXLONG; /* 64 bit unsigned */
typedef int64_t vXLONGs; /* 64 bit signed */
#else
typedef unsigned __int64 vXLONG; /* 64 bit unsigned */
typedef signed __int64 vXLONGs; /* 64 bit signed */
#endif

#ifdef _CHAR_UNSIGNED
typedef char vCHAR; /* 8 bit unsigned */
typedef char vBYTE; /* 8 bit unsigned */
#else
typedef unsigned char vCHAR; /* 8 bit unsigned */
typedef unsigned char vBYTE; /* 8 bit unsigned */
#endif

typedef signed char vBYTEs; /* 8 bit signed */
typedef unsigned int vINT; /* natural unsigned */
typedef signed int vINTs; /* natural signed */

typedef vINT vBOOL; /* native boolean */
typedef vBYTE vBOOL8; /* 8 bit boolean */
typedef vWORD vBOOL16; /* 16 bit boolean */
typedef vLONG vBOOL32; /* 32 bit boolean */

typedef double vFLOAT; /* 64-bit floating point */
#ifdef _WIN64
typedef unsigned __int64 vPTR; /* 64-bit pointer */
#else
typedef unsigned long vPTR; /* 32-bit pointer */
#endif

typedef signed int vNHANDLE; /* 16/32-bit handle */
typedef vPTR vPHANDLE; /* 32/64-bit handle */
typedef vINTs vERROR; /* error result */
typedef vLONG vFLAGS; /* flag type */

// Structure of _TypeDecimal
typedef struct
{
vBYTE length;
vBYTE sign;
vBYTEs exponent;
vBYTE mantissa[29];
}
vDECIMAL;

// Structure of _TypeDate
typedef struct
{
vBYTE y; // year
vBYTE m; // month
vBYTE d; // day
vBYTE c; // unused
}
vDATE;

// Structure of _TypeTime
typedef struct
{
vBYTE h; // hours
vBYTE m; // minutes
vBYTE s; // seconds
vBYTE c; // centiseconds
}
vTIME;

// Structure of _TypeCaltime
typedef struct
{
vLONG year;
vLONG month;
vLONG day;
vLONG hours;
vLONG minutes;
vLONG seconds;
vLONG milliseconds;

vLONG leap_year;
vLONG week_year;
vLONG week;
vLONG day_of_week;
vLONGs bias_minutes;
}
vCALTIME;

// Structure of _TypePoint
typedef struct
{
vLONGs x;
vLONGs y;
}
vPOINT;

// Structure of _TypeRect
typedef struct
{
vLONGs left;
vLONGs top;
vLONGs right;
vLONGs bottom;
}
vRECT;

#endif

/****************************************************************************/
/* - compiler specific - */
/****************************************************************************/

#if defined(__BORLANDC__)
# define C16API vERROR __stdcall __import
#else
# if (_MSC_VER > 0)
# define C16API extern vERROR __stdcall
# else
# define C16API extern vERROR
# endif
#endif

/****************************************************************************/
/* */
/* ERROR VALUES */
/* */
/****************************************************************************/

#define C16ERR_OK 0

#define C16ERR_GENERIC -1
#define C16ERR_TIMEOUT -2
#define C16ERR_MEM_EXHAUSTED -12
#define C16ERR_MEM_DAMAGED -13

#define C16ERR_FSI_NO_FILE -20
#define C16ERR_FSI_NO_PATH -21
#define C16ERR_FSI_TOO_MANY_OPEN -22
#define C16ERR_FSI_ACCESS_DENIED -23
#define C16ERR_FSI_INVALID_HANDLE -24
#define C16ERR_FSI_INVALID_DRIVE -25
#define C16ERR_FSI_CURRENT_DIR -26
#define C16ERR_FSI_SHARING_VIOLATION -27
#define C16ERR_FSI_LOCK_VIOLATION -28
#define C16ERR_FSI_OPEN_FAILED -29
#define C16ERR_FSI_READ_FAULT -31
#define C16ERR_FSI_WRITE_FAULT -32
#define C16ERR_FSI_OTHER -39

#define C16ERR_LDM_BASE -100
#define C16ERR_LDM_BEGIN -101
#define C16ERR_LDM_END -190
#define C16ERR_LDM_INVALID -191
#define C16ERR_LDM_TYPE_INVALID -192

#define C16ERR_INIT_FAILED -201
#define C16ERR_MODULE_HDL_INVALID -202
#define C16ERR_INSTANCE_HDL_INVALID -203
#define C16ERR_BUFFER_HDL_INVALID -204
#define C16ERR_FUNCTION_NOT_AVAILABLE -205
#define C16ERR_NO_MULTIPLE_INSTANCES -206
#define C16ERR_TEXT_HDL_INVALID -207
#define C16ERR_SEL_HDL_INVALID -208
#define C16ERR_BIN_HDL_INVALID -209

#define C16ERR_OUT_OF_MEMORY -301
#define C16ERR_COMM_FAILED -302
#define C16ERR_SERVER_OP -303
#define C16ERR_SERVER_ASYNC -304

#define C16ERR_NO_SERVER_CONNECTION -401
#define C16ERR_AREA_NOT_FOUND -402
#define C16ERR_AREA_OPEN -403
#define C16ERR_AREA_LOCKED -404
#define C16ERR_AREA_IN_USE -405
#define C16ERR_AREA_TYPE -406
#define C16ERR_AREA_PASSWORD -407
#define C16ERR_SERVER_USER_LIMIT -408
#define C16ERR_SERVER_START -409
#define C16ERR_USER_PASSWORD -410
#define C16ERR_DATA_STRUCTURE -411
#define C16ERR_PGIF_USER_LIMIT -412
#define C16ERR_USER_INVALID -413
#define C16ERR_USER_SELF -414
#define C16ERR_USER_SHM -415
#define C16ERR_AREA_STANDBY -416
#define C16ERR_AREA_ROLLBACK -417

#define C16ERR_AREA_LOCKED_ADMIN -418
#define C16ERR_AREA_LOCKED_OPERATION -419
#define C16ERR_AREA_LOCKED_DOWN -420
#define C16ERR_AREA_LOCKED_STANDBY -421
#define C16ERR_AREA_LOCKED_ROLLBACK -422
#define C16ERR_AREA_LOCKED_OPEN -423
#define C16ERR_AREA_LOCKED_NO_STANDBY_OPEN -424

#define C16ERR_INFO_BLOCKSIZE_INVALID -501

#define C16ERR_NO_FILE -601
#define C16ERR_NO_SBR -602
#define C16ERR_NO_FLD -603
#define C16ERR_NO_KEY -604
#define C16ERR_NO_KEY_FLD -605
#define C16ERR_NO_LINK -606
#define C16ERR_NO_LINK_FLD -607
#define C16ERR_NO_FLD_DATA -608
#define C16ERR_LINK_INVALID -609
#define C16ERR_LOAD_DS -610
#define C16ERR_PROC -611

#define C16ERR_NO_ARGUMENT -620
#define C16ERR_ARGUMENT_UNDEFINED -621
#define C16ERR_ARGUMENT_READ_ONLY -622

#define C16ERR_TEXT_NAME_INVALID -701
#define C16ERR_TEXT_RIGHTS -702
#define C16ERR_TEXT_UNDEFINED -703
#define C16ERR_TEXT_GROUP_INVALID -704

#define C16ERR_SEL_FILE_INVALID -801
#define C16ERR_SEL_NAME_INVALID -802

#define C16ERR_BIN_NAME_INVALID -851
#define C16ERR_BIN_NO_PATH -852
#define C16ERR_BIN_NO_DATA -853
#define C16ERR_BIN_DATA_ERR -854
#define C16ERR_BIN_DECRYPTION -855
#define C16ERR_BIN_OPERATION -856
#define C16ERR_BIN_DIR_NOT_EMPTY -857

#define C16ERR_DIAG_DEFECT -901
#define C16ERR_DIAG_REPAIRED -902
#define C16ERR_DIAG_CORRECTED -903
#define C16ERR_DIAG_STARTED -904
#define C16ERR_DIAG_MEMORY -905
#define C16ERR_DIAG_READ_ONLY -906
#define C16ERR_DIAG_SEQUENCE -907
#define C16ERR_DIAG_OTHER -908

#define C16ERR_VRA_MISSING -1001

// token table
#define C16ERR_PCDT_UNDEF -1100
#define C16ERR_PCDT_VERSION -1101
#define C16ERR_PCDT_READ -1102
#define C16ERR_PCDT_NOMEM -1103

// procedure handling
#define C16ERR_PCDC_PRC_NOT_FOUND -1104
#define C16ERR_PCDC_PRC_LOCKED -1105

// compiler
#define C16ERR_PCDC_CODE_OVERFLOW -1106
#define C16ERR_PCDC_CONST_VAL -1107
#define C16ERR_PCDC_EOF -1108
#define C16ERR_PCDC_EXPR_NOT_CONST -1109
#define C16ERR_PCDC_INCOMPLETE_DEF -1110
#define C16ERR_PCDC_INV_ARG_TYPE -1111
#define C16ERR_PCDC_INV_CHAR -1112
#define C16ERR_PCDC_INV_CONST -1113
#define C16ERR_PCDC_INV_EXPR_TYPE -1114
#define C16ERR_PCDC_INV_LABEL -1115
#define C16ERR_PCDC_INV_NAME -1116
#define C16ERR_PCDC_INV_OP_TYPE -1117
#define C16ERR_PCDC_INV_SECTION -1118
#define C16ERR_PCDC_INV_STATE -1119
#define C16ERR_PCDC_INV_WORD -1120
#define C16ERR_PCDC_LABEL_UNDEFINED -1121
#define C16ERR_PCDC_LESS_ARGS -1122
#define C16ERR_PCDC_LINE_OVERFLOW -1123
#define C16ERR_PCDC_META -1124
#define C16ERR_PCDC_NAME_TOO_LONG -1125
#define C16ERR_PCDC_NAME_UNKNOWN -1126
#define C16ERR_PCDC_NO_ARGS -1127
#define C16ERR_PCDC_NO_ASSIGN -1128
#define C16ERR_PCDC_NO_BEGIN -1129
#define C16ERR_PCDC_NO_BRA -1130
#define C16ERR_PCDC_NO_COMMA -1131
#define C16ERR_PCDC_NO_DO -1132
#define C16ERR_PCDC_NO_END_CASE -1133
#define C16ERR_PCDC_NO_LOOP -1134
#define C16ERR_PCDC_NO_OF -1135
#define C16ERR_PCDC_NO_OPERAND -1136
#define C16ERR_PCDC_NO_PARA -1137
#define C16ERR_PCDC_NO_SEMI -1138
#define C16ERR_PCDC_NO_STATE -1139
#define C16ERR_PCDC_NO_WHILE -1140
#define C16ERR_PCDC_OPN_COMMENT -1141
#define C16ERR_PCDC_PROC_UNKNOWN -1142
#define C16ERR_PCDC_TOO_MANY_ARGS -1143
#define C16ERR_PCDC_TYPE_UNKNOWN -1144
#define C16ERR_PCDC_UNEQ_OPS -1145
#define C16ERR_PCDC_DATA_OVERFLOW -1146
#define C16ERR_PCDC_NO_COLON -1147
#define C16ERR_PCDC_FLD_NOT_FOUND -1148
#define C16ERR_PCDC_NO_THEN -1149
#define C16ERR_PCDC_NO_CASE -1150
#define C16ERR_PCDC_PROC_UNDEFINED -1151
#define C16ERR_PCDC_VAR_MISMATCH -1152
#define C16ERR_PCDC_INV_PROPERTY -1153
#define C16ERR_PCDC_NO_ENDIF -1154

/************************************************************************/
/* - P-CODE INFORMATION ERRORS - */
/************************************************************************/

// not catchable

#define C16ERR_PCDI_CONNECTION_LOST -1159
#define C16ERR_PCDI_STACK_OVERFLOW -1160
#define C16ERR_PCDI_CODE_MISSING -1161
#define C16ERR_PCDI_CODE_UNKNOWN -1162
#define C16ERR_PCDI_DEBUG_TERM -1163
#define C16ERR_PCDI_MEM_EXHAUST -1164
#define C16ERR_PCDI_VAR_OVERFLOW -1165
#define C16ERR_PCDI_SERVER_TERM -1166
#define C16ERR_PCDI_CALL_OLD -1169

// catchable

#define C16ERR_PCDI_INF_NOT_FOUND -1170
#define C16ERR_PCDI_GLB_NOT_FOUND -1171
#define C16ERR_PCDI_DSP_DIFFERS -1172
#define C16ERR_PCDI_DSP_NULL -1173

#define C16ERR_PCDI_SUB_NOT_FOUND -1174
#define C16ERR_PCDI_ARG_NOT_SAME -1175

#define C16ERR_PCDI_FLD_NOT_FOUND -1176
#define C16ERR_PCDI_FLD_TYPE_WRONG -1177

#define C16ERR_PCDI_ARR_IDX -1178
#define C16ERR_PCDI_VAL_OVERFLOW -1179
#define C16ERR_PCDI_STR_OVERFLOW -1180

#define C16ERR_PCDI_DIV_ZERO -1181
#define C16ERR_PCDI_MATH_ARG -1182
#define C16ERR_PCDI_RANGE -1183

#define C16ERR_PCDI_FSC_NOT_FOUND -1184
#define C16ERR_PCDI_SBR_NOT_FOUND -1185
#define C16ERR_PCDI_KEY_NOT_FOUND -1186
#define C16ERR_PCDI_LNK_NOT_FOUND -1187

#define C16ERR_PCDI_VAL_INVALID -1188

#define C16ERR_PCDI_KEYFLD_NOT_FOUND -1189
#define C16ERR_PCDI_LNKFLD_NOT_FOUND -1190

#define C16ERR_PCDI_HANDLE_INVALID -1191
#define C16ERR_PCDI_MISSING_ARG -1192
#define C16ERR_PCDI_LNK_INVALID -1193
#define C16ERR_PCDI_FSC_INVALID -1194

#define C16ERR_PCDI_SEL_VALSET -1195
#define C16ERR_PCDI_SEL_SORT -1196
#define C16ERR_PCDI_SEL_SAME -1197

#define C16ERR_PCDI_ARG_NO_ARRAY -1198
#define C16ERR_PCDI_PROPERTY_INVALID -1199
#define C16ERR_PCDI_DECIMAL_OP -1200
#define C16ERR_PCDI_CNV -1201

#define C16ERR_PCDI_FRM_DIFFERS -1202
#define C16ERR_PCDI_FRM_NOT_FOUND -1203
#define C16ERR_PCDI_DEADLOCK -1206

#define C16ERR_LICENSE_SRVNOTSUPPORTED -2001
#define C16ERR_LICENSE_CLNUPGRADE -2002
#define C16ERR_LICENSE_CLNNOTSUPPORTED -2003
#define C16ERR_LICENSE_COMM -2004
#define C16ERR_LICENSE_DATA -2005
#define C16ERR_LICENSE_INVALID -2006
#define C16ERR_LICENSE_MISMATCH_EVAL -2007
#define C16ERR_LICENSE_ENDOFLIFE -2008
#define C16ERR_LICENSE_ENDOFLIFE_EVAL -2009

/****************************************************************************/
/* */
/* RESULT CODES */
/* */
/****************************************************************************/

#define C16RES_ASYNC_RUNNING 1 /* async operation is running */
#define C16RES_ASYNC_TERM 2 /* async operation terminated */
#define C16RES_ASYNC_BREAK 3 /* async operation canceled */

/****************************************************************************/
/* */
/* CONSTANTS */
/* */
/****************************************************************************/

#define _TypeAlpha 1
#define _TypeDate 2
#define _TypeByte 3
#define _TypeWord 4
#define _TypeDecimal 5
#define _TypeMemo 6
#define _TypeInt 7
#define _TypeBigInt 8
#define _TypeFloat 9
#define _TypeLogic 10
#define _TypeTime 11

#define _TypeCaltime 0x14
#define _TypePoint 0x20
#define _TypeRect 0x21
#define _TypeHandle 0x24

#define _ArgOptVAR 0x40
#define _ArgOptARRAY 0x80

#define _FileAttrOemMark 0x01
#define _FileAttrTemp 0x02
#define _FileAttrEncrypted 0x04
#define _FileAttrId64 0x08
#define _FileAttrSeqInsert 0x10
#define _FileAttrFldBuf 0x20
#define _FileAttrRecModified 0x40

#define _KeyFldAttrUpperCase 0x02
#define _KeyFldAttrUmlaut 0x04
#define _KeyFldAttrSpecialChars 0x08
#define _KeyFldAttrSoundex1 0x10
#define _KeyFldAttrSoundex2 0x20
#define _KeyFldAttrReverse 0x40

#define _LinkFldAttrUpperCase 0x02
#define _LinkFldAttrUmlaut 0x04
#define _LinkFldAttrSpecialChars 0x08
#define _LinkFldAttrSoundex1 0x10
#define _LinkFldAttrSoundex2 0x20
#define _LinkFldAttrReverse 0x40
#define _LinkFldAttrPosition 0x80

#define _FmtNone 0x00
#define _FmtTSep 0x01
#define _FmtZeroSupr 0x02
#define _FmtPlusSign 0x04
#define _FmtDateLongYear 0x08
#define _FmtTimeSeconds 0x10
#define _FmtTimeHSeconds 0x20

#define _FldExc_Binary 0x00
#define _FldExc_Character 0x01
#define _FldExc_RawData 0x02
#define _FldExc_CharSet_C16 0
#define _FldExc_CharSet_OEM 1
#define _FldExc_CharSet_ANSI 2

#define _rOk 0
#define _rLocked 1
#define _rMultiKey 2
#define _rNoKey 3
#define _rLastRec 4
#define _rNoRec 5
#define _rExists 6
#define _rNoLock 7
#define _rNoRights 9
#define _rDeadlock 10
#define _rLimitReached 11

#define _RecFirst 0x00000001
#define _RecLast 0x00000002
#define _RecPrev 0x00000003
#define _RecNext 0x00000004
#define _RecPos 0x00000005
#define _RecLock 0x00000008
#define _RecForceLock 0x00000010
#define _RecCheckLock 0x00000018
#define _RecUnlock 0x00000020
#define _RecSingleLock 0x00000028
#define _RecSharedLock 0x00000030
#define _RecTest 0x00000040
#define _RecNoLoad 0x00000080
#define _RecKeyReverse 0x00200000

#define _RecCount 0
#define _RecCountPos 5
#define _RecCountNext 6
#define _RecID 1
#define _RecLen 2
#define _RecLockedBy 3
#define _RecGetPos 4
#define _RecSetID 7
#define _RecGetPosReverse 8
#define _RecGetPrime 9
#define _RecLenPacked 10
#define _RecLastChange 14

#define _TextFirst 0x00001
#define _TextLast 0x00002
#define _TextPrev 0x00003
#define _TextNext 0x00004
#define _TextLock 0x00008
#define _TextUnlock 0x00020
#define _TextBinary 0x00100
#define _TextAppend 0x00200
#define _TextSingleLine 0x00400

#define _TextEolNull 0x00000
#define _TextEolCR 0x01000
#define _TextEolLF 0x02000
#define _TextEolCRLF 0x03000
#define _Text_CharSet_C16 0x00000
#define _Text_CharSet_OEM 0x10000
#define _Text_CharSet_ANSI 0x20000

#define _SelFirst 0x01
#define _SelLast 0x02
#define _SelPrev 0x03
#define _SelNext 0x04
#define _SelLock 0x08
#define _SelUnlock 0x20
#define _SelSharedLock 0x30
#define _SelKeyMode 0x10000000
#define _SelKeyUpdate 0x20000000

#define _SelSort 0
#define _SelCount 1
#define _SelCountD 2
#define _SelFile 3
#define _SelRecCount 4

#define _BinFirst 0x0001
#define _BinLast 0x0002
#define _BinPrev 0x0003
#define _BinNext 0x0004
#define _BinLock 0x0008
#define _BinSharedLock 0x0030
#define _BinSingleLock 0x0028

#define _BinCreate 0x1000
#define _BinDirectory 0x2000
#define _BinDeleteAll 0x4000
#define _BinClearOnly 0x8000
#define _BinCreateNew 0x9000

#define _PgifType_Client 0x0001 /* Client-type */
#define _PgifType_Protocol_16 0x0080 /* 16-bit protocols */
#define _PgifType_Win32 0x0100 /* Windows 32-Bit */
#define _PgifType_OS2 0x0200 /* OS/2 32-Bit */
#define _PgifType_Win64 0x0300 /* Windows 64-Bit */

#define _ProtocolSPX 1 /* IPX/SPX */
#define _ProtocolTCP 2 /* TCP/IP */
#define _ProtocolNPS 4 /* Named Pipes */
#define _ProtocolSHM 5 /* Shared Memory */

#define _AreaOpen 0x00000200 /* area is open */
#define _AreaStandby 0x00010000 /* area in standby mode */
#define _AreaReadOnly 0x00020000 /* area is read-only */
#define _AreaBackup 0x00040000 /* area backup event */
#define _AreaDiag 0x00080000 /* area diagnose running */
#define _AreaUpdate 0x00200000 /* area update running */
#define _AreaLock 0x00400000 /* area is locked */
#define _AreaDisabled 0x01000000 /* area optimize running */

#define _DiagExtended 0x0010 /* full sort analysis */
#define _DiagRecover 0x0001 /* repair defects */
#define _DiagKeyReference 0x0002 /* test key integrity */

#define _DiagMode_None 0x0000 /* no action */
#define _DiagMode_Read1 0x0001 /* read pass 1 */
#define _DiagMode_Recover 0x0002 /* recover pass */
#define _DiagMode_Read2 0x0003 /* read pass 2 */
#define _DiagMode_Primes 0x0004 /* test prime counters */
#define _DiagMode_KeyRef 0x0005 /* key reference pass */
#define _DiagMode_End 0x0008 /* all passes completed */

#define _DiagRes_End 0
#define _DiagRes_TreeCollision 1
#define _DiagRes_FreeSpace 2
#define _DiagRes_Tree 3
#define _DiagRes_Prime 4
#define _DiagRes_File 5
#define _DiagRes_Key 6
#define _DiagRes_Time 7

#define _DiagResF_Defect 0x01
#define _DiagResF_Repaired 0x02
#define _DiagResF_Collisions 0x04
#define _DiagResF_RefError 0x08
#define _DiagResF_RefCorrected 0x10
#define _DiagResF_Incomplete 0x20
#define _DiagResF_Extensions 0x80

#define _OpenMode5x 0xFFFF0001

/****************************************************************************/
/* */
/* STRUCTURES */
/* */
/****************************************************************************/

/* file information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT FileNumber; /* filenumber */
vINT FileMaster; /* master filenumber */
vINT FileSbrCount; /* # of subrecords */
vINT FileKeyCount; /* # of keys */
vINT FileLinkCount; /* # of links */
vCHAR FileName[24]; /* filename */
vINT FileAttributes; /* attributes (_FileAttr..., optional) */
}
vC16_FileInfo;

/* subrecord information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT SbrFileNumber; /* subrecord filenumber */
vINT SbrNumber; /* subrecord number */
vBOOL SbrStatus; /* subrecord active status */
vINT SbrFldCount; /* # of fields */
vCHAR SbrName[24]; /* subrecord name */
}
vC16_SbrInfo;

/* field information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT FldFileNumber; /* field filenumber */
vINT FldSbrNumber; /* field subrecord number */
vINT FldNumber; /* field number */

vBYTE FldType; /* field type */
vBYTE FldLen; /* field length */
vBYTE FldInputRight;
vBYTE FldOutputRight;

vCHAR FldName[24]; /* field name */
}
vC16_FldInfo;

/* field information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT FldFileNumber; /* field filenumber */
vINT FldSbrNumber; /* field subrecord number */
vINT FldNumber; /* field number */
vINT FldLen; /* field length */
vINT FldAttribute; /* field attribute */

vBYTE FldType; /* field type */
vBYTE FldInputRight;
vBYTE FldOutputRight;
vBYTE FldStatus;

vCHAR FldName[24]; /* field name */
}
vC16_FldInfoExt;

/* key information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT KeyFileNumber; /* key filenumber */
vINT KeyNumber; /* key number */
vINT KeyFldCount; /* # of fields */
vBOOL KeyIsUnique; /* # of fields */
vCHAR KeyName[24]; /* key name */
vINT KeyMaxLen; /* max. length of key (optional) */
}
vC16_KeyInfo;

/* key field information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT KeyFldFileNumber; /* keyfield filenumber */
vINT KeyFldSbrNumber; /* keyfield subrecord no. */
vINT KeyFldNumber; /* keyfield field number */
vBYTE KeyFldType; /* keyfield type */
vBYTE KeyFldAttributes; /* keyfield attributes */
vBYTE KeyFldMaxLen; /* max. length of keyfield */
vBYTE reserved; /* */
vCHAR KeyFldName[24]; /* keyfield name */
}
vC16_KeyFldInfo;

/* link information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT LinkFileNumber; /* link filenumber */
vINT LinkNumber; /* link number */
vINT LinkFldCount; /* # of fields */
vINT LinkDestFileNumber; /* link destination file no. */
vINT LinkDestKeyNumber; /* link destination key no. */
vCHAR LinkName[24]; /* link name */
}
vC16_LinkInfo;

/* link field information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT LinkFldFileNumber; /* linkfield filenumber */
vINT LinkFldSbrNumber; /* linkfield subrecord no. */
vINT LinkFldNumber; /* linkfield field number */
vBYTE LinkFldType; /* linkfield type */
vBYTE LinkFldAttributes; /* linkfield attributes */
vBYTE LinkFldMaxLen; /* max. length of linkfield */
vBYTE reserved; /* */
vCHAR LinkFldName[24]; /* linkfield name */
}
vC16_LinkFldInfo;

/* text header information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

/* read only elements */

vCHAR TextName[24]; /* name of text */
vCHAR TextPrivUser[24]; /* private text user name */
vCHAR TextCreateUser[24]; /* creation user name */
vCHAR TextModifiedUser[24]; /* last modification user name */

vDATE TextCreateDate; /* creation date */
vTIME TextCreateTime; /* creation time */
vDATE TextModifiedDate; /* last modification date */
vTIME TextModifiedTime; /* last modification time */

vLONG TextSize; /* size in bytes */
vLONG TextLines; /* number of lines */

/* changeable elements */

vCHAR TextGroup[24]; /* text group name */
vINT TextReadPL; /* read permission level */
vINT TextWritePL; /* write permission level */
vBOOL TextPrivate; /* text is private */
vBOOL TextEncrypted; /* text is encrypted */
}
vC16_TextInfo;

/* selection header information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vCHAR SelName[24]; /* name of selection */
vCHAR SelModifiedUser[24]; /* last modification user name */

vDATE SelCreateDate; /* creation date */
vTIME SelCreateTime; /* creation time */
vDATE SelModifiedDate; /* last modification date */
vTIME SelModifiedTime; /* last modification time */
vDATE SelExecuteDate; /* last execution date */
vTIME SelExecuteTime; /* last execution time */

vINT SelModifyPL; /* modify permission level */
vINT SelExecutePL; /* execute permission level */
}
vC16_SelInfo;

/* interface information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT PgifType; /* type of interface */
vCHAR PgifLicense[20]; /* license number */
vCHAR PgifRelease[8]; /* release info */
vINT PgifUserLimit; /* user limit */
vINT PgifMemory; /* current allocated memory */
vINT PgifMemoryPeak; /* peak allocated memory */
}
vC16_PgifInfo;

/* server information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vCHAR ServerName[64]; /* server host name */
vCHAR ServerType[48]; /* type of server */
vCHAR ServerLicense[20]; /* server license */
vCHAR ServerRelease[8]; /* server release */
vINT ServerProtocol; /* used protocol */
vINT ServerUserLimit; /* server user limit */
}
vC16_ServerInfo;

/* data area information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT UserID; /* current user id */
vINT UserNumber; /* current user number */

vINT AreaID; /* area release info */
vLONG AreaSize; /* size of area (KB) */
vLONG AreaFree; /* free area space (KB) */
vINT AreaUserCount; /* current number of users */
vLONG AreaStatusFlags; /* area status flags */
vLONG AreaRemBackupTime; /* remaining backup time (seconds) */

vCHAR AreaName[128]; /* area filename */
}
vC16_AreaInfo;

/* user information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vINT ID; /* user id */
vINT Number; /* user number */
vINT Protocol; /* network protocol */

vLONG FirstReq; /* seconds since login */
vDATE FirstReqDate; /* login date */
vTIME FirstReqTime; /* login time */
vLONG LastReq; /* seconds since last req. */
vDATE LastReqDate; /* last request date */
vTIME LastReqTime; /* last request time */

vCHAR Name[24]; /* user name */
vCHAR SysName[64]; /* machine name */
vCHAR SysNameIP[64]; /* host name */
vCHAR Address[48]; /* network address */

vCHAR SysAccount[64]; /* system account name */
}
vC16_UserInfo;

#pragma pack(push,8)

/* key reorganisation progress information structure */
typedef struct
{
vINT InfoSize; /* size of information block */

vXLONG RecID; /* current record ID */
vLONG KeyCount; /* current key counter */
vLONG RecErrorCount; /* number of defective records */
vLONG KeyErrorCount; /* number of key collisions */

vLONG Result; /* task result */
}
vC16_KeyReorgInfo;

#pragma pack(pop)

/* diagnose progress information structure */
typedef struct
{
vINT InfoSize; /* size of information block */
vLONG Status; /* current status */
vLONG Progress; /* completion info */
}
vC16_DiagInfo;

/* diagnose results */
typedef union
{
struct
{
vBYTE ResultType; /* see _DiagRes_... */
vBYTE ResultStatus; /* see _DiagResF_... */
vBYTE ErrorCode; /* error information */
vBYTE KeyNo; /* key number */
vWORD TreeNo; /* tree number */
vWORD FileNo; /* file number */
vLONG Counter; /* number of entries */
} r;

struct
{
vLONG ExtInfo1; /* extended info #1 */
vLONG ExtInfo2; /* extended info #2 */
vLONG ExtInfo3; /* extended info #31 */
} x;
}
vC16_DiagResult;

/* BLOB directory or object */
typedef struct
{
vXLONG ID;
vXLONG StorageID;
vCHAR Name[64];
vCHAR FullName[512];
vCHAR Custom[256];

vXLONG Created;
vXLONG Modified;
vXLONG TimeExternal;

vCHAR CreatedUser[24];
vCHAR ModifiedUser[24];
vCHAR TypeUser[64];
vCHAR TypeMIME[64];

vXLONG SizeDba;
vXLONG SizeOrg;
vBYTE Compression;
}
vC16_BinObj;

/* compiler information structure */
typedef struct
{
vERROR ErrorCode;
vINT ErrorLine;
vINT ErrorColumn;
vCHAR ErrorProcSource[64];
vCHAR ErrorLineText[512];
vCHAR ErrorCodeText[128];
}
vC16_CompileInfo;

#ifdef __cplusplus
};
#endif

#endif