www.pudn.com > vbTAPI.zip > TAPIConsts.bas
Attribute VB_Name = "mTAPIConsts"
Option Explicit
'****************************************************************
'* VB file: TAPIConsts.bas...
'* Partial VB32 translation of tapi.h constants
'*
'* created: 1999 by Ray Mercer
'*
'* last modified: 8/25/99 by Ray Mercer (added comments)
'*
'* These constants are in a standard module to facilitate
'* cutting and pasting into your own code.
'*
'* Copyright (c) 1998 Ray Mercer. All rights reserved.
'* Latest version at http://i.am/shrinkwrapvb
'****************************************************************
Global Const TAPI_SUCCESS As Long = 0& 'declared for convenience
Global Const LINEERR_ALLOCATED As Long = &H80000001
Global Const LINEERR_BADDEVICEID As Long = &H80000002
Global Const LINEERR_BEARERMODEUNAVAIL As Long = &H80000003
Global Const LINEERR_CALLUNAVAIL As Long = &H80000005
Global Const LINEERR_COMPLETIONOVERRUN As Long = &H80000006
Global Const LINEERR_CONFERENCEFULL As Long = &H80000007
Global Const LINEERR_DIALBILLING As Long = &H80000008
Global Const LINEERR_DIALDIALTONE As Long = &H80000009
Global Const LINEERR_DIALPROMPT As Long = &H8000000A
Global Const LINEERR_DIALQUIET As Long = &H8000000B
Global Const LINEERR_INCOMPATIBLEAPIVERSION As Long = &H8000000C
Global Const LINEERR_INCOMPATIBLEEXTVERSION As Long = &H8000000D
Global Const LINEERR_INIFILECORRUPT As Long = &H8000000E
Global Const LINEERR_INUSE As Long = &H8000000F
Global Const LINEERR_INVALADDRESS As Long = &H80000010
Global Const LINEERR_INVALADDRESSID As Long = &H80000011
Global Const LINEERR_INVALADDRESSMODE As Long = &H80000012
Global Const LINEERR_INVALADDRESSSTATE As Long = &H80000013
Global Const LINEERR_INVALAPPHANDLE As Long = &H80000014
Global Const LINEERR_INVALAPPNAME As Long = &H80000015
Global Const LINEERR_INVALBEARERMODE As Long = &H80000016
Global Const LINEERR_INVALCALLCOMPLMODE As Long = &H80000017
Global Const LINEERR_INVALCALLHANDLE As Long = &H80000018
Global Const LINEERR_INVALCALLPARAMS As Long = &H80000019
Global Const LINEERR_INVALCALLPRIVILEGE As Long = &H8000001A
Global Const LINEERR_INVALCALLSELECT As Long = &H8000001B
Global Const LINEERR_INVALCALLSTATE As Long = &H8000001C
Global Const LINEERR_INVALCALLSTATELIST As Long = &H8000001D
Global Const LINEERR_INVALCARD As Long = &H8000001E
Global Const LINEERR_INVALCOMPLETIONID As Long = &H8000001F
Global Const LINEERR_INVALCONFCALLHANDLE As Long = &H80000020
Global Const LINEERR_INVALCONSULTCALLHANDLE As Long = &H80000021
Global Const LINEERR_INVALCOUNTRYCODE As Long = &H80000022
Global Const LINEERR_INVALDEVICECLASS As Long = &H80000023
Global Const LINEERR_INVALDEVICEHANDLE As Long = &H80000024
Global Const LINEERR_INVALDIGITLIST As Long = &H80000026
Global Const LINEERR_INVALDIGITMODE As Long = &H80000027
Global Const LINEERR_INVALDIGITS As Long = &H80000028
Global Const LINEERR_INVALEXTVERSION As Long = &H80000029
Global Const LINEERR_INVALGROUPID As Long = &H8000002A
Global Const LINEERR_INVALLINEHANDLE As Long = &H8000002B
Global Const LINEERR_INVALLINESTATE As Long = &H8000002C
Global Const LINEERR_INVALLOCATION As Long = &H8000002D
Global Const LINEERR_INVALMEDIALIST As Long = &H8000002E
Global Const LINEERR_INVALMEDIAMODE As Long = &H8000002F
Global Const LINEERR_INVALMESSAGEID As Long = &H80000030
Global Const LINEERR_INVALPARAM As Long = &H80000032
Global Const LINEERR_INVALPARKID As Long = &H80000033
Global Const LINEERR_INVALPARKMODE As Long = &H80000034
Global Const LINEERR_INVALPOINTER As Long = &H80000035
Global Const LINEERR_INVALPRIVSELECT As Long = &H80000036
Global Const LINEERR_INVALRATE As Long = &H80000037
Global Const LINEERR_INVALREQUESTMODE As Long = &H80000038
Global Const LINEERR_INVALTERMINALID As Long = &H80000039
Global Const LINEERR_INVALTERMINALMODE As Long = &H8000003A
Global Const LINEERR_INVALTIMEOUT As Long = &H8000003B
Global Const LINEERR_INVALTONE As Long = &H8000003C
Global Const LINEERR_INVALTONELIST As Long = &H8000003D
Global Const LINEERR_INVALTONEMODE As Long = &H8000003E
Global Const LINEERR_INVALTRANSFERMODE As Long = &H8000003F
Global Const LINEERR_LINEMAPPERFAILED As Long = &H80000040
Global Const LINEERR_NOCONFERENCE As Long = &H80000041
Global Const LINEERR_NODEVICE As Long = &H80000042
Global Const LINEERR_NODRIVER As Long = &H80000043
Global Const LINEERR_NOMEM As Long = &H80000044
Global Const LINEERR_NOREQUEST As Long = &H80000045
Global Const LINEERR_NOTOWNER As Long = &H80000046
Global Const LINEERR_NOTREGISTERED As Long = &H80000047
Global Const LINEERR_OPERATIONFAILED As Long = &H80000048
Global Const LINEERR_OPERATIONUNAVAIL As Long = &H80000049
Global Const LINEERR_RATEUNAVAIL As Long = &H8000004A
Global Const LINEERR_RESOURCEUNAVAIL As Long = &H8000004B
Global Const LINEERR_REQUESTOVERRUN As Long = &H8000004C
Global Const LINEERR_STRUCTURETOOSMALL As Long = &H8000004D
Global Const LINEERR_TARGETNOTFOUND As Long = &H8000004E
Global Const LINEERR_TARGETSELF As Long = &H8000004F
Global Const LINEERR_UNINITIALIZED As Long = &H80000050
Global Const LINEERR_USERUSERINFOTOOBIG As Long = &H80000051
Global Const LINEERR_REINIT As Long = &H80000052
Global Const LINEERR_ADDRESSBLOCKED As Long = &H80000053
Global Const LINEERR_BILLINGREJECTED As Long = &H80000054
Global Const LINEERR_INVALFEATURE As Long = &H80000055
Global Const LINEERR_NOMULTIPLEINSTANCE As Long = &H80000056
Global Const LINEFEATURE_DEVSPECIFIC As Long = &H1&
Global Const LINEFEATURE_DEVSPECIFICFEAT As Long = &H2&
Global Const LINEFEATURE_FORWARD As Long = &H4&
Global Const LINEFEATURE_MAKECALL As Long = &H8&
Global Const LINEFEATURE_SETMEDIACONTROL As Long = &H10&
Global Const LINEFEATURE_SETTERMINAL As Long = &H20&
Global Const LINECALLFEATURE_ACCEPT As Long = &H1&
Global Const LINECALLFEATURE_ADDTOCONF As Long = &H2&
Global Const LINECALLFEATURE_ANSWER As Long = &H4&
Global Const LINECALLFEATURE_BLINDTRANSFER As Long = &H8&
Global Const LINECALLFEATURE_COMPLETECALL As Long = &H10&
Global Const LINECALLFEATURE_COMPLETETRANSF As Long = &H20&
Global Const LINECALLFEATURE_DIAL As Long = &H40&
Global Const LINECALLFEATURE_DROP As Long = &H80&
Global Const LINECALLFEATURE_GATHERDIGITS As Long = &H100&
Global Const LINECALLFEATURE_GENERATEDIGITS As Long = &H200&
Global Const LINECALLFEATURE_GENERATETONE As Long = &H400&
Global Const LINECALLFEATURE_HOLD As Long = &H800&
Global Const LINECALLFEATURE_MONITORDIGITS As Long = &H1000&
Global Const LINECALLFEATURE_MONITORMEDIA As Long = &H2000&
Global Const LINECALLFEATURE_MONITORTONES As Long = &H4000&
Global Const LINECALLFEATURE_PARK As Long = &H8000&
Global Const LINECALLFEATURE_PREPAREADDCONF As Long = &H10000
Global Const LINECALLFEATURE_REDIRECT As Long = &H20000
Global Const LINECALLFEATURE_REMOVEFROMCONF As Long = &H40000
Global Const LINECALLFEATURE_SECURECALL As Long = &H80000
Global Const LINECALLFEATURE_SENDUSERUSER As Long = &H100000
Global Const LINECALLFEATURE_SETCALLPARAMS As Long = &H200000
Global Const LINECALLFEATURE_SETMEDIACONTROL As Long = &H400000
Global Const LINECALLFEATURE_SETTERMINAL As Long = &H800000
Global Const LINECALLFEATURE_SETUPCONF As Long = &H1000000
Global Const LINECALLFEATURE_SETUPTRANSFER As Long = &H2000000
Global Const LINECALLFEATURE_SWAPHOLD As Long = &H4000000
Global Const LINECALLFEATURE_UNHOLD As Long = &H8000000
Global Const LINECALLPRIVILEGE_NONE As Long = &H1
Global Const LINECALLPRIVILEGE_MONITOR As Long = &H2
Global Const LINECALLPRIVILEGE_OWNER As Long = &H4
Global Const LINECALLSTATE_IDLE As Long = &H1
Global Const LINECALLSTATE_OFFERING As Long = &H2
Global Const LINECALLSTATE_ACCEPTED As Long = &H4
Global Const LINECALLSTATE_DIALTONE As Long = &H8
Global Const LINECALLSTATE_DIALING As Long = &H10
Global Const LINECALLSTATE_RINGBACK As Long = &H20
Global Const LINECALLSTATE_BUSY As Long = &H40
Global Const LINECALLSTATE_SPECIALINFO As Long = &H80
Global Const LINECALLSTATE_CONNECTED As Long = &H100
Global Const LINECALLSTATE_PROCEEDING As Long = &H200
Global Const LINECALLSTATE_ONHOLD As Long = &H400
Global Const LINECALLSTATE_CONFERENCED As Long = &H800
Global Const LINECALLSTATE_ONHOLDPENDCONF As Long = &H1000
Global Const LINECALLSTATE_ONHOLDPENDTRANSFER As Long = &H2000
Global Const LINECALLSTATE_DISCONNECTED As Long = &H4000
Global Const LINECALLSTATE_UNKNOWN As Long = &H8000
'#if (TAPI_CURRENT_VERSION >0x00020000)
Global Const LINECALLTREATMENT_SILENCE As Long = &H1 '// TAPI v2.0
Global Const LINECALLTREATMENT_RINGBACK As Long = &H2 '// TAPI v2.0
Global Const LINECALLTREATMENT_BUSY As Long = &H3 '// TAPI v2.0
Global Const LINECALLTREATMENT_MUSIC As Long = &H4 '// TAPI v2.0
'#End If
'// These constants are mutually exclusive - there's no way to specify more
'// than one at a time (and it doesn't make sense, either) so they're
'// ordinal rather than bits.
'//
Global Const LINEINITIALIZEEXOPTION_USEHIDDENWINDOW As Long = &H1 '// TAPI v2.0
Global Const LINEINITIALIZEEXOPTION_USEEVENT As Long = &H2 '// TAPI v2.0
Global Const LINEINITIALIZEEXOPTION_USECOMPLETIONPORT As Long = &H3 '// TAPI v2.0
'// Messages for Phones and Lines
Global Const LINE_ADDRESSSTATE As Long = 0
Global Const LINE_CALLINFO As Long = 1
Global Const LINE_CALLSTATE As Long = 2
Global Const LINE_CLOSE As Long = 3
Global Const LINE_DEVSPECIFIC As Long = 4
Global Const LINE_DEVSPECIFICFEATURE As Long = 5
Global Const LINE_GATHERDIGITS As Long = 6
Global Const LINE_GENERATE As Long = 7
Global Const LINE_LINEDEVSTATE As Long = 8
Global Const LINE_MONITORDIGITS As Long = 9
Global Const LINE_MONITORMEDIA As Long = 10
Global Const LINE_MONITORTONE As Long = 11
Global Const LINE_REPLY As Long = 12
Global Const LINE_REQUEST As Long = 13
Global Const PHONE_BUTTON As Long = 14
Global Const PHONE_CLOSE As Long = 15
Global Const PHONE_DEVSPECIFIC As Long = 16
Global Const PHONE_REPLY As Long = 17
Global Const PHONE_STATE As Long = 18
Global Const LINE_CREATE As Long = 19 '// TAPI v1.4
Global Const PHONE_CREATE As Long = 20 '// TAPI v1.4
'#if (TAPI_CURRENT_VERSION >= 0x00020000)
Global Const LINE_AGENTSPECIFIC As Long = 21 '// TAPI v2.0
Global Const LINE_AGENTSTATUS As Long = 22 '// TAPI v2.0
Global Const LINE_APPNEWCALL As Long = 23 '// TAPI v2.0
Global Const LINE_PROXYREQUEST As Long = 24 '// TAPI v2.0
Global Const LINE_REMOVE As Long = 25 '// TAPI v2.0
Global Const PHONE_REMOVE As Long = 26 '// TAPI v2.0
'#End If
Enum EnumTAPIStringFormats
STRINGFORMAT_ASCII = &H1&
STRINGFORMAT_DBCS = &H2&
STRINGFORMAT_UNICODE = &H3&
STRINGFORMAT_BINARY = &H4&
End Enum
Global Const LINEADDRESSMODE_ADDRESSID = &H1&
Global Const LINEADDRESSMODE_DIALABLEADDR = &H2&
Enum EnumTAPIBearerModes
LINEBEARERMODE_VOICE = &H1&
LINEBEARERMODE_SPEECH = &H2&
LINEBEARERMODE_MULTIUSE = &H4&
LINEBEARERMODE_DATA = &H8&
LINEBEARERMODE_ALTSPEECHDATA = &H10&
LINEBEARERMODE_NONCALLSIGNALING = &H20&
End Enum
Enum EnumTAPIMediaModes
LINEMEDIAMODE_UNKNOWN = &H2&
LINEMEDIAMODE_INTERACTIVEVOICE = &H4&
LINEMEDIAMODE_AUTOMATEDVOICE = &H8&
LINEMEDIAMODE_DATAMODEM = &H10&
LINEMEDIAMODE_G3FAX = &H20&
LINEMEDIAMODE_TDD = &H40&
LINEMEDIAMODE_G4FAX = &H80&
LINEMEDIAMODE_DIGITALDATA = &H100&
LINEMEDIAMODE_TELETEX = &H200&
LINEMEDIAMODE_VIDEOTEX = &H400&
LINEMEDIAMODE_TELEX = &H800&
LINEMEDIAMODE_MIXED = &H1000&
LINEMEDIAMODE_ADSI = &H2000&
End Enum
Enum EnumTAPILineToneModes
LINETONEMODE_CUSTOM = &H1&
LINETONEMODE_RINGBACK = &H2&
LINETONEMODE_BUSY = &H4&
LINETONEMODE_BEEP = &H8&
LINETONEMODE_BILLING = &H10&
End Enum
Type LINETERMCAPS
dwTermDev As Long
dwTermModes As Long
dwTermSharing As Long
End Type
Public Function GetLineErrString(lparam As Long) As String
'Returns a String description of a TAPI Line Error code
Dim msg As String
Select Case lparam
Case LINEERR_ALLOCATED '( = &H80000001)
msg = "Allocated"
Case LINEERR_BADDEVICEID '(= &H80000002)
msg = "Bad Device ID"
Case LINEERR_BEARERMODEUNAVAIL '(= &H80000003)
msg = "Bearer Mode Unavail"
Case LINEERR_CALLUNAVAIL '(= &H80000005)
msg = "Call UnAvail"
Case LINEERR_COMPLETIONOVERRUN '(= &H80000006
msg = "Completion Overrun"
Case LINEERR_CONFERENCEFULL '(= &H80000007
msg = "Conference Full"
Case LINEERR_DIALBILLING '(= &H80000008
msg = "Dial Billing"
Case LINEERR_DIALDIALTONE '(= &H80000009
msg = "Dial Dialtone"
Case LINEERR_DIALPROMPT '(= &H8000000A
msg = "Dial Prompt"
Case LINEERR_DIALQUIET '(= &H8000000B
msg = "Dial Quiet"
Case LINEERR_INCOMPATIBLEAPIVERSION '(= &H8000000C
msg = "Incompatible API Version"
Case LINEERR_INCOMPATIBLEEXTVERSION '(= &H8000000D
msg = "Incompatible Ext Version"
Case LINEERR_INIFILECORRUPT '(= &H8000000E
msg = "Ini File Corrupt"
Case LINEERR_INUSE '(= &H8000000F
msg = "In Use"
Case LINEERR_INVALADDRESS '(= &H80000010
msg = "Invalid Address"
Case LINEERR_INVALADDRESSID '(= &H80000011
msg = "Invalid Address ID"
Case LINEERR_INVALADDRESSMODE '(= &H80000012
msg = "Invalid Address Mode"
Case LINEERR_INVALADDRESSSTATE '(= &H80000013
msg = "Invalid Address State"
Case LINEERR_INVALAPPHANDLE '(= &H80000014
msg = "Invalid App Handle"
Case LINEERR_INVALAPPNAME '(= &H80000015
msg = "Invalid App Name"
Case LINEERR_INVALBEARERMODE '(= &H80000016
msg = "Invalid Bearer Mode"
Case LINEERR_INVALCALLCOMPLMODE '(= &H80000017
msg = "Invalid Call Completion Mode"
Case LINEERR_INVALCALLHANDLE '(= &H80000018
msg = "Invalid Call Handle"
Case LINEERR_INVALCALLPARAMS '(= &H80000019
msg = "Invalid Call Params"
Case LINEERR_INVALCALLPRIVILEGE '(= &H8000001A
msg = "Invalid Call Privilege"
Case LINEERR_INVALCALLSELECT '(= &H8000001B
msg = "Invalid Call Select"
Case LINEERR_INVALCALLSTATE '(= &H8000001C
msg = "Invalid Call State"
Case LINEERR_INVALCALLSTATELIST '(= &H8000001D
msg = "Invalid Call State List"
Case LINEERR_INVALCARD '(= &H8000001E
msg = "Invalid Card"
Case LINEERR_INVALCOMPLETIONID '(= &H8000001F
msg = "Invalid Completion ID"
Case LINEERR_INVALCONFCALLHANDLE '(= &H80000020
msg = "Invalid Conf Call Handle"
Case LINEERR_INVALCONSULTCALLHANDLE '(= &H80000021
msg = "Invalid Consult Call Handle"
Case LINEERR_INVALCOUNTRYCODE '(= &H80000022
msg = "Invalid Country Code"
Case LINEERR_INVALDEVICECLASS '(= &H80000023
msg = "Invalid Device Class"
Case LINEERR_INVALDEVICEHANDLE '(= &H80000024
msg = "Invalid Device Handle"
Case LINEERR_INVALDIGITLIST '(= &H80000026
msg = "Invalid Digit List"
Case LINEERR_INVALDIGITMODE '(= &H80000027
msg = "Invalid Digit Mode"
Case LINEERR_INVALDIGITS '(= &H80000028
msg = "Invalid Digits"
Case LINEERR_INVALEXTVERSION '(= &H80000029
msg = "Invalid Ext Version"
Case LINEERR_INVALGROUPID '(= &H8000002A
msg = "Invalid Group ID"
Case LINEERR_INVALLINEHANDLE '(= &H8000002B
msg = "Invalid Line Handle"
Case LINEERR_INVALLINESTATE '(= &H8000002C
msg = "Invalid Line State"
Case LINEERR_INVALLOCATION '(= &H8000002D
msg = "Invalid Location"
Case LINEERR_INVALMEDIALIST '(= &H8000002E
msg = "Invalid Media List"
Case LINEERR_INVALMEDIAMODE '(= &H8000002F
msg = "Invalid Media Mode"
Case LINEERR_INVALMESSAGEID '(= &H80000030
msg = "Invalid Message ID"
Case LINEERR_INVALPARAM '(= &H80000032
msg = "Invalid Param"
Case LINEERR_INVALPARKID '(= &H80000033
msg = "Invalid Park ID"
Case LINEERR_INVALPARKMODE '(= &H80000034
msg = "Invalid Park Mode"
Case LINEERR_INVALPOINTER '(= &H80000035
msg = "Invalid Pointer"
Case LINEERR_INVALPRIVSELECT '(= &H80000036
msg = "Invalid Priv Select"
Case LINEERR_INVALRATE '(= &H80000037
msg = "Invalid Rate"
Case LINEERR_INVALREQUESTMODE '(= &H80000038
msg = "Invalid Request Mode"
Case LINEERR_INVALTERMINALID '(= &H80000039
msg = "Invalid Terminal ID"
Case LINEERR_INVALTERMINALMODE '(= &H8000003A
msg = "Invalid Terminal Mode"
Case LINEERR_INVALTIMEOUT '(= &H8000003B
msg = "Invalid Time Out"
Case LINEERR_INVALTONE '(= &H8000003C
msg = "Invalid Tone"
Case LINEERR_INVALTONELIST '(= &H8000003D
msg = "Invalid Tone List"
Case LINEERR_INVALTONEMODE '(= &H8000003E
msg = "Invalid Tone Mode"
Case LINEERR_INVALTRANSFERMODE '(= &H8000003F
msg = "Invalid Transfer Mode"
Case LINEERR_LINEMAPPERFAILED '(= &H80000040
msg = "Line Mapper Failed"
Case LINEERR_NOCONFERENCE '(= &H80000041
msg = "No Conference"
Case LINEERR_NODEVICE '(= &H80000042
msg = "No Device"
Case LINEERR_NODRIVER '(= &H80000043
msg = "No Driver"
Case LINEERR_NOMEM '(= &H80000044
msg = "No Memory"
Case LINEERR_NOREQUEST '(= &H80000045
msg = "No Request"
Case LINEERR_NOTOWNER '(= &H80000046
msg = "Not Owner"
Case LINEERR_NOTREGISTERED '(= &H80000047
msg = "Not Registered"
Case LINEERR_OPERATIONFAILED '(= &H80000048
msg = "Operation Failed"
Case LINEERR_OPERATIONUNAVAIL '(= &H80000049
msg = "Operation Unavailable"
Case LINEERR_RATEUNAVAIL '(= &H8000004A
msg = "Rate Unavailable"
Case LINEERR_RESOURCEUNAVAIL '(= &H8000004B
msg = "Resource Unavailable"
Case LINEERR_REQUESTOVERRUN '(= &H8000004C
msg = "Request Overrun"
Case LINEERR_STRUCTURETOOSMALL '(= &H8000004D
msg = "Structure Too Small"
Case LINEERR_TARGETNOTFOUND '(= &H8000004E
msg = "Target Not found"
Case LINEERR_TARGETSELF '(= &H8000004F
msg = "Target Self"
Case LINEERR_UNINITIALIZED '(= &H80000050
msg = "Uninitialized"
Case LINEERR_USERUSERINFOTOOBIG '(= &H80000051
msg = "UserUser Info Too Big"
Case LINEERR_REINIT '(= &H80000052
msg = "Re-init"
Case LINEERR_ADDRESSBLOCKED '(= &H80000053
msg = "Address Blocked"
Case LINEERR_BILLINGREJECTED '(= &H80000054
msg = "Billing Rejected"
Case LINEERR_INVALFEATURE '(= &H80000055
msg = "Invalid Feature"
Case LINEERR_NOMULTIPLEINSTANCE '(= &H80000056
msg = "No Multiple Instance"
Case Else
msg = "Unknown Error" ' undefined
End Select
GetLineErrString = msg
End Function
Public Function GetLineStateString(ByVal state As Long) As String
Dim msg As String
Select Case state
Case LINECALLSTATE_IDLE '&H1
msg = "idle"
Case LINECALLSTATE_OFFERING '&H2
msg = "offering call"
Case LINECALLSTATE_ACCEPTED '&H4
msg = "accepted"
Case LINECALLSTATE_DIALTONE '&H8
msg = "dial-tone detected"
Case LINECALLSTATE_DIALING '&H10
msg = "dialing"
Case LINECALLSTATE_RINGBACK '&H20
msg = "ring-back detected"
Case LINECALLSTATE_BUSY '&H40
msg = "busy detected"
Case LINECALLSTATE_SPECIALINFO '&H80
msg = "network error"
Case LINECALLSTATE_CONNECTED '&H100
msg = "connected"
Case LINECALLSTATE_PROCEEDING '&H200
msg = "proceeding"
Case LINECALLSTATE_ONHOLD '&H400
msg = "on hold"
Case LINECALLSTATE_CONFERENCED '&H800
msg = "connected to conference"
Case LINECALLSTATE_ONHOLDPENDCONF '&H1000
msg = "connecting to conference"
Case LINECALLSTATE_ONHOLDPENDTRANSFER '&H2000
msg = "transferring"
Case LINECALLSTATE_DISCONNECTED '&H4000
msg = "disconnected"
Case LINECALLSTATE_UNKNOWN '&H8000
msg = "unknown call state"
Case Else
msg = "unknown value passed to GetLineStateString()"
End Select
GetLineStateString = msg
End Function