📄 fmain.frm
字号:
Me.MousePointer = vbDefault
End Sub
Private Sub Form_Unload(Cancel As Integer)
'class automatically deallocates itself when it is destroyed
End Sub
Private Sub cboLineSel_Click()
lstLineInfo.Clear
If cboLineSel.List(cboLineSel.ListIndex) <> "" Then
'this sets the current line in the TAPIline class
tapiline.CurrentLineID = cboLineSel.List(cboLineSel.ListIndex)
'this section just prints out a lot of info about the selected Line
lstLineInfo.AddItem "TAPI LINE: #" & tapiline.CurrentLineID
lstLineInfo.AddItem "TAPI LINE NAME: " & tapiline.LineName
lstLineInfo.AddItem "TAPI PROVIDER INFO: " & tapiline.ProviderInfo
lstLineInfo.AddItem "TAPI SWITCH INFO: " & tapiline.SwitchInfo
lstLineInfo.AddItem "Permanent Line ID: " & tapiline.PermanentLineID
Select Case tapiline.StringFormat
Case STRINGFORMAT_ASCII
lstLineInfo.AddItem "String Format: STRINGFORMAT_ASCII"
Case STRINGFORMAT_DBCS
lstLineInfo.AddItem "String Format: STRINGFORMAT_DBCS"
Case STRINGFORMAT_UNICODE
lstLineInfo.AddItem "String Format: STRINGFORMAT_UNICODE"
Case STRINGFORMAT_BINARY
lstLineInfo.AddItem "String Format: STRINGFORMAT_BINARY"
Case Else
End Select
lstLineInfo.AddItem "Number of addresses associated with this line: " & tapiline.numAddresses
lstLineInfo.AddItem "Max data rate: " & tapiline.maxDataRate
lstLineInfo.AddItem "Bearer Modes supported:"
If LINEBEARERMODE_VOICE And tapiline.BearerModes Then lstLineInfo.AddItem vbTab & "LINEBEARERMODE_VOICE"
If LINEBEARERMODE_SPEECH And tapiline.BearerModes Then lstLineInfo.AddItem vbTab & "LINEBEARERMODE_SPEECH"
If LINEBEARERMODE_DATA And tapiline.BearerModes Then lstLineInfo.AddItem vbTab & "LINEBEARERMODE_DATA"
If LINEBEARERMODE_ALTSPEECHDATA And tapiline.BearerModes Then lstLineInfo.AddItem vbTab & "LINEBEARERMODE_ALTSPEECHDATA"
If LINEBEARERMODE_MULTIUSE And tapiline.BearerModes Then lstLineInfo.AddItem vbTab & "LINEBEARERMODE_MULTIUSE"
If LINEBEARERMODE_NONCALLSIGNALING And tapiline.BearerModes Then lstLineInfo.AddItem vbTab & "LINEBEARERMODE_NONCALLSIGNALING"
lstLineInfo.AddItem "Address Modes supported:"
If tapiline.AddressModes And LINEADDRESSMODE_ADDRESSID Then lstLineInfo.AddItem vbTab & "LINEADDRESSMODE_ADDRESSID"
If tapiline.AddressModes And LINEADDRESSMODE_DIALABLEADDR Then lstLineInfo.AddItem vbTab & "LINEADDRESSMODE_DIALABLEADDR"
lstLineInfo.AddItem "Media Modes supported:"
If LINEMEDIAMODE_ADSI And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_ADSI"
If LINEMEDIAMODE_AUTOMATEDVOICE And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_AUTOMATEDVOICE"
If LINEMEDIAMODE_DATAMODEM And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_DATAMODEM"
If LINEMEDIAMODE_DIGITALDATA And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_DIGITALDATA"
If LINEMEDIAMODE_G3FAX And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_G3FAX"
If LINEMEDIAMODE_G4FAX And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_G4FAX"
If LINEMEDIAMODE_INTERACTIVEVOICE And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_INTERACTIVEVOICE"
If LINEMEDIAMODE_MIXED And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_MIXED"
If LINEMEDIAMODE_TDD And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_TDD"
If LINEMEDIAMODE_TELETEX And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_TELETEX"
If LINEMEDIAMODE_TELEX And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_TELEX"
If LINEMEDIAMODE_UNKNOWN And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_UNKNOWN"
If LINEMEDIAMODE_VIDEOTEX And tapiline.mediamodes Then lstLineInfo.AddItem vbTab & "LINEMEDIAMODE_VIDEOTEX"
lstLineInfo.AddItem "Line Tone Generation supported: " & CBool(tapiline.GenerateToneMaxNumFreq)
If CBool(tapiline.GenerateToneMaxNumFreq) Then 'show if tone generation is supported
If LINETONEMODE_BEEP And tapiline.GenerateToneModes Then lstLineInfo.AddItem vbTab & "LINETONEMODE_BEEP"
If LINETONEMODE_BILLING And tapiline.GenerateToneModes Then lstLineInfo.AddItem vbTab & "LINETONEMODE_BILLING"
If LINETONEMODE_BUSY And tapiline.GenerateToneModes Then lstLineInfo.AddItem vbTab & "LINETONEMODE_BUSY"
If LINETONEMODE_CUSTOM And tapiline.GenerateToneModes Then lstLineInfo.AddItem vbTab & "LINETONEMODE_CUSTOM"
If LINETONEMODE_RINGBACK And tapiline.GenerateToneModes Then lstLineInfo.AddItem vbTab & "LINETONEMODE_RINGBACK"
End If
lstLineInfo.AddItem "Number of terminals for this line: " & tapiline.numTerminals
Else
lstLineInfo.AddItem "<No Valid TAPI Line Selected>"
End If
'now we check to see if this line supports making voice calls
If tapiline.LineSupportsVoiceCalls Then
'and enable/disable the call btn as appropriate
cmdDial.Enabled = True
Else
cmdDial.Enabled = False
End If
'paint the icon for this line
picIcon.AutoRedraw = True
If tapiline.PaintDevIcon(picIcon.hdc, 4, 4) Then
'make icon persistent
picIcon.Picture = picIcon.Image
Else
'TSP contains no icon - just erase the old one
picIcon.Picture = LoadPicture()
End If
End Sub
Private Sub cmdConfigDlg_Click()
Dim success As Boolean
success = tapiline.ConfigDialog(Me.hWnd)
If success <> True Then
MsgBox tapiline.ErrorString(tapiline.LastError)
End If
End Sub
Private Sub cmdDial_Click()
Dim success As Boolean
cmdDial.Enabled = False
'give the user some progress indication
lstCallProgress.AddItem "Opening line: #" & tapiline.CurrentLineID
success = tapiline.OpenLine
If success <> True Then
MsgBox "TAPI ERROR " & vbCrLf & tapiline.ErrorString(tapiline.LastError), vbCritical, App.Title
cmdDial.Enabled = True
Exit Sub
End If
lstCallProgress.AddItem "Preparing to dial: " & txtPhoneNumber.Text
success = tapiline.MakeCallAsynch(txtPhoneNumber.Text)
If success <> True Then
Call tapiline.CloseLine
MsgBox "Error #" & tapiline.LastError & vbCrLf & _
tapiline.ErrorString(tapiline.LastError), vbInformation, App.Title
cmdDial.Enabled = True
Exit Sub
End If
End Sub
Private Sub cmdDialProps_Click()
Dim success As Boolean
success = tapiline.DialingPropertiesDialog(Me.hWnd, txtPhoneNumber)
If success <> True Then
MsgBox tapiline.ErrorString(tapiline.LastError)
End If
End Sub
Private Sub cmdExit_Click()
Unload Me
End Sub
Private Sub cmdHangUp_Click()
Dim success As Boolean
lstCallProgress.AddItem "Requesting drop call..."
success = tapiline.DropCallAsynch
If success <> True Then
MsgBox "Error #" & tapiline.LastError & vbCrLf & tapiline.ErrorString(tapiline.LastError)
End If
End Sub
'THESE ARE EVENTS RAISED BY THE CLASS
'WHEN ASYNCH FUNCTIONS RETURN
Private Sub tapiline_DropCallResult(ByVal errorCode As Long)
If errorCode = TAPI_SUCCESS Then
lstCallProgress.AddItem "Call Dropped: " & txtPhoneNumber.Text
lstCallProgress.TopIndex = lstCallProgress.ListCount - 1
Else
lstCallProgress.AddItem "Call Drop Error: " & tapiline.ErrorString(errorCode)
lstCallProgress.TopIndex = lstCallProgress.ListCount - 1
End If
End Sub
Private Sub tapiline_MakeCallResult(ByVal errorCode As Long)
If errorCode = TAPI_SUCCESS Then
lstCallProgress.AddItem "Dialing: " & txtPhoneNumber.Text
lstCallProgress.TopIndex = lstCallProgress.ListCount - 1
Else
lstCallProgress.AddItem "Could not dial: " & txtPhoneNumber.Text
lstCallProgress.AddItem "Dial Error: " & tapiline.ErrorString(errorCode)
lstCallProgress.TopIndex = lstCallProgress.ListCount - 1
End If
End Sub
'THESE ARE EVENTS RAISED BY THE CLASS WHEN IT RECEIVES
'CERTAIN LINE_STATE MSGS
Private Sub tapiline_Connected()
cmdHangUp.Enabled = True
lstCallProgress.AddItem "Connected"
lstCallProgress.TopIndex = lstCallProgress.ListCount - 1
End Sub
Private Sub tapiline_Disconnected()
cmdHangUp.Enabled = False
lstCallProgress.AddItem "Disconnected"
lstCallProgress.TopIndex = lstCallProgress.ListCount - 1
End Sub
Private Sub tapiline_Idle()
cmdHangUp.Enabled = False
cmdDial.Enabled = True
lstCallProgress.AddItem "Idle"
lstCallProgress.TopIndex = lstCallProgress.ListCount - 1
End Sub
'this sub is only used to slow down the initial updating of the
'listbox control - it is only for looks
Sub Pause(ByVal mSecs As Long, Optional bYield As Boolean = True)
Dim startTime As Long
startTime = timeGetTime()
Do While timeGetTime < startTime + mSecs
If bYield Then
DoEvents
End If
Loop
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -