home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4609 / wavplus / wavplus.bas < prev    next >
BASIC Source File  |  1994-06-28  |  11KB  |  239 lines

  1. 'WavPlus.DLL should be in your Windows\System directory or in the Path
  2.  
  3.  
  4. 'Assorted functions
  5. Declare Function GetWavPlusVersion% Lib "WavPlus.DLL" ()
  6. Declare Sub RevString Lib "WavPlus.DLL" (ByVal lpString$)
  7. 'WAV functions
  8.     'non-MCI WAV functions
  9. Declare Function PlayWavWait% Lib "WavPlus.DLL" (ByVal lpString$)
  10. Declare Function PlayWavNoWait% Lib "WavPlus.DLL" (ByVal lpString$)
  11. Declare Function PlayWavLoop% Lib "WavPlus.DLL" (ByVal lpString$)
  12. Declare Function StopWavLoop% Lib "WavPlus.DLL" ()
  13. Declare Function HowManyWavPlayDevices% Lib "WavPlus.DLL" ()
  14. Declare Function HowManyWavRecordDevices% Lib "WavPlus.DLL" ()
  15.     'MCI WAV info functions
  16. Declare Sub WavCanPlay Lib "WavPlus.DLL" (ByVal lpString$)
  17. Declare Sub WavCanRecord Lib "WavPlus.DLL" (ByVal lpString$)
  18. Declare Sub WavMaxBitSize Lib "WavPlus.DLL" (ByVal lpString$)
  19. Declare Sub WavMaxChannels Lib "WavPlus.DLL" (ByVal lpString$)
  20. Declare Sub WavMaxSampleRate Lib "WavPlus.DLL" (ByVal lpString$)
  21. Declare Sub WavGetLengthMS Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  22. Declare Sub WavGetLengthBytes Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  23. Declare Sub WavGetBitSize Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  24. Declare Sub WavGetChannels Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  25. Declare Sub WavGetSampleRate Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  26.     'MCI WAV open session functions
  27. Declare Sub WavOpen Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  28. Declare Sub WavOpenNew Lib "WavPlus.DLL" (ByVal lpString$)
  29. Declare Sub WavClose Lib "WavPlus.DLL" (ByVal lpString$)
  30. Declare Sub WavPause Lib "WavPlus.DLL" (ByVal lpString$)
  31. Declare Sub WavResume Lib "WavPlus.DLL" (ByVal lpString$)
  32. Declare Sub WavStop Lib "WavPlus.DLL" (ByVal lpString$)
  33. Declare Sub WavStart Lib "WavPlus.DLL" (ByVal lpString$)
  34. Declare Sub WavStartSectionWait Lib "WavPlus.DLL" (ByVal lpSecStart$, ByVal lpSecEnd$, ByVal lpString$)
  35. Declare Sub WavStartSectionNoWait Lib "WavPlus.DLL" (ByVal lpSecStart$, ByVal lpSecEnd$, ByVal lpString$)
  36. Declare Sub WavSeekEnd Lib "WavPlus.DLL" (ByVal lpString$)
  37. Declare Sub WavSeekStart Lib "WavPlus.DLL" (ByVal lpString$)
  38. Declare Sub WavSeekPosition Lib "WavPlus.DLL" (ByVal lpStrValue$, ByVal lpString$)
  39. Declare Sub WavStatusMode Lib "WavPlus.DLL" (ByVal lpString$)
  40. Declare Sub WavStatusLengthMS Lib "WavPlus.DLL" (ByVal lpString$)
  41. Declare Sub WavStatusLengthBytes Lib "WavPlus.DLL" (ByVal lpString$)
  42. Declare Sub WavStatusPosition Lib "WavPlus.DLL" (ByVal lpString$)
  43. Declare Sub WavStatusBitSize Lib "WavPlus.DLL" (ByVal lpString$)
  44. Declare Sub WavStatusChannels Lib "WavPlus.DLL" (ByVal lpString$)
  45. Declare Sub WavStatusSampleRate Lib "WavPlus.DLL" (ByVal lpString$)
  46. Declare Sub WavRecord Lib "WavPlus.DLL" (ByVal lpString$)
  47. Declare Sub WavSave Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  48. Declare Sub WavEraseAll Lib "WavPlus.DLL" (ByVal lpString$)
  49. Declare Sub WavEraseSection Lib "WavPlus.DLL" (ByVal lpSecStart$, ByVal lpSecEnd$, ByVal lpString$)
  50. Declare Sub WavSetBitSize Lib "WavPlus.DLL" (ByVal lpValue$, ByVal lpString$)
  51. Declare Sub WavSetChannels Lib "WavPlus.DLL" (ByVal lpValue$, ByVal lpString$)
  52. Declare Sub WavSetSampleRate Lib "WavPlus.DLL" (ByVal lpValue$, ByVal lpString$)
  53.  
  54. 'MIDI info functions
  55. Declare Function HowManyMidiPlayDevices% Lib "WavPlus.DLL" ()
  56. Declare Function HowManyMidiRecordDevices% Lib "WavPlus.DLL" ()
  57.     'MCI Midi open session functions
  58. Declare Sub MidiOpen Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  59. Declare Sub MidiOpenNew Lib "WavPlus.DLL" (ByVal lpString$)
  60. Declare Sub MidiClose Lib "WavPlus.DLL" (ByVal lpString$)
  61. Declare Sub MidiPause Lib "WavPlus.DLL" (ByVal lpString$)
  62. Declare Sub MidiResume Lib "WavPlus.DLL" (ByVal lpString$)
  63. Declare Sub MidiStop Lib "WavPlus.DLL" (ByVal lpString$)
  64. Declare Sub MidiStart Lib "WavPlus.DLL" (ByVal lpString$)
  65. Declare Sub MidiStartSectionWait Lib "WavPlus.DLL" (ByVal lpSecStart$, ByVal lpSecEnd$, ByVal lpString$)
  66. Declare Sub MidiStartSectionNoWait Lib "WavPlus.DLL" (ByVal lpSecStart$, ByVal lpSecEnd$, ByVal lpString$)
  67. Declare Sub MidiSeekEnd Lib "WavPlus.DLL" (ByVal lpString$)
  68. Declare Sub MidiSeekStart Lib "WavPlus.DLL" (ByVal lpString$)
  69. Declare Sub MidiSeekPosition Lib "WavPlus.DLL" (ByVal lpStrValue$, ByVal lpString$)
  70. Declare Sub MidiStatusMode Lib "WavPlus.DLL" (ByVal lpString$)
  71. Declare Sub MidiStatusLengthMS Lib "WavPlus.DLL" (ByVal lpString$)
  72. Declare Sub MidiStatusPosition Lib "WavPlus.DLL" (ByVal lpString$)
  73. Declare Sub MidiRecord Lib "WavPlus.DLL" (ByVal lpString$)
  74. Declare Sub MidiSave Lib "WavPlus.DLL" (ByVal lpFileName$, ByVal lpString$)
  75. Declare Sub MidiEraseAll Lib "WavPlus.DLL" (ByVal lpString$)
  76. Declare Sub MidiEraseSection Lib "WavPlus.DLL" (ByVal lpSecStart$, ByVal lpSecEnd$, ByVal lpString$)
  77.  
  78.  
  79. 'Assorted WIN API Functions
  80. Declare Function DestroyWindow% Lib "User" (ByVal hWnd%)
  81. Declare Function GetWindowsDirectory% Lib "Kernel" (ByVal lpBuffer$, ByVal nSize%)
  82. Declare Function OutMessage% Lib "User" Alias "SendMessage" (ByVal hWnd%, ByVal wMsg%, ByVal wParam%, lParam As Any)
  83. Declare Function SendMessage& Lib "User" (ByVal hWnd%, ByVal wMsg%, ByVal wParam%, lParam As Any)
  84. Declare Function WinHelp% Lib "User" (ByVal hWnd%, ByVal lpHelpFile$, ByVal wCommand%, ByVal dwData As Any)
  85.     Global Const HELP_CONTENTS = &H3
  86.     Global Const HELP_PARTIALKEY = &H105
  87.  
  88.  
  89. 'program constants
  90. Global Const raised = 1
  91. Global Const sunken = 2
  92.  
  93.  
  94. 'program variables
  95. Global FormPassString As String     'used to pass strings
  96. Global FormPassString2 As String
  97.  
  98. Function AddSeparator (ThePath$)
  99.     If Right$(ThePath$, 1) <> "\" Then
  100.         ThePath$ = ThePath$ + "\"
  101.         End If
  102.     AddSeparator = ThePath$
  103. End Function
  104.  
  105. Sub DoControl3D (Obj As Control, Style%, Thick%)
  106.     If Thick <= 0 Then Thick = 1
  107.     If Thick > 8 Then Thick = 8
  108.     OldMode = Obj.Parent.ScaleMode
  109.     OldWidth = Obj.Parent.DrawWidth
  110.     Obj.Parent.ScaleMode = 3
  111.     Obj.Parent.DrawWidth = 1
  112.     ObjHeight = Obj.Height
  113.     ObjWidth = Obj.Width
  114.     ObjLeft = Obj.Left
  115.     ObjTop = Obj.Top
  116.     
  117.     Select Case Style
  118.         Case sunken:
  119.             TLshade = QBColor(8)
  120.             BRshade = QBColor(15)
  121.         Case raised:
  122.             TLshade = QBColor(15)
  123.             BRshade = QBColor(8)
  124.         End Select
  125.         For i = 1 To Thick
  126.             CurLeft = ObjLeft - i
  127.             CurTop = ObjTop - i
  128.             CurWide = ObjWidth + (i * 2) - 1
  129.             CurHigh = ObjHeight + (i * 2) - 1
  130.             Obj.Parent.Line (CurLeft, CurTop)-Step(CurWide, 0), TLshade
  131.             Obj.Parent.Line -Step(0, CurHigh), BRshade
  132.             Obj.Parent.Line -Step(-CurWide, 0), BRshade
  133.             Obj.Parent.Line -Step(0, -CurHigh), TLshade
  134.             Next i
  135.         If Thick > 2 Then
  136.             CurLeft = ObjLeft - Thick - 1
  137.             CurTop = ObjTop - Thick - 1
  138.             CurWide = ObjWidth + ((Thick + 1) * 2) - 1
  139.             CurHigh = ObjHeight + ((Thick + 1) * 2) - 1
  140.             Obj.Parent.Line (CurLeft, CurTop)-Step(CurWide, 0), QBColor(0)
  141.             Obj.Parent.Line -Step(0, CurHigh), QBColor(0)
  142.             Obj.Parent.Line -Step(-CurWide, 0), QBColor(0)
  143.             Obj.Parent.Line -Step(0, -CurHigh), QBColor(0)
  144.             End If
  145.     Obj.Parent.ScaleMode = OldMode
  146.     Obj.Parent.DrawWidth = OldWidth
  147. End Sub
  148.  
  149. Sub DoForm3D (TheForm As Form, Style%, Thick%, Distance%)
  150.     If Thick <= 0 Then Thick = 1
  151.     If Thick > 8 Then Thick = 8
  152.     If Distance < 0 Then Distance = 0
  153.     If Distance > 8 Then Distance = 8
  154.     OldMode = TheForm.ScaleMode
  155.     OldWidth = TheForm.DrawWidth
  156.     TheForm.ScaleMode = 3
  157.     TheForm.DrawWidth = 1
  158.     FormHeight = TheForm.ScaleHeight
  159.     FormWidth = TheForm.ScaleWidth
  160.     FormLeft = TheForm.ScaleLeft
  161.     FormTop = TheForm.ScaleTop
  162.     
  163.     Select Case Style
  164.         Case sunken:
  165.             TLshade = QBColor(8)
  166.             BRshade = QBColor(15)
  167.         Case raised:
  168.             TLshade = QBColor(15)
  169.             BRshade = QBColor(8)
  170.         End Select
  171.     Select Case TheForm.BorderStyle
  172.         Case 0:
  173.             OLshade = QBColor(0)
  174.             TheForm.Line (0, 0)-(FormWidth, 0), OLshade
  175.             TheForm.Line (0, 0)-(0, FormHeight), OLshade
  176.             TheForm.Line (FormWidth - 1, 0)-(FormWidth - 1, FormHeight + 1), OLshade
  177.             TheForm.Line (0, FormHeight - 1)-(FormWidth, FormHeight - 1), OLshade
  178.             For i = 1 To Thick
  179.                 CurLeft = FormLeft + i + Distance
  180.                 CurTop = FormTop + i + Distance
  181.                 CurWide = FormWidth - (i + Distance) * 2 - 1
  182.                 CurHigh = FormHeight - (i + Distance) * 2 - 1
  183.                 TheForm.Line (CurLeft, CurTop)-Step(CurWide, 0), TLshade
  184.                 TheForm.Line -Step(0, CurHigh), BRshade
  185.                 TheForm.Line -Step(-CurWide, 0), BRshade
  186.                 TheForm.Line -Step(0, -CurHigh), TLshade
  187.                 Next i
  188.         Case 1 To 3:
  189.             If Thickness = 1 Then
  190.                 TheForm.Line (Thick, Thick)-(FormWidth - Thick, Thick), TLshade
  191.                 TheForm.Line (Thick, Thick)-(Thick, FormHeight - Thick), TLshade
  192.                 TheForm.Line (FormWidth - Thick, Thick)-(FormWidth - Thick, FormHeight - Thick + 1), BRshade
  193.                 TheForm.Line (Thick, FormHeight - Thick)-(FormWidth - Thick, FormHeight - Thick), BRshade
  194.                 Else
  195.             For i = 1 To Thick
  196.                 CurLeft = FormLeft + i - 1 + Distance
  197.                 CurTop = FormTop + i - 1 + Distance
  198.                 CurWide = FormWidth - (i + Distance) * 2 + 1
  199.                 CurHigh = FormHeight - (i + Distance) * 2 + 1
  200.                 TheForm.Line (CurLeft, CurTop)-Step(CurWide, 0), TLshade
  201.                 TheForm.Line -Step(0, CurHigh), BRshade
  202.                 TheForm.Line -Step(-CurWide, 0), BRshade
  203.                 TheForm.Line -Step(0, -CurHigh), TLshade
  204.                 Next i
  205.                 End If
  206.         End Select
  207.     TheForm.ScaleMode = OldMode
  208.     TheForm.DrawWidth = OldWidth
  209. End Sub
  210.  
  211. Sub FormCenterForm (TheForm As Form, MainForm As Form)
  212.     TheForm.Move MainForm.Left + (MainForm.Width - TheForm.Width) / 2, MainForm.Top + (MainForm.Height - TheForm.Height) / 2
  213. End Sub
  214.  
  215. Sub FormCenterScreen (TheForm As Form)
  216.     TheForm.Move (Screen.Width - TheForm.Width) / 2, (Screen.Height - TheForm.Height) / 2
  217. End Sub
  218.  
  219. Function GetWinDir ()
  220.      Buffer$ = Space$(255)
  221.      count% = GetWindowsDirectory(Buffer$, 255)
  222.      GetWinDir = Left$(Buffer$, count%)
  223. End Function
  224.  
  225. Sub ListHscroll (TheListBox As Control, CharsWide%)
  226.     If CharsWide% > 15000 Then CharsWide% = 15000
  227.     LongString$ = String$(CharsWide%, "W")
  228.     tppx% = Screen.TwipsPerPixelX
  229.     MaxiWide% = TheListBox.Parent.TextWidth(LongString$) / tppx%
  230.     HscrollLen& = SendMessage(TheListBox.hWnd, 1045, MaxiWide%, 0)
  231. End Sub
  232.  
  233. Sub TrimAtNull (TheWord$)
  234.     pos% = InStr(TheWord$, Chr$(0))
  235.     If pos% = 0 Then Exit Sub
  236.     TheWord$ = Left$(TheWord$, pos% - 1)
  237. End Sub
  238.  
  239.