📄 bullet_2.h
字号:
ULONG dbfHandle; /* I, handle of DBF file to which this memo file belongs */
ULONG memoBypass; /* I, memo bypass function to do, if any */
PVOID memoPtr; /* I, ptr to memo record buffer */
ULONG memoNo; /* IO, memo record number (aka block number) */
ULONG memoOffset; /* I, position within record to start read/update */
ULONG memoBytes; /* IO, number of bytes to read/update */
} MEMODATAPACK; /* MDP */
typedef MEMODATAPACK *PMEMODATAPACK;
typedef struct _MEMORYPACK {
ULONG func;
ULONG stat;
ULONG memory; /* O, not used in OS/2 */
} MEMORYPACK; /* MP */
typedef MEMORYPACK *PMEMORYPACK;
typedef struct _OPENPACK {
ULONG func;
ULONG stat;
ULONG handle; /* O, handle of file opened */
PSZ filenamePtr; /* I, Bullet file to open */
ULONG asMode; /* I, access-sharing-cache mode */
LONG xbLink; /* I, if index open, xbLink=handle of its opened DBF */
} OPENPACK; /* OP */
typedef OPENPACK *POPENPACK;
typedef struct _QUERYSETPACK {
ULONG func;
ULONG stat;
ULONG item; /* I, Bullet sysvar item to get/set */
ULONG itemValue; /* IO, current/new value */
} QUERYSETPACK; /* QSP */
typedef QUERYSETPACK *PQUERYSETPACK;
typedef struct _REMOTEPACK {
ULONG func;
ULONG stat;
ULONG handle; /* I, handle of file, or if 0, use RP.drive */
ULONG drive; /* I, drive (1=A,2=B,3=C,...0=current) to check */
ULONG isRemote; /* O, =1 of handle/drive is remote, =0 if local */
ULONG flags; /* O, 0 */
ULONG isShare; /* O, 1 */
} REMOTEPACK; /* RP */
typedef REMOTEPACK *PREMOTEPACK;
typedef struct _STATDATAPACK {
ULONG func;
ULONG stat;
ULONG handle; /* I, handle to check */
ULONG fileType; /* O, bit0=1 data file */
ULONG flags; /* O, bit0=1 dirty, bit1=1 full-lock, bit2=1 shared */
ULONG progress; /* O, 0,1-99% pack progress */
PVOID morePtr; /* O, 0 */
ULONG fields; /* O, fields per record */
ULONG asMode; /* O, access-sharing-cache mode */
PSZ filenamePtr; /* O, filename used in open */
ULONG fileID; /* O, first byte of DBF file */
ULONG lastUpdate; /* O, high word=year,low byte=day, high byte=month */
ULONG records; /* O, data records (including "deleted") */
ULONG recordLength; /* O, record length */
ULONG xactionFlag; /* O, 0 */
ULONG encryptFlag; /* O, 0 */
PVOID herePtr; /* O, this file's control address */
ULONG memoHandle; /* O, handle of open memo file (0 if none) */
ULONG memoBlockSize; /* O, memo file block size */
ULONG memoFlags; /* O, bit0=1 dirty */
ULONG memoLastRecord; /* O, last accessed memo record (0 if none) */
ULONG memoLastSize; /* O, size of last accessed memo record (in bytes, +8) */
ULONG lockCount; /* O, number of full-locks in force */
} STATDATAPACK; /* SDP */
typedef STATDATAPACK *PSTATDATAPACK;
typedef struct _STATHANDLEPACK {
ULONG func;
ULONG stat;
ULONG handle; /* I, handle to check */
LONG ID; /* O, bit0=1 data file, bit0=1 index file */
} STATHANDLEPACK; /* SHP */
typedef STATHANDLEPACK *PSTATHANDLEPACK;
typedef struct _STATINDEXPACK {
ULONG func;
ULONG stat;
ULONG handle; /* I, handle to check */
ULONG fileType; /* O, bit0=0 index file */
ULONG flags; /* O, bit0=1 dirty, bit1=1 full-lock, bit2=1 shared */
ULONG progress; /* O, 0,1-99% reindex progress */
PVOID morePtr; /* O, 0 */
ULONG xbLink; /* O, XB file link handle */
ULONG asMode; /* O, access-sharing-cache mode */
PSZ filenamePtr; /* O, pointer to filename used in open */
ULONG fileID; /* O, "31ch" */
PSZ keyExpPtr; /* O, pointer to key expression */
ULONG keys; /* O, keys in file */
ULONG keyLength; /* O, key length */
ULONG keyRecNo; /* O, record number of current key */
PVOID keyPtr; /* O, ptr to current key value (valid to keyLength) */
PVOID herePtr; /* O, this file's control address */
ULONG codePage; /* O, code page at create time */
ULONG countryCode; /* O, country code at create time */
PVOID CTptr; /* O, collate table ptr, NULL=no collate table present */
ULONG nodeSize; /* O, node size */
ULONG sortFunction; /* O, sort function ID */
ULONG lockCount; /* O, number of full-locks in force */
} STATINDEXPACK; /* SIP */
typedef STATINDEXPACK *PSTATINDEXPACK;
typedef struct _XERRORPACK {
ULONG func;
ULONG stat; /* I, error to check */
ULONG errClass; /* O, class of error */
ULONG action; /* O, action recommended for error */
ULONG location; /* O, location of error */
} XERRORPACK; /* XEP */
typedef XERRORPACK *PXERRORPACK;
/* ************************************************************************
*
* Error codes
*
* ************************************************************************/
#define EXB_NOT_ENOUGH_MEMORY 8 /* cannot get memory requested */
#define EXB_INVALID_DRIVE 15 /* not a valid drive letter */
#define EXB_UNEXPECTED_EOF 38 /* unexpect EOF (bytes read != bytes asked) */
#define EXB_DISK_FULL 39 /* disk full on WriteFile */
#define EXB_FILE_EXISTS 80 /* cannot create file since it already exists */
#define EXB_SEM_OWNER_DIED 105 /* in place of Win32 error 80h (mutex) */
#define EXB_TIMEOUT 640 /* in place of Win32 error 102h (mutex) */
/* Other operating system errors are as returned by OS itself */
/* System/general error codes */
#define EXB_OR_WITH_FAULTS 8192 /* 8192+1 to +4, close-type errors */
/* ERR_216501/6 are for Bullet/x only */
#define EXB_216501 8251 /* INT21/6501h not supported by DOS extender */
/* (do not use default cc/cp) */
#define EXB_216506 8256 /* INT21/6506h not supported by DOS extender */
/* (provide a custom collate table) */
#define EXB_ILLEGAL_CMD 8300 /* function not allowed */
#define EXB_OLD_DOS 8301 /* OS version < MIN_DOS_NEEDED */
#define EXB_NOT_INITIALIZED 8302 /* init not active, must do INIT_XB */
#define EXB_ALREADY_INITIALIZED 8303 /* init already active, must do EXIT_XB */
#define EXB_TOO_MANY_HANDLES 8304 /* more than 1024 opens requested */
#define EXB_SYSTEM_HANDLE 8305 /* Bullet won't use or close handles 0-2 */
#define EXB_FILE_NOT_OPEN 8306 /* file not open (not Bullet handle, including xbLink) */
#define EXB_FILE_IS_DIRTY 8307 /* tried to reload header but current still dirty */
#define EXB_BAD_FILETYPE 8308 /* tried key op on non-key file, data op on non... */
#define EXB_TOO_MANY_PACKS 8309 /* too many INSERT,UPDATE,REINDEX,LOCK_XB packs */
#define EXB_NULL_RECPTR 8310 /* null record pointer passed to Bullet */
#define EXB_NULL_KEYPTR 8311 /* null key pointer passed to Bullet */
#define EXB_NULL_MEMOPTR 8312 /* null memo pointer passed to Bullet */
#define EXB_EXPIRED 8313 /* evaluation time period has expired */
#define EXB_BAD_INDEX 8314 /* Query/SetSysVars index beyond last one */
#define EXB_RO_INDEX 8315 /* SetSysVar index item is read-only */
#define EXB_FILE_BOUNDS 8316 /* file size > 4GB, or > system var sets */
#define EXB_FORCE_ROLLBACK 8397 /* rollback test completed (internal use) */
#define EXB_INVALID_DLL 8398 /* DLL seems to be invalid, 8399 same */
/* Multi-access error codes */
#define EXB_BAD_LOCK_MODE 8401 /* lock mode (LP) not valid */
#define EXB_NOTHING_TO_RELOCK 8402 /* cannot relock without existing full-lock */
#define EXB_SHARED_LOCK_ON 8403 /* write access needed but lock is shared (flush on backup) */
/* Index error codes */
#define EXB_KEY_NOT_FOUND 8501 /* exact match of key not found */
#define EXB_KEY_EXISTS 8502 /* key exists already and dups not allowed */
#define EXB_END_OF_FILE 8503 /* already at last index order */
#define EXB_TOP_OF_FILE 8504 /* already at first index order */
#define EXB_EMPTY_FILE 8505 /* nothing to do since no keys */
#define EXB_CANNOT_GET_LAST 8506 /* cannot locate last key */
#define EXB_BAD_INDEX_STACK 8507 /* index file is corrupt */
#define EXB_BAD_INDEX_READ0 8508 /* index file is corrupt */
#define EXB_BAD_INDEX_WRITE0 8509 /* index file is corrupt */
#define EXB_OLD_INDEX 8521 /* old index, run through ReindexOld to update */
#define EXB_UNKNOWN_INDEX 8522 /* not a Bullet index file */
#define EXB_KEY_TOO_LONG 8523 /* keylength > 62 (or 64 if unique), or is 0 */
#define EXB_PARSER_NULL 8531 /* parser function pointer is NULL */
#define EXB_BUILDER_NULL 8532 /* build key function pointer is NULL */
#define EXB_BAD_SORT_FUNC 8533 /* CIP.sortFunction not valid */
#define EXB_BAD_NODE_SIZE 8534 /* CIP.nodeSize is not 512, 1024, or 2048 */
#define EXB_FILENAME_TOO_LONG 8535 /* CIP.filenamePtr->pathname > max path length */
#define EXB_KEYX_NULL 8541 /* expression is effectively NULL */
#define EXB_KEYX_TOO_LONG 8542 /* CIP.keyExpPtr->expression > 159 */
#define EXB_KEYX_SYM_TOO_LONG 8543 /* fieldname/funcname in expression > 10 chars */
#define EXB_KEYX_SYM_UNKNOWN 8544 /* fieldname/funcname in expression unknown */
#define EXB_KEYX_TOO_MANY_SYMS 8545 /* too many symbols/fields used in expression */
#define EXB_KEYX_BAD_SUBSTR 8546 /* invalid SUBSTR() operand in expression */
#define EXB_KEYX_BAD_SUBSTR_SZ 8547 /* SUBSTR() exceeds field's size */
#define EXB_KEYX_BAD_FORM 8548 /* didn't match expected symbol in expression */
#define EXB_NO_READS_FOR_RUN 8551 /* unlikely, use different reindex buffer size */
#define EXB_TOO_MANY_RUNS 8552 /* unlikely, too many runs (64K or more runs) */
#define EXB_TOO_MANY_RUNS_FOR_BUFFER 8553 /* unlikely, too many runs for run buffer */
#define EXB_TOO_MANY_DUPLICATES 8554 /* more than 64K "identical" keys */
#define EXB_INSERT_RECNO_BAD 8561 /* AP.recNo cannot be > 0 if inserting */
#define EXB_PREV_APPEND_EMPTY 8562 /* no prev append for insert yet AP.recNo==80000000h */
#define EXB_PREV_APPEND_MISMATCH 8563 /* prev append's xbLink does not match this */
#define EXB_INSERT_KBO_FAILED 8564 /* could not back out key at INSERT_XB */
#define EXB_INSERT_DBO_FAILED 8565 /* could not back out data records at INSERT_XB */
#define WRN_NOTHING_TO_UPDATE 8571 /* all AP.recNo=0 at UPDATE_XB */
#define EXB_INTERNAL_UPDATE 8572 /* internal error UPDATE_XB, not in hdl/rec# list */
#define EXB_FAILED_DATA_RESTORE 8573 /* could not restore original data record (*) */
#define EXB_FAILED_KEY_DELETE 8574 /* could not remove new key (*) */
#define EXB_FAILED_KEY_RESTORE 8575 /* could not restore original key(*) */
/* *original error, which forced a back-out, has been replaced by this error */
/* this error is always returned in the first AP.stat (-1 on data, 1 on index) */
/* Data error codes */
#define EXB_EXT_XBLINK 8601 /* xbLink handle is not internal DBF (is -1) */
#define EXB_FIELDNAME_TOO_LONG 8602 /* fieldname is > 10 characters */
#define EXB_RECORD_TOO_LONG 8603 /* record length is > 64K */
#define EXB_FIELD_NOT_FOUND 8604 /* fieldname not found in descriptor info */
#define EXB_BAD_FIELD_COUNT 8605 /* fields <= 0 or >= MAX_FIELDS (Init,Open) */
/* and also GetDescriptor by field number */
#define EXB_BAD_HEADER 8606 /* bad header (reclen=0, etc., from LocateTo, Flush) */
#define EXB_BUFFER_TOO_SMALL 8607 /* buffer too small (pack buffer < reclen in pack) */
#define EXB_INTERNAL_PACK 8608 /* internal error in PackRecords */
#define EXB_BAD_RECNO 8609 /* record number=0 or > records in data file hdr */
/* or Pack on empty data file */
#define WRN_RECORD_TAGGED 8610 /* record's tag field matches skip tag */
/* Memo error codes */
#define WRN_CANNOT_OPEN_MEMO 8701 /* DBF says memo file but memo open fails */
#define EXB_MEMO_NOT_OPEN 8702 /* no open memo file for operation */
#define EXB_BAD_BLOCKSIZE 8703 /* memo blocksize must be at least 24 bytes */
#define EXB_MEMO_DELETED 8704 /* memo is deleted */
#define EXB_MEMO_PAST_END 8705 /* memo data requested is past end of record */
#define EXB_BAD_MEMONO 8706 /* memo number is not valid */
#define EXB_MEMO_IN_USE 8707 /* memo add encountered likely corrupt memo file */
#define EXB_BAD_AVAIL_LINK 8708 /* memo avail link cannot be valid (is 0) */
#define EXB_MEMO_ZERO_SIZE 8709 /* memo data has no size */
#define EXB_MEMO_IS_SMALLER 8710 /* memo attempt to shrink but already <= size */
#endif /* ifndef __BULLET_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -