home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Boston 2
/
boston-2.iso
/
DOS
/
PROGRAM
/
BASIC
/
HUGEARR
/
HUGEGET.C
< prev
next >
Wrap
C/C++ Source or Header
|
1993-12-01
|
2KB
|
87 lines
#define NOCOMM
#include <windows.h>
#include <memory.h>
#include "hugearr.h"
/* Get a huge array element. */
/* VBM: Declare Function VBHugeGet% Lib "hugearr.dll" Alias "VBHugeGet" (ByVal Index%, ByVal el&, buffer As Any) */
int FAR PASCAL
VBHugeGet(int hArray, long element, LPBYTE buffer)
{
HPBYTE ptr; /* pointer to array element */
PHUGEDESC pArray; /* pointer to array descriptor */
DecCheckHandle(hArray);
/* point to proper descriptor */
pArray = (PHUGEDESC) LocalLock(hLocalMem) + hArray;
CheckNotAllocYet(pArray);
CheckSubscript(pArray, element, element);
/* calculate pointer to element */
ptr = (HPBYTE) GlobalLock(pArray -> handle);
/* add offset of element */
ptr += HugeElementOffset(element, pArray->perseg, pArray->recsize);
/* copy data */
_fmemcpy(buffer, ptr, pArray -> recsize);
GlobalUnlock(pArray -> handle);
LocalUnlock(hLocalMem);
return HA_OK;
}
/* VBM: Declare Function VBHugeGetInt% Lib "hugearr.dll" Alias "VBHugeGetInt" (ByVal hArray%, ByVal el&) */
int FAR PASCAL
VBHugeGetInt(int hArray, long element)
{
int retval;
VBHugeGet(hArray, element, (LPBYTE) &retval);
return retval;
}
/* VBM: Declare Function VBHugeGetLong& Lib "hugearr.dll" Alias "VBHugeGetLong" (ByVal hArray%, ByVal el&) */
long FAR PASCAL
VBHugeGetLong(int hArray, long element)
{
long retval;
VBHugeGet(hArray, element, (LPBYTE) &retval);
return retval;
}
/* VBM: Declare Function VBHugeGetSingle! Lib "hugearr.dll" Alias "VBHugeGetSingle" (ByVal hArray%, ByVal el&) */
float FAR PASCAL
VBHugeGetSingle(int hArray, long element)
{
float retval;
VBHugeGet(hArray, element, (LPBYTE) &retval);
return retval;
}
/* VBM: Declare Function VBHugeGetDouble# Lib "hugearr.dll" Alias "VBHugeGetDouble" (ByVal hArray%, ByVal el&) */
double FAR PASCAL
VBHugeGetDouble(int hArray, long element)
{
double retval;
VBHugeGet(hArray, element, (LPBYTE) &retval);
return retval;
}
/* VBM: Declare Function VBHugeGetCurrency@ Lib "hugearr.dll" Alias "VBHugeGetCurrency" (ByVal hArray%, ByVal el&) */
currency FAR PASCAL
VBHugeGetCurrency(int hArray, long element)
{
currency retval;
VBHugeGet(hArray, element, (LPBYTE) &retval);
return retval;
}