home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 12 / CD_ASCQ_12_0294.iso / maj / 659 / bullet.h < prev    next >
C/C++ Source or Header  |  1993-08-30  |  9KB  |  313 lines

  1. /*      bullet.h
  2.  
  3.         Defines the BULLET library's structs, consts, and function declaration
  4.  
  5.         v1.03 22-Apr-93
  6.  
  7.     ***********************************************************************
  8.     * NOTE: BULLET is for medium, large, or huge models (do not use tiny, *
  9.     * ---- small, or compact since these allow for only 1 code segment).  *
  10.     ***********************************************************************
  11.  
  12.      Struct types must be standard byte packed; do not special align elements
  13. */
  14.  
  15. #pragma pack(1)
  16.  
  17. #define __BULLET_H
  18.  
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. int     far pascal BULLET(void far *datapack);
  23. #ifdef __cplusplus
  24. }
  25. #endif
  26.  
  27. #define INITXB          0            /* system */
  28. #define EXITXB          1
  29. #define ATEXITXB        2
  30. #define MEMORYXB        3
  31. #define BREAKXB         4
  32. #define BACKUPFILEXB    5
  33. #define STATHANDLEXB    6
  34. #define GETEXTERRORXB   7
  35. #define DVMONCXB        9
  36.  
  37. #define CREATEDXB       10           /* data control mid-level */
  38. #define OPENDXB         11
  39. #define CLOSEDXB        12
  40. #define STATDXB         13
  41. #define READDHXB        14
  42. #define FLUSHDHXB       15
  43. #define COPYDHXB        16
  44. #define ZAPDHXB         17
  45.  
  46. #define CREATEKXB       20           /* key control mid-level */
  47. #define OPENKXB         21
  48. #define CLOSEKXB        22
  49. #define STATKXB         23
  50. #define READKHXB        24
  51. #define FLUSHKHXB       25
  52. #define COPYKHXB        26
  53. #define ZAPKHXB         27
  54.  
  55. #define GETDESCRIPTORXB 30           /* data access mid-level */
  56. #define GETRECORDXB     31
  57. #define ADDRECORDXB     32
  58. #define UPDATERECORDXB  33
  59. #define DELETERECORDXB  34
  60. #define UNDELETERECORDXB 35
  61. #define PACKRECORDSXB   36
  62.  
  63. #define FIRSTKEYXB      40           /* key access mid-level */
  64. #define EQUALKEYXB      41
  65. #define NEXTKEYXB       42
  66. #define PREVKEYXB       43
  67. #define LASTKEYXB       44
  68. #define STOREKEYXB      45
  69. #define DELETEKEYXB     46
  70. #define BUILDKEYXB      47
  71. #define CURRENTKEYXB    48
  72.  
  73. #define GETFIRSTXB      60           /* key & data access high-level */
  74. #define GETEQUALXB      61
  75. #define GETNEXTXB       62
  76. #define GETPREVXB       63
  77. #define GETLASTXB       64
  78. #define INSERTXB        65
  79. #define UPDATEXB        66
  80. #define REINDEXXB       67
  81.  
  82. #define LOCKXB          80           /* network control */
  83. #define UNLOCKXB        81
  84. #define LOCKKEYXB       82
  85. #define UNLOCKKEYXB     83
  86. #define LOCKDATAXB      84
  87. #define UNLOCKDATAXB    85
  88. #define DRIVEREMOTEXB   86
  89. #define FILEREMOTEXB    87
  90. #define SETRETRIESXB    88
  91.  
  92. #define DELETEFILEDOS   100          /* DOS file I/O low-level */
  93. #define RENAMEFILEDOS   101
  94. #define CREATEFILEDOS   102
  95. #define OPENFILEDOS     103
  96. #define SEEKFILEDOS     104
  97. #define READFILEDOS     105
  98. #define WRITEFILEDOS    106
  99. #define CLOSEFILEDOS    107
  100. #define ACCESSFILEDOS   108
  101. #define EXPANDFILEDOS   109
  102. #define MAKEDIRDOS      110
  103.  
  104. #define cUNIQUE         1            /* key type flags */
  105. #define cCHAR           2
  106. #define cINTEGER        16
  107. #define cLONG           32
  108. #define cNLS            0x4000       /* note: cNLS is set by BULLET */
  109. #define cSIGNED         0x8000
  110.  
  111. #define READONLY        0            /* do NOT use O_RDONLY,O_WRONLY,O_RDWR */
  112. #define WRITEONLY       1
  113. #define READWRITE       2
  114.  
  115. #define COMPAT          0X0000       /* okay to use SH_DENYRW, etc. */
  116. #define DENYREADWRITE   0x0010       /* or O_DENYREADWRITE, etc.    */
  117. #define DENYWRITE       0x0020
  118. #define DENYREAD        0x0030
  119. #define DENYNONE        0x0040
  120. #define NOINHERIT       0x0080
  121.  
  122.  
  123. struct accesspack {
  124.         unsigned        func;
  125.         unsigned        stat;
  126.         unsigned        handle;
  127.         long            recno;       /* signed */
  128.         void       far *recptr;
  129.         void       far *keyptr;
  130.         void       far *nextptr;
  131. }; /* 22 */
  132.  
  133. struct breakpack {
  134.         unsigned        func;
  135.         unsigned        stat;
  136.         unsigned        mode;
  137. }; /* 6 */
  138.  
  139. struct copypack {
  140.         unsigned        func;
  141.         unsigned        stat;
  142.         unsigned        handle;
  143.         char       far *filenameptr;
  144. }; /* 10 */
  145.  
  146. struct createdatapack {
  147.         unsigned        func;
  148.         unsigned        stat;
  149.         char       far *filenameptr;
  150.         unsigned        nofields;
  151.         void       far *fieldlistptr;
  152.         unsigned        fileid;
  153. }; /* 16 */
  154.  
  155. struct createkeypack {
  156.         unsigned        func;
  157.         unsigned        stat;
  158.         char       far *filenameptr;
  159.         char       far *keyexpptr;
  160.         unsigned        xblink;
  161.         unsigned        keyflags;
  162.         int             codepageid;
  163.         int             countrycode;
  164.         char       far *collateptr;
  165. }; /* 24 */
  166.  
  167. struct fielddesctype {
  168.         char            fieldname[11];
  169.         char            fieldtype[1];
  170.         unsigned long   fieldda;
  171.         unsigned char   fieldlen;
  172.         unsigned char   fielddc;
  173.         long            fieldrez;
  174.         char            filler[10];
  175. }; /* 32 */
  176.  
  177. struct descriptorpack {
  178.         unsigned        func;
  179.         unsigned        stat;
  180.         unsigned        handle;
  181.         unsigned        fieldnumber;
  182.         struct fielddesctype   fd;
  183. }; /* 40 */
  184.  
  185. struct dosfilepack {
  186.         unsigned        func;
  187.         unsigned        stat;
  188.         char       far *filenameptr;
  189.         unsigned        handle;
  190.         unsigned        asmode;
  191.         unsigned        bytes;
  192.         long            seekoffset;
  193.         unsigned        method;
  194.         void       far *bufferptr;
  195.         unsigned        attr;
  196.         char       far *newnameptr;
  197. }; /* 30 */
  198.  
  199. struct dvmonpack {
  200.         unsigned        func;
  201.         unsigned        stat;
  202.         unsigned        mode;
  203.         unsigned        handle;
  204.         unsigned        vs;
  205. }; /* 10 */
  206.  
  207. struct exitpack {
  208.         unsigned        func;
  209.         unsigned        stat;
  210. }; /* 4 */
  211.  
  212. struct handlepack {
  213.         unsigned        func;
  214.         unsigned        stat;
  215.         unsigned        handle;
  216. }; /* 6 */
  217.  
  218. struct initpack {
  219.         unsigned        func;
  220.         unsigned        stat;
  221.         unsigned        jftmode;
  222.         unsigned        dosver;
  223.         unsigned        version;
  224.         unsigned long   exitptr;
  225. }; /* 14 */
  226.  
  227. struct memorypack {
  228.         unsigned        func;
  229.         unsigned        stat;
  230.         unsigned long   memory;
  231. };
  232.  
  233. struct openpack {
  234.         unsigned        func;
  235.         unsigned        stat;
  236.         unsigned        handle;
  237.         char       far *filenameptr;
  238.         unsigned        asmode;
  239.         unsigned        xblink;
  240. }; /* 14 */
  241.  
  242. struct remotepack {
  243.         unsigned        func;
  244.         unsigned        stat;
  245.         unsigned        handle;
  246.         unsigned        isremote;
  247.         unsigned        flags;
  248.         unsigned        isshare;
  249. }; /* 12 */
  250.  
  251. struct setretriespack {
  252.         unsigned        func;
  253.         unsigned        stat;
  254.         unsigned        mode;
  255.         unsigned        pause;
  256.         unsigned        retries;
  257. }; /* 10 */
  258.  
  259. struct statdatapack {
  260.         unsigned        func;
  261.         unsigned        stat;
  262.         unsigned        handle;
  263.         unsigned char   filetype;
  264.         unsigned char   dirty;
  265.         unsigned long   recs;
  266.         unsigned        reclen;
  267.         unsigned        fields;
  268.         char            f1;
  269.         unsigned char   luyear;
  270.         unsigned char   lumonth;
  271.         unsigned char   luday;
  272.         unsigned        hereseg;
  273.         char            filler[10];
  274. }; /* 32 */
  275.  
  276. struct statkeypack {
  277.         unsigned        func;
  278.         unsigned        stat;
  279.         unsigned        handle;
  280.         unsigned char   filetype;
  281.         unsigned char   dirty;
  282.         unsigned long   keys;
  283.         unsigned        keylen;
  284.         unsigned        xblink;
  285.         unsigned long   xbrecno;
  286.         unsigned        hereseg;
  287.         unsigned        codepageid;
  288.         unsigned        countrycode;
  289.         unsigned        collatetablesize;
  290.         unsigned        keyflags;
  291.         char            filler[2];
  292. }; /* 32 */
  293.  
  294. struct stathandlepack {
  295.         unsigned        func;
  296.         unsigned        stat;
  297.         unsigned        handle;
  298.         unsigned        id;
  299.         char       far *filenameptr;
  300. }; /* 12 */
  301.  
  302. struct xerrorpack {
  303.         unsigned        func;
  304.         unsigned        stat;
  305.         unsigned        errclass;
  306.         unsigned        action;
  307.         unsigned        location;
  308. }; /* 10 */
  309.  
  310. #pragma pack()
  311.  
  312. /* end of BULLET.H */
  313.