home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic 4 Unleashed / Visual_Basic_4_Unleashed_SAMS_Publishing_1995.iso / pronexus / sys / dlgc_dll.bas < prev    next >
Encoding:
BASIC Source File  |  1994-07-15  |  40.3 KB  |  800 lines

  1.  '*************************************************
  2. ' *                                                 *
  3. ' *   DDDDDD     4444    00000            HH   HH   *
  4. ' *   DD   DD   44 44   00   00           HH   HH   *
  5. ' *   DD   DD  44  44   00   00           HH   HH   *
  6. ' *   DD   DD  44  44   00   00           HHHHHHH   *
  7. ' *   DD   DD  4444444  00   00           HH   HH   *
  8. ' *   DD   DD      44   00   00   ..      HH   HH   *
  9. ' *   DDDDDD       44    00000    ..      HH   HH   *
  10. ' *                                                 *
  11. ' ***************************************************
  12. ' *   Version     *
  13. ' *************************************************
  14.  
  15. '
  16. ' * Dialog/4x driver function codes
  17. '
  18.  
  19. Global Const F_SPARMS = 2             ' Set global parameters.
  20. Global Const F_CHSTOP = 4             ' Channel stop.
  21. Global Const F_CHSTAT = 5             ' Get channel status block.
  22. Global Const F_SETH = 6               ' Set hook switch.
  23. Global Const F_SETCST = 7             ' Set CST mask.
  24. Global Const F_CLRDT = 8              ' Clear dtmf buffer.
  25. Global Const F_GETDT = 9              ' Get dtmf digit.
  26. Global Const F_RECB = 10              ' Record to buffer.
  27. Global Const F_PLAYB = 11             ' Playback from buffer.
  28. Global Const F_RECF = 12              ' Record to file.
  29. Global Const F_PLAYF = 13             ' Playback from file.
  30. Global Const F_DIAL = 14              ' Dial string.
  31. Global Const F_GETDTS = 15            ' Get dtmf string.
  32. Global Const F_XPLAYF = 19            ' Extended play function.
  33. Global Const F_GETCAR = 27            ' Get the Call Analysis Results.
  34. Global Const F_SXPARM = 28            ' Set ext'd shared ram parms funct
  35. Global Const F_SCPARM = 29            ' Set channel parameters.
  36. Global Const F_CALL = 30              ' Call a numbr using call analysis
  37. Global Const F_SETD = 31              ' Set the digit control mask.
  38. Global Const F_GETVER = 32            ' Get the current driver vers numb
  39. Global Const F_PLAYUB = 34            ' Playback from a users envir bufr
  40. Global Const F_RECUB = 35             ' Record to a users envir buffer.
  41. Global Const F_GETCOM = 36            ' Get the comm area.
  42. Global Const F_PUTCOM = 37            ' Put the comm area.
  43. Global Const F_STPARM = 38            ' set channel parameter.
  44. Global Const F_WINK = 39              ' perform wink command.
  45. Global Const F_ROUTETS = 40           ' perform timeslot routing.
  46. Global Const MAXFCN = 50              ' Max(last) Dialog\4x fcn number.
  47.  
  48. Global Const MINMFCN = 80             ' Min(first) AMX8x fcn number.
  49. Global Const F_MSTART = 80            ' Start all AMX8x boards.
  50. Global Const F_MOFF = 81              ' Disconnect all AMX8x switches.
  51. Global Const F_MMK = 82               ' Connect the specified AMX8x chs.
  52. Global Const F_MBRK = 83              ' Disconnect the specified AMX8 ch
  53. Global Const F_MMASK = 84             ' Set AMX8x mask for a channel.
  54. Global Const F_MSTOP = 85             ' Stop all AMX8x boards.
  55. Global Const F_RSTART = 86            ' Start ringing an AMX8 connection
  56. Global Const F_RSET = 87              ' Set AMX81 ring parms for a con.
  57. Global Const MAXMFCN = 87             ' Max(last) AMX8x fcn number.
  58.  
  59. Global Const MINID = 129              ' Min AMX8x telephone station ID
  60.  
  61. '
  62. ' * Values for STATUS byte in the CSB
  63. '
  64. Global Const S_STOP = 0               ' Channel is stopped.
  65. Global Const S_RECORD = 1             ' Channel is in record mode.
  66. Global Const S_PLAY = 2               ' Channel is in playback mode.
  67. Global Const S_GETDTS = 3             ' Channel is getting a DTMF string.
  68. Global Const S_OFFH = 4               ' Channel is waiting for offhook.
  69. Global Const S_DIAL = 5               ' Channel is dialing.
  70. Global Const S_ONH = 6                ' Channel is waiting for onhook.
  71. Global Const S_CALL = 7               ' Channel is in call analysis stat
  72. Global Const S_PARM = 8               ' Channel parameter is being upd.
  73. Global Const S_WINK = 9               ' Channel is waiting for wink cmpl.
  74.  
  75. '
  76. ' * HOOK STATES
  77. '
  78. Global Const H_OFFH = 0               ' Off hook.
  79. Global Const H_ONH = 1                ' On hook.
  80.  
  81. '
  82. ' * Values for termination types (last_term) and event type
  83. '
  84. Global Const T_NOTERM = 0             ' No termination received.
  85. Global Const T_MAXDT = 1              ' Maximum DTMF digits received.
  86. Global Const T_TERMDT = 2             ' Terminating DTMF digit received.
  87. Global Const T_STOP = 3               ' Rec/play/getdtmf stopped.
  88. Global Const T_DOSERR = 4             ' Dos error.
  89. Global Const T_MAXBYT = 5             ' Max bytes reached on play or rec
  90. Global Const T_HFAIL = 6              ' Hardware failure.
  91. Global Const T_TIME = 7               ' Rec/play/getdtmf timed out.
  92. Global Const T_OFFH = 8               ' Offhook complete.
  93. Global Const T_DIAL = 9               ' Dialing complete.
  94. Global Const T_SIL = 10               ' Maximum silence received.
  95. Global Const T_EOF = 11               ' Eof reached on playback.
  96. Global Const T_LCTERM = 12            ' Terminate by drop in loop signal
  97. Global Const T_DFULL = 13             ' Disk full.
  98. Global Const T_ONH = 14               ' Onhook complete.
  99. Global Const T_MDTERM = 17            ' AMX80 disconnect termination.
  100. Global Const T_CATERM = 18            ' Call analysis termination.
  101. Global Const T_LC = 20                ' Loop signal drop event.
  102. Global Const T_RING = 21              ' Rings received.
  103. Global Const T_SILOFF = 22            ' Silence off.
  104. Global Const T_SILON = 23             ' Silence on.
  105. Global Const T_AMXCON = 24            ' AMX8x channel connect.
  106. Global Const T_AMXDIS = 25            ' AMX8x channel disconnect.
  107. Global Const T_LCON = 26              ' Loop signal on event.
  108. Global Const T_MAXRNG = 27            ' Max rings reached on AMX81 con
  109. Global Const T_MCTERM = 28            ' Rings termiated by AMX8 connect
  110. Global Const T_MDTMF = 29             ' Terminated by masked DTMF digit
  111. Global Const T_IDTIME = 30            ' Interdigit delay exceeded.
  112. Global Const T_NSIL = 31              ' Terminated by a max non-silence.
  113. Global Const T_BUFFUL = 32            ' Termination from EMS buffer full.
  114. Global Const T_BUFEMP = 33            ' Terminated from EMS buffer empty.
  115. Global Const T_EMSERR = 34            ' Terminated by EMS error.
  116. Global Const T_EMSLOW = 35            ' EMS buffer low.
  117. Global Const T_EMSHI = 36             ' EMS buffer high.
  118. Global Const T_STPARM = 37            ' parameter updated.
  119. Global Const T_WINK = 38              ' wink protocol complete.
  120. Global Const T_WKRECV = 39            ' wink received.
  121. Global Const T_DTMF = 40              ' DTMF digit recived.
  122. Global Const MAXTERM = 40             ' Max(last) termination type.
  123.  
  124.  
  125. '
  126. ' * Equates for error (return) codes
  127. '
  128. Global Const E_SUCC = 0               ' Function was successful.
  129. Global Const E_FAILST = 1             ' Board failed self test.
  130. Global Const E_NODT = 2               ' Dtmf buffer empty.
  131. Global Const E_SACT = 3               ' System already active.
  132. Global Const E_SNACT = 4              ' System not active.
  133. Global Const E_BADDL = 5              ' D4x hardware error.
  134. Global Const E_BADFCN = 6             ' Invalid function code requested.
  135. Global Const E_BADINT = 7             ' Interrupt level not available.
  136. Global Const E_BADDCB = 8             ' DCB parmameter error.
  137. Global Const E_BADCH = 9              ' Invalid channel number.
  138. Global Const E_MTACT = 10             ' Multitasking func already active
  139. Global Const E_MTNACT = 11            ' Multitasking function not active.
  140. Global Const E_BADPAR = 12            ' Bad parameter.
  141. Global Const E_BADVER = 13            ' Incorrect version of microcode.
  142. Global Const E_NOTIMP = 14            ' Function not implemented/avail
  143. Global Const E_NOTERM = 15            ' Terminating cond. not specified
  144. Global Const E_NOMEM = 16             ' Insufficent buffer mem available.
  145. Global Const E_DOSERR = 24            ' DOS error (DOS error code in al)
  146. Global Const E_DSKCNT = 25            ' Error in data read/wrote to disk
  147. Global Const E_NOAMX = 26             ' No AMX8x boards present.
  148. Global Const E_AMXON = 27             ' AMX 8xs already started.
  149. Global Const E_AMXOFF = 28            ' AMX 8xs already stopped.
  150. Global Const E_BADXY = 29             ' Invalid X,Y coordinate.
  151. Global Const E_BADPRT = 30            ' Bad AMX8x tel. station ID specified
  152. Global Const E_BADCUR = 31            ' Bad cursor position specified.
  153. Global Const E_EMSSW = 32             ' EMM not installed or corrupted.
  154. Global Const E_EMSERR = 33            ' EMM reported error.
  155. Global Const E_NOVBUF = 34            ' No buffer alloc for EMS ram disk
  156. Global Const E_TSBADSLOT = 35         ' bad timeslot number
  157. Global Const E_TIMEOUT = 36           ' timer expired
  158. Global Const E_BADPROD = 37           ' not supported by this product
  159.  
  160. '
  161. ' * Equates for cst_mask
  162. '
  163. Global Const C_LC = &H1               ' Loop signal drop.
  164. Global Const C_RING = &H2             ' Rings received.
  165. Global Const C_SILOFF = &H4           ' Silence off.
  166. Global Const C_SILON = &H8            ' Silence on.
  167. Global Const C_OFFH = &H10            ' Offhook complete.
  168. Global Const C_ONH = &H20             ' Onhook complete.
  169. Global Const C_LCON = &H40            ' Loop signal on.
  170. Global Const C_WKRECV = &H80          ' Recv incoming wink.
  171.  
  172. '
  173. ' * Equates for set parameter function
  174. '
  175. Global Const CH_WKDLY = &H204         ' delay before sending wink
  176. Global Const CH_WKOUT = &H205         ' duration of outgoing wink
  177. Global Const CH_WKMIN = &H206         ' min on for wink detection
  178. Global Const CH_WKMAX = &H207         ' max on for wink detection
  179.  
  180. Global Const RATE_PLAY = &HE01        ' parm id for playback sampling rate
  181. Global Const RATE_REC = &HE02         ' parm id for record sampling rate
  182.                   
  183. Global Const SR_6K = 6000             ' parm value for 6KHz
  184. Global Const SR_8K = 8000             ' parm value for 8KHz
  185.  
  186. '
  187. ' * Equates for digit_ctl_mask
  188. '
  189. Global Const D_DTMF = 1               ' DTMF digit detection enable.
  190. Global Const D_LPD = 2                ' Loop pulse digit detect enabled
  191. Global Const D_DPDZ = 8               ' Dial pulse detection with zero training
  192. Global Const D_DPD = 16               ' Dial pulse detection without zero training
  193.  
  194. '
  195. ' * Equates for digit_ctl_type
  196. '
  197. Global Const DT_FLUSH = 1             ' Flush dtmf digit buffer
  198. Global Const DT_QUEUE = 2             ' put dtmf digits onto event queue
  199.  
  200.  
  201. '
  202. ' * Equates for channel error conditions
  203. '
  204. Global Const X_NOERR = 0              ' No error.
  205. Global Const X_BUFERR = 1             ' Error occurred.
  206.  
  207.  
  208. '
  209. ' * Record mode types  (bit mapped)
  210. '
  211. Global Const RM_NORM = 0              ' Normal record.
  212. Global Const RM_SCOMP = 1             ' Compress sil. from incoming data
  213. Global Const RM_RDISK = 4             ' I/O from an EMS ram disk
  214. Global Const RM_ADPCM = 0             ' ADPCM encoding
  215. Global Const RM_PCM = &H100           ' Mu Law PCM mode
  216. Global Const RM_SR6 = 0               ' 6KHz sampling rate
  217. Global Const RM_SR8 = &H200           ' 8KHz sampling rate
  218. Global Const RM_NOAGC = &H400         ' turn off AGC
  219.  
  220.  
  221. '
  222. ' * Play mode types    (bit mapped)
  223. '
  224. Global Const PM_NORM = 0              ' Normal playback
  225. Global Const PM_NDX = 1               ' Indexed playback
  226. Global Const PM_RDISK = 4             ' I/O from an EMS ram disk
  227. Global Const PM_FILES = 8             ' Multiple file handles for index play
  228. Global Const PM_ADPCM = 0             ' ADPCM encoding
  229. Global Const PM_PCM = &H100           ' Mu Law PCM mode
  230. Global Const PM_SR6 = 0               ' 6KHz sampling rate
  231. Global Const PM_SR8 = &H200           ' 8KHz sampling rate
  232.  
  233. '
  234. ' * Bit mask for rwb_flags in RWB
  235. '
  236. Global Const RW_DINIT = 1             ' Touch tone initiation on/off.
  237. Global Const RW_TONE = 2              ' Tone before rec/playback on/off.
  238. Global Const RW_DELAY = 4             ' Inter-digit delay starts on first digit
  239.  
  240.  
  241. '
  242. ' * Bit mask for AMX8x event mask
  243. '
  244. Global Const A_CON = 1                ' AMX8x connect (pickup).
  245. Global Const A_DIS = 2                ' AMX8x disconnect (hangup).
  246.  
  247.  
  248. '
  249. ' * Bit mask for line status register
  250. '
  251. Global Const LS_CARNG = &H4           ' Call analysis detecting ring.
  252. Global Const LS_HOOK = &H8            ' Hook status bit
  253. Global Const LS_RING = &H10           ' Ring current bit.
  254. Global Const LS_LOOP = &H20           ' Loop current bit.
  255. Global Const LS_TT = &H40             ' Touch tone is waiting to be read.
  256. Global Const LS_SIL = &H80            ' Silence bit.
  257.  
  258.  
  259. '
  260. ' * Call analysis termination data types/call status values
  261. '
  262. Global Const CA_BUSY = 7              ' Called line is busy.
  263. Global Const CA_NOAN = 8              ' Called line did not answer.
  264. Global Const CA_NORNG = 9             ' Called line did not ring.
  265. Global Const CA_CONN = 10             ' Called line connected.
  266. Global Const CA_OPINT = 11            ' Called line recvd oper intercept
  267.  
  268.  
  269. '
  270. ' * Masked DTMF termination/initiation equates
  271. '
  272. Global Const DM_D = &H1               ' Mask for DTMF d.
  273. Global Const DM_1 = &H2               ' Mask for DTMF 1.
  274. Global Const DM_2 = &H4               ' Mask for DTMF 2.
  275. Global Const DM_3 = &H8               ' Mask for DTMF 3.
  276. Global Const DM_4 = &H10              ' Mask for DTMF 4.
  277. Global Const DM_5 = &H20              ' Mask for DTMF 5.
  278. Global Const DM_6 = &H40              ' Mask for DTMF 6.
  279. Global Const DM_7 = &H80              ' Mask for DTMF 7.
  280. Global Const DM_8 = &H100             ' Mask for DTMF 8.
  281. Global Const DM_9 = &H200             ' Mask for DTMF 9.
  282. Global Const DM_0 = &H400             ' Mask for DTMF 0.
  283. Global Const DM_S = &H800             ' Mask for DTMF *.
  284. Global Const DM_P = &H1000            ' Mask for DTMF #.
  285. Global Const DM_A = &H2000            ' Mask for DTMF a.
  286. Global Const DM_B = &H4000            ' Mask for DTMF b.
  287. Global Const DM_C = &H8000            ' Mask for DTMF c.
  288.  
  289.  
  290. '
  291. ' * Channel Parameter Block structure
  292. '
  293. Global Const CPB_SIZE = 128           ' Size of CPB in bytes.
  294.  
  295. Type CPB
  296.  dtpl_dly          As String * 1' Playback DTMF delay in 10ms intervals.
  297.  dt_edge           As String * 1' DTMF message edge select.
  298.  dtrc_dly          As Integer   ' Record DTMF delay in 10ms intervals.
  299.  sb_siz            As Integer   ' Silence buffer size for this channel.
  300.  nbrdna            As String * 1' # of rings before no answer.
  301.  stdely            As Integer   ' Delay after dialing before analysis.
  302.  cnosig            As Integer   ' Duration of no signal time out delay.
  303.  lcdly             As Integer   ' Delay after dial before lc drop connect
  304.  lcdly1            As Integer   ' Delay after lc drop con. before msg.
  305.  hedge             As String * 1' Edge of answer to send connect message.
  306.  cnosil            As Integer   ' Initial continuous noise timeout delay.
  307.  lo1tola           As String * 1' % acceptable pos. dev of short low sig.
  308.  lo1tolb           As String * 1' % acceptable neg. dev of short low sig.
  309.  lo2tola           As String * 1' % acceptable pos. dev of long low sig.
  310.  lo2tolb           As String * 1' % acceptable neg. dev of long low sig.
  311.  hi1tola           As String * 1' % acceptable pos. dev of high signal.
  312.  hi1tolb           As String * 1' % acceptable neg. dev of high signal.
  313.  lo1bmax           As Integer   ' Maximum interval for shrt low for busy.
  314.  lo2bmax           As Integer   ' Maximum interval for long low for busy.
  315.  hi1bmax           As Integer   ' Maximum interval for 1st high for busy
  316.  nsbusy            As String * 1' Num. of highs after nbrdna busy check.
  317.  logltch           As Integer   ' Silence deglitch duration.
  318.  higltch           As Integer   ' Non-silence deglitch duration.
  319.  lo1rmax           As Integer   ' Max. short low  dur. of double ring.
  320.  lo2rmin           As Integer   ' Min. long low  dur. of double ring.
  321.  intflg            As String * 1' Operator intercept mode.
  322.  intfltr           As String * 1' Minimum signal to qualify freq. detect.
  323.  cpbrfu1           As String * 14' Reserved for future use.
  324.  spdeb             As Integer   ' Trailing edge silence ptr debounce.
  325.  hisiz             As Integer   ' Used to determine which lowmax to use.
  326.  alowmax           As Integer   ' Max. low before con. if high >hisize.
  327.  blowmax           As Integer   ' Max. low before con. if high <hisize.
  328.  nbrbeg            As String * 1' Number of rings before analysis begins.
  329.  hi1ceil           As Integer   ' Maximum 2nd high dur. for a retrain.
  330.  lo1ceil           As Integer   ' Maximum 1st low dur. for a retrain.
  331.  lowerfrq          As Integer   ' Lower allowable frequency in hz.
  332.  upperfrq          As Integer   ' Upper allowable frequency in hz.
  333.  timefrq           As String * 1' Total duration of good signal required.
  334.  rejctfrq          As String * 1' Allowable % of bad signal.
  335.  maxansr           As Integer   ' Maximum duration of answer.
  336.  ansrdgl           As Integer   ' Silence deglitching value for answer.
  337.  pvdmxper          As String * 1' Percent of maximum sum
  338.  pvdszwnd          As Integer   ' Length of window in 10ms
  339.  pvddly            As Integer   ' Delay time before starting PVD for each nonsilence in 10ms
  340.  mxtimefrq         As Integer   ' /* Max. time for first frequency to remain in bound */
  341.  lower2frq         As Integer   '/* Lower bound for second frequency       */
  342.  upper2frq         As Integer   '/* Upper bound for second frequency       */
  343.  time2frq          As Integer   '/* Min. time for second frequency to remain in bound */
  344.  mxtime2frq        As Integer   '/* Max. time for second frequency to remain in bound */
  345.  lower3frq         As Integer   '/* Lower bound for third frequency        */
  346.  upper3frq         As Integer   '/* Upper bound for third frequency        */
  347.  time3frq          As Integer   '/* Min. time for third frequency to remain in bound */
  348.  mxtime3frq        As Integer   '/* Max. time for third frequency to remain in bound */
  349.  cpbrfu                    As String * 27       '  /* Reserved for future use                */
  350. End Type
  351.  
  352. '
  353. ' * DIALOG/4x Control Block data structure
  354. '
  355. Global Const DCB_SIZE = 128           ' Size of DCB.
  356.  
  357. Type DCB
  358.  flashchr          As String * 1' Flash char in dialing string.
  359.  flashtm           As Integer   ' Flash time 10ms units.
  360.  pausetm           As Integer   ' Pause time 10ms units.
  361.  digrate           As Integer   ' Digitizing rate in hz.
  362.  sch_tm            As Integer   ' Maximum time slice given to scheduler.
  363.  p_bk              As Integer   ' Pulse break interval in 10ms units.
  364.  p_mk              As Integer   ' Pulse make interval in 10ms units.
  365.  p_idd             As Integer   ' Pulse dial inter-digit delay in 10ms.
  366.  t_idd             As Integer   ' Tone dial inter-digit delay in 10ms.
  367.  oh_dly            As Integer   ' Offhook delay interval in 10 ms.
  368.  r_on              As Integer   ' Min. ring on interval in 100ms units.
  369.  r_off             As Integer   ' Min. ring off interval in 100ms units.
  370.  r_ird             As Integer   ' Delay after ring cnt is reset in 100ms.
  371.  s_bnc             As Integer   ' Sil. message debounce interval in 10ms.
  372.  dcbrfu1           As Integer   ' Reserved for future use.
  373.  ttdata            As String * 1' Duration of DTMF digit in 10ms units.
  374.  minpdon           As String * 1' Min. dur. for lc on for a valid pulse.
  375.  minpdoff          As String * 1' Min. dur. for lc off for a valid pulse.
  376.  minipd            As Integer   ' Min. interpulse digit time for lc on.
  377.  minlcoff          As Integer   ' Min. dur. of lc off for CST_CUR_ON.
  378.  dcbrfu2           As String * 4' Reserved for future use.
  379.  dcbrfu3           As String * 1' Reserevd for future use.
  380.  maxpdoff          As Integer   ' Max. dur. for pd make.
  381.  dcbrfu            As String * 85' Reserved for future use.
  382. End Type
  383.  
  384.  
  385. '
  386. ' * Channel status block data structure
  387. '
  388.  
  389. Global Const CSB_SIZE = 32            ' Size of CSB.
  390.  
  391. Type CSB
  392.  cstmask           As Integer   ' Call status interupt mask.
  393.  status            As String * 1' Current channel status.
  394.  cherr             As String * 1' Set if buffer under/overflow detected.
  395.  mtfcn             As String * 1' Multitasking function in progress.
  396.  lastterm          As Integer   ' Last termination event.
  397.  bufcnth           As Integer   ' High order data transfer count.
  398.  bufcnt            As Integer   ' Low order data transfer count.
  399.  dtmfrcvd          As String * 1' Number of DTMFs in ch.'s DTMF buffer.
  400.  doserr            As Integer   ' Last DOS error.
  401.  linestat          As String * 1' Current line status.
  402.  callstat          As Integer   ' Call Analysis termination type
  403.  intrfreq          As Integer   ' Intercept frequency in 20 hertz.
  404.  dig_mask          As String * 1' Digit control mask.
  405.  csbrfu1           As String * 1' Reserved for future use.
  406.  csbrfu2           As Integer   ' Reserved for future use.
  407.  csbrfu3           As Integer   ' Reserved for future use.
  408.  csbrfu4           As Integer   ' Reserved for future use.
  409.  csbrfu5           As Integer   ' Reserved for future use.
  410.  csbrfu            As String * 3' Reserved for future use.
  411. End Type
  412.  
  413.  
  414. '
  415. ' * Read/Write block structure
  416. '
  417.  
  418. Global Const RWB_SIZE = 32            ' Size in bytes of RWB far
  419. Global Const XRWB_SIZE = 64           ' Size in bytes of XRWB.
  420.  
  421. Type RWB
  422.  filehndl          As Integer   ' Open DOS handle for file transfer.
  423.  xferoff           As Integer   ' Transfer buffer address offset.
  424.  xferseg           As Integer   ' Transfer buffer address segment.
  425.  maxbyteh          As Integer   ' High order max # of bytes to xfer.
  426.  maxbyte           As Integer   ' Low order max # of bytes to xfer.
  427.  maxsec            As Integer   ' Max # of secs before timeout term.
  428.  maxdtmf           As String * 1' Max # of DTMF digits to cause term.
  429.  termdtmf          As String * 1' DTMF digit which will cause term.
  430.  maxsil            As String * 1' Seconds of silence to cause term.
  431.  loopsig           As String * 1' Terminate on drop in loop current.
  432.  indexoff          As Integer   ' Index table address offset.
  433.  indexseg          As Integer   ' Index table address segment.
  434.  rwbflags          As String * 1' Record/Playback initiation bits.
  435.  rwbdata1          As String * 1' Initiation tone duration (bits 0-3).
  436.  amxterm           As String * 1' Terminating AMX telephone station ID.
  437.  curpos            As Integer   ' Low order cursor position.
  438.  curposh           As Integer   ' High order cursor position.
  439.  isxrwb            As String * 1' Extended RWB flag.
  440.  rwbrfu2           As String * 4' Reserved for future use.
  441.  
  442. '
  443. ' * Extended RWB fields
  444. '
  445.  xrwbrfu1          As Integer   ' Reserved for future use.
  446.  dtinit            As Integer   ' DTMF function initiator set.
  447.  dtterm            As Integer   ' DTMF function terminator set.
  448.  intrdig           As String * 1' Maximum interdigit delay in secs.
  449.  maxnsil           As String * 1' Max # of secs of non-sil to cause term
  450.  emsthrsh          As Integer   ' min byte count before warning
  451.  xrwbrfu           As String * 50' Reserved for future use
  452. End Type
  453.  
  454.  
  455. '
  456. ' * Call analysis results structure
  457. '
  458. Global Const CAR_SIZE = 32            ' Size of the structure.
  459.  
  460. Type CAR
  461.  termtype          As String * 1' Last call progress term. for this ch.
  462.  frqout            As String * 1' Percent of frequency out of bounds.
  463.  frqherz           As Integer   ' Frequency detected in hertz.
  464.  sizehigh          As Integer   ' Dur. of non-silent period. 10ms units.
  465.  shortlow          As Integer   ' Dur. of shorter silent period.
  466.  longlow           As Integer   ' Duration of longer silent period.
  467.  ansrsize          As Integer   ' Duration of answer in 10ms units.
  468.  conntype          As String * 1' Connection type.
  469.  carrfu            As String * 19' Reserved for future use.
  470. End Type
  471.  
  472. '
  473. ' * Application to Device Driver Communication Area
  474. '
  475.  
  476. Global Const ADCCB_SIZE = 32
  477.  
  478. Type ADCCB
  479.  a_d_bct           As Long
  480.  a_d_rfu           As String * 28
  481. End Type
  482.  
  483.  
  484. '
  485. ' * Device Driver to Application Communication Area
  486. '
  487. Global Const DACCB_SIZE = 32
  488.  
  489. Type DACCB
  490.  d_a_bct           As Long
  491.  d_a_rfu           As String * 28
  492. End Type
  493.  
  494.  
  495. '
  496. ' * IDDS system function codes
  497. '
  498. Global Const MIDDSFN = &H70           ' Min(first) IDDS function
  499. Global Const F_DEVSRV = &H70          ' Device level services
  500. Global Const F_EXESRV = &H71          ' Executive level services
  501. Global Const F_DEVCOM = &H75          ' Application level services
  502. Global Const MXIDDSFN = &H75          ' Max(last) IDDS function
  503.  
  504. '
  505. ' * Service function Executive level services function codes
  506. '
  507. Global Const MSEXESFN = &H0           ' Min(first) IDDS function
  508. Global Const FI_APSCH = &H0           ' inform appl of scheduler entry
  509. Global Const FI_APACT = &H1           ' inform appl of scheduler activity
  510. Global Const FI_APEVT = &H2           ' inform appl of event queue entry
  511. Global Const MXEXESFN = &H2           ' Max(last) IDDS function
  512.  
  513. '
  514. ' * Service function Device level services function codes
  515. '
  516. Global Const MSDEVSFN = &H0           ' min (first) IDDS function
  517. Global Const FI_REGDRV = &H0          ' register driver
  518. Global Const FI_SIZEQ = &H1           ' get the memory requirements of a Q
  519. Global Const FI_OPENQ = &H2           ' request to open a Q
  520. Global Const FI_PUTQ = &H3            ' enqueue a message
  521. Global Const FI_GETQ = &H4            ' get a message off a Q
  522. Global Const FI_EMPTYQ = &H5          ' empty a queue
  523. Global Const FI_FLUSHQ = &H6          ' flush 1 entry from the queue
  524. Global Const FI_SCANQ = &H7           ' Scan the queue for a value
  525. Global Const FI_GETLVL = &H8          ' get the h/w interrupt level
  526. Global Const FI_PUTLVL = &H9          ' store the hardware intr level
  527. Global Const FI_INSINT = &HA          ' install drivers interrupt hndlr
  528. Global Const FI_UININT = &HB          ' de-install drivers h/w intr hndlr
  529. Global Const FI_GETIV = &HC           ' get the interrupt vector
  530. Global Const FI_PUTIV = &HD           ' install this interrupt vector
  531. Global Const FI_GETMSG = &HE          ' get vector to the intr msg hdlr
  532. Global Const FI_PUTMSG = &HF          ' install h/w intr msg hdlr
  533. Global Const FI_PUT55 = &H10          ' install a 55ms timer
  534. Global Const FI_DIS55 = &H11          ' deinstall a 55ms timer
  535. Global Const FI_ISDRV = &H12          ' determine if a driver is installed
  536. Global Const FI_SCHED = &H13          ' call the scheduler
  537. Global Const FI_PAUSE = &H14          ' wait for a real time interval
  538. Global Const FI_UREG = &H15           ' unregister a device
  539. Global Const FI_GETREV = &H16         ' get idds revision
  540. Global Const FI_USREVT = &H17         ' put urer event onto event queue
  541. Global Const FI_BEEP = &H18           ' beep the speaker on error condition
  542. Global Const MXDEVSFN = &H18          ' Max (last) IDDS function
  543.  
  544.  
  545. '
  546. ' *------- IDDS error return codes
  547. '
  548. Global Const EI_SUCC = 0              ' Function was successful
  549. Global Const EI_REGERR = 113          ' driver registration error
  550. Global Const EI_BADHND = 114          ' Bad handle
  551. Global Const EI_BADDEV = 115          ' Bad device type specified
  552. Global Const EI_MAXQS = 116           ' Maximum number of queues
  553. Global Const EI_BADQT = 117           ' Queue type error
  554. Global Const EI_QFULL = 118           ' Queue full
  555. Global Const EI_QMPTY = 119           ' Queue empty
  556. Global Const EI_BADFCN = 120          ' bad function
  557. Global Const EI_BADPAR = 121          ' bad parmeter
  558. Global Const EI_VECUSD = 122          ' vector already in use
  559. Global Const EI_NOIMP = 123           ' function not implemented
  560.  
  561.  
  562. '
  563. ' *------- Defined Device Types
  564. '
  565. Global Const DV_IDDS = 1              ' IDDS device type
  566. Global Const DV_D40 = 2               ' D40 driver type
  567.  
  568. '
  569. ' *------- User definable devices
  570. '
  571. Global Const DV_USER1 = &HF0            ' User defined device 1
  572. Global Const DV_USER2 = &HF1            ' User defined device 2
  573. Global Const DV_USER3 = &HF2            ' User defined device 3
  574. Global Const DV_USER4 = &HF3            ' User defined device 4
  575. Global Const DV_USER5 = &HF4            ' User defined device 5
  576. Global Const DV_USER6 = &HF5            ' User defined device 6
  577. Global Const DV_USER7 = &HF6            ' User defined device 7
  578. Global Const DV_USER8 = &HF7            ' User defined device 8
  579.  
  580.  
  581. '
  582. ' *------- Defined Q Types
  583. '
  584. Global Const Q_NRML = 0                 ' non-prioriorized FIFO Q
  585. Global Const Q_NPSLL = 1                ' non-priority FIFO Single Linked List
  586.  
  587. '
  588. ' *------- miscellaneous
  589. '
  590. Global Const Q_STDREQ = 0             ' Standard request queue handle
  591. Global Const Q_STDEVT = 1             ' Standard event queue handle
  592.  
  593. '/*
  594. ' * GLOBAL TONE DETECTION
  595. ' */
  596.  
  597. '/*
  598. ' * Masks for functions dl_enbtone() and dl_distone()
  599. ' */
  600. Global Const TONE_ON = 1            '/* Enables/disables Tone On messages  */
  601. Global Const TONE_OFF = 2           '/* Enables/disables Tone Off messages */
  602.  
  603. Global Const TONE_ALL = &HFFFF      '/* Enables/disables ALL tone messages */
  604.  
  605. '/*
  606. ' * Tone detection modes
  607. ' */
  608. Global Const TN_LEADING = &H100      '/* Leading edge detection  */
  609. Global Const TN_TRAILING = &H200     '/* Trailing edge detection */
  610.  
  611. '/*
  612. ' * Miscellaneous GTD items
  613. ' */
  614. Global Const TN_DIGTYPE = 5         '/* Reserved digit type for user */
  615.  
  616.  
  617.  
  618. '/*
  619. ' * GENERAL TONE GENERATION
  620. ' */
  621.  
  622. '/*
  623. ' * Tone generation template
  624. ' */
  625. Type TN_GEN
  626.       tg_dflag As Integer ';     /* Dual Tone - 1, Single Tone - 0    */
  627.       tg_freq1 As Integer ';     /* Frequency for tone 1 (Hz)         */
  628.       tg_freq2 As Integer ';     /* Frequency for tone 2 (Hz)         */
  629.       tg_ampl1 As Integer ';     /* Amplitude for tone 1 (dB)         */
  630.       tg_ampl2 As Integer ';     /* Amplitude for tone 2 (dB)         */
  631.       tg_dur As Integer ';       /* Duration of generated tone (10ms) */
  632. End Type
  633.  
  634. '/*
  635. ' * For use with tg_dflag parameter in TN_GEN
  636. ' */
  637. Global Const TN_SINGLE = 0         '/* Indicates single tone */
  638. Global Const TN_DUAL = 1            '/* Indicates dual tone   */
  639.  
  640.  
  641.  '/*************************************************************************
  642.  '*
  643.  '* Speed/Volume Adjustment Condition Block(SVCB)
  644.  '*
  645.  '**************************************************************************/
  646.  
  647. Type SVCB
  648.    adjtype As Integer ';    /* Type of adjustment                      */
  649.    adjsize As Integer '; /* Adjustment size                         */
  650.    Digit As String * 1';   /* ASCII digit that causes play adjustment */
  651.    digtype As String * 1'; /* Digit type                              */
  652. End Type
  653.  
  654. ' /*************************************************************************
  655. ' *
  656. ' * Speed/Volume Modification Table(SVMT)
  657. ' *
  658. ' **************************************************************************/
  659.  
  660. Type SVMT
  661.    decrease As String * 10 '  /*        */
  662.    origin As String * 1    '     /* Origin */
  663.    Increase As String * 10      '     /*        */
  664. End Type
  665.  
  666.  
  667. '/*
  668. ' * Speed and Volume(S/V) Control
  669. ' */
  670. Global Const SV_SPEEDTBL = &H1        '/* Modify speed */
  671. Global Const SV_VOLUMETBL = &H2       '/* Modify volume */
  672.                       
  673. Global Const SV_ABSPOS = &H0          '/* Absolute position */
  674. Global Const SV_RELCURPOS = &H10      '/* Relative position from current position */
  675. Global Const SV_TOGGLE = &H20         '/* Toggle */
  676.                
  677. Global Const SV_WRAPMOD = &H10        '/* S/V Modification Table wraparound enable */
  678. Global Const SV_SETDEFAULT = &H20     '/* Reset to default S/V Modification Table */
  679. Global Const SV_LEVEL = &H100         '/* Digit level sensitive */
  680. Global Const SV_BEGINPLAY = &H200     '/* Apply play adjustment at beginning of each playback */
  681.  
  682. '/*
  683. ' * S/V toggle modes for Play Adjustment Conditions
  684. ' */
  685. Global Const SV_TOGORIGIN = &H0       '/* Toggle between origin and last modified position */
  686. Global Const SV_CURORIGIN = &H1       '/* Reset current position to the origin */
  687. Global Const SV_CURLASTMOD = &H2      '/* Reset current position to last modified position */
  688. Global Const SV_RESETORIG = &H3       '/* Reset current position and last modified state to origin */
  689.  
  690. '/*
  691. ' * S/V defines for dl_addspddig()
  692. ' */
  693. Global Const SV_ADD10PCT = 1         '/* Speed up playback 10 percent     */
  694. Global Const SV_ADD20PCT = 2         '/* Speed up playback 20 percent     */
  695. Global Const SV_ADD30PCT = 3         '/* Speed up playback 30 percent     */
  696. Global Const SV_ADD40PCT = 4         '/* Speed up playback 40 percent     */
  697. Global Const SV_ADD50PCT = 5         '/* Speed up playback 50 percent     */
  698. Global Const SV_SUB10PCT = -1        '/* Slow down playback 10 percent    */
  699. Global Const SV_SUB20PCT = -2        '/* Slow down playback 20 percent    */
  700. Global Const SV_SUB30PCT = -3        '/* Slow down playback 30 percent    */
  701. Global Const SV_SUB40PCT = -4        '/* Slow down playback 40 percent    */
  702. Global Const SV_SUB50PCT = -5        '/* Slow down playback 50 percent    */
  703. Global Const SV_NORMAL = &HFF        ' /* Set playback to normal speed/vol */
  704.                      
  705. '/*
  706. ' * S/V defines for dl_addvoldig()
  707. ' */
  708. Global Const SV_ADD2DB = 1           '/* Increase volume of playback 2dB */
  709. Global Const SV_ADD4DB = 2           '/* Increase volume of playback 4dB */
  710. Global Const SV_ADD6DB = 3           '/* Increase volume of playback 6dB */
  711. Global Const SV_ADD8DB = 4           '/* Increase volume of playback 8dB */
  712. Global Const SV_SUB2DB = -1          '/* Decrease volume of playback 2dB */
  713. Global Const SV_SUB4DB = -2          '/* Decrease volume of playback 4dB */
  714. Global Const SV_SUB6DB = -3          '/* Decrease volume of playback 6dB */
  715. Global Const SV_SUB8DB = -4          '/* Decrease volume of playback 8dB */
  716.                      '
  717.  
  718. '
  719. ' * function prototypes
  720. '
  721. Declare Sub clrrwb Lib "VBV_DLGC.DLL" (mRWB As RWB)
  722. Declare Sub clrxrwb Lib "VBV_DLGC.DLL" (mRWB As RWB)
  723. Declare Sub clrdcb Lib "VBV_DLGC.DLL" (mDCB As DCB)
  724. Declare Sub clrcpb Lib "VBV_DLGC.DLL" (mCPB As CPB)
  725. Declare Function setcparm Lib "VBV_DLGC.DLL" (ByVal ch As Integer, mCPB As CPB) As Integer
  726. Declare Function stopch Lib "VBV_DLGC.DLL" (ByVal ch As Integer) As Integer
  727. Declare Function getcstat Lib "VBV_DLGC.DLL" (ByVal ch As Integer, mCSB As CSB) As Integer
  728. Declare Function sethook Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal onoff As Integer) As Integer
  729. Declare Function setcst Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal mask As Integer, ByVal numrings As Integer) As Integer
  730. Declare Function clrdtmf Lib "VBV_DLGC.DLL" (ByVal ch As Integer) As Integer
  731. Declare Function readdtmf Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal dtmf As String) As Integer
  732. Declare Function recfile Lib "VBV_DLGC.DLL" (ByVal ch As Integer, mRWB As RWB, ByVal Prm3 As Integer) As Integer
  733. Declare Function xplayf Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, mRWB As RWB) As Integer
  734. Declare Function dial Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal dialstr As String) As Integer
  735. Declare Function callp Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal dialstr As String) As Integer
  736. Declare Function getdtmfs Lib "VBV_DLGC.DLL" (ByVal ch As Integer, Prm2 As RWB) As Integer
  737. Declare Function setdmask Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal mask As Integer, ByVal Prm3 As Integer) As Integer
  738. Declare Function getver Lib "VBV_DLGC.DLL" (xx As Integer, yy As Integer) As Integer
  739. Declare Function getcom Lib "VBV_DLGC.DLL" (ByVal ch As Integer, mDACCB As DACCB) As Integer
  740. Declare Function putcom Lib "VBV_DLGC.DLL" (ByVal ch As Integer, mADCCB As ADCCB) As Integer
  741. Declare Function playuser Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As String, Prm3 As Integer) As Integer
  742. Declare Function recuser Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As String, Prm3 As Integer) As Integer
  743. Declare Function getcar Lib "VBV_DLGC.DLL" (ByVal ch As Integer, mCAR As CAR) As Integer
  744. Declare Function sw_on Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer) As Integer
  745. Declare Function sw_off Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer) As Integer
  746. Declare Function amx_off Lib "VBV_DLGC.DLL" () As Integer
  747. Declare Function amx_msk Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer) As Integer
  748. Declare Function ring Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer) As Integer
  749. Declare Function set_ring Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer, ByVal Prm4 As Integer) As Integer
  750. Declare Function putevt Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer) As Integer
  751. Declare Function setiparm Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer) As Integer
  752. Declare Function wink Lib "VBV_DLGC.DLL" (ByVal ch As Integer) As Integer
  753. Declare Function sb_route Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer) As Integer
  754. Declare Function sb_rtrcvxmt Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer) As Integer
  755.  
  756.  
  757. Type IDCB
  758.  version           As Integer   ' firmware revision
  759.  segment           As Integer   ' segment address
  760.  type              As String * 1' board type
  761.  int_lvl           As String * 1' hardware interrupt level
  762.  bufsize           As Integer   ' size of buffer
  763.  numchan           As String * 1' number of channels
  764.  basechn           As String * 1' base channel - 1
  765.  config            As String * 1' copy of dl_syscfg from d40
  766.  product           As String * 1' copy of dl_product, A/B info
  767.  rfu               As String * 20' 20 chars
  768. End Type
  769.  
  770. Declare Function calld40 Lib "VBV_DLGC.DLL" (ByVal Prm1 As String, ByVal Prm2 As String, Prm3 As Integer, Prm4 As Integer, Prm5 As Integer) As Integer
  771.  
  772. 'important note for calld40x: parameter ptr must be a real mode segment/offset! (use GlobalDosAlloc/GlobalDosFree)
  773. Declare Function calld40x Lib "VBV_DLGC.DLL" (ByVal Prm1 As String, ByVal Prm2 As String, Prm3 As Integer, Prm4 As Integer, ptr As Any) As Integer
  774.  
  775. 'note this function must not be called before vbv_start_system ! (or it will fail)
  776. Declare Function startamx Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, Prm2 As Integer) As Integer
  777. Declare Function stopamx Lib "VBV_DLGC.DLL" () As Integer
  778.  
  779.  
  780. Declare Function dl_addtone Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer) As Integer
  781. Declare Function dl_deltones Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer) As Integer
  782. Declare Function dl_enbtone Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer) As Integer
  783. Declare Function dl_distone Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer) As Integer
  784. Declare Function dl_blddt Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer, ByVal Prm4 As Integer, ByVal Prm5 As Integer, ByVal Prm6 As Integer) As Integer
  785. Declare Function dl_blddtcad Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer, ByVal Prm4 As Integer, ByVal Prm5 As Integer, ByVal Prm6 As Integer, ByVal Prm7 As Integer, ByVal Prm8 As Integer, ByVal Prm9 As Integer) As Integer
  786. Declare Function dl_bldst Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer, ByVal Prm4 As Integer) As Integer
  787. Declare Function dl_bldstcad Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer, ByVal Prm4 As Integer, ByVal Prm5 As Integer, ByVal Prm6 As Integer, ByVal Prm7 As Integer, ByVal Prm8 As Integer) As Integer
  788. Declare Function buildtone Lib "VBV_DLGC.DLL" (ByVal Prm1 As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer, ByVal Prm4 As Integer, ByVal Prm5 As Integer, ByVal Prm6 As Integer, ByVal Prm7 As Integer, ByVal Prm8 As Integer, ByVal Prm9 As Integer, ByVal Prm10 As Integer, ByVal Prm11 As Integer, ByVal Prm12 As Integer) As Integer
  789. Declare Function dl_playtone Lib "VBV_DLGC.DLL" (ByVal ch As Integer, RWB As RWB) As Integer
  790. Declare Sub dl_bldtngen Lib "VBV_DLGC.DLL" (TN_GEN As TN_GEN, ByVal Prm2 As Integer, ByVal Prm3 As Integer, ByVal Prm4 As Integer, ByVal Prm5 As Integer, ByVal Prm6 As Integer)
  791. Declare Function dl_adjsv Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer, ByVal Prm4 As Integer)
  792. Declare Function dl_setsvcond Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, Prm3 As SVCB) As Integer
  793. Declare Function dl_clrsvcond Lib "VBV_DLGC.DLL" (ByVal ch As Integer)
  794. Declare Function dl_getcursv Lib "VBV_DLGC.DLL" (ByVal ch As Integer, Prm2 As Integer, Prm3 As Integer) As Integer
  795. Declare Function dl_setsvmt Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, Prm3 As SVMT, ByVal Prm4 As Integer) As Integer
  796. Declare Function dl_getsvmt Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, Prm3 As SVMT) As Integer
  797. Declare Function dl_addspddig Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer) As Integer
  798. Declare Function dl_addvoldig Lib "VBV_DLGC.DLL" (ByVal ch As Integer, ByVal Prm2 As Integer, ByVal Prm3 As Integer) As Integer
  799.  
  800.