BrainMaster support
This commit is contained in:
parent
5872baafb0
commit
ac49ddb123
522
2.10/Source/bmdll32.PAS
Normal file
522
2.10/Source/bmdll32.PAS
Normal file
@ -0,0 +1,522 @@
|
||||
unit bmdll32;
|
||||
{**************************************************************************}
|
||||
{ }
|
||||
{ This C DLL header file first (automatic) conversion generated by: }
|
||||
{ HeadConv 4.0 (c) 2000 by Bob Swart (aka Dr.Bob - www.drbob42.com) }
|
||||
{ Final Delphi-Jedi (Darth) command-line units edition }
|
||||
{ }
|
||||
{ Generated Date: 16-7-2005 }
|
||||
{ Generated Time: 08:55:19 }
|
||||
{ }
|
||||
{**************************************************************************}
|
||||
|
||||
interface
|
||||
uses
|
||||
{$IFDEF WIN32}
|
||||
Windows;
|
||||
{$ELSE}
|
||||
Wintypes, WinProcs;
|
||||
{$ENDIF}
|
||||
|
||||
|
||||
|
||||
{+//************************************************************************ }
|
||||
|
||||
{-Filename: dlldefs.h }
|
||||
{-BrainMaster DLL extension library }
|
||||
{-header file defining data offsets into dll memory space }
|
||||
{-begun: 11/21/96 }
|
||||
{-1/12/97: enlarged value blocks, added control blocks }
|
||||
{-1/20/97: revised Control Flag area to 0x600 from 0x500 }
|
||||
{-7/11/97: changed frequencies to new 8-band system }
|
||||
{-7/14/97: added CONTROL_PARMS }
|
||||
{-7/14/97: added component LOW & HIGH limits }
|
||||
{-08/22/01 @gtw Add DLL_DATA_SIZE and remove extra defines. }
|
||||
{-08/28/01 tfc added defines for waveform & filtered }
|
||||
{-09/09/01 tfc added value blocks for stdev and nextthresh }
|
||||
{-11/14/01 gtw Updated IAW design review of 13 Nov 01. }
|
||||
{-1. Added xx_DAMP_FFT_START and remove }
|
||||
{-extra channel area. }
|
||||
{-2. Added xx_FFT_SUMM_START for 32 }
|
||||
{-FFT bins for 60 seconds of summary data. }
|
||||
{-11/27/01 gtw Updated IAW design review of 27 Nov 01 }
|
||||
{-1. Added SIZEOF_SUMM_FFT, }
|
||||
{-RT_FFT_SUMM_CTRL_START }
|
||||
{-HEG_VALUE }
|
||||
{-2. Added AUTO_THRESH, }
|
||||
{-HEG }
|
||||
{-flags }
|
||||
{-3. Added <component>_PERCENT_TARGET values. }
|
||||
{-4. Updated commentary. }
|
||||
{-Copyright (C) 2001 BrainMaster Technologies, Inc. }
|
||||
{-copyright (c) 1996,1997,1998,1999,2000 }
|
||||
{-Thomas F. Collura, Ph.D., P.E. - all rights reserved }
|
||||
|
||||
{-To read a value, use e.g. value = DllCFunc(LT_VAL_START+THETA_VAL, 0); }
|
||||
|
||||
|
||||
{-NOTE: TOTAL IS ONLY 16K. DO NOT GO ABOVE 3FFF THIS IS }
|
||||
{-DUE TO THE 16-BIT LIMITATION. }
|
||||
|
||||
{-FIRST 64K OF DLL SPACE IS DIVIDED UP AS FOLLOWS (addresses in hexadecimal): }
|
||||
{-NOTE THAT ALL ADDRESSES ARE OF 16-bit WORDS }
|
||||
|
||||
{-0000-03FF:***********VALUE BLOCKS FOR 8 CHANNELS 1/2 K TOTAL************************ }
|
||||
{-VALUE BLOCKS CONTAIN VALUES, THRESHOLD, MAX, MIN, ETC. FOR EACH COMPONENT }
|
||||
{-0X0000 - BEGIN 1K BLOCK ALLOCATED TO CHANNELS 1-8 VALUE BLOCKS }
|
||||
{-0X0000 - 0x007F: 128 words: Channel 1 value block ( "Left" ) }
|
||||
{-0X0080 - 0x00FF: 128 words: Channel 2 value block ( "Right") }
|
||||
{-0X0100 - 0x017F: 128 words: Channel 3 value block }
|
||||
{-0X0180 - 0x01FF: 128 words: Channel 4 value block }
|
||||
{-0X0200 - 0X03FF: (512 words for Channels 5,6,7,8) }
|
||||
|
||||
{-0400-05FF:********************LIVE FFT BLOCKS******************************* }
|
||||
{-64 bytes per spectrum x 8 channels = 512 bytes }
|
||||
{-0400-043F: CHANNEL 1 LIVE FFT BLOCK POSTED 4 PER SECOND }
|
||||
{-0440-047F: CHANNEL 2 LIVE FFT BLOCK }
|
||||
{-0480-04FF: Spare. }
|
||||
{-0500-053F CHANNEL 1 DAMPED FFT BLOCK POSTED 4 PER SECOND }
|
||||
{-0540-057F CBANNEL 2 DAMPED FFT BLOCK POSTED 4 PER SECOND }
|
||||
|
||||
{-0600-09FF:****CONTROL FLAGS, PARAMETERS, AND SESSION AND CALIBRATION INFO***** }
|
||||
{-0600-06FF: 128 WORDS CONTROL FLAGS FOR REMOTE SETUP }
|
||||
{-0700-0800: 128 WORDS CONTROL PARAMETERS }
|
||||
{-0800-09FF: 256 WORDS SESSION & CALIBRATION INFORMATION }
|
||||
|
||||
|
||||
{-DO NOT USE REGIONS DEFINED BELOW }
|
||||
{-3000-3FFF:****SUMMARY FFT AREA FOR COMPRESSED SPECTRAL ARRAY 4K TOTAL************* }
|
||||
{-BEGIN SUMMARY FFT BLOCKS FOR 2 CHANNELS, POSTED 1 PER SECOND }
|
||||
{-(64 bytes/second = 16 seconds per 1K, or 3.75K per minute) }
|
||||
{-7.5K: Channel 1 FFT block 1 minute }
|
||||
{-0.5K: TBD; reserved for control information }
|
||||
{-7.5K: Channel 2 FFT block 1 minute }
|
||||
{-0.5K: TBD; reserved for control information }
|
||||
|
||||
{-1000-2FFF:*************LIVE EEG AREA 8K TOTAL*************************** }
|
||||
{-TOTAL OF 30K FOR LIVE EEG CHANNELS 2 CHANNELS RAW & FILTERED }
|
||||
{-BEGIN LIVE EEG CHANNELS 2 seconds = 240 bytes per record }
|
||||
{-(USE 256 bytes for round numbers) }
|
||||
{-CHAN 1 RAW 256 samples }
|
||||
{-CHAN 2 FILTERED 8 x 256 samples }
|
||||
{-CHAN 1 RAW 256 samples }
|
||||
{-CHAN 2 FILTERED 8* 256 samples }
|
||||
{-CONTROL INFO - SIZES, NUMTRACES, ETC - 128 bytes }
|
||||
|
||||
{=************************************************************************ }
|
||||
|
||||
const
|
||||
DLL_DATA_SIZE = $3fff;
|
||||
DLL_EEG_BLOCK_SIZE = $100;
|
||||
|
||||
{/// VALUE BLOCK ASSIGNMENTS FOR CHANNELS 1 and 2 (LEFT AND RIGHT) }
|
||||
const
|
||||
LT_VAL_START = $0000;
|
||||
RT_VAL_START = $0080;
|
||||
CHAN_1_VAL_START = $0000;
|
||||
CHAN_2_VAL_START = $0080;
|
||||
|
||||
const
|
||||
LT_LIVE_FFT_START = $0400;
|
||||
RT_LIVE_FFT_START = $0440;
|
||||
CHAN_1_LIVE_FFT_START = $0400;
|
||||
CHAN_2_LIVE_FFT_START = $0440;
|
||||
|
||||
const
|
||||
LT_DAMP_FFT_START = $0500;
|
||||
RT_DAMP_FFT_START = $0540;
|
||||
CHAN_1_DAMP_FFT_START = $0500;
|
||||
CHAN_2_DAMP_FFT_START = $0540;
|
||||
|
||||
const
|
||||
CONTROL_FLAGS_START = $0600;
|
||||
CONTROL_PARMS_START = $0700;
|
||||
SESSION_INFO_START = $0800;
|
||||
|
||||
const
|
||||
RT_SUMM_FFT_START = $4000;
|
||||
LT_SUMM_FFT_START = $6000;
|
||||
CHAN_1_SUMM_FFT_START = $4000;
|
||||
CHAN_2_SUMM_FFT_START = $6000;
|
||||
|
||||
const
|
||||
LT_LIVE_EEG_START = $1000;
|
||||
LT_LIVE_DELTA_START = $1100;
|
||||
LT_LIVE_THETA_START = $1200;
|
||||
LT_LIVE_ALPHA_START = $1300;
|
||||
LT_LIVE_LOBETA_START = $1400;
|
||||
LT_LIVE_BETA_START = $1500;
|
||||
LT_LIVE_HIBETA_START = $1600;
|
||||
LT_LIVE_GAMMA_START = $1700;
|
||||
LT_LIVE_USER_START = $1800;
|
||||
|
||||
const
|
||||
RT_LIVE_EEG_START = $1900;
|
||||
RT_LIVE_DELTA_START = $2000;
|
||||
RT_LIVE_THETA_START = $2100;
|
||||
RT_LIVE_ALPHA_START = $2200;
|
||||
RT_LIVE_LOBETA_START = $2300;
|
||||
RT_LIVE_BETA_START = $2400;
|
||||
RT_LIVE_HIBETA_START = $2500;
|
||||
RT_LIVE_GAMMA_START = $2600;
|
||||
RT_LIVE_USER_START = $2700;
|
||||
|
||||
const
|
||||
LIVE_EEG_CONTROL = $2800;
|
||||
LIVE_EEG_POSITION = $2801;
|
||||
LIVE_EEG_SIZE = $2802;
|
||||
LIVE_EEG_SAMPLESREAD = $2803;
|
||||
LIVE_EEG_SAMPLERATE = $2804;
|
||||
LIVE_EEG_NUMTERMS = $2805;
|
||||
|
||||
{/// The follow area is for the summary FFT }
|
||||
{/// information used by the CSA display. }
|
||||
{/// }
|
||||
const
|
||||
SIZEOF_SUMM_FFT = $0020;
|
||||
LT_FFT_SUMM_START = $3000;
|
||||
CHAN_1_FFT_SUMM_START = $3000;
|
||||
LT_FFT_SUMM_CTRL_START = $3780;
|
||||
FFT_SUMM_PTR = $3780;
|
||||
RT_FFT_SUMM_START = $3800;
|
||||
CHAN_2_FFT_SUMM_START = $3800;
|
||||
RT_FFT_SUMM_CTRL_START = $3F80;
|
||||
|
||||
|
||||
{/// THE FOLLOWING OFFSETS MAP INTO VALUE SPACE }
|
||||
{/// THESE ARE VALUES THAT MASTER WRITES }
|
||||
|
||||
const
|
||||
DELTA_VAL = $0001;
|
||||
THETA_VAL = $0002;
|
||||
ALPHA_VAL = $0003;
|
||||
LOBETA_VAL = $0004;
|
||||
BETA_VAL = $0005;
|
||||
HIBETA_VAL = $0006;
|
||||
GAMMA_VAL = $0007;
|
||||
USER_VAL = $0008;
|
||||
RESRV_VAL = $0009;
|
||||
|
||||
const
|
||||
BASE_MODALFREQ = $000A;
|
||||
DELTA_MODALFREQ = $000B;
|
||||
THETA_MODALFREQ = $000C;
|
||||
ALPHA_MODALFREQ = $000D;
|
||||
LOBETA_MODALFREQ = $000E;
|
||||
|
||||
const
|
||||
DELTA_DAMPED_VAL = $000F;
|
||||
|
||||
const
|
||||
BASE_THRESH = $0010;
|
||||
DELTA_THRESH = $0011;
|
||||
THETA_THRESH = $0012;
|
||||
ALPHA_THRESH = $0013;
|
||||
LOBETA_THRESH = $0014;
|
||||
BETA_THRESH = $0015;
|
||||
HIBETA_THRESH = $0016;
|
||||
GAMMA_THRESH = $0017;
|
||||
USER_THRESH = $0018;
|
||||
RESRV_THRESH = $0019;
|
||||
|
||||
const
|
||||
DELTA_COHER = $001A;
|
||||
THETA_COHER = $001B;
|
||||
ALPHA_COHER = $001C;
|
||||
LOBETA_COHER = $001D;
|
||||
|
||||
const
|
||||
THETA_DAMPED_VAL = $001E;
|
||||
ALPHA_DAMPED_VAL = $001F;
|
||||
|
||||
const
|
||||
BASE_NEXTTHRESH = $0020;
|
||||
DELTA_NEXTTHRESH = $0021;
|
||||
THETA_NEXTTHRESH = $0022;
|
||||
ALPHA_NEXTTHRESH = $0023;
|
||||
LOBETA_NEXTTHRESH = $0024;
|
||||
BETA_NEXTTHRESH = $0025;
|
||||
HIBETA_NEXTTHRESH = $0026;
|
||||
GAMMA_NEXTTHRESH = $0027;
|
||||
USER_NEXTTHRESH = $0028;
|
||||
RESRV_NEXTTHRESH = $0029;
|
||||
|
||||
const
|
||||
BETA_COHER = $002A;
|
||||
HIBETA_COHER = $002B;
|
||||
GAMMA_COHER = $002C;
|
||||
USER_COHER = $002D;
|
||||
|
||||
const
|
||||
LOBETA_DAMPED_VAL = $002E;
|
||||
BETA_DAMPED_VAL = $002F;
|
||||
|
||||
const
|
||||
BASE_STDEV = $0030;
|
||||
DELTA_STDEV = $0031;
|
||||
THETA_STDEV = $0032;
|
||||
ALPHA_STDEV = $0033;
|
||||
LOBETA_STDEV = $0034;
|
||||
BETA_STDEV = $0035;
|
||||
HIBETA_STDEV = $0036;
|
||||
GAMMA_STDEV = $0037;
|
||||
USER_STDEV = $0038;
|
||||
RESRV_STDEV = $0039;
|
||||
|
||||
const
|
||||
DELTA_PHASE = $003A;
|
||||
THETA_PHASE = $003B;
|
||||
ALPHA_PHASE = $003C;
|
||||
LOBETA_PHASE = $003D;
|
||||
|
||||
const
|
||||
HIBETA_DAMPED_VAL = $003E;
|
||||
GAMMA_DAMPED_VAL = $003F;
|
||||
|
||||
const
|
||||
BASE_MODE = $0040;
|
||||
DELTA_MODE = $0041;
|
||||
THETA_MODE = $0042;
|
||||
ALPHA_MODE = $0043;
|
||||
LOBETA_MODE = $0044;
|
||||
BETA_MODE = $0045;
|
||||
HIBETA_MODE = $0046;
|
||||
GAMMA_MODE = $0047;
|
||||
USER_MODE = $0048;
|
||||
RESRV_MODE = $0049;
|
||||
|
||||
const
|
||||
BETA_PHASE = $004A;
|
||||
HIBETA_PHASE = $004B;
|
||||
GAMMA_PHASE = $004C;
|
||||
USER_PHASE = $004D;
|
||||
|
||||
const
|
||||
USER_DAMPED_VAL = $004E;
|
||||
DLL_OFFSET_4F = $004F;
|
||||
|
||||
const
|
||||
BASE_HITS = $0050;
|
||||
DELTA_HITS = $0051;
|
||||
THETA_HITS = $0052;
|
||||
ALPHA_HITS = $0053;
|
||||
LOBETA_HITS = $0054;
|
||||
BETA_HITS = $0055;
|
||||
HIBETA_HITS = $0056;
|
||||
GAMMA_HITS = $0057;
|
||||
USER_HITS = $0058;
|
||||
RESRV_HITS = $0059;
|
||||
|
||||
const
|
||||
BETA_MODALFREQ = $005A;
|
||||
HIBETA_MODALFREQ = $005B;
|
||||
GAMMA_MODALFREQ = $005C;
|
||||
USER_MODALFREQ = $005D;
|
||||
RESRV_MODALFREQ = $005E;
|
||||
|
||||
const
|
||||
DLL_OFFSET_5F = $005F;
|
||||
|
||||
const
|
||||
BASE_MEAN = $0060;
|
||||
DELTA_MEAN = $0061;
|
||||
THETA_MEAN = $0062;
|
||||
ALPHA_MEAN = $0063;
|
||||
LOBETA_MEAN = $0064;
|
||||
BETA_MEAN = $0065;
|
||||
HIBETA_MEAN = $0066;
|
||||
GAMMA_MEAN = $0067;
|
||||
USER_MEAN = $0068;
|
||||
RESRV_MEAN = $0069;
|
||||
|
||||
const
|
||||
BASE_PEAKFREQ = $006A;
|
||||
DELTA_PEAKFREQ = $006B;
|
||||
THETA_PEAKFREQ = $006C;
|
||||
ALPHA_PEAKFREQ = $006D;
|
||||
LOBETA_PEAKFREQ = $006E;
|
||||
|
||||
const
|
||||
DLL_OFFSET_6F = $006F;
|
||||
|
||||
const
|
||||
BASE_PERCENTTIMEOVERTHRESH = $0070;
|
||||
DELTA_PERCENTTIMEOVERTHRESH = $0071;
|
||||
THETA_PERCENTTIMEOVERTHRESH = $0072;
|
||||
ALPHA_PERCENTTIMEOVERTHRESH = $0073;
|
||||
LOBETA_PERCENTTIMEOVERTHRESH = $0074;
|
||||
BETA_PERCENTTIMEOVERTHRESH = $0075;
|
||||
HIBETA_PERCENTTIMEOVERTHRESH = $0076;
|
||||
GAMMA_PERCENTTIMEOVERTHRESH = $0077;
|
||||
USER_PERCENTTIMEOVERTHRESH = $0078;
|
||||
RESRV_PERCENTTIMEOVERTHRESH = $0079;
|
||||
|
||||
const
|
||||
BETA_PEAKFREQ = $007A;
|
||||
HIBETA_PEAKFREQ = $007B;
|
||||
GAMMA_PEAKFREQ = $007C;
|
||||
USER_PEAKFREQ = $007D;
|
||||
RESRV_PEAKFREQ = $007E;
|
||||
HEG_VALUE = $007F;
|
||||
|
||||
|
||||
|
||||
{/// THE FOLLOWING OFFSETS MAP INTO FLAG SPACE }
|
||||
{/// THESE ARE SWITCHES THAT MASTER READS }
|
||||
{/// WE CAN HAVE UP TO 128 SUCH FLAGS }
|
||||
{/// The gaps between values are not important, }
|
||||
{/// but care should be used in changing the values. }
|
||||
|
||||
const
|
||||
DLL_BUSY = $0000;
|
||||
WRITE_COUNT = $0001;
|
||||
READ_COUNT = $0002;
|
||||
DELTA = $0011;
|
||||
THETA = $0012;
|
||||
ALPHA = $0013;
|
||||
LOBETA = $0014;
|
||||
BETA = $0015;
|
||||
HIBETA = $0016;
|
||||
GAMMA = $0017;
|
||||
USER = $0018;
|
||||
RESRV = $0019;
|
||||
SOUND = $0020;
|
||||
SAVETODISK = $0021;
|
||||
WAVEFORM = $0031;
|
||||
PHASE = $0032;
|
||||
FFT = $0033;
|
||||
MIRROR = $0034;
|
||||
THERM = $0035;
|
||||
ONEDTREND = $0036;
|
||||
TWODTREND = $0037;
|
||||
THREEDTREND = $0038;
|
||||
CSA = $0039;
|
||||
STERMAN = $0040;
|
||||
OTHMER = $0041;
|
||||
PACMAN = $0042;
|
||||
SMILEY = $0043;
|
||||
SIMILARITY = $0044;
|
||||
PHASE_SIMILRTY = $0045;
|
||||
MIDI_VOICE = $0046;
|
||||
MIDI_MODE = $0047;
|
||||
MIDI_MODULATION = $0048;
|
||||
COHERENCE_THRESHOLD = $0049;
|
||||
AUTO_THRESH = $004A;
|
||||
HEG = $004B;
|
||||
EQUALIZER = $004C;
|
||||
MASTER_WRITE_COUNT = $004D;
|
||||
MASTER_RUNNING = $004E;
|
||||
MASTER_PAUSE_FLAG = $004F;
|
||||
MASTER_ARTIFACT_FLAG = $0050;
|
||||
MASTER_INHIBIT_FLAG = $0051;
|
||||
|
||||
const
|
||||
MASTER_INHIBIT1_FLAG = $0052;
|
||||
MASTER_ENHANCE1_FLAG = $0053;
|
||||
MASTER_NUM1_ENHANCES = $0054;
|
||||
MASTER_INHIBIT2_FLAG = $0055;
|
||||
MASTER_ENHANCE2_FLAG = $0056;
|
||||
MASTER_NUM2_ENHANCES = $0057;
|
||||
|
||||
{/// THE FOLLOWING OFFSETS MAP INTO CONTROL PARAMETER SPACE }
|
||||
{/// THESE ARE VALUES THAT MASTER USES }
|
||||
{/// WE CAN HAVE 128 SUCH PARAMETERS }
|
||||
|
||||
const
|
||||
DELTA_LOW = $0000;
|
||||
DELTA_HIGH = $0001;
|
||||
THETA_LOW = $0002;
|
||||
THETA_HIGH = $0003;
|
||||
ALPHA_LOW = $0004;
|
||||
ALPHA_HIGH = $0005;
|
||||
LOBETA_LOW = $0006;
|
||||
LOBETA_HIGH = $0007;
|
||||
BETA_LOW = $0008;
|
||||
BETA_HIGH = $0009;
|
||||
HIBETA_LOW = $0010;
|
||||
HIBETA_HIGH = $0011;
|
||||
GAMMA_LOW = $0012;
|
||||
GAMMA_HIGH = $0013;
|
||||
USER_LOW = $0014;
|
||||
USER_HIGH = $0015;
|
||||
RESRV_LOW = $0016;
|
||||
RESRV_HIGH = $0017;
|
||||
FILTER_ORDER = $0018;
|
||||
NCHANS = $0019;
|
||||
|
||||
const
|
||||
CHAN1_DELTA_PERCENT_TARGET = $0020;
|
||||
CHAN1_THETA_PERCENT_TARGET = $0021;
|
||||
CHAN1_ALPHA_PERCENT_TARGET = $0022;
|
||||
CHAN1_LOBETA_PERCENT_TARGET = $0023;
|
||||
CHAN1_BETA_PERCENT_TARGET = $0024;
|
||||
CHAN1_HIBETA_PERCENT_TARGET = $0025;
|
||||
CHAN1_GAMMA_PERCENT_TARGET = $0026;
|
||||
CHAN1_USER_PERCENT_TARGET = $0027;
|
||||
|
||||
const
|
||||
CHAN2_DELTA_PERCENT_TARGET = $0028;
|
||||
CHAN2_THETA_PERCENT_TARGET = $0029;
|
||||
CHAN2_ALPHA_PERCENT_TARGET = $002A;
|
||||
CHAN2_LOBETA_PERCENT_TARGET = $002B;
|
||||
CHAN2_BETA_PERCENT_TARGET = $002C;
|
||||
CHAN2_HIBETA_PERCENT_TARGET = $002D;
|
||||
CHAN2_GAMMA_PERCENT_TARGET = $002E;
|
||||
CHAN2_USER_PERCENT_TARGET = $002F;
|
||||
|
||||
var
|
||||
DLLLoaded: Boolean { is DLL (dynamically) loaded already? }
|
||||
{$IFDEF WIN32} = False; {$ENDIF}
|
||||
|
||||
var
|
||||
Open: function(s: Pchar): Word; stdcall;
|
||||
var
|
||||
DllCFunc: function(x:integer; y:integer): Word; stdcall;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
var
|
||||
SaveExit: pointer;
|
||||
DLLHandle: THandle;
|
||||
{$IFNDEF MSDOS}
|
||||
ErrorMode: Integer;
|
||||
{$ENDIF}
|
||||
|
||||
procedure NewExit; far;
|
||||
begin
|
||||
ExitProc := SaveExit;
|
||||
FreeLibrary(DLLHandle)
|
||||
end {NewExit};
|
||||
|
||||
procedure LoadDLL;
|
||||
begin
|
||||
if DLLLoaded then Exit;
|
||||
{$IFNDEF MSDOS}
|
||||
ErrorMode := SetErrorMode($8000{SEM_NoOpenFileErrorBox});
|
||||
{$ENDIF}
|
||||
// DLLHandle := LoadLibrary('bmdll32.DLL');
|
||||
// if DLLHandle < 32 then
|
||||
DLLHandle := LoadLibrary('C:\brainm.20a\bmdll32.DLL');
|
||||
|
||||
if DLLHandle >= 32 then begin
|
||||
DLLLoaded := True;
|
||||
SaveExit := ExitProc;
|
||||
ExitProc := @NewExit;
|
||||
@Open := GetProcAddress(DLLHandle,'Open');
|
||||
Assert(@Open <> nil);
|
||||
@DllCFunc := GetProcAddress(DLLHandle,'DllCFunc');
|
||||
Assert(@DllCFunc <> nil);
|
||||
|
||||
end else begin
|
||||
DLLLoaded := False;
|
||||
{ Error: DLLDEFS.DLL could not be loaded !! }
|
||||
end;
|
||||
{$IFNDEF MSDOS}
|
||||
SetErrorMode(ErrorMode)
|
||||
{$ENDIF}
|
||||
end {LoadDLL};
|
||||
|
||||
begin
|
||||
LoadDLL;
|
||||
end.
|
Loading…
Reference in New Issue
Block a user