File: b3pb3bas.bi
< Prev TOC Next >
'
' b3pb3bas.bi
' 1-Jan-1999
' Bullet 3 Basic main include for ms powerbasic 3.x
' Copyright (C)1999 Cornel Huth http://40th.com/
'
' - this includes the files b3pb3def.bi and b3pb3typ.bi
' -------------------------------------------------------------------------------------------
' - all pointers are 32-bit (seg:off)
' -------------------------------------------------------------------------------------------
' - strings are passed by 32-bit pointer so varlen$ must be converted to fixed-length strings
' for Basic and VARPTR/VARSEG used on those fixed-length strings to pass these addresses as
' a long, and by-value
' - - - - - - - - - -
' NOTE: The above note also includes TYPE xyz AS STRING * n; you cannot use a typevar.strg
' if .strg is any string type (including fixed-length) since the compiler may
' converts this to var-length string and then passes the SEG address of the descriptor,
' which is not the correct pointer needed by Bullet
'
' Protos below generally use "BYVAL someBufferPtr AS LONG" to describe pointer arguments
' when the pointer is to an unknown type. Protos use "SEG var&" or "SEG rec AS xxx"
' when dealing with pointers to known types (or known to be a TYPE, such as recordPtr).
' In all cases, the pointer is to point to the actual data and not a basic descriptor
' (see your compiler manual for the definition of a descriptor, and how BASIC uses them).
'
' Here is one way to calculate the 32-bit pointer of a non-(fixed-len)string:
'
' passFarPtr& = (VARSEG(someVar) * 65536) + VARPTR(someVar)
'
'
'
'
'
' - Bullet vars are all unsigned, but & and % are used to avoid the awkwardness of using ??/??? (%u or &u...)
' - calls are FAR PASCAL since PB 3.0c does not implement CDECL properly (it doesn't clean the stack)
DEFINT A-Z 'recommended
' Note: In b3pb3typ.bi, the maximum DBF fields has been set to 32 and the node size to 512.
' These can be changed to other valid values, but in Basic they must be hard-coded at compile-time.
$INCLUDE "b3pb3def.bi"
$INCLUDE "b3pb3typ.bi"
DECLARE FUNCTION BltBasicGetAddrForCallBackData% (SEG cbPtr&, BYVAL funcPtr&)
DECLARE FUNCTION BltBasicGetAddrForCallBackIx4% (SEG cbPtr&, BYVAL funcPtr&)
DECLARE FUNCTION BltBasicGetAddrForUserSortCmp% (SEG scPtr&, BYVAL funcPtr&)
DECLARE FUNCTION BltBasicGetAddrForCryptoData% (SEG cryptoPtr&, BYVAL funcPtr&)
DECLARE FUNCTION BltBasicGetAddrForCryptoIx4% (SEG cryptoPtr&, BYVAL funcPtr&)
DECLARE FUNCTION BltBasicGetAddrForBuildKey% (SEG buildKeyPtr&, BYVAL funcPtr&)
DECLARE FUNCTION BltBasicGetAddrForParseExp% (SEG parseExpPtr&, BYVAL funcPtr&)
DECLARE FUNCTION BltDataInfoFile% (BYVAL filenamePtr AS LONG, BYVAL asMode&, SEG dbfInfoPtr AS BLTDBFINFO, SEG noFieldsPtr&, BYVAL zero&)
DECLARE FUNCTION BltDataCreateFile% (BYVAL fileID&, BYVAL fields&, SEG fieldListPtr AS BLTFD, BYVAL filenamePtr AS LONG, BYVAL maMode&, BYVAL zero&)
DECLARE FUNCTION BltDataOpenFile% (SEG dhPtr AS BLTDH, BYVAL mode&)
DECLARE FUNCTION BltDataCloseFile% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltDataFlushHeader% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltDataCopyHeader% (SEG dhPtr AS BLTDH, BYVAL filenamePtr AS LONG)
DECLARE FUNCTION BltDataReadHeader% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltDataZapHeader% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltDataAddRecord% (SEG dhPtr AS BLTDH, SEG recordPtr AS ANY, SEG recNoPtr&)
DECLARE FUNCTION BltDataDebumpRecord% (SEG dhPtr AS BLTDH, BYVAL recNo&)
DECLARE FUNCTION BltDataMarkRecord% (SEG dhPtr AS BLTDH, BYVAL recNo&, BYVAL tagChar&)
DECLARE FUNCTION BltDataUpdateRecord% (SEG dhPtr AS BLTDH, BYVAL recNo&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltDataGetRecord% (SEG dhPtr AS BLTDH, BYVAL recNo&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltDataSort% (BYVAL indexnamePtr AS LONG, BYVAL filenamePtr AS LONG, BYVAL newFilenamePtr AS LONG, BYVAL cbPtr&, BYVAL zero&)
DECLARE FUNCTION BltDataPack% (BYVAL filenamePtr AS LONG, BYVAL newFilenamePtr AS LONG, BYVAL cbPtr&, BYVAL zero&)
DECLARE FUNCTION BltMemoCreateFile% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoCloseFile% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoOpenFile% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoFlushHeader% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoReadHeader% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltMemoAdd% (SEG dhPtr AS BLTDH, BYVAL bytesToSize&, BYVAL bytesToWrite&, BYVAL bufferPtr AS LONG, SEG memoNoPtr&, BYVAL rsvFlag&)
DECLARE FUNCTION BltMemoDelete% (SEG dhPtr AS BLTDH, BYVAL memoNo&)
DECLARE FUNCTION BltMemoGet% (SEG dhPtr AS BLTDH, BYVAL memoNo&, BYVAL startOffset&, SEG bytesToReadPtr&, BYVAL bufferPtr AS LONG)
DECLARE FUNCTION BltMemoGetSize% (SEG dhPtr AS BLTDH, BYVAL memoNo&, SEG availLinkPtr&, SEG memoSizePtr&)
DECLARE FUNCTION BltMemoUpdate% (SEG dhPtr AS BLTDH, SEG memoNoPtr&, BYVAL startOffset&, BYVAL bytesToWrite&, BYVAL bufferPtr AS LONG)
DECLARE FUNCTION BltIx4InfoFile% (BYVAL filenamePtr AS LONG, BYVAL asMode&, SEG ix4InfoPtr AS BLTIX4INFO, BYVAL zero&)
DECLARE FUNCTION BltIx4CreateFile% (BYVAL nodeSz&, BYVAL sortCC&, BYVAL cp&, BYVAL cc&, BYVAL stPtr AS LONG, BYVAL kxPtr as LONG, SEG dhPtr AS BLTDH, BYVAL filenamePtr AS LONG, BYVAL zero&, BYVAL maMode&, BYVAL zero2&)
DECLARE FUNCTION BltIx4OpenFile% (SEG khPtr AS BLTKH, BYVAL mode&)
DECLARE FUNCTION BltIx4CloseFile% (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltIx4FlushHeader% (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltIx4CopyHeader% (SEG khPtr AS BLTKH, BYVAL filenamePtr AS LONG)
DECLARE FUNCTION BltIx4ReadHeader% (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltIx4ZapHeader% (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltIx4KeyForRecord% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, BYVAL recNo&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4DeleteKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, BYVAL recNo&)
DECLARE FUNCTION BltIx4StoreKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, BYVAL recNo&)
DECLARE FUNCTION BltIx4EqualKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4EqualOrGreaterKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4EqualOrLesserKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4FirstKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4LastKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4NextKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltIx4PrevKey% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltLockEx% (SEG lockExPtr AS BLTLOCKEX, SEG slotPtr&, BYVAL timeout&)
DECLARE FUNCTION BltUnlockEx% (SEG lockExPtr AS BLTLOCKEX, SEG slotPtr&)
DECLARE FUNCTION BltLockDataHeader% (SEG dhPtr AS BLTDH, BYVAL mode&, BYVAL timeout&)
DECLARE FUNCTION BltUnlockDataHeader% (SEG dhPtr AS BLTDH)
DECLARE FUNCTION BltLockDataRecord% (SEG dhPtr AS BLTDH, BYVAL mode&, BYVAL recNoStart&, BYVAL recCount&, BYVAL timeout&)
DECLARE FUNCTION BltUnlockDataRecord% (SEG dhPtr AS BLTDH, BYVAL recNoStart&, BYVAL recCount&)
DECLARE FUNCTION BltLockIx4File% (SEG khPtr AS BLTKH, BYVAL mode&, BYVAL timeout&)
DECLARE FUNCTION BltUnlockIx4File% (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltGetVar& (BYVAL index&, SEG rcPtr&) 'AS LONG
DECLARE FUNCTION BltSetVar% (SEG valPtr&, BYVAL index&)
DECLARE FUNCTION BltIx4Insert% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY, SEG actionPtr&)
DECLARE FUNCTION BltIx4InsertEx% (SEG iuexPtr AS BLTIUEX, SEG slotPtr&)
DECLARE FUNCTION BltIx4Update% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, BYVAL recNo&, SEG newRecPtr AS ANY, SEG actionPtr&)
DECLARE FUNCTION BltIx4UpdateEx% (SEG iuexPtr AS BLTIUEX, SEG slotPtr&, BYVAL maMode&)
DECLARE FUNCTION BltIx4GetFirst% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetNext% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetPrev% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetLast% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetEqual% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetEqualOrGreater% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltIx4GetEqualOrLesser% (SEG khPtr AS BLTKH, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&, SEG recordPtr AS ANY)
DECLARE FUNCTION BltFuncIx4Reindex% (SEG khPtr AS BLTKH, BYVAL workFilePtr AS LONG, BYVAL nodePackPct&, BYVAL keyBufferPtr AS LONG, SEG recNoPtr&)
DECLARE FUNCTION BltFuncIx4SortCmp% (SEG khPtr AS BLTKH, BYVAL arg1ptr AS LONG, BYVAL arg2ptr AS LONG, BYVAL hvBufferPtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltWriteAtFile% (BYVAL handle&, SEG bytesPtr&, BYVAL bufferPtr AS LONG, SEG offsetPtr&, BYVAL zero&)
DECLARE FUNCTION BltReadAtFile% (BYVAL handle&, SEG bytesPtr&, BYVAL bufferPtr AS LONG, SEG offsetPtr&, BYVAL zero&)
DECLARE FUNCTION BltCloseFile% (SEG handlePtr&, BYVAL zero&)
DECLARE FUNCTION BltCreateDir% (BYVAL dirnamePtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltCreateFile% (BYVAL filenamePtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltDeleteFile% (BYVAL filenamePtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltMoveFile% (BYVAL currNamePtr AS LONG, BYVAL newNamePtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltLengthFile% (BYVAL handle&, SEG lengthPtr&, BYVAL zero&)
DECLARE FUNCTION BltOpenFile% (BYVAL filenamePtr AS LONG, BYVAL mode&, SEG handlePtr&, BYVAL zero&)
DECLARE FUNCTION BltReadFile% (BYVAL handle&, SEG bytesPtr&, BYVAL bufferPtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltSeekFile% (BYVAL handle&, BYVAL mode&, SEG posPtr&, BYVAL zero&)
DECLARE FUNCTION BltUpdateDirEntry% (BYVAL handle&, BYVAL zero&)
DECLARE FUNCTION BltWriteFile% (BYVAL handle&, SEG bytesPtr&, BYVAL bufferPtr AS LONG, BYVAL zero&)
DECLARE FUNCTION BltLockFile% (BYVAL handle&, BYVAL mode&, SEG lockOffsetPtr&, SEG lockBytesPtr&, BYVAL timeout&, BYVAL zero&)
DECLARE FUNCTION BltIsRemote% (BYVAL handle&, BYVAL drive&, SEG isRemotePtr&, SEG flagsPtr&, BYVAL zero&)
DECLARE FUNCTION BltMemAlloc& (BYVAL mode&, BYVAL count&, SEG rcPtr%, BYVAL zero&) 'bmaPtr& = BltMemAlloc(...)
DECLARE FUNCTION BltMemFree% (BYVAL mode&, SEG bmaPtr&) 'rc = BltMemFree(bmaPtr&)
DECLARE FUNCTION BltSetHandleCount% (SEG maxHandlesPtr&)
DECLARE FUNCTION BltTestCallBack% ALIAS "LL_TESTCALLBACK" (SEG khPtr AS BLTKH)
DECLARE FUNCTION BltGetSortSequenceTable% (BYVAL cpID&, BYVAL ccID&, BYVAL bufferPtr AS LONG, BYVAL charsetFlag&)
DECLARE FUNCTION BltGetCountryInfo% (SEG cpIDptr&, SEG ccIDptr&, BYVAL charsetFlag&)
DECLARE FUNCTION BltGetExtendedError% (SEG exRCptr%, SEG xeClassPtr&, SEG xeActionPtr&, SEG xeLocusPtr&)
DECLARE FUNCTION BltGetMemoryAvail& (BYVAL mode&) 'AS LONG
DECLARE FUNCTION BltGetVersion% (SEG verDosPtr&)
DECLARE FUNCTION BltUpperCaseO% (BYVAL strgPtr AS LONG, BYVAL maxSize&, BYVAL zero&)
DECLARE FUNCTION BltCloseMutexSem% (BYVAL handle&)
DECLARE FUNCTION BltCreateMutexSem% (BYVAL namePtr AS LONG, SEG handlePtr&, BYVAL attrFlags&, BYVAL stateFlag&)
DECLARE FUNCTION BltRequestMutexSem% (BYVAL handle&, BYVAL timeout&)
DECLARE FUNCTION BltReleaseMutexSem% (BYVAL handle&)
DECLARE SUB BltMemSet (SEG strucPtr AS ANY, BYVAL value&, BYVAL length&) 'fast zero-fill of BLTKH/BLTDH
DECLARE SUB BltMemCpy (BYVAL destPtr AS LONG, BYVAL srcPtr AS LONG, BYVAL length&)
' end b3pb3bas.bi
All content Copyright © 1999 Cornel Huth. All rights reserved.