Stimfit @PACKAGE_VERSION@
Loading...
Searching...
No Matches
abf2headr.h
Go to the documentation of this file.
1//***********************************************************************************************
2//
3// Copyright (c) 1993-2004 Molecular Devices Corporation.
4// All rights reserved.
5// Permission is granted to freely use, modify and copy the code in this file.
6//
7//***********************************************************************************************
8// HEADER: ABFHEADR.H.
9// PURPOSE: Defines the ABFFileHeader structure, and provides prototypes for
10// functions implemented in ABFHEADR.CPP for reading and writing
11// ABFFileHeader's.
12// REVISIONS:
13// 2.0 - This version separates the data in the file from the struct passed around within the application.
14
15#ifndef INC_ABFHEADR2_H
16#define INC_ABFHEADR2_H
17
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24//
25// Constants used in defining the ABF file header
26//
27#define ABF2_ADCCOUNT 16 // number of ADC channels supported.
28#define ABF2_DACCOUNT 8 // number of DAC channels supported.
29#define ABF2_EPOCHCOUNT 10 // number of waveform epochs supported.
30#define ABF2_ADCUNITLEN 8 // length of ADC units strings
31#define ABF2_ADCNAMELEN 10 // length of ADC channel name strings
32#define ABF2_ADCNAMELEN_USER 8 // length of user-entered ADC channel name strings
33#define ABF2_DACUNITLEN 8 // length of DAC units strings
34#define ABF2_DACNAMELEN 10 // length of DAC channel name strings
35#define ABF2_USERLISTLEN 256 // length of the user list (V1.6)
36//#define ABF2_USERLISTCOUNT 4 // number of independent user lists (V1.6)
37#define ABF2_USERLISTCOUNT ABF2_DACCOUNT // number of independent user lists (V1.6)
38#define ABF2_OLDFILECOMMENTLEN 56 // length of file comment string (pre V1.6)
39#define ABF2_FILECOMMENTLEN 128 // length of file comment string (V1.6)
40#define ABF2_PATHLEN 256 // length of full path, used for DACFile and Protocol name.
41#define ABF2_CREATORINFOLEN 16 // length of file creator info string
42#define ABF2_ARITHMETICOPLEN 2 // length of the Arithmetic operator field
43#define ABF2_ARITHMETICUNITSLEN 8 // length of arithmetic units string
44#define ABF2_TAGCOMMENTLEN 56 // length of tag comment string
45#define ABF2_BLOCKSIZE 512 // Size of block alignment in ABF files.
46#define PCLAMP6_MAXSWEEPLENGTH 16384 // Maximum multiplexed sweep length supported by pCLAMP6 apps.
47#define PCLAMP7_MAXSWEEPLEN_PERCHAN 1032258 // Maximum per channel sweep length supported by pCLAMP7 apps.
48#define ABF2_MAX_SWEEPS_PER_AVERAGE 65500 // The maximum number of sweeps that can be combined into a
49 // cumulative average (nAverageAlgorithm=ABF2_INFINITEAVERAGE).
50#define ABF2_MAX_TRIAL_SAMPLES 0x7FFFFFFF // Maximum length of acquisition supported (samples)
51 // INT_MAX is used instead of UINT_MAX because of the signed
52 // values in the ABF header.
53
54//
55// Constants for nDigitizerType
56//
57//
58// Constants for nDigitizerType
59//
60#define ABF2_DIGI_UNKNOWN 0
61#define ABF2_DIGI_DEMO 1
62#define ABF2_DIGI_MINIDIGI 2
63#define ABF2_DIGI_DD132X 3
64#define ABF2_DIGI_OPUS 4
65#define ABF2_DIGI_PATCH 5
66#define ABF2_DIGI_DD1440 6
67#define ABF2_DIGI_MINIDIGI2 7
68#define ABF2_DIGI_DD1550 8
69
70//
71// Constants for nDrawingStrategy
72//
73#define ABF2_DRAW_NONE 0
74#define ABF2_DRAW_REALTIME 1
75#define ABF2_DRAW_FULLSCREEN 2
76#define ABF2_DRAW_ENDOFRUN 3
77
78//
79// Constants for nTiledDisplay
80//
81#define ABF2_DISPLAY_SUPERIMPOSED 0
82#define ABF2_DISPLAY_TILED 1
83
84//
85// Constants for nDataDisplayMode
86//
87#define ABF2_DRAW_POINTS 0
88#define ABF2_DRAW_LINES 1
89
90// Constants for the ABF2_ReadOpen and ABF2_WriteOpen functions
91#define ABF2_DATAFILE 0
92#define ABF2_PARAMFILE 1
93#define ABF2_ALLOWOVERLAP 2 // If this flag is not set, overlapping data in fixed-length
94 // event-detected data will be edited out by adjustment of
95 // the synch array. (ABF2_ReadOpen only!)
96#define ABF2_DATAFILE_ABF1 4
97#define ABF2_PARAMFILE_ABF1 8
98
99//
100// Constants for lParameterID in the ABFDelta structure.
101//
102// NOTE: If any changes are made to this list, the code in ABF2_UpdateHeader must
103// be updated to include the new items.
104#define ABF2_DELTA_HOLDING0 0
105#define ABF2_DELTA_HOLDING1 1
106#define ABF2_DELTA_HOLDING2 2
107#define ABF2_DELTA_HOLDING3 3
108#define ABF2_DELTA_DIGITALOUTS 4
109#define ABF2_DELTA_THRESHOLD 5
110#define ABF2_DELTA_PRETRIGGER 6
111#define ABF2_DELTA_HOLDING4 7
112#define ABF2_DELTA_HOLDING5 8
113#define ABF2_DELTA_HOLDING6 9
114#define ABF2_DELTA_HOLDING7 10
115
116// Because of lack of space, the Autosample Gain ID also contains the ADC number.
117#define ABF2_DELTA_AUTOSAMPLE_GAIN 100 // +ADC channel.
118
119// Because of lack of space, the Signal Gain ID also contains the ADC number.
120#define ABF2_DELTA_SIGNAL_GAIN 200 // +ADC channel.
121
122
123//
124// Constants for nAveragingMode
125//
126#define ABF2_NOAVERAGING 0
127#define ABF2_SAVEAVERAGEONLY 1
128#define ABF2_AVERAGESAVEALL 2
129
130//
131// Constants for nAverageAlgorithm
132//
133#define ABF2_INFINITEAVERAGE 0
134#define ABF2_SLIDINGAVERAGE 1
135
136//
137// Constants for nUndoPromptStrategy
138//
139#define ABF2_UNDOPROMPT_ONABORT 0
140#define ABF2_UNDOPROMPT_ALWAYS 1
141
142//
143// Constants for nTriggerAction
144//
145#define ABF2_TRIGGER_STARTEPISODE 0
146#define ABF2_TRIGGER_STARTRUN 1
147#define ABF2_TRIGGER_STARTTRIAL 2 // N.B. Discontinued in favor of nTrialTriggerSource
148
149//
150// Constants for nTriggerPolarity.
151//
152#define ABF2_TRIGGER_RISINGEDGE 0
153#define ABF2_TRIGGER_FALLINGEDGE 1
154
155//
156// Constants for nDACFileEpisodeNum
157//
158#define ABF2_DACFILE_SKIPFIRSTSWEEP -1
159#define ABF2_DACFILE_USEALLSWEEPS 0
160// >0 = The specific sweep number.
161
162//
163// Constants for nInterEpisodeLevel & nDigitalInterEpisode
164//
165#define ABF2_INTEREPI_USEHOLDING 0
166#define ABF2_INTEREPI_USELASTEPOCH 1
167
168//
169// Constants for nArithmeticExpression
170//
171#define ABF2_SIMPLE_EXPRESSION 0
172#define ABF2_RATIO_EXPRESSION 1
173
174//
175// Constants for nLowpassFilterType & nHighpassFilterType
176//
177#define ABF2_FILTER_NONE 0
178#define ABF2_FILTER_EXTERNAL 1
179#define ABF2_FILTER_SIMPLE_RC 2
180#define ABF2_FILTER_BESSEL 3
181#define ABF2_FILTER_BUTTERWORTH 4
182
183//
184// Constants for post nPostprocessLowpassFilterType
185//
186#define ABF2_POSTPROCESS_FILTER_NONE 0
187#define ABF2_POSTPROCESS_FILTER_ADAPTIVE 1
188#define ABF2_POSTPROCESS_FILTER_BESSEL 2
189#define ABF2_POSTPROCESS_FILTER_BOXCAR 3
190#define ABF2_POSTPROCESS_FILTER_BUTTERWORTH 4
191#define ABF2_POSTPROCESS_FILTER_CHEBYSHEV 5
192#define ABF2_POSTPROCESS_FILTER_GAUSSIAN 6
193#define ABF2_POSTPROCESS_FILTER_RC 7
194#define ABF2_POSTPROCESS_FILTER_RC8 8
195#define ABF2_POSTPROCESS_FILTER_NOTCH 9
196
197//
198// The output sampling sequence identifier for a separate digital out channel.
199//
200#define ABF2_DIGITAL_OUT_CHANNEL -1
201#define ABF2_PADDING_OUT_CHANNEL -2
202
203//
204// Constants for nAutoAnalyseEnable
205//
206#define ABF2_AUTOANALYSE_DISABLED 0
207#define ABF2_AUTOANALYSE_DEFAULT 1
208#define ABF2_AUTOANALYSE_RUNMACRO 2
209
210//
211// Constants for nAutopeakSearchMode
212//
213#define ABF2_PEAK_SEARCH_SPECIFIED -2
214#define ABF2_PEAK_SEARCH_ALL -1
215// nAutopeakSearchMode 0..9 = epoch in waveform 0's epoch table
216// nAutopeakSearchMode 10..19 = epoch in waveform 1's epoch table
217
218//
219// Constants for nAutopeakBaseline
220//
221#define ABF2_PEAK_BASELINE_SPECIFIED -3
222#define ABF2_PEAK_BASELINE_NONE -2
223#define ABF2_PEAK_BASELINE_FIRSTHOLDING -1
224#define ABF2_PEAK_BASELINE_LASTHOLDING -4
225
226// Bit flag settings for nStatsSearchRegionFlags
227//
228#define ABF2_PEAK_SEARCH_REGION0 0x01
229#define ABF2_PEAK_SEARCH_REGION1 0x02
230#define ABF2_PEAK_SEARCH_REGION2 0x04
231#define ABF2_PEAK_SEARCH_REGION3 0x08
232#define ABF2_PEAK_SEARCH_REGION4 0x10
233#define ABF2_PEAK_SEARCH_REGION5 0x20
234#define ABF2_PEAK_SEARCH_REGION6 0x40
235#define ABF2_PEAK_SEARCH_REGION7 0x80
236#define ABF2_PEAK_SEARCH_REGIONALL 0xFF // All of the above OR'd together.
237
238//
239// Constants for nStatsActiveChannels
240//
241#define ABF2_PEAK_SEARCH_CHANNEL0 0x0001
242#define ABF2_PEAK_SEARCH_CHANNEL1 0x0002
243#define ABF2_PEAK_SEARCH_CHANNEL2 0x0004
244#define ABF2_PEAK_SEARCH_CHANNEL3 0x0008
245#define ABF2_PEAK_SEARCH_CHANNEL4 0x0010
246#define ABF2_PEAK_SEARCH_CHANNEL5 0x0020
247#define ABF2_PEAK_SEARCH_CHANNEL6 0x0040
248#define ABF2_PEAK_SEARCH_CHANNEL7 0x0080
249#define ABF2_PEAK_SEARCH_CHANNEL8 0x0100
250#define ABF2_PEAK_SEARCH_CHANNEL9 0x0200
251#define ABF2_PEAK_SEARCH_CHANNEL10 0x0400
252#define ABF2_PEAK_SEARCH_CHANNEL11 0x0800
253#define ABF2_PEAK_SEARCH_CHANNEL12 0x1000
254#define ABF2_PEAK_SEARCH_CHANNEL13 0x2000
255#define ABF2_PEAK_SEARCH_CHANNEL14 0x4000
256#define ABF2_PEAK_SEARCH_CHANNEL15 0x8000
257#define ABF2_PEAK_SEARCH_CHANNELSALL 0xFFFF // All of the above OR'd together.
258
259//
260// Constants for nLeakSubtractType
261//
262#define ABF2_LEAKSUBTRACT_NONE 0
263#define ABF2_LEAKSUBTRACT_PN 1
264#define ABF2_LEAKSUBTRACT_RESISTIVE 2
265
266//
267// Constants for nPNPolarity
268//
269#define ABF2_PN_OPPOSITE_POLARITY -1
270#define ABF2_PN_SAME_POLARITY 1
271
272//
273// Constants for nPNPosition
274//
275#define ABF2_PN_BEFORE_EPISODE 0
276#define ABF2_PN_AFTER_EPISODE 1
277
278//
279// Constants for nAutosampleEnable
280//
281#define ABF2_AUTOSAMPLEDISABLED 0
282#define ABF2_AUTOSAMPLEAUTOMATIC 1
283#define ABF2_AUTOSAMPLEMANUAL 2
284
285//
286// Constants for nAutosampleInstrument
287//
288#define ABF2_INST_UNKNOWN 0 // Unknown instrument (manual or user defined telegraph table).
289#define ABF2_INST_AXOPATCH1 1 // Axopatch-1 with CV-4-1/100
290#define ABF2_INST_AXOPATCH1_1 2 // Axopatch-1 with CV-4-0.1/100
291#define ABF2_INST_AXOPATCH1B 3 // Axopatch-1B(inv.) CV-4-1/100
292#define ABF2_INST_AXOPATCH1B_1 4 // Axopatch-1B(inv) CV-4-0.1/100
293#define ABF2_INST_AXOPATCH201 5 // Axopatch 200 with CV 201
294#define ABF2_INST_AXOPATCH202 6 // Axopatch 200 with CV 202
295#define ABF2_INST_GENECLAMP 7 // GeneClamp
296#define ABF2_INST_DAGAN3900 8 // Dagan 3900
297#define ABF2_INST_DAGAN3900A 9 // Dagan 3900A
298#define ABF2_INST_DAGANCA1_1 10 // Dagan CA-1 Im=0.1
299#define ABF2_INST_DAGANCA1 11 // Dagan CA-1 Im=1.0
300#define ABF2_INST_DAGANCA10 12 // Dagan CA-1 Im=10
301#define ABF2_INST_WARNER_OC725 13 // Warner OC-725
302#define ABF2_INST_WARNER_OC725C 14 // Warner OC-725
303#define ABF2_INST_AXOPATCH200B 15 // Axopatch 200B
304#define ABF2_INST_DAGANPCONE0_1 16 // Dagan PC-ONE Im=0.1
305#define ABF2_INST_DAGANPCONE1 17 // Dagan PC-ONE Im=1.0
306#define ABF2_INST_DAGANPCONE10 18 // Dagan PC-ONE Im=10
307#define ABF2_INST_DAGANPCONE100 19 // Dagan PC-ONE Im=100
308#define ABF2_INST_WARNER_BC525C 20 // Warner BC-525C
309#define ABF2_INST_WARNER_PC505 21 // Warner PC-505
310#define ABF2_INST_WARNER_PC501 22 // Warner PC-501
311#define ABF2_INST_DAGANCA1_05 23 // Dagan CA-1 Im=0.05
312#define ABF2_INST_MULTICLAMP700 24 // MultiClamp 700
313#define ABF2_INST_TURBO_TEC 25 // Turbo Tec
314#define ABF2_INST_OPUSXPRESS6000 26 // OpusXpress 6000A
315#define ABF2_INST_AXOCLAMP900 27 // Axoclamp 900
316
317//
318// Constants for nTagType in the ABFTag structure.
319//
320#define ABF2_TIMETAG 0
321#define ABF2_COMMENTTAG 1
322#define ABF2_EXTERNALTAG 2
323#define ABF2_VOICETAG 3
324#define ABF2_NEWFILETAG 4
325#define ABF2_ANNOTATIONTAG 5 // Same as a comment tag except that nAnnotationIndex holds
326 // the index of the annotation that holds extra information.
327
328// Comment inserted for externally acquired tags (expanded with spaces to ABF2_TAGCOMMENTLEN).
329#define ABF2_EXTERNALTAGCOMMENT "<External>"
330#define ABF2_VOICETAGCOMMENT "<Voice Tag>"
331
332//
333// Constants for nManualInfoStrategy
334//
335#define ABF2_ENV_DONOTWRITE 0
336#define ABF2_ENV_WRITEEACHTRIAL 1
337#define ABF2_ENV_PROMPTEACHTRIAL 2
338
339//
340// Constants for nAutopeakPolarity
341//
342#define ABF2_PEAK_NEGATIVE -1
343#define ABF2_PEAK_ABSOLUTE 0
344#define ABF2_PEAK_POSITIVE 1
345
346//
347// LTP Types - Reflects whether the header is used for LTP as baseline or induction.
348//
349#define ABF2_LTP_TYPE_NONE 0
350#define ABF2_LTP_TYPE_BASELINE 1
351#define ABF2_LTP_TYPE_INDUCTION 2
352
353//
354// LTP Usage of DAC - Reflects whether the analog output will be used presynaptically or postsynaptically.
355//
356#define ABF2_LTP_DAC_USAGE_NONE 0
357#define ABF2_LTP_DAC_USAGE_PRESYNAPTIC 1
358#define ABF2_LTP_DAC_USAGE_POSTSYNAPTIC 2
359
360// Values for the wScopeMode field in ABFScopeConfig.
361#define ABF2_EPISODICMODE 0
362#define ABF2_CONTINUOUSMODE 1
363//#define ABF2_XYMODE 2
364
365//
366// Constants for nExperimentType
367//
368#define ABF2_VOLTAGECLAMP 0
369#define ABF2_CURRENTCLAMP 1
370#define ABF2_SIMPLEACQUISITION 2
371
372//
373// Miscellaneous constants
374//
375#define ABF2_FILTERDISABLED 100000.0F // Large frequency to disable lowpass filters
376#define ABF2_UNUSED_CHANNEL -1 // Unused ADC and DAC channels.
377#define ABF2_ANY_CHANNEL (UINT)-1 // Any ADC or DAC channel.
378
379//
380// Constant definitions for nDataFormat
381//
382#define ABF2_INTEGERDATA 0
383#define ABF2_FLOATDATA 1
384
385//
386// Constant definitions for nOperationMode
387//
388#define ABF2_VARLENEVENTS 1
389#define ABF2_FIXLENEVENTS 2 // (ABF2_FIXLENEVENTS == ABF2_LOSSFREEOSC)
390#define ABF2_LOSSFREEOSC 2
391#define ABF2_GAPFREEFILE 3
392#define ABF2_HIGHSPEEDOSC 4
393#define ABF2_WAVEFORMFILE 5
394
395//
396// Constants for nEpochType
397//
398#define ABF2_EPOCHDISABLED 0 // disabled epoch
399#define ABF2_EPOCHSTEPPED 1 // stepped waveform
400#define ABF2_EPOCHRAMPED 2 // ramp waveform
401#define ABF2_EPOCH_TYPE_RECTANGLE 3 // rectangular pulse train
402#define ABF2_EPOCH_TYPE_TRIANGLE 4 // triangular waveform
403#define ABF2_EPOCH_TYPE_COSINE 5 // cosinusoidal waveform
404#define ABF2_EPOCH_TYPE_UNUSED 6 // was ABF2_EPOCH_TYPE_RESISTANCE
405#define ABF2_EPOCH_TYPE_BIPHASIC 7 // biphasic pulse train
406#define ABF2_EPOCHSLOPE 8 // IonWorks style ramp waveform
407
408//
409// Constants for epoch resistance
410//
411#define ABF2_MIN_EPOCH_RESISTANCE_DURATION 8
412
413//
414// Constants for nWaveformSource
415//
416#define ABF2_WAVEFORMDISABLED 0 // disabled waveform
417#define ABF2_EPOCHTABLEWAVEFORM 1
418#define ABF2_DACFILEWAVEFORM 2
419
420//
421// Constant definitions for nFileType
422//
423#define ABF2_ABFFILE 1
424#define ABF2_FETCHEX 2
425#define ABF2_CLAMPEX 3
426
427//
428// maximum values for various parameters (used by ABFH1_CheckUserList).
429//
430#define ABF2_CTPULSECOUNT_MAX 10000
431#define ABF2_CTBASELINEDURATION_MAX 1000000.0F
432#define ABF2_CTSTEPDURATION_MAX 1000000.0F
433#define ABF2_CTPOSTTRAINDURATION_MAX 1000000.0F
434#define ABF2_SWEEPSTARTTOSTARTTIME_MAX 1000000.0F
435#define ABF2_PNPULSECOUNT_MAX 8
436#define ABF2_DIGITALVALUE_MAX 0xFF
437#define ABF2_EPOCHDIGITALVALUE_MAX 0xFF
438
439//
440// Constants for nTriggerSource
441//
442#define ABF2_TRIGGERLINEINPUT -5 // Start on line trigger (DD1320 only)
443#define ABF2_TRIGGERTAGINPUT -4
444#define ABF2_TRIGGERFIRSTCHANNEL -3
445#define ABF2_TRIGGEREXTERNAL -2
446#define ABF2_TRIGGERSPACEBAR -1
447// >=0 = ADC channel to trigger off.
448
449//
450// Constants for nTrialTriggerSource
451//
452#define ABF2_TRIALTRIGGER_SWSTARTONLY -6 // Start on software message, end when protocol ends.
453#define ABF2_TRIALTRIGGER_SWSTARTSTOP -5 // Start and end on software messages.
454#define ABF2_TRIALTRIGGER_LINEINPUT -4 // Start on line trigger (DD1320 only)
455#define ABF2_TRIALTRIGGER_SPACEBAR -3 // Start on spacebar press.
456#define ABF2_TRIALTRIGGER_EXTERNAL -2 // Start on external trigger high
457#define ABF2_TRIALTRIGGER_NONE -1 // Start immediately (default).
458// >=0 = ADC channel to trigger off. // Not implemented as yet...
459
460//
461// Constants for lStatisticsMeasurements
462//
463#define ABF2_STATISTICS_ABOVETHRESHOLD 0x00000001
464#define ABF2_STATISTICS_EVENTFREQUENCY 0x00000002
465#define ABF2_STATISTICS_MEANOPENTIME 0x00000004
466#define ABF2_STATISTICS_MEANCLOSEDTIME 0x00000008
467#define ABF2_STATISTICS_ALL 0x0000000F // All the above OR'd together.
468
469//
470// Constants for nStatisticsSaveStrategy
471//
472#define ABF2_STATISTICS_NOAUTOSAVE 0
473#define ABF2_STATISTICS_AUTOSAVE 1
474#define ABF2_STATISTICS_AUTOSAVE_AUTOCLEAR 2
475
476//
477// Constants for nStatisticsDisplayStrategy
478//
479#define ABF2_STATISTICS_DISPLAY 0
480#define ABF2_STATISTICS_NODISPLAY 1
481
482//
483// Constants for nStatisticsClearStrategy
484// determines whether to clear statistics after saving.
485//
486#define ABF2_STATISTICS_NOCLEAR 0
487#define ABF2_STATISTICS_CLEAR 1
488
489#define ABF2_STATS_REGIONS 8 // The number of independent statistics regions.
490#define ABF2_BASELINE_REGIONS 1 // The number of independent baseline regions.
491#define ABF2_STATS_NUM_MEASUREMENTS 18 // The total number of supported statistcs measurements.
492
493//
494// Constants for lAutopeakMeasurements
495//
496#define ABF2_PEAK_MEASURE_PEAK 0x00000001
497#define ABF2_PEAK_MEASURE_PEAKTIME 0x00000002
498#define ABF2_PEAK_MEASURE_ANTIPEAK 0x00000004
499#define ABF2_PEAK_MEASURE_ANTIPEAKTIME 0x00000008
500#define ABF2_PEAK_MEASURE_MEAN 0x00000010
501#define ABF2_PEAK_MEASURE_STDDEV 0x00000020
502#define ABF2_PEAK_MEASURE_INTEGRAL 0x00000040
503#define ABF2_PEAK_MEASURE_MAXRISESLOPE 0x00000080
504#define ABF2_PEAK_MEASURE_MAXRISESLOPETIME 0x00000100
505#define ABF2_PEAK_MEASURE_MAXDECAYSLOPE 0x00000200
506#define ABF2_PEAK_MEASURE_MAXDECAYSLOPETIME 0x00000400
507#define ABF2_PEAK_MEASURE_RISETIME 0x00000800
508#define ABF2_PEAK_MEASURE_DECAYTIME 0x00001000
509#define ABF2_PEAK_MEASURE_HALFWIDTH 0x00002000
510#define ABF2_PEAK_MEASURE_BASELINE 0x00004000
511#define ABF2_PEAK_MEASURE_RISESLOPE 0x00008000
512#define ABF2_PEAK_MEASURE_DECAYSLOPE 0x00010000
513#define ABF2_PEAK_MEASURE_REGIONSLOPE 0x00020000
514#define ABF2_PEAK_MEASURE_DURATION 0x00040000
515
516#define ABF2_PEAK_NORMAL_PEAK 0x00100000
517#define ABF2_PEAK_NORMAL_ANTIPEAK 0x00400000
518#define ABF2_PEAK_NORMAL_MEAN 0x01000000
519#define ABF2_PEAK_NORMAL_STDDEV 0x02000000
520#define ABF2_PEAK_NORMAL_INTEGRAL 0x04000000
521
522#define ABF2_PEAK_NORMALISABLE 0x00000075
523#define ABF2_PEAK_NORMALISED 0x07500000
524
525#define ABF2_PEAK_MEASURE_ALL 0x0752FFFF // All of the above OR'd together.
526
527//
528// Constant definitions for nParamToVary
529//
530#define ABF2_CONDITNUMPULSES 0
531#define ABF2_CONDITBASELINEDURATION 1
532#define ABF2_CONDITBASELINELEVEL 2
533#define ABF2_CONDITSTEPDURATION 3
534#define ABF2_CONDITSTEPLEVEL 4
535#define ABF2_CONDITPOSTTRAINDURATION 5
536#define ABF2_CONDITPOSTTRAINLEVEL 6
537#define ABF2_EPISODESTARTTOSTART 7
538#define ABF2_INACTIVEHOLDING 8
539#define ABF2_DIGITALHOLDING 9
540#define ABF2_PNNUMPULSES 10
541#define ABF2_PARALLELVALUE 11
542#define ABF2_EPOCHINITLEVEL (ABF2_PARALLELVALUE + ABF2_EPOCHCOUNT)
543#define ABF2_EPOCHINITDURATION (ABF2_EPOCHINITLEVEL + ABF2_EPOCHCOUNT)
544#define ABF2_EPOCHTRAINPERIOD (ABF2_EPOCHINITDURATION + ABF2_EPOCHCOUNT)
545#define ABF2_EPOCHTRAINPULSEWIDTH (ABF2_EPOCHTRAINPERIOD + ABF2_EPOCHCOUNT)
546// Next value is (ABF2_EPOCHINITDURATION + ABF2_EPOCHCOUNT)
547
548// Values for the nEraseStrategy field in ABFScopeConfig.
549#define ABF2_ERASE_EACHSWEEP 0
550#define ABF2_ERASE_EACHRUN 1
551#define ABF2_ERASE_EACHTRIAL 2
552#define ABF2_ERASE_DONTERASE 3
553
554// Indexes into the rgbColor field of ABFScopeConfig.
555#define ABF2_BACKGROUNDCOLOR 0
556#define ABF2_GRIDCOLOR 1
557#define ABF2_THRESHOLDCOLOR 2
558#define ABF2_EVENTMARKERCOLOR 3
559#define ABF2_SEPARATORCOLOR 4
560#define ABF2_AVERAGECOLOR 5
561#define ABF2_OLDDATACOLOR 6
562#define ABF2_TEXTCOLOR 7
563#define ABF2_AXISCOLOR 8
564#define ABF2_ACTIVEAXISCOLOR 9
565#define ABF2_LASTCOLOR ABF2_ACTIVEAXISCOLOR
566#define ABF2_SCOPECOLORS (ABF2_LASTCOLOR+1)
567
568// Extended colors for rgbColorEx field in ABFScopeConfig
569#define ABF2_STATISTICS_REGION0 0
570#define ABF2_STATISTICS_REGION1 1
571#define ABF2_STATISTICS_REGION2 2
572#define ABF2_STATISTICS_REGION3 3
573#define ABF2_STATISTICS_REGION4 4
574#define ABF2_STATISTICS_REGION5 5
575#define ABF2_STATISTICS_REGION6 6
576#define ABF2_STATISTICS_REGION7 7
577#define ABF2_BASELINE_REGION 8
578#define ABF2_STOREDSWEEPCOLOR 9
579#define ABF2_LASTCOLOR_EX ABF2_STOREDSWEEPCOLOR
580#define ABF2_SCOPECOLORS_EX (ABF2_LASTCOLOR+1)
581
582//
583// Constants for nCompressionType in the ABFVoiceTagInfo structure.
584//
585#define ABF2_COMPRESSION_NONE 0
586#define ABF2_COMPRESSION_PKWARE 1
587
588#define ABF2_CURRENTVERSION ABF2_V203 // Current file format version number
589//
590// Header Version Numbers
591//
592#define ABF2_V200 2.00F // Alpha versions of pCLAMP 10 and DataXpress 2
593#define ABF2_V201 2.01F // DataXpress 2.0.0.16 and later
594 // pCLAMP 10.0.0.6 and later
595#define ABF2_V202 2.02F // Barracuda 1.0 and later
596#define ABF2_V203 2.03F // pCLAMP 10.4.0.7 and later
597
598// Retired constants.
599#undef ABF2_AUTOANALYSE_RUNMACRO
600#undef ABF2_MACRONAMELEN
601
602//
603// pack structure on byte boundaries
604//
605#ifndef RC_INVOKED
606#pragma pack(push, 1)
607#endif
608
609//
610// Definition of the ABF header structure.
611//
613{
614public:
615 // GROUP #1 - File ID and size information
621 UINT uFileStartDate; // YYYYMMDD
626
627 // GROUP #2 - File Structure
646
647 // GROUP #3 - Trial hierarchy information
673
674 // GROUP #4 - Display Parameters
684
685 // GROUP #5 - Hardware information
695
696 // GROUP #6 Environmental Information
699 float fCellID1;
700 float fCellID2;
701 float fCellID3;
715
717
722
723 // GROUP #7 - Multi-channel information
724 short nSignalType; // why is this only single channel ?
739
748
749 // GROUP #9 - Epoch Waveform and Pulses
751 short nActiveDACChannel; // should retire !
764 float fEpochFinalLevel[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]; // Only used for ABF_EPOCHSLOPE.
770
771 // GROUP #10 - DAC Output File
777
778 // GROUP #11a - Presweep (conditioning) pulse train
791
792 // GROUP #11b - Membrane Test Between Sweeps
796
797 // GROUP #11c - PreSignal test pulse
805
806 // GROUP #12 - Variable parameter user list
811
812 // GROUP #13 - Statistics measurements
814 unsigned short nStatsActiveChannels; // Active stats channel bit flag
815 unsigned short nStatsSearchRegionFlags; // Active stats region bit flag
819 short nStatsBaselineDAC; // If mode is epoch, then this holds the DAC
822 ABFLONG lStatsMeasurements[ABF2_STATS_REGIONS]; // Measurement bit flag for each region
830 short nStatsSearchMode[ABF2_STATS_REGIONS]; // Stats mode per region: mode is cursor region, epoch etc
831 short nStatsSearchDAC[ABF2_STATS_REGIONS]; // If mode is epoch, then this holds the DAC
832
833 // GROUP #14 - Channel Arithmetic
848
849 // GROUP #15 - Leak subtraction
858
859 // GROUP #16 - Miscellaneous variables
871 short nEnableFirstLastHolding; // First & Last Holding are now optional.
872
873 // GROUP #17 - Trains parameters
876
877 // GROUP #18 - Application version data
886
887 // GROUP #19 - LTP protocol
888 short nLTPType;
891
892 // GROUP #20 - Digidata 132x Trigger out flag
894
895 // GROUP #22 - Alternating episodic mode
900
901 // GROUP #23 - Post-processing actions
904
905 // GROUP #24 - Legacy gear shift info
910
912};
913
915{
916 // Set everything to 0.
917 memset( this, 0, sizeof(ABF2FileHeader) );
918
919 // Set critical parameters so we can determine the version.
922 lHeaderSize = sizeof(ABF2FileHeader);
923}
924
925//
926// Scope descriptor format.
927//
928#define ABF2_FACESIZE 32
930{
931 short nHeight; // Height of the font in pixels.
932// short lWidth; // use 0
933// short lEscapement; // use 0
934// short lOrientation; // use 0
935 short nWeight; // MSWindows font weight value.
936// char bItalic; // use 0
937// char bUnderline; // use 0
938// char bStrikeOut; // use 0
939// char cCharSet; // use ANSI_CHARSET (0)
940// char cOutPrecision; // use OUT_TT_PRECIS
941// char cClipPrecision; // use CLIP_DEFAULT_PRECIS
942// char cQuality; // use PROOF_QUALITY
943 char cPitchAndFamily; // MSWindows pitch and family mask.
944 char Unused[3]; // Unused space to maintain 4-byte packing.
945 char szFaceName[ABF2_FACESIZE];// Face name of the font.
946}; // Size = 40
947
949{
950 char szName[ABF2_ADCNAMELEN+2]; // ABF name length + '\0' + 1 for alignment.
951 short nMxOffset; // Offset of the signal in the sampling sequence.
952 DWORD rgbColor; // Pen color used to draw trace.
953 char nPenWidth; // Pen width in pixels.
954 char bDrawPoints; // TRUE = Draw disconnected points
955 char bHidden; // TRUE = Hide the trace.
956 char bFloatData; // TRUE = Floating point pseudo channel
957 float fVertProportion; // Relative proportion of client area to use
958 float fDisplayGain; // Display gain of trace in UserUnits
959 float fDisplayOffset; // Display offset of trace in UserUnits
960
961// float fUUTop; // Top of window in UserUnits
962// float fUUBottom; // Bottom of window in UserUnits
963}; // Size = 34
964
966{
967 // Section 1 scope configurations
968 DWORD dwFlags; // Flags that are meaningful to the scope.
969 DWORD rgbColor[ABF2_SCOPECOLORS]; // Colors for the components of the scope.
970 float fDisplayStart; // Start of the display area in ms.
971 float fDisplayEnd; // End of the display area in ms.
972 WORD wScopeMode; // Mode that the scope is in.
973 char bMaximized; // TRUE = Scope parent is maximized.
974 char bMinimized; // TRUE = Scope parent is minimized.
975 short xLeft; // Coordinate of the left edge.
976 short yTop; // Coordinate of the top edge.
977 short xRight; // Coordinate of the right edge.
978 short yBottom; // Coordinate of the bottom edge.
979 ABFLogFont LogFont; // Description of current font.
980 ABFSignal TraceList[ABF2_ADCCOUNT]; // List of traces in current use.
981 short nYAxisWidth; // Width of the YAxis region.
982 short nTraceCount; // Number of traces described in TraceList.
983 short nEraseStrategy; // Erase strategy.
984 short nDockState; // Docked position.
985 // Size 656
986 // * Do not insert any new members above this point! *
987 // Section 2 scope configurations for file version 1.68.
988 short nSizeofOldStructure; // Unused byte to determine the offset of the version 2 data.
989 DWORD rgbColorEx[ ABF2_SCOPECOLORS_EX ]; // New color settings for stored sweep and cursors.
990 short nAutoZeroState; // Status of the autozero selection.
991 DWORD dwCursorsVisibleState; // Flag for visible status of cursors.
992 DWORD dwCursorsLockedState; // Flag for enabled status of cursors.
993 char sUnasigned[61];
994 // Size 113
996}; // Size = 769
997
998
1000{
1001 // Set everything to 0.
1002 memset( this, 0, sizeof(ABFScopeConfig) );
1003
1004 // Set critical parameters so we can determine the version.
1005 nSizeofOldStructure = 656;
1006}
1007
1008//
1009// Definition of the ABF Tag structure
1010//
1012{
1013 ABFLONG lTagTime; // Time at which the tag was entered in fSynchTimeUnit units.
1014 char sComment[ABF2_TAGCOMMENTLEN]; // Optional tag comment.
1015 short nTagType; // Type of tag ABF2_TIMETAG, ABF2_COMMENTTAG, ABF2_EXTERNALTAG, ABF2_VOICETAG, ABF2_NEWFILETAG or ABF2_ANNOTATIONTAG
1016 union
1017 {
1018 short nVoiceTagNumber; // If nTagType=ABF2_VOICETAG, this is the number of this voice tag.
1019 short nAnnotationIndex; // If nTagType=ABF2_ANNOTATIONTAG, this is the index of the corresponding annotation.
1020 };
1021}; // Size = 64
1022
1023//
1024// Definition of the ABFVoiceTagInfo structure.
1025//
1027{
1028 ABFLONG lTagNumber; // The tag number that corresponds to this VoiceTag
1029 ABFLONG lFileOffset; // Offset to this tag within the VoiceTag block
1030 ABFLONG lUncompressedSize; // Size of the voice tag expanded.
1031 ABFLONG lCompressedSize; // Compressed size of the tag.
1032 short nCompressionType; // Compression method used.
1033 short nSampleSize; // Size of the samples acquired.
1034 ABFLONG lSamplesPerSecond; // Rate at which the sound was acquired.
1035 DWORD dwCRC; // CRC used to check data integrity.
1036 WORD wChannels; // Number of channels in the tag (usually 1).
1037 WORD wUnused; // Unused space.
1038}; // Size 32
1039
1040//
1041// Definition of the ABF Delta structure.
1042//
1044{
1045 ABFLONG lDeltaTime; // Time at which the parameter was changed in fSynchTimeUnit units.
1046 ABFLONG lParameterID; // Identifier for the parameter changed
1047 union
1048 {
1049 ABFLONG lNewParamValue; // Depending on the value of lParameterID
1050 float fNewParamValue; // this entry may be either a float or a long.
1051 };
1052}; // Size = 12
1053
1054//
1055// Definition of the ABF synch array structure
1056//
1058{
1059 ABFLONG lStart; // Start of the episode/event in fSynchTimeUnit units.
1060 ABFLONG lLength; // Length of the episode/event in multiplexed samples.
1061}; // Size = 8
1062
1063#ifndef RC_INVOKED
1064#pragma pack(pop) // return to default packing
1065#endif
1066
1067// ============================================================================================
1068// Function prototypes for functions in ABFHEADR.C
1069// ============================================================================================
1070
1072
1073#if 0
1074void WINAPI ABF2H_InitializeScopeConfig(const ABF2FileHeader *pFH, ABFScopeConfig *pCfg);
1075
1076BOOL WINAPI ABF2H_CheckScopeConfig(const ABF2FileHeader *pFH, ABFScopeConfig *pCfg);
1077
1078void WINAPI ABF2H_GetADCDisplayRange( const ABF2FileHeader *pFH, int nChannel,
1079 float *pfUUTop, float *pfUUBottom);
1080#endif
1081void WINAPI ABF2H_GetADCtoUUFactors( const ABF2FileHeader *pFH, int nChannel,
1082 float *pfADCToUUFactor, float *pfADCToUUShift );
1083#if 0
1084void WINAPI ABF2H_ClipADCUUValue(const ABF2FileHeader *pFH, int nChannel, float *pfUUValue);
1085
1086void WINAPI ABF2H_GetDACtoUUFactors( const ABF2FileHeader *pFH, int nChannel,
1087 float *pfDACToUUFactor, float *pfDACToUUShift );
1088void WINAPI ABF2H_ClipDACUUValue(const ABF2FileHeader *pFH, int nChannel, float *pfUUValue);
1089#endif
1090BOOL WINAPI ABF2H_GetMathValue(const ABF2FileHeader *pFH, float fA, float fB, float *pfRval);
1091#if 0
1092int WINAPI ABF2H_GetMathChannelName(LPSTR psz, UINT uLen);
1093
1094BOOL WINAPI ABF2H_ParamReader( HANDLE hFile, ABF2FileHeader *pFH, int *pnError );
1095BOOL WINAPI ABF2H_ParamWriter( HANDLE hFile, ABF2FileHeader *pFH, int *pnError );
1096
1097BOOL WINAPI ABF2H_GetErrorText( int nError, char *pszBuffer, UINT nBufferSize );
1098
1099BOOL WINAPI ABF2H_GetCreatorInfo(const ABF2FileHeader *pFH, char *pszName, UINT uNameSize, char *pszVersion, UINT uVersionSize);
1100BOOL WINAPI ABF2H_GetModifierInfo(const ABF2FileHeader *pFH, char *pszName, UINT uNameSize, char *pszVersion, UINT uVersionSize);
1101
1102// ABF 1 conversion functions - use with care.
1103struct ABF2FileHeader1;
1104BOOL WINAPI ABF2H_ConvertFromABF1( const ABF2FileHeader1 *pIn, ABF2FileHeader *pOut, int *pnError );
1105BOOL WINAPI ABF2H_ConvertABF2ToABF1Header( const ABF2FileHeader *pNewFH, ABF2FileHeader1 *pOldFH, int *pnError );
1106
1107
1108// ABFHWAVE.CPP
1109
1110// Constants for ABF2H_GetEpochLimits
1111#define ABF2H_FIRSTHOLDING -1
1112#define ABF2H_LASTHOLDING ABF2_EPOCHCOUNT
1113
1114// Return the bounds of a given epoch in a given episode. Values returned are ZERO relative.
1115BOOL WINAPI ABF2H_GetEpochLimits(const ABF2FileHeader *pFH, int nADCChannel, UINT uDACChannel, DWORD dwEpisode,
1116 int nEpoch, UINT *puEpochStart, UINT *puEpochEnd,
1117 int *pnError);
1118
1119#endif
1120// Get the offset in the sampling sequence for the given physical channel.
1121BOOL WINAPI ABF2H_GetChannelOffset( const ABF2FileHeader *pFH, int nChannel, UINT *puChannelOffset );
1122
1123// Gets the first sample interval, expressed as a double.
1125
1126#if 0
1127// This function forms the de-multiplexed DAC output waveform for the
1128// particular channel in the pfBuffer, in DAC UserUnits.
1129BOOL WINAPI ABF2H_GetWaveform( const ABF2FileHeader *pFH, UINT uDACChannel, DWORD dwEpisode,
1130 float *pfBuffer, int *pnError);
1131
1132// This function forms the de-multiplexed Digital output waveform for the
1133// particular channel in the pdwBuffer, as a bit mask. Digital OUT 0 is in bit 0.
1134BOOL WINAPI ABF2H_GetDigitalWaveform( const ABF2FileHeader *pFH, int nChannel, DWORD dwEpisode,
1135 DWORD *pdwBuffer, int *pnError);
1136
1137// Calculates the timebase array for the file.
1138void WINAPI ABF2H_GetTimebase(const ABF2FileHeader *pFH, double dTimeOffset, double *pdBuffer, UINT uBufferSize);
1139
1140// Constant for ABF2H_GetHoldingDuration
1141#define ABF2H_HOLDINGFRACTION 64
1142
1143// Get the duration of the first holding period.
1144UINT WINAPI ABF2H_GetHoldingDuration(const ABF2FileHeader *pFH);
1145
1146// Checks whether the waveform varies from episode to episode.
1147BOOL WINAPI ABF2H_IsConstantWaveform(const ABF2FileHeader *pFH, UINT uDACChannel);
1148
1149// Get the full sweep length given the length available to epochs or vice-versa.
1150int WINAPI ABF2H_SweepLenFromUserLen(int nUserLength, int nNumChannels);
1151int WINAPI ABF2H_UserLenFromSweepLen(int nSweepLength, int nNumChannels);
1152
1153// Converts a display range to the equivalent gain and offset factors.
1154void WINAPI ABF2H_GainOffsetToDisplayRange( const ABF2FileHeader *pFH, int nChannel,
1155 float fDisplayGain, float fDisplayOffset,
1156 float *pfUUTop, float *pfUUBottom);
1157
1158// Converts a display range to the equivalent gain and offset factors.
1159void WINAPI ABF2H_DisplayRangeToGainOffset( const ABF2FileHeader *pFH, int nChannel,
1160 float fUUTop, float fUUBottom,
1161 float *pfDisplayGain, float *pfDisplayOffset);
1162
1163// Converts a time value to a synch time count or vice-versa.
1164void WINAPI ABF2H_SynchCountToMS(const ABF2FileHeader *pFH, UINT uCount, double *pdTimeMS);
1165UINT WINAPI ABF2H_MSToSynchCount(const ABF2FileHeader *pFH, double dTimeMS);
1166
1167// Gets the duration of the Waveform Episode (in us), allowing for split clock etc.
1168void WINAPI ABF2H_GetEpisodeDuration(const ABF2FileHeader *pFH, double *pdEpisodeDuration);
1169
1170// Returns TRUE is P/N is enabled on any output channel.
1171BOOL WINAPI ABF2H_IsPNEnabled(const ABF2FileHeader *pFH, UINT uDAC=ABF2_ANY_CHANNEL);
1172
1173// Gets the duration of a P/N sequence (in us), including settling times.
1174void WINAPI ABF2H_GetPNDuration(const ABF2FileHeader *pFH, double *pdPNDuration);
1175
1176// Gets the duration of a pre-sweep train in us.
1177void WINAPI ABF2H_GetTrainDuration (const ABF2FileHeader *pFH, UINT uDAC, double *pdTrainDuration);
1178
1179// Gets the duration of a post-train portion of the pre-sweep train in us.
1180void WINAPI ABF2H_GetPostTrainDuration (const ABF2FileHeader *pFH, UINT uDAC, UINT uEpisode, double *pdDuration);
1181
1182// Gets the level of a post-train portion of the pre-sweep train.
1183void WINAPI ABF2H_GetPostTrainLevel (const ABF2FileHeader *pFH, UINT uDAC, UINT uEpisode, double *pdLevel);
1184
1185// Gets the duration of a whole meta-episode (in us).
1186void WINAPI ABF2H_GetMetaEpisodeDuration(const ABF2FileHeader *pFH, double *pdMetaEpisodeDuration);
1187
1188// Gets the start to start period for the episode in us.
1189void WINAPI ABF2H_GetEpisodeStartToStart(const ABF2FileHeader *pFH, double *pdEpisodeStartToStart);
1190
1191// Checks that the user list contains valid entries for the protocol.
1192BOOL WINAPI ABF2H_CheckUserList(const ABF2FileHeader *pFH, UINT uListNum, int *pnError);
1193
1194// Counts the number of changing sweeps.
1195UINT WINAPI ABF2H_GetNumberOfChangingSweeps( const ABF2FileHeader *pFH );
1196
1197// // Checks whether the digital output varies from episode to episode.
1198BOOL WINAPI ABF2H_IsConstantDigitalOutput(const ABF2FileHeader *pFH, UINT uDACChannel);
1199
1200int WINAPI ABF2H_GetEpochDuration(const ABF2FileHeader *pFH, UINT uDACChannel, UINT uEpisode, int nEpoch);
1201
1202float WINAPI ABF2H_GetEpochLevel(const ABF2FileHeader *pFH, UINT uDACChannel, UINT uEpisode, int nEpoch);
1203BOOL WINAPI ABF2H_GetEpochLevelRange(const ABF2FileHeader *pFH, UINT uDACChannel, int nEpoch, float *pfMin, float *pfMax);
1204UINT WINAPI ABF2H_GetMaxPNSubsweeps(const ABF2FileHeader *pFH, UINT uDACChannel);
1205#endif
1206
1207//
1208// Error return values that may be returned by the ABF2H_xxx functions.
1209//
1210
1211#define ABF2H_FIRSTERRORNUMBER 2001
1212#define ABF2H_EHEADERREAD 2001
1213#define ABF2H_EHEADERWRITE 2002
1214#define ABF2H_EINVALIDFILE 2003
1215#define ABF2H_EUNKNOWNFILETYPE 2004
1216#define ABF2H_CHANNELNOTSAMPLED 2005
1217#define ABF2H_EPOCHNOTPRESENT 2006
1218#define ABF2H_ENOWAVEFORM 2007
1219#define ABF2H_EDACFILEWAVEFORM 2008
1220#define ABF2H_ENOMEMORY 2009
1221#define ABF2H_BADSAMPLEINTERVAL 2010
1222#define ABF2H_BADSECONDSAMPLEINTERVAL 2011
1223#define ABF2H_BADSAMPLEINTERVALS 2012
1224#define ABF2H_ENOCONDITTRAINS 2013
1225#define ABF2H_EMETADURATION 2014
1226#define ABF2H_ECONDITNUMPULSES 2015
1227#define ABF2H_ECONDITBASEDUR 2016
1228#define ABF2H_ECONDITBASELEVEL 2017
1229#define ABF2H_ECONDITPOSTTRAINDUR 2018
1230#define ABF2H_ECONDITPOSTTRAINLEVEL 2019
1231#define ABF2H_ESTART2START 2020
1232#define ABF2H_EINACTIVEHOLDING 2021
1233#define ABF2H_EINVALIDCHARS 2022
1234#define ABF2H_ENODIG 2023
1235#define ABF2H_EDIGHOLDLEVEL 2024
1236#define ABF2H_ENOPNPULSES 2025
1237#define ABF2H_EPNNUMPULSES 2026
1238#define ABF2H_ENOEPOCH 2027
1239#define ABF2H_EEPOCHLEN 2028
1240#define ABF2H_EEPOCHINITLEVEL 2029
1241#define ABF2H_EDIGLEVEL 2030
1242#define ABF2H_ECONDITSTEPDUR 2031
1243#define ABF2H_ECONDITSTEPLEVEL 2032
1244#define ABF2H_EINVALIDBINARYCHARS 2033
1245#define ABF2H_EBADWAVEFORM 2034
1246
1247#ifdef __cplusplus
1248}
1249#endif
1250
1251#endif /* INC_ABFHEADR2_H */
#define ABFLONG
Definition AxAbffio32.h:21
WORD TpFloat TpFloat pfMin
Definition Son.h:294
WORD TpFloat TpFloat TpFloat pfMax
Definition Son.h:294
BOOL WINAPI ABF2H_GetMathValue(const ABF2FileHeader *pFH, float fA, float fB, float *pfRval)
#define ABF2_EPOCHCOUNT
Definition abf2headr.h:29
#define ABF2_DACCOUNT
Definition abf2headr.h:28
#define ABF2_CREATORINFOLEN
Definition abf2headr.h:41
#define ABF2_SCOPECOLORS_EX
Definition abf2headr.h:580
double WINAPI ABF2H_GetFirstSampleInterval(const ABF2FileHeader *pFH)
BOOL WINAPI ABF2H_GetChannelOffset(const ABF2FileHeader *pFH, int nChannel, UINT *puChannelOffset)
#define ABF2_ARITHMETICUNITSLEN
Definition abf2headr.h:43
#define ABF2_DACUNITLEN
Definition abf2headr.h:33
#define ABF2_PATHLEN
Definition abf2headr.h:40
#define ABF2_ADCUNITLEN
Definition abf2headr.h:30
#define ABF2_SCOPECOLORS
Definition abf2headr.h:566
#define ABF2_ADCNAMELEN
Definition abf2headr.h:31
#define ABF2_USERLISTLEN
Definition abf2headr.h:35
void WINAPI ABF2H_Initialize(ABF2FileHeader *pFH)
#define ABF2_FILECOMMENTLEN
Definition abf2headr.h:39
void WINAPI ABF2H_GetADCtoUUFactors(const ABF2FileHeader *pFH, int nChannel, float *pfADCToUUFactor, float *pfADCToUUShift)
#define ABF2_TAGCOMMENTLEN
Definition abf2headr.h:44
#define ABF2_ARITHMETICOPLEN
Definition abf2headr.h:42
#define ABF2_FACESIZE
Definition abf2headr.h:928
#define ABF2_DACNAMELEN
Definition abf2headr.h:34
#define ABF2_CURRENTVERSION
Definition abf2headr.h:588
#define ABF2_USERLISTCOUNT
Definition abf2headr.h:37
#define ABF2_ANY_CHANNEL
Definition abf2headr.h:377
#define ABF2_ADCCOUNT
Definition abf2headr.h:27
#define ABF2_STATS_REGIONS
Definition abf2headr.h:489
short nCreatorBugfixVersion
Definition abf2headr.h:880
short nTriggerSource
Definition abf2headr.h:663
UINT uFileStartTimeMS
Definition abf2headr.h:622
float fTelegraphFilter[ABF2_ADCCOUNT]
Definition abf2headr.h:710
float fSignalOffset[ABF2_ADCCOUNT]
Definition abf2headr.h:733
float fArithmeticK6
Definition abf2headr.h:845
ABFLONG lStatisticsConfigPtr
Definition abf2headr.h:641
short nSignalType
Definition abf2headr.h:724
short nExternalTagType
Definition abf2headr.h:868
short nShowPNRawData
Definition abf2headr.h:680
float fArithmeticUpperLimit
Definition abf2headr.h:836
short nEpochType[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:762
ABFLONG lEpochDurationInc[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:767
ABFLONG lStatisticsMeasurements
Definition abf2headr.h:682
short nArithmeticADCNumB
Definition abf2headr.h:839
short nADCSamplingSeq[ABF2_ADCCOUNT]
Definition abf2headr.h:726
ABFLONG lEpochPulsePeriod[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:874
short nAlternateDigitalOutputState
Definition abf2headr.h:897
short nEnableFirstLastHolding
Definition abf2headr.h:871
float fScopeOutputInterval
Definition abf2headr.h:666
char sULParamValueList[ABF2_USERLISTCOUNT][ABF2_USERLISTLEN]
Definition abf2headr.h:810
float fSignalHighpassFilter[ABF2_ADCCOUNT]
Definition abf2headr.h:735
short nLevelHysteresis
Definition abf2headr.h:860
ABFLONG lHeaderSize
Definition abf2headr.h:869
float fPreSignalPostStepDuration[ABF2_DACCOUNT]
Definition abf2headr.h:803
float fTrialStartToStart
Definition abf2headr.h:669
bool bHumFilterEnable[ABF2_ADCCOUNT]
Definition abf2headr.h:738
unsigned short nStatsSearchRegionFlags
Definition abf2headr.h:815
short nDigitalDACChannel
Definition abf2headr.h:752
float fSynchTimeUnit
Definition abf2headr.h:652
float fPNHoldingLevel[ABF2_DACCOUNT]
Definition abf2headr.h:856
ABFLONG lStatsMeasurements[ABF2_STATS_REGIONS]
Definition abf2headr.h:822
float fTelegraphAdditGain[ABF2_ADCCOUNT]
Definition abf2headr.h:709
short nEpochTableRepetitions[ABF2_DACCOUNT]
Definition abf2headr.h:768
float fDACCalibrationOffset[ABF2_DACCOUNT]
Definition abf2headr.h:745
short nLeakSubtractADCIndex[ABF2_DACCOUNT]
Definition abf2headr.h:857
short nConditEnable[ABF2_DACCOUNT]
Definition abf2headr.h:779
float fEpochInitLevel[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:763
float fCTStartToStartInterval[ABF2_DACCOUNT]
Definition abf2headr.h:790
ABFLONG lAverageCount
Definition abf2headr.h:670
float fEpochLevelInc[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:765
char nPostProcessLowpassFilterType[ABF2_ADCCOUNT]
Definition abf2headr.h:903
float fArithmeticLowerLimit
Definition abf2headr.h:837
short nDigitizerADCs
Definition abf2headr.h:690
short nStatsBaselineDAC
Definition abf2headr.h:819
short nInterEpisodeLevel[ABF2_DACCOUNT]
Definition abf2headr.h:761
ABFLONG lNumTagEntries
Definition abf2headr.h:630
float fInstrumentScaleFactor[ABF2_ADCCOUNT]
Definition abf2headr.h:730
ABFLONG lStatsStart[ABF2_STATS_REGIONS]
Definition abf2headr.h:823
float fMembTestPostSettlingTimeMS[ABF2_DACCOUNT]
Definition abf2headr.h:795
float fPreSignalPreStepDuration[ABF2_DACCOUNT]
Definition abf2headr.h:799
ABFLONG lActualEpisodes
Definition abf2headr.h:620
short nStatsSmoothing
Definition abf2headr.h:816
float fDACCalibrationFactor[ABF2_DACCOUNT]
Definition abf2headr.h:744
short nRiseTopPercentile[ABF2_STATS_REGIONS]
Definition abf2headr.h:826
ABFLONG lLegacyClockChange
Definition abf2headr.h:908
ABFLONG lRunsPerTrial
Definition abf2headr.h:657
float fLegacyADCSequenceInterval
Definition abf2headr.h:906
short nAveragingMode
Definition abf2headr.h:659
short nADCNumChannels
Definition abf2headr.h:648
ABFLONG lVoiceTagPtr
Definition abf2headr.h:635
float fADCDisplayOffset[ABF2_ADCCOUNT]
Definition abf2headr.h:729
short nRiseBottomPercentile[ABF2_STATS_REGIONS]
Definition abf2headr.h:825
float fStepDuration[ABF2_DACCOUNT]
Definition abf2headr.h:783
float fEpochTableStartToStartInterval[ABF2_DACCOUNT]
Definition abf2headr.h:769
ABFLONG lFinishDisplayNum
Definition abf2headr.h:679
ABFLONG lDataSectionPtr
Definition abf2headr.h:628
ABFLONG lDeltaArrayPtr
Definition abf2headr.h:633
float fSignalLowpassFilter[ABF2_ADCCOUNT]
Definition abf2headr.h:734
short nDACFileADCNum[ABF2_DACCOUNT]
Definition abf2headr.h:775
char nLowpassFilterType[ABF2_ADCCOUNT]
Definition abf2headr.h:736
short nDigitizerDACs
Definition abf2headr.h:691
short nModifierBugfixVersion
Definition abf2headr.h:884
ABFLONG lStatsBaselineEnd
Definition abf2headr.h:821
short nLeakSubtractType[ABF2_DACCOUNT]
Definition abf2headr.h:855
ABFLONG lStartDisplayNum
Definition abf2headr.h:678
char sDACChannelUnits[ABF2_DACCOUNT][ABF2_DACUNITLEN]
Definition abf2headr.h:747
float fEpisodeStartToStart
Definition abf2headr.h:667
float fFileVersionNumber
Definition abf2headr.h:616
float fDACScaleFactor[ABF2_DACCOUNT]
Definition abf2headr.h:742
short nStatsEnable
Definition abf2headr.h:813
char sArithmeticUnits[ABF2_ARITHMETICUNITSLEN]
Definition abf2headr.h:847
short nADCPtoLChannelMap[ABF2_ADCCOUNT]
Definition abf2headr.h:725
short nDecayBottomPercentile[ABF2_STATS_REGIONS]
Definition abf2headr.h:827
short nWaveformEnable[ABF2_DACCOUNT]
Definition abf2headr.h:759
float fADCSequenceInterval
Definition abf2headr.h:649
ABFLONG lSynchArrayPtr
Definition abf2headr.h:637
short nCreatorMinorVersion
Definition abf2headr.h:879
float fPostTrainPeriod[ABF2_DACCOUNT]
Definition abf2headr.h:785
ABFLONG lLegacyNumSamplesPerEpisode
Definition abf2headr.h:909
short nStatsSearchMode[ABF2_STATS_REGIONS]
Definition abf2headr.h:830
short nULParamToVary[ABF2_USERLISTCOUNT]
Definition abf2headr.h:808
short nStatsChannelPolarity[ABF2_ADCCOUNT]
Definition abf2headr.h:829
short nLTPPresynapticPulses[ABF2_DACCOUNT]
Definition abf2headr.h:890
bool bEnableFileCompression
Definition abf2headr.h:651
ABFLONG lTimeHysteresis
Definition abf2headr.h:861
ABFLONG lStatsBaselineStart
Definition abf2headr.h:820
short nAlternateDigitalTrainValue[ABF2_EPOCHCOUNT]
Definition abf2headr.h:899
bool bEpochCompression[ABF2_EPOCHCOUNT]
Definition abf2headr.h:758
UINT uFileStartDate
Definition abf2headr.h:621
float fLegacyADCSecondSequenceInterval
Definition abf2headr.h:907
short nDigitizerSynchDigitalOuts
Definition abf2headr.h:693
unsigned short nStatsActiveChannels
Definition abf2headr.h:814
float fStepLevel[ABF2_DACCOUNT]
Definition abf2headr.h:784
ABFLONG lPreTriggerSamples
Definition abf2headr.h:655
char nHighpassFilterType[ABF2_ADCCOUNT]
Definition abf2headr.h:737
short nTrialTriggerSource
Definition abf2headr.h:866
float fArithmeticK4
Definition abf2headr.h:843
float fTelegraphAccessResistance[ABF2_ADCCOUNT]
Definition abf2headr.h:712
float fDACFileOffset[ABF2_DACCOUNT]
Definition abf2headr.h:773
float fSignalGain[ABF2_ADCCOUNT]
Definition abf2headr.h:732
short nTelegraphDACScaleFactorEnable[ABF2_DACCOUNT]
Definition abf2headr.h:714
float fDACFileScale[ABF2_DACCOUNT]
Definition abf2headr.h:772
float fPreSignalStepLevel[ABF2_DACCOUNT]
Definition abf2headr.h:802
float fADCProgrammableGain[ABF2_ADCCOUNT]
Definition abf2headr.h:727
short nStatsSmoothingEnable
Definition abf2headr.h:817
short nTriggerPolarity
Definition abf2headr.h:665
short nTelegraphMode[ABF2_ADCCOUNT]
Definition abf2headr.h:713
ABFLONG lEpisodesPerRun
Definition abf2headr.h:656
short nDecayTopPercentile[ABF2_STATS_REGIONS]
Definition abf2headr.h:828
char sArithmeticOperator[ABF2_ARITHMETICOPLEN]
Definition abf2headr.h:846
short nUndoPromptStrategy
Definition abf2headr.h:865
char sADCUnits[ABF2_ADCCOUNT][ABF2_ADCUNITLEN]
Definition abf2headr.h:741
float fArithmeticK5
Definition abf2headr.h:844
short nModifierMajorVersion
Definition abf2headr.h:882
short nCommentsEnable
Definition abf2headr.h:705
ABFLONG lDACResolution
Definition abf2headr.h:689
short nTriggerAction
Definition abf2headr.h:664
float fFirstRunDelayS
Definition abf2headr.h:672
short nPNNumPulses
Definition abf2headr.h:851
short nPNPolarity
Definition abf2headr.h:852
short nAlternateDACOutputState
Definition abf2headr.h:896
float fEpochFinalLevel[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:764
float fCTIntervalDuration[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:789
float fInstrumentHoldingLevel[ABF2_DACCOUNT]
Definition abf2headr.h:719
short nStatisticsSaveStrategy
Definition abf2headr.h:683
short nStatisticsClearStrategy
Definition abf2headr.h:870
short nExperimentType
Definition abf2headr.h:697
float fTriggerThreshold
Definition abf2headr.h:662
short nTelegraphEnable[ABF2_ADCCOUNT]
Definition abf2headr.h:707
float fArithmeticK2
Definition abf2headr.h:841
short nAverageAlgorithm
Definition abf2headr.h:863
char sDACFilePath[ABF2_DACCOUNT][ABF2_PATHLEN]
Definition abf2headr.h:776
ABFLONG lNumDeltas
Definition abf2headr.h:634
float fBaselineDuration[ABF2_DACCOUNT]
Definition abf2headr.h:781
short nMembTestEnable[ABF2_DACCOUNT]
Definition abf2headr.h:793
char sADCChannelName[ABF2_ADCCOUNT][ABF2_ADCNAMELEN]
Definition abf2headr.h:740
float fPreSignalPreStepLevel[ABF2_DACCOUNT]
Definition abf2headr.h:800
short nActiveDACChannel
Definition abf2headr.h:751
ABFLONG lVoiceTagEntries
Definition abf2headr.h:636
short nUndoRunCount
Definition abf2headr.h:660
float fStatisticsPeriod
Definition abf2headr.h:681
short nStatsBaseline
Definition abf2headr.h:818
short nCreatorBuildVersion
Definition abf2headr.h:881
float fPreSignalPostStepLevel[ABF2_DACCOUNT]
Definition abf2headr.h:804
ABFLONG lScopeConfigPtr
Definition abf2headr.h:631
short nDigitalHolding
Definition abf2headr.h:753
ABFLONG lDACFileEpisodeNum[ABF2_DACCOUNT]
Definition abf2headr.h:774
short nDigitizerType
Definition abf2headr.h:694
short nScopeTriggerOut
Definition abf2headr.h:893
ABFLONG lTagSectionPtr
Definition abf2headr.h:629
ABFLONG lNumSamplesPerEpisode
Definition abf2headr.h:654
short nDigitalEnable
Definition abf2headr.h:750
float fRunStartToStart
Definition abf2headr.h:668
float fCTStartLevel[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:787
char sProtocolPath[ABF2_PATHLEN]
Definition abf2headr.h:702
short nArithmeticEnable
Definition abf2headr.h:834
float fPNInterpulse
Definition abf2headr.h:854
ABFLONG lNumberOfTrials
Definition abf2headr.h:658
ABFLONG lNumScopes
Definition abf2headr.h:632
char sDACChannelName[ABF2_DACCOUNT][ABF2_DACNAMELEN]
Definition abf2headr.h:746
ABFLONG lEpochInitDuration[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:766
short nDigitalTrainActiveLogic
Definition abf2headr.h:755
short nDigitizerTotalDigitalOuts
Definition abf2headr.h:692
short nDataDisplayMode
Definition abf2headr.h:675
short nAutoTriggerStrategy
Definition abf2headr.h:671
short nFirstEpisodeInRun
Definition abf2headr.h:661
short nModifierBuildVersion
Definition abf2headr.h:885
short nStatsSearchDAC[ABF2_STATS_REGIONS]
Definition abf2headr.h:831
char sFileComment[ABF2_FILECOMMENTLEN]
Definition abf2headr.h:706
short nDigitalInterEpisode
Definition abf2headr.h:754
short nManualInfoStrategy
Definition abf2headr.h:698
float fPostTrainLevel[ABF2_DACCOUNT]
Definition abf2headr.h:786
float fDACHoldingLevel[ABF2_DACCOUNT]
Definition abf2headr.h:743
float fTelegraphMembraneCap[ABF2_ADCCOUNT]
Definition abf2headr.h:711
ABFLONG lNumAnnotations
Definition abf2headr.h:643
ABFLONG lSynchArraySize
Definition abf2headr.h:638
float fArithmeticK1
Definition abf2headr.h:840
short nAlternateDigitalValue[ABF2_EPOCHCOUNT]
Definition abf2headr.h:898
float fBaselineLevel[ABF2_DACCOUNT]
Definition abf2headr.h:782
short nAllowExternalTags
Definition abf2headr.h:862
short nModifierMinorVersion
Definition abf2headr.h:883
ABFLONG lActualAcqLength
Definition abf2headr.h:618
ABFLONG lSamplesPerTrace
Definition abf2headr.h:677
float fArithmeticK3
Definition abf2headr.h:842
float fPostProcessLowpassFilter[ABF2_ADCCOUNT]
Definition abf2headr.h:902
ABFLONG lStatsEnd[ABF2_STATS_REGIONS]
Definition abf2headr.h:824
float fPNSettlingTime
Definition abf2headr.h:853
short nAutoAnalyseEnable
Definition abf2headr.h:716
short nPreSignalEnable[ABF2_DACCOUNT]
Definition abf2headr.h:798
ABFLONG lStopwatchTime
Definition abf2headr.h:623
short nWaveformSource[ABF2_DACCOUNT]
Definition abf2headr.h:760
short nULRepeat[ABF2_USERLISTCOUNT]
Definition abf2headr.h:809
char sCreatorInfo[ABF2_CREATORINFOLEN]
Definition abf2headr.h:703
float fInstrumentOffset[ABF2_ADCCOUNT]
Definition abf2headr.h:731
float fAverageWeighting
Definition abf2headr.h:864
float fPreSignalStepDuration[ABF2_DACCOUNT]
Definition abf2headr.h:801
short nStatisticsDisplayStrategy
Definition abf2headr.h:867
short nTelegraphInstrument[ABF2_ADCCOUNT]
Definition abf2headr.h:708
float fMembTestPreSettlingTimeMS[ABF2_DACCOUNT]
Definition abf2headr.h:794
float fHeaderVersionNumber
Definition abf2headr.h:624
short nArithmeticADCNumA
Definition abf2headr.h:838
short nDigitalTrainValue[ABF2_EPOCHCOUNT]
Definition abf2headr.h:757
float fCTEndLevel[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:788
ABFLONG lAnnotationSectionPtr
Definition abf2headr.h:642
short nPNPosition
Definition abf2headr.h:850
short nArithmeticExpression
Definition abf2headr.h:835
ABFLONG lDACFilePtr[ABF2_DACCOUNT]
Definition abf2headr.h:644
short nLTPUsageOfDAC[ABF2_DACCOUNT]
Definition abf2headr.h:889
short nChannelStatsStrategy
Definition abf2headr.h:676
ABFLONG lEpochPulseWidth[ABF2_DACCOUNT][ABF2_EPOCHCOUNT]
Definition abf2headr.h:875
ABFLONG lConditNumPulses[ABF2_DACCOUNT]
Definition abf2headr.h:780
short nULEnable[ABF2_USERLISTCOUNT]
Definition abf2headr.h:807
char sModifierInfo[ABF2_CREATORINFOLEN]
Definition abf2headr.h:704
unsigned ABFLONG ulFileCRC
Definition abf2headr.h:720
short nOperationMode
Definition abf2headr.h:617
short nDataFormat
Definition abf2headr.h:639
short nCreatorMajorVersion
Definition abf2headr.h:878
float fADCDisplayAmplification[ABF2_ADCCOUNT]
Definition abf2headr.h:728
short nDigitalValue[ABF2_EPOCHCOUNT]
Definition abf2headr.h:756
float fSecondsPerRun
Definition abf2headr.h:653
short nSimultaneousScan
Definition abf2headr.h:640
short nNumPointsIgnored
Definition abf2headr.h:619
ABFLONG lADCResolution
Definition abf2headr.h:688
ABFLONG lDACFileNumEpisodes[ABF2_DACCOUNT]
Definition abf2headr.h:645
UINT uFileCompressionRatio
Definition abf2headr.h:650
ABFLONG lLength
Definition abf2headr.h:1060
ABFLONG lStart
Definition abf2headr.h:1059
float fNewParamValue
Definition abf2headr.h:1050
ABFLONG lDeltaTime
Definition abf2headr.h:1045
ABFLONG lParameterID
Definition abf2headr.h:1046
ABFLONG lNewParamValue
Definition abf2headr.h:1049
short nWeight
Definition abf2headr.h:935
short nHeight
Definition abf2headr.h:931
char Unused[3]
Definition abf2headr.h:944
char cPitchAndFamily
Definition abf2headr.h:943
char szFaceName[ABF2_FACESIZE]
Definition abf2headr.h:945
DWORD dwCursorsVisibleState
Definition abf2headr.h:991
short nAutoZeroState
Definition abf2headr.h:990
ABFSignal TraceList[ABF2_ADCCOUNT]
Definition abf2headr.h:980
DWORD rgbColorEx[ABF2_SCOPECOLORS_EX]
Definition abf2headr.h:989
float fDisplayEnd
Definition abf2headr.h:971
char sUnasigned[61]
Definition abf2headr.h:993
short nTraceCount
Definition abf2headr.h:982
short nSizeofOldStructure
Definition abf2headr.h:988
ABFLogFont LogFont
Definition abf2headr.h:979
DWORD rgbColor[ABF2_SCOPECOLORS]
Definition abf2headr.h:969
short nYAxisWidth
Definition abf2headr.h:981
short nEraseStrategy
Definition abf2headr.h:983
DWORD dwCursorsLockedState
Definition abf2headr.h:992
float fDisplayStart
Definition abf2headr.h:970
float fDisplayGain
Definition abf2headr.h:958
char bDrawPoints
Definition abf2headr.h:954
DWORD rgbColor
Definition abf2headr.h:952
char bHidden
Definition abf2headr.h:955
float fVertProportion
Definition abf2headr.h:957
short nMxOffset
Definition abf2headr.h:951
char szName[ABF2_ADCNAMELEN+2]
Definition abf2headr.h:950
float fDisplayOffset
Definition abf2headr.h:959
char nPenWidth
Definition abf2headr.h:953
char bFloatData
Definition abf2headr.h:956
char sComment[ABF2_TAGCOMMENTLEN]
Definition abf2headr.h:1014
ABFLONG lTagTime
Definition abf2headr.h:1013
short nAnnotationIndex
Definition abf2headr.h:1019
short nVoiceTagNumber
Definition abf2headr.h:1018
short nTagType
Definition abf2headr.h:1015
ABFLONG lTagNumber
Definition abf2headr.h:1028
ABFLONG lUncompressedSize
Definition abf2headr.h:1030
short nCompressionType
Definition abf2headr.h:1032
ABFLONG lSamplesPerSecond
Definition abf2headr.h:1034
ABFLONG lFileOffset
Definition abf2headr.h:1029
ABFLONG lCompressedSize
Definition abf2headr.h:1031
int BOOL
Definition unix.h:49
unsigned short WORD
Definition unix.h:44
unsigned int UINT
Definition unix.h:47
#define WINAPI
Definition unix.h:198
void * HANDLE
Definition unix.h:136
CHAR * LPSTR
Definition unix.h:93
unsigned ABFLONG DWORD
Definition unix.h:45
struct _GUID GUID