Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1962 lines
53 KiB

'TB BVT
'
' WARNING: This is a piece of junk. No warrantee implied.
'spaghetti, not authored by me, just scribbled by me, (ajohnh, some time in '95)
'
'$DEFINE MSTEST32
'$IFDEF MSTEST32
'$INCLUDE 'd:\mt32\inc\declares.inc'
'$INCLUDE 'd:\mt32\inc\tbpoke.h'
'$ELSE
'$INCLUDE 'D:\msdev\include\RECORDER.INC'
'$include 'D:\msdev\include\winapi.inc'
'$INCLUDE 'D:\MSDEV\INCLUDE\TBPOKE.H'
'$ENDIF
'//////////////////////////////////////////
'////// borrowed from my in-work TBPoke:
'logging
global sOutLogName as string
global sScriptName as string
global sComment as string
global hwndViewport as long
global lCountSpace as long
global lCountFunc as long
global lCountTab as long
global MAX_BLANK as long
global sFuncString as string
'end reporting
global sEndingMessage as string
global sEndTitle as string
'checkbox function
global sCheckbox as string
global lState as long
'system metrics
global ScreenX as long
global ScreenY as long
'time value
global MY_TIMEOUT as long
global PACER as long
global PARAMS as long
global NOPARAMS as long
global hwndTapiControl as hwndTAPI_CONTROL
global ScenarioLog as LOGINITSTRUCT
'$IFDEF MSTEST32
global sdwPrivileges(1 to 10) as string
global sdwMediaModes(1 to 30) as string
'$ELSE
global sdwPrivileges as array of string
global sdwMediaModes as array of string
'$ENDIF
global sPrivileges as string
global sMediaModes as string
'$IFDEF MSTEST32
global hLineApp(1 to 10) as string
global hLine(1 to 10) as string
global hCall(1 to 10) as string
'$ELSE
global hLineApp as array of string
global hLine as array of string
global hCall as array of string
'$ENDIF
redim sdwPrivileges(1 to 3) as string
redim sdwMediaModes(1 to 14) as string
global sdwNumRings as string
redim hLineApp(1 to 5) as string 'limit 5 for now
redim hLine(1 to 5) as string
redim hCall(1 to 5) as string
'redim hCall(5) as string
'$IFDEF MSTEST32
global hLineAppIndex as string*10
'$ELSE
global hLineAppIndex as pointer to string
'$ENDIF
global slpszDestAddress as string
'counts
global ldwPrivilegesBitFlag as long
global ldwMediaModesBitFlag as long
global ldwPrivilegesBitFlagChaos as long
global ldwMediaModesBitFlagChaos as long
global lLineApp as long
global lLine as long
global lCall as long
global GenCount as long
global lCountLineApp as long
global GenCount2 as long
global OutCount as long 'benchmarker
'coverage statistics
'not yet implemented
global TapiStatistic as TAPI_STATISTIC
global Tracelevel as long 'debug output
global Benchmark as long 'benchmarker
'duh
hwndTapiControl.TapiHandle = WFndWnd("TAPI32 Browser", FW_DEFAULT) 'find TAPI32 BROWSER
'by ID, note VT will probably be using the decimal form throughout:
hwndTapiControl.ParamsCheckbox =&h000003f9
hwndTapiControl.LineAppPlusButton =&h000003ee
hwndTapiControl.LineAppMinusButton =&h000003ef
hwndTapiControl.LinePlusButton =&h000003f0
hwndTapiControl.LineMinusButton =&h000003f1
hwndTapiControl.CallPlusButton =&h000003f2
hwndTapiControl.CallMinusButton =&h000003f3
hwndTapiControl.PhoneAppPlusButton =&h000003f4
hwndTapiControl.PhoneAppMinusButton =&h000003f5
hwndTapiControl.PhoneOpenPlusButton =&h000003f6
hwndTapiControl.PhoneOpenMinusButton =&h000003f7
hwndTapiControl.ClearEditButton =&h000003f8
hwndTapiControl.BlankButton0 =&h000003fa
hwndTapiControl.BlankButton1 =&h000003fb
hwndTapiControl.BlankButton2 =&h000003fc
hwndTapiControl.BlankButton3 =&h000003fd
hwndTapiControl.BlankButton4 =&h000003fe
hwndTapiControl.BlankButton5 =&h000003ff
hwndTapiControl.Listbox0 =&h000003e8 'middle box
hwndTapiControl.Listbox1 =&h000003e9 'left box
hwndTapiControl.Editbox =&h000003eb 'right box
'// assign
sOutLogName=curdir$ + "\tapibvt.log"
lCountSpace=0
lCountFunc=0
lCountTab=1
MAX_BLANK=20 'static
'const MY_TIMOUT=2*Benchmark '//THIS IS DEFINED AFTER BENCHMARK//
PACER = 1
PARAMS=1
NOPARAMS=0
const BUSYLINE="9,5569440" 'ISDN, switch will report busy
const ANSWERLINE="9,9366991" 'ITG dial-up modem pool
const NOLINE=" "
const sOutBenchName="benchmrk.txt" 'benchmarker
'$IFDEF MSTEST32
const LogTypeFile=1 '1 is for log to file
'$ENDIF
'debug; 0=no debug; 3 low, 2 med, 1 high --I know it is backward
Tracelevel=0
ScreenX=GetSystemMetrics(SM_CXSCREEN)
ScreenY=GetSystemMetrics (SM_CYSCREEN)
ScenarioLog.LogOutputType = LogTypeFile
ScenarioLog.MinDetailLevel = 3
ScenarioLog.ProductVersion = "4"
ScenarioLog.MachineName = "Undefined"
ScenarioLog.LogLocation = "tapibvt.log"
ScenarioLog.Language = "US English"
'WATCH IT
'dwPrivileges string in the form of sdwPrivileges
'change these to pointers ASAP
global NONE as long, MONITOR as long, OWNER as long
sdwPrivileges(1)="NONE"
NONE=1
sdwPrivileges(2)="MONITOR"
MONITOR=2
sdwPrivileges(3)="OWNER"
OWNER=3
'dwMediaModes string in the form of sdwMediaModes
'edit this, this is bulky & hacked:
global UNKNOWN as long, INTERACTIVEVOICE as long, AUTOMATEDVOICE as long
global DATAMODEM as long, G3FAX as long, TDD as long, G4FAX as long
global DIGITALDATA as long, TELETEX as long, VIDEOTEX as long
global TELEX as long, MIXED as long, ADSI as long, VOICEVIEW as long
sdwMediaModes(1)="UNKNOWN"
UNKNOWN=1
sdwMediaModes(2)="INTERACTIVEVOICE"
INTERACTIVEVOICE=2
sdwMediaModes(3)="AUTOMATEDVOICE"
AUTOMATEDVOICE=3
sdwMediaModes(4)="DATAMODEM"
DATAMODEM=4
sdwMediaModes(5)="G3FAX"
G3FAX=5
sdwMediaModes(6)="TDD"
TDD=6
sdwMediaModes(7)="G4FAX"
G4FAX=7
sdwMediaModes(8)="DIGITALDATA"
DIGITALDATA=8
sdwMediaModes(9)="TELETEX"
TELETEX=9
sdwMediaModes(10)="VIDEOTEX"
VIDEOTEX=10
sdwMediaModes(11)="TELEX"
TELEX=11
sdwMediaModes(12)="MIXED"
MIXED=12
sdwMediaModes(13)="ADSI"
ADSI=13
sdwMediaModes(14)="VOICEVIEW"
VOICEVIEW=14
dim StartTime as long 'for benchmarker
dim EndTime as long
'$IFDEF MSTEST32
declare function GenTimeOut(OutCount as string) 'generate/generic file-i/o
declare function PerfBox(OutCount as string)
declare function GenOut(sFuncString as string) 'generate/generic file-i/o
declare function GenOutFunc(sFuncString as string) 'generate file-i/o of current declare function
declare function GetFunc (sFuncString as string)
declare function IsRunaway(sFuncString as string) as string
declare function IsComment(sFuncString as string) as string
declare function SetCheckboxControl(sCheckbox as string, lState as long) as long
declare function HitOK() 'hits the OK button
declare function CallAPI(sFuncString as string, lState as long)
declare function SelectParam(sFuncString as string)
declare function SetParamValue(sFuncString as string)
'declare function SetParamValue(sFuncString as string,ParamValue as string)
declare function SelectBitFlag(sFuncString as string)
declare function EndMsg()
declare function CaptureEdit()
declare function MiddleSelect() 'not yet: sFuncString as string 'selects last item in .Listbox0
declare function lineGetProviderList()
declare function lineGetTranslateCaps()
declare function Box(sFuncString as string)
'declare function SelectLineApp(lLineApp as long) 'machine
declare function StartApps()
declare function StopApps()
declare function GenChaos() 'all globals
declare function lineInitialize(lLineApp as long) 'all globals; stipulate lLineApp for ease of array; for ex: lineInitialize(lLineApp); lLineApp being long
declare function LineShutdown(lLineApp as long) 'all globals
declare function SelectLineApp(lLineApp as long) 'all globals
declare function SelectLine(lLine as long) 'all globals; prep for lineMakeCall
declare function lineOpen(lLineApp as long, lLine as long, sPrivileges as string, sMediaModes as string)
declare function lineMakeCall(lLine as long, lCall as long, slpszDestAddress as string)
declare function lineDrop(lCall as long)
declare function lineDeallocateCall(lCall as long)
declare function lineAddToConference(lLine as long)
declare function lineAnswer()
declare function Abort()
declare function CheckErr(TAPIErr as string)
declare function lineClose(lLine)
declare function lineGetNewCalls(lLine as long)
declare function lineGetAddressStatus(lLine as long)
declare function lineGetCallInfo(lCall as long)
declare function lineGetCallStatus(lCall as long)
declare function lineSetAppSpecific(lCall as long)
declare function lineDial(lCall as long, slpszDestAddress as string)
declare function lineGetAddressCaps(lLineApp as long)
declare function lineGetAddressID(lLine as long)
declare function lineGetDevConfig()
declare function lineGetDevCaps(lLineApp as long)
declare function lineGetID(lLine as long) 'consider parameter Bit flags here
declare function lineGetLineDevStatus(lLine as long)
declare function lineGetNumRings(lLine as long)
declare function lineGetStatusMessages(lLine as long)
declare function lineHold(lCall as long)
declare function lineSetNumRings(lLine as long, sdwNumRings as string)
declare function lineSetStatusMessages(lLine as long)
declare sub play(text as string)
'$ENDIF
'/////////////////////////////////
'/////// END HEADER /////////////
'/////////////////////////////////
'prototypes
'lineInitialze()
'lineShutdown(hLineApp)
'lineOpen(hLineApp, dwDeviceID, lphLine, APIVersion, dwExtVersion, dwCallbackInstance, dwPrivileges, dwMediaModes, lpCallParams)
'
'BENCHMARKER 'hack hack hack
'delete benchmark file
if exists(sOutLogName) then
kill sOutLogName
end if
'timer is double precision
if exists(sOutBenchName) then
kill sOutBenchName
end if
StartTime=timer
for OutCount=1 to 100
' PerfBox(str$(OutCount))
GenTimeOut(str$(OutCount))
next OutCount
EndTime=timer
Benchmark=Endtime-StartTime
GenTimeOut("Benchmark: " + str$(Benchmark))
StatusBox Close
if Benchmark > 3 then
msgbox "YOUR SYSTEM REALLY SUCKS." + chr$(010) + chr$(010) + "Please use a faster system.", MB_OK OR MB_ICONEXCLAMATION, "Slow Bench Warning"
end if
function GenTimeOut(OutCount as string) 'generate/generic file-i/o
Open sOutBenchName for append as #1
print #1, OutCount + chr$(009) ' + time
Close #1
end function
function PerfBox(OutCount as string)
StatusBox "Profiling System Performance..." + chr$(010) + OutCount,0,0,300,100,TRUE,TRUE,"Courier",8,400
end function
'// set timout, now that we have benched
MY_TIMEOUT = 2 + (2 * Benchmark)
'//END BENCHMARKER
viewport on
viewport clear
'#if
'$IFDEF MSTEST32
'SET UP TRAP ROUTINE
TRAP KeyTrap FROM "T3Trap32.DLL" ALIAS "KeyTrap" 'or T3Trap16.DLL
Beep
STATUSBOX "HOT KEY PRESSED, ABORTING SCRIPT " + Time$
SLEEP 4
END 'ABORT SCRIPT
END TRAP
'MAIN SCRIPT
SetHotKey ASC("C"), 1 'TRAP Ctrl+c
Beep
STATUSBOX "Press CTRL+C to see this script ABORT"
Sleep 5'SLEEP FOREVER
STATUSBOX "This won't display, unless you BREAK and single step"
'$ELSE
on KeyPress (27,FSHIFT) call KeyPressHandler
sub KeyPressHandler (notification_data AS VARIANT)
statusbox close
'idyes:6 & idno:7
msgbox "Stop tests?", MB_YESNO OR MB_ICONQUESTION OR MB_DEFBUTTON2, "Interruption"
if idyes then
statusbox close
EndMsg()
End
end if
end sub
'$ENDIF
' // Run things
StartApps
'do these after apps are running, duh
hwndViewport = WFndWnd("Visual Test Viewport",FW_DEFAULT)
GenOut("Getting Some")
hwndTapiControl.TapiHandle= WFndWnd("TAPI32 Browser", FW_DEFAULT) 'find TAPI32 BROWSER
'by ID, note VT will probably be using the decimal form throughout:
WSetActWnd (hwndTapiControl.TapiHandle)
'maximize window so button clicks work
'WMaxWnd (hwndTapiControl.TapiHandle)
GenOut("Logfile= " + chr$(009) + curdir$+sOutLogName)
if Tracelevel > 2 then
GenOut("TAPI Browser handle= " + hex$(hwndTapiControl.TapiHandle))
GenOut("GetProcessHeap(): " + hex$(GetProcessHeap()))
GenOut("GetCurrentProcess(): " + hex$(GetCurrentProcess()))
GenOut("GetCurrentProcessID(): " + hex$(GetCurrentProcessID()))
GenOut("GetThread(): " + chr$(009) + hex$(GetCurrentThread()))
GenOut("GetCurrentThreadID(): " + hex$(GetCurrentThreadID()))
end if
GenOut(chr$(010)+chr$(010)+chr$(010))
WSetActWnd (hwndTapiControl.TapiHandle)
'ensure edit box is clean
'$IFDEF MSTEST32
WButtonClick _id(hwndTapiControl.ClearEditButton), MY_TIMEOUT 'do not uncheck this
'$ELSE
WButtonClick( _id(hwndTapiControl.ClearEditButton), MY_TIMEOUT ) 'do not uncheck this
'$ENDIF
'********************
'START YOUR ENGINES
'lineGetProviderList()
WSetActWnd (hwndTapiControl.TapiHandle) 'scatter a few of these since ESP steals focus
'End Scenario
'********************
'********************
FUNKY:
'$IFDEF MSTEST32
'$ELSE
Scenario "lineMakeCall (stuff)"
'$ENDIF
Box("lineMakeCall (verify busy)")
GenOut("Scenario:" + chr$(009) + "lineMakeCall (verify busy)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineMakeCall lLine, lCall, BUSYLINE 'doing this stranglely for now
lineDrop(lCall)
lineDeallocateCall(lCall)
'lineClose(lLine)
'lineShutdown(lLineApp)
Box("lineMakeCall, (status)")
GenOut ("Scenario:" + chr$(009) + "lineMakeCall, (status)")
'line should be open from earlier routine
'lineInitialize(lLineApp)
'lineOpen(lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM)) 'doing this stranglely for now
lineMakeCall lLine, lCall, ANSWERLINE 'doing this stranglely for now
lineGetNewCalls(lLine)
lineGetAddressStatus(lLine)
lineGetCallInfo(lCall)
lineGetCallStatus(lCall)
lineSetAppSpecific(lCall)
lineDrop(lCall)
lineGetCallInfo(lCall)
lineGetCallStatus(lCall)
lineDeallocateCall(lCall)
Box("lineMakeCall, (lineGetAppSpecific)")
GenOut ("Scenario:" + chr$(009) + "lineMakeCall, (lineGetAppSpecific)")
lineMakeCall lLine, lCall, ANSWERLINE
lineDrop(lCall)
lineDeallocateCall(lCall)
Box("lineMakeCall, (Null lpszDestAddress)")
GenOut ("Scenario:" + chr$(009) + "lineMakeCall, (Null lpszDestAddress)")
lineMakeCall lLine, lCall, NOLINE
lineDial lCall, ANSWERLINE
lineDrop(lCall)
lineDeallocateCall(lCall)
lineClose(lLine)
lineShutdown(lLineApp)
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetAddressCaps (default)"
'$ENDIF
Box("lineGetAddressCaps (default)")
GenOut("Scenario:" + chr$(009) + "lineGetAddressCaps (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineGetAddressCaps(lLineApp)
lineShutdown(lLineApp)
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetAddressID (default)"
'$ENDIF
Box("lineGetAddressID (default)")
GenOut("Scenario:" + chr$(009) + "lineGetAddressID (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineGetAddressID(lLine)
lineClose(lLine)
lineShutdown(lLineApp)
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetAddressStatus (default)"
'$ENDIF
Box("lineGetAddressStatus (default)")
GenOut("Scenario:" + chr$(009) + "lineGetAddressStatus (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineGetAddressStatus(lLine)
lineClose(lLine)
lineShutdown(lLineApp)
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetDevConfig (default)"
'$ENDIF
Box("lineGetDevConfig (default)")
GenOut("Scenario:" + chr$(009) + "lineGetDevConfig (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineGetDevConfig 'no arguments, yet
lineShutdown(lLineApp)
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetDevCaps (default)"
'$ENDIF
Box("lineGetDevCaps (default)")
GenOut("Scenario:" + chr$(009) + "lineGetDevCaps (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineGetDevCaps(lLineApp)
lineShutdown(lLineApp)
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetID (default)"
'$ENDIF
Box("lineGetID (default)")
GenOut("Scenario:" + chr$(009) + "lineGetID (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineGetID(lLine)
lineShutdown(lLineApp) 'will close too
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetLineDevStatus (default)"
'$ENDIF
Box("lineGetLineDevStatus (default)")
GenOut("Scenario:" + chr$(009) + "lineGetLineDevStatus (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineGetLineDevStatus(lLine)
lineShutdown(lLineApp) 'will close too
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetNewCalls (default)"
'$ENDIF
Box("lineGetNewCalls (default)")
GenOut("Scenario:" + chr$(009) + "lineGetNewCalls (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineGetNewCalls(lLine)
lineShutdown(lLineApp) 'will close too
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetNumRings (default)"
'$ENDIF
Box("lineGetNumRings (default)")
GenOut("Scenario:" + chr$(009) + "lineGetNumRings (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineGetNumRings(lLine)
lineShutdown(lLineApp) 'will close too
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineGetStatusMessages (default)"
'$ENDIF
Box("lineGetStatusMessages (default)")
GenOut("Scenario:" + chr$(009) + "lineGetStatusMessages (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineGetStatusMessages(lLine)
lineShutdown(lLineApp) 'will close too
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineHold (default)"
'$ENDIF
Box("lineHold (default)")
GenOut("Scenario:" + chr$(009) + "lineHold (default)")
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineMakeCall lLine, lCall, ANSWERLINE 'doing this stranglely for now
lineHold(lCall)
lineDrop(lCall)
lineDeallocateCall(lCall)
lineClose(lLine)
lineShutdown(lLineApp)
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineSetNumRings (default)"
'$ENDIF
Box("lineSetNumRings (default)")
GenOut("Scenario:" + chr$(009) + "lineSetNumRings (default)")
lLineApp=1
lLine=1
lCall=1
sdwNumRings="9"
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineSetNumRings lLine, sdwNumRings
lineShutdown(lLineApp) 'will close too
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'********************
'********************
'********************
'********************
ENDME:
'END 'END 'END
'********************
'********************
'lineInitialize with one good pass, then individual null params
'$IFDEF MSTEST32
'$ELSE
Scenario "lineInitialize (many)"
'$ENDIF
Box("lineInitialize (many)")
WSetActWnd (hwndTapiControl.TapiHandle) 'freshen
for lLineApp= 0 to 4
CallAPI "lineInitialize",0
next lLineApp
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'Scenario "lineGetTranslateCaps"
'Box("lineGetTranslate")
' lineGetTranslateCaps()
'End Scenario
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineShutdown (many)"
'$ENDIF
Box("lineShutdown (many)")
for lLineApp= 0 to 4 'note # of lineInitializes, I was too lazy to set a constant for limit
MiddleSelect
CallAPI "lineShutdown",0
next lLineApp
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineNegotiateAPIVersion (valid)"
'$ENDIF
Box("lineNegotiateAPIVersion (valid)")
'*** disable params, lineInitialize, lineNegotiateAPIVersion with valids, lineShutdown
'disable params child
CallAPI "lineInitialize",0
MiddleSelect
CallAPI "lineNegotiateAPIVersion",0
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineNegotiateAPIVersion (invallow_valhi)"
'$ENDIF
Box("lineNegotiateAPIVersion (invallow_valhi)")
'*** disable params, lineInitialize
'*** enable params, lineNegotiateAPIVersion with invallow and valhi
'*** disable params, lineShutdown
'no params
CallAPI "lineInitialize",0
CallAPI "lineNegotiateAPIVersion",1
SelectParam("dwAPILowVersion")
SetParamValue("Invalid")
SelectParam("dwAPIHighVersion")
SetParamValue("Valid")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineNegotiateAPIVersion (vallow_invalhi)"
'$ENDIF
Box("lineNegotiateAPIVersion (vallow_invalhi)")
'*** disable params, lineInitialize
'*** enable params, lineNegotiateAPIVersion with vallow and invalhi
'*** disable params, lineShutdown
'need params
CallAPI "lineInitialize",0
CallAPI "lineNegotiateAPIVersion",1
SelectParam("dwAPILowVersion")
SetParamValue("Invalid")
SelectParam("dwAPIHighVersion")
SetParamValue("Valid")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineNegotiateAPIVersion (invallow_invalhi)"
'$ENDIF
Box("lineNegotiateAPIVersion (invallow_invalhi)")
'*** disable params, lineInitialize
'*** enable params, lineNegotiateAPIVersion with invallow and invalhi
'*** disable params, lineShutdown
'no params
CallAPI "lineInitialize",0
CallAPI "lineNegotiateAPIVersion",1
SelectParam("dwAPILowVersion")
SetParamValue("Invalid")
SelectParam("dwAPIHighVersion")
SetParamValue("Invalid")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineNegotiateAPIVersion_invaldev"
'$ENDIF
Box("lineNegotiateAPIVersion (invaldev)")
'*** disable params, lineInitialize
'*** enable params, lineNegotiateAPIVersion with invalid device
'*** disable params, lineShutdown
CallAPI "lineInitialize",0
CallAPI "lineNegotiateAPIVersion",1
SelectParam("dwDeviceID")
SetParamValue("Invalid")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineNegotiateExtVersion"
'$ENDIF
Box("lineNegotiateExtVersion")
'*** disable params, lineInitialize
'*** enable params, lineNegotiateExtVersion
'*** disable params, lineShutdown
'no params
CallAPI "lineInitialize",0
CallAPI "lineNegotiateExtVersion",0
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'*** disable params, lineInitialize
'*** enable params, lineOpen with privilege
'*** disable params, lineShutdown
'$IFDEF MSTEST32
'$ELSE
Scenario "linOpen_privileges (none)"
'$ENDIF
Box("linOpen_privileges (none)")
CallAPI "lineInitialize",0
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("None")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'*** disable params, lineInitialize
'*** enable params, lineOpen with privilege
'*** disable params, lineShutdown
'$IFDEF MSTEST32
'$ELSE
Scenario "linOpen_privileges (monitor)"
'$ENDIF
Box("linOpen_privileges (monitor)")
CallAPI "lineInitialize",0
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("Monitor")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'*** disable params, lineInitialize
'*** enable params, lineOpen with privilege
'*** disable params, lineShutdown
'$IFDEF MSTEST32
'$ELSE
Scenario "linOpen_privileges (owner)"
'$ENDIF
Box("linOpen_privileges (owner)")
CallAPI "lineInitialize",0
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("Owner")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "linOpen_privileges (multi)"
'$ENDIF
Box("linOpen_privileges (multi)")
CallAPI "lineInitialize",0
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("None")
HitOK
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("Monitor")
HitOK
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("Owner")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'*** BEGIN dwPrivileges, dwMediaModes strobing
'*** WATCH THIS: LOOP
'********************
'********************
'*** disable params, lineInitialize
'*** enable params, lineOpen with defaults
'*** disable params, lineShutdown
'five times
for lLineApp = 0 to 4
'$IFDEF MSTEST32
'$ELSE
Scenario "lineOpen_MediaModes, sdwPrivileges, dwMediaModes.DATAMODEM (TB default)"
'$ENDIF
Box("lineOpen_MediaModes, dwPrivileges.NONE, dwMediaModes.DATAMODEM (TB default)")
CallAPI "lineInitialize",0
CallAPI "lineOpen",0 'defaults are dwPrivileges.NONE, dwMediaModes.DATAMODEM
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
next lLineApp
'********************
'********************
'*** matrix privileges and MediaModes (STRAIGHT THROUGH)
'*** dwMediaModes strobing
'*** [attemts most combos]
for ldwPrivilegesBitFlag = 1 to 3
'dwPrivileges string in the form of sdwPrivileges
for ldwMediaModesBitFlag = 1 to 14
'one day, change this to a cleaner array
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario "lineOpen_MediaModes, (STRAIGHT THROUGH) " + sdwPrivileges(ldwPrivilegesBitFlag) + ", " + sdwMediaModes(ldwMediaModesBitFlag)
'$ENDIF
Box("lineOpen_MediaModes, (STRAIGHT THROUGH) " + sdwPrivileges(ldwPrivilegesBitFlag) + ", " + sdwMediaModes(ldwMediaModesBitFlag))
CallAPI "lineInitialize",0
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag(sdwPrivileges(1)) 'clear default NONE (1)
SelectBitFlag(sdwPrivileges(ldwPrivilegesBitFlag)) 'set Bit flag
SelectParam("dwMediaModes")
SelectBitFlag(sdwMediaModes(4)) 'clear default DATAMODEM (4)
SelectBitFlag(sdwMediaModes(ldwMediaModesBitFlag))
HitOK
MiddleSelect 'just select anything in the list box
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
next ldwMediaModesBitFlag
next ldwPrivilegesBitFlag
'********************
'********************
'*** END dwMediaModes (STRAIGHT THROUGH)
'********************
'********************
'********************
'********************
goto SKIPCHAOS
'********************
'********************
'*** matrix privileges and MediaModes (CHAOTIC)
'*** dwMediaModes strobing
'*** [try simultaneous operations]
CHAOS:
for GenCount=1 to 200
'not used: randomize TIMER 'for "bound-ed" chaos
'********************
'$IFDEF MSTEST32
'$ELSE
Scenario ("lineOpen_MediaModes, (CHAOTIC)")
'$ENDIF
Box("lineOpen_MediaModes, (CHAOTIC)")
'do 5
for lLineApp= 0 to 4
LineInitialize(lLineApp) 'returns hLineApp(lLineApp)
next lLineApp
'begin Chaos translation here so I may retain my pretty matrix blocks & to increase hits
for lLineApp=0 to 4
GenChaos 'all globals
SelectLineApp(lLineApp)
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag(sdwPrivileges(1)) 'clear default NONE (1)
SelectBitFlag(sdwPrivileges(ldwPrivilegesBitFlagChaos)) 'set Bit flag
SelectParam("dwMediaModes")
SelectBitFlag(sdwMediaModes(4)) 'clear default DATAMODEM (4)
SelectBitFlag(sdwMediaModes(ldwMediaModesBitFlagChaos))
HitOK
next lLineApp
'cleanup, do 5
'WILL NOT WORK WITHOUT HANDLES
for lLineApp= 0 to 4
LineShutdown(lLineApp)
next lLineApp
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
next GenCount
'********************
'********************
'*** END dwMediaModes (CHAOTIC)
'********************
'********************
'********************
'********************
SKIPCHAOS:
'********************
'********************
'********************
'********************
'********************
'********************
'*** disable params, lineInitialize
'*** enable params, lineOpen with privilege
'*** disable params, lineShutdown
'$IFDEF MSTEST32
'$ELSE
Scenario "linOpen_MediaModes (privileges_multi)"
'$ENDIF
Box("linOpen_MediaModes (privileges_multi)")
CallAPI "lineInitialize",0
'as owner
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("Owner")
SelectParam("dwMediaModes")
SelectBitFlag("DATAMODEM")
HitOK
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("Owner")
SelectParam("dwMediaModes")
SelectBitFlag("TELETEX")
HitOK
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("Owner")
SelectParam("dwMediaModes")
SelectBitFlag("TELEX")
HitOK
CallAPI "lineOpen",1
SelectParam("dwPrivileges")
SelectBitFlag("Owner")
SelectParam("dwMediaModes")
SelectBitFlag("INTERACTIVEVOICE")
HitOK
MiddleSelect
CallAPI "lineShutdown",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'///////////////
' *************************
' ***** END TEST CASE *****
' *************************
'///////
'///////
'///////
'***** END END END END END END *****
StatusBox Close
EndMsg
End
'********************
'********************
JUNKY:
'$IFDEF MSTEST32
'$ELSE
Scenario "Call Unimplemented APIs"
'$ENDIF
Box("Call Unimplemented APIs")
GenOut("Scenario:" + chr$(009) + "Call Unimplemented APIs")
'CallAPI "lineAddToConference",0 'requires two calls on one line
lLineApp=1
lLine=1
lCall=1
lineInitialize(lLineApp)
lineOpen lLineApp, lLine, sdwPrivileges(OWNER), sdwMediaModes(DATAMODEM) 'doing this stranglely for now
lineMakeCall lLine, lCall, BUSYLINE 'doing this stranglely for now
CallAPI "lineBlindTransfer",0 'requires call
CallAPI "lineCompleteCall",0 'requires call
'CallAPI "lineCompleteTransfer",0 'requires two calls on one line
CallAPI "lineDevSpecific",0 'requires line
CallAPI "lineDevSpecificFeature",0 'requires line
CallAPI "lineForward",0 'requires line
CallAPI "lineGatherDigits",0 'requires call
CallAPI "lineGenerateDigits",0 'requires call
CallAPI "lineGenerateTone",0 'requires call
lineDrop(lCall)
lineDeallocateCall(lCall)
CallAPI "lineGetConfRelatedCalls",0
CallAPI "lineGetRequest",0
CallAPI "lineMonitorDigits",0
CallAPI "lineMonitorMedia",0
CallAPI "lineMonitorTones",0
CallAPI "lineNegotiateExtVersion",0
CallAPI "linePark",0
CallAPI "linePickup",0
CallAPI "linePrepareAddToConference",0
CallAPI "lineRedirect",0
CallAPI "lineRegisterRequestRecipient",0
CallAPI "lineRemoveFromConference",0
CallAPI "lineSecureCall",0
CallAPI "lineSendUserUserInfo",0
CallAPI "lineSetAppSpecific",0
CallAPI "lineSetTerminal",0
CallAPI "lineSetTollList",0
CallAPI "lineSetupConference",0
CallAPI "lineSetupTransfer",0
CallAPI "lineSwapHold",0
CallAPI "lineUncompleteCall",0
CallAPI "lineUnhold",0
CallAPI "lineUnpark",0
'$IFDEF MSTEST32
'$ELSE
End Scenario
'$ENDIF
'********************
'********************
'********************
'********************
'********************
'********************
'********************
'********************
'********************
'********************
'Scenario "lineClose"
'
'do not need params
'SetCheckboxControl(_id(hwndTapiControl.ParamsCheckbox),0
'MiddleSelect
'SelectParam("lineClose")
'play "{ENTER}"
'
'CaptureEdit
'
'End Scenario
'
'/**************************************************/
'FUNCTIONS
'Outputs, identical until global architecture change
function GenOut(sFuncString as string) 'generate/generic file-i/o
' // open logging file
box("Calling: " + sFuncString)
Open sOutLogName for append as #1
print #1, sFuncString + chr$(009) ' + time
print hwndViewport, sFuncString + chr$(009) '+ time
Close #1
end function
function GenOutFunc(sFuncString as string) 'generate file-i/o of current function
' // open logging file
box ("Calling: " + sFuncString)
Open sOutLogName for append as #1
print #1, sFuncString + chr$(009) + time$
print hwndViewport, sFuncString + chr$(009) + time$
Close #1
end function
'for TBPoke only: GetFunc runs the state core, remember to trim tabs
' this was from TBPoke, but it has been modified not to look for script file
function GetFunc (sFuncString as string)
sFuncString=""
'count the entries
lCountFunc=lCountFunc+1
sFuncString=trim$(sFuncString,009) 'trim tabs
sFuncString=trim$(sFuncString," ") 'whatever MST calls a space
sFuncString=trim$(sFuncString,255) 'trim truespace
if sFuncString=chr$(000) then sFuncString="COMMENT" 'ASCII null
end function
'Check for runaway file i/o read; consider it "IsCarriageReturn"
function IsRunaway(sFuncString as string) as string
if sFuncString="" then
lCountSpace=lCountSpace+1 'begin counting blank entries
if lCountSpace=MAX_BLANK then sFuncString="END"
else
lCountSpace=0
end if
end function
'Find comments
function IsComment(sFuncString as string) as string
select case(ucase$(left$(sFuncString,1)))
case ";"
sFuncString="COMMENT"
case "#"
sFuncString="COMMENT"
case "'"
sFuncString="COMMENT"
case ""
sFuncString="COMMENT"
'IsRunaway(sFuncString) 'count blanks to prevent infinite loop
'GenOut(sFuncString, hwndViewport)
end select
'find other comments
select case(left$(sFuncString,2))
case "//"
sFuncString="COMMENT"
end select
'find more comments, I know it is not model code, shut up
select case(left$(sFuncString,4))
case "REM " 'with space
sFuncString="COMMENT"
end select
end function 'IsComment
'toggle checkbox state, will leave focus on sCheckbox
function SetCheckboxControl(sCheckbox as string, lState as long) as long
select case(lState)
case 0
If WCheckState(sCheckbox) = CHECKED then
WCheckUnCheck sCheckbox,MY_TIMEOUT
if Tracelevel>=3 then GenOut ("Unchecking checkbox "+sCheckbox)
else
if Tracelevel>=2 then GenOut ("Error: Attempt to WCheckUnCheck unchecked checkbox "+sCheckbox)
end if
case 1
If WCheckState(sCheckbox) = UNCHECKED then
WCheckCheck sCheckbox,MY_TIMEOUT
if Tracelevel>=3 then GenOut ("Checking checkbox "+sCheckbox)
else
if Tracelevel>=2 then GenOut ("Error: Attempt to WCheckCheck checked checkbox "+sCheckbox)
end if
end select
end function
function HitOK 'hits the OK button
WButtonClick "OK", MY_TIMEOUT
CaptureEdit
end function
function CallAPI(sFuncString as string, lState as long)
if lState > 1 then GenOut("Error: lState is exceeds value of 1.")
GenOut("API:" + chr$(009) + sFuncString)
SetCheckboxControl _id(hwndTapiControl.ParamsCheckbox),lState
WListItemDblClk _id(hwndTapiControl.Listbox1), sFuncString, MY_TIMEOUT
if lState=0 then CaptureEdit 'so calling the API w/ default params gens output & HitOK gens output (see HitOK)
end function
function SelectParam(sFuncString as string)
GenOut("Parameter:" + chr$(009) + sFuncString)
WListFind "Parameters:", MY_TIMEOUT
WListItemDblClk "Parameters:", sFuncString, MY_TIMEOUT
end function
function SetParamValue(sFuncString as string)
GenOut("Parameter Value:" + chr$(009) + sFuncString)
WEditSetFocus "Value:", MY_TIMEOUT
select case(ucase$(sFuncString))
case ucase$("Null")
play "00000000"
case ucase$("Valid") 'WATCH THIS: dankn often displays English here
'leave it alone, default is VALID or valid value
'play "{DOWN}"
'play "{DOWN}"
case ucase$("Invalid")
play "ffffffff"
case else
GenOut("Error: Bad SetParamValue parameter: " + sFuncstring)
end select
end function
'global ParamValue as string 'put this at front
'function SetParamValue(sFuncString as string,ParamValue as string)
' SelectParam(sFuncString as string)
function SelectBitFlag(sFuncString as string)
GenOut("Select Bit Flag: " + sFuncString)
'lineOpen has defaults: dwPrivileges.NONE, dwMediaModes.DATAMODEM
WListFind "Bit flags:", MY_TIMEOUT
WListItemDblClk "Bit flags:", sFuncString, MY_TIMEOUT
'BitFlag[] sFuncString ;;;; soon add cleanup structure
end function
function EndMsg
sEndingMessage="TB BVT ended."
sEndTitle="Completed"
msgbox sEndingMessage, MB_OK, sEndTitle
end function
function CaptureEdit
'play "{ENTER}" 'assuming child window is in focus and OK button is selected
'GenOut("******************** TAPI Report ********************")
'GenOut(ListText(_id(hwndTapiControl.Listbox0, MY_TIMEOUT))
sleep 0.1 'take an i/o break
GenOut("TAPI Browser reports: ")
GenOut(EditText(_id(hwndTapiControl.Editbox) + chr$(010), MY_TIMEOUT))
'GenOut("******************** END REPORT *********************" + chr$(010 + chr$(010)
WButtonClick _id(hwndTapiControl.ClearEditButton), MY_TIMEOUT
end function
'>>++++
function MiddleSelect 'not yet: sFuncString as string 'selects last item in .Listbox0
WListSetFocus _id(hwndTapiControl.Listbox0), MY_TIMEOUT
'not yet: WListItemDblClk(_id(hwndTapiControl.Listbox0, sFuncString, MY_TIMEOUT)
play "{PGDN}"
end function
function lineGetProviderList
CallAPI "lineGetProviderList",0
end function
function lineGetTranslateCaps
CallAPI "lineGetTranslateCaps",0
Box("Dumping buffer")
sleep 1
Box("Dumping buffer")
sleep 1
end function
function Box(sFuncString as string)
'disabled, bug in statusbox is stealing focus
'StatusBox sFuncString + chr$(009),ScreenX-300,ScreenY-75,300,75,FALSE,FALSE,"Courier",8,400
end function
'function SelectLineApp(lLineApp as long) 'machine
' 'later revise to allow real-time monitor of handles
' 'select valid lineApp lLineApp, searching top to bottom, exit out having made selection
' 'It does look bad. If dankn's conventions stray too far, this will fail
' MiddleSelect
' if lLineApp > WListCount(_id(hwndTapiControl.Listbox0, MY_TIMEOUT) then
' GenOut("Error: BAD ONE, lLineApp of " + str$(lLineApp) + " exceeding WListCount of " + str$(WListCount(_id(hwndTapiControl.Listbox0, MY_TIMEOUT)))
' beep
' beep
' beep
' goto SKIPSelectLineApp
' end if
' play "{PGUP}"
' lCountLineApp=WListCount(_id(hwndTapiControl.Listbox0, MY_TIMEOUT)
' for GenCount = 1 to lCountLineApp
' 'do not down-arrow yet since first item is selected
' sLineApp=ListItemText(_id(hwndTapiControl.Listbox0, WListIndex(_id(hwndTapiControl.Listbox0,MY_TIMEOUT),MY_TIMEOUT)
' select case (left$(ucase$(sLineApp),9))
' case ucase$("LineApp=x") 'first half matches (this may happen with invalids too, so look on
' select case (val(right$(sLineApp,8)))
' case 0 'is an invalid, so index
' play "{DOWN}"
' case else 'hex value is non-zero, let us use it
' select case (WListIndex(_id(hwndTapiControl.Listbox0,MY_TIMEOUT))
' case (lLineApp) 'is this the index requested?
' GenCount=lCountLineApp 'return 'get out, leaving it focused
' case else 'is not lLineApp, so index
' play "{DOWN}"
' end select
' end select
' case else 'is not "LineApp=x", so index
' play "{DOWN}"
' end select 'THIS MESS DONE SINCE this shitty beta has horrible if-then nesting errors (not me!)
' next GenCount
' SKIPSelectLineApp: 'skip if lLineApp is bogus value
'end function
function StartApps
run "MTVIEW.EXE", nowait, SW_NORMAL
hwndViewport = WFndWnd("Visual Test Viewport",FW_DEFAULT,5) 'find Visual Test Viewport
if hwndViewport = 0 then
'$IFDEF MSTEST32
GenOut("MTVIEW.EXE application failed to start")
'$ELSE
fail "MTVIEW.EXE application failed to start"
'$ENDIF
end if
run "TB14.EXE" , nowait , SW_MAXIMIZE 'NOWAIT SW_NORMAL
sleep 2
hwndTapiControl.TapiHandle= WFndWnd("TAPI32 Browser", FW_DEFAULT,5) 'find TAPI32 BROWSER
if hwndTapiControl.TapiHandle= 0 then
'$IFDEF MSTEST32
GenOut("TB14.EXE TAPI Brower failed to start")
'$ELSE
fail "TB14.EXE TAPI Brower failed to start"
'$ENDIF
end if
end function
'not used:
function StopApps
hwndViewport = WFndWnd("Visual Test Viewport", FW_DEFAULT or FW_FOCUS)
if hwndViewport <> 0 then
Play "%{F4}" 'alt f4
end if
hwndTapiControl.TapiHandle = WFndWnd("TAPI32 Browser", FW_DEFAULT or FW_FOCUS)
if hwndTapiControl.TapiHandle <> 0 then
Play "%{F4}" 'alt f4
end if
end function
function GenChaos 'all globals
ldwPrivilegesBitFlagChaos=(int(rnd*3)+1)
ldwMediaModesBitFlagChaos=(int(rnd*14)+1)
Box("lineOpen_MediaModes, (CHAOS) LineApp " + str$(lLineApp) + ", " + sdwPrivileges(ldwPrivilegesBitFlagChaos) + ", " + sdwMediaModes(ldwMediaModesBitFlagChaos))
GenOut("lineOpen_MediaModes, (CHAOS)" + str$(ldwPrivilegesBitFlagChaos) +","+ str$(ldwMediaModesBitFlagChaos) + " LineApp " + str$(lLineApp) + ", " + sdwPrivileges(ldwPrivilegesBitFlagChaos) + ", " + sdwMediaModes(ldwMediaModesBitFlagChaos))
end function
function lineInitialize(lLineApp as long) 'all globals; stipulate lLineApp for ease of array; for ex: lineInitialize(lLineApp); lLineApp being long
CallAPI "lineInitialize",0 'create a LineApp
'lineApp is now open...
CallAPI "lineOpen",1 'cheat, use TB to provide clean handle
SelectParam("hLineApp") 'select the hLineApp of Params:
WEditSetFocus "Value:", MY_TIMEOUT 'set focus, no real reason
hLineApp(lLineApp)=EditText("Value:", MY_TIMEOUT) 'get pointer/handle string
if Tracelevel >= 1 then GenOut("New hLineApp=" + chr$(009) + hLineApp(lLineApp))
Abort
end function
function LineShutdown(lLineApp as long) 'all globals
CallAPI "lineShutdown",1
SelectParam("hLineApp")
WEditSetFocus "Value:", MY_TIMEOUT 'ready to enter handle
play hLineApp(lLineApp)
HitOK
end function
function SelectLineApp(lLineApp as long) 'all globals
MiddleSelect
WListItemClk _id(hwndTapiControl.Listbox0), "LineApp=x" + (hLineApp(lLineApp)), MY_TIMEOUT
end function
'not implemented
function SelectLine(lLine as long) 'all globals; prep for lineMakeCall
MiddleSelect
' (_id(hwndTapiControl.Listbox0, "Line=x" + (hLineApp(lLineApp)), MY_TIMEOUT)
end function
function lineOpen(lLineApp as long, lLine as long, sPrivileges as string, sMediaModes as string)
CallAPI "lineOpen",1 'child window is open and focused
SelectParam("hLineApp")
WEditSetFocus "Value:", MY_TIMEOUT
play hLineApp(lLineApp) 'handle of LineApp
SelectParam("dwPrivileges")
GenOut("Clearing default on following line:")
SelectBitFlag(sdwPrivileges(1)) 'clear default NONE (1)
SelectBitFlag(sPrivileges) 'set Bit flag
SelectParam("dwMediaModes")
GenOut("Clearing default on following line:")
SelectBitFlag(sdwMediaModes(4)) 'clear default DATAMODEM (4)
SelectBitFlag(sMediaModes)
HitOK
CallAPI "lineMakeCall",1 'cheat, use to get hLine value
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus, no real reason
hLine(lLine)=EditText("Value:", MY_TIMEOUT) 'get pointer/handle string
if Tracelevel >= 1 then GenOut("New hLine=" + chr$(009) + hLine(lLine))
Abort 'abort child
end function
function lineMakeCall(lLine as long, lCall as long, slpszDestAddress as string)
CallAPI "lineMakeCall",1 'child window is open and focused
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus, no real reason
play hLine(lLine) 'specify the handle
SelectParam("lpszDestAddress")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play slpszDestAddress
WButtonClick "OK", MY_TIMEOUT
sleep 5
'hide dialog
if slpszDestAddress <> " " then
WButtonFind "&Talk", 15 'use a way to wait for dialog
WSetActWnd (hwndTapiControl.TapiHandle) 'refocus TB
sleep 1
end if
'if slpszDestAddress <> " " then
' WSetWndPos ( WFndWnd("Call Status", FW_DEFAULT), ScreenX, ScreenY) 'find Call Status window
' sleep 15
'end if
'if slpszDestAddress <> " " then 'being caution of Talk/Hangup dialog
' sleep 12
' WButtonClick( "&Talk", MY_TIMEOUT + 10
'end if
'
CallAPI "lineDrop",1 'cheat, use to get hCall value
SelectParam("hCall")
WEditSetFocus "Value:", MY_TIMEOUT
hCall(lCall)=EditText("Value:", MY_TIMEOUT) 'get pointer/handle string
if Tracelevel >= 1 then GenOut("New hCall=" + chr$(009) + hCall(lCall))
Abort
end function
function lineDrop(lCall as long)
CallAPI "lineDrop",1
SelectParam("hCall")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hCall(lCall) 'specify the handle
HitOK
end function
function lineDeallocateCall(lCall as long)
CallAPI "lineDeallocateCall",1
Selectparam("hCall")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hCall(lCall) 'specify handle
HitOK
end function
'not implemented; in-work
function lineAddToConference(lLine as long)
CallAPI "lineAddToConference",1
Selectparam("hLine")
'blah
end function
function lineAnswer
end function
function Abort
play "{ESC}" 'abort child
GenOut("Aborted child window: OK, probably getting handle here." + chr$(010))
end function
'not implemented
function CheckErr(TAPIErr as string)
'lineAddProvider returned LINEERR_INVALPOINTER
end function
function lineClose(lLine)
CallAPI "lineClose",1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus, no real reason
play hLine(lLine) 'specify the handle
HitOK
end function
function lineGetNewCalls(lLine as long)
CallAPI "lineGetNewCalls",1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus, no real reason
play hLine(lLine) 'specify the handle
HitOK
end function
function lineGetAddressStatus(lLine as long)
CallAPI "lineGetAddressStatus",1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus, no real reason
play hLine(lLine) 'specify the handle
HitOK
end function
function lineGetCallInfo(lCall as long)
CallAPI "lineGetCallInfo", 1
SelectParam("hCall")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus, no real reason
play hCall(lCall) 'specify the handle
HitOK
end function
function lineGetCallStatus(lCall as long)
CallAPI "lineGetCallStatus", 1
SelectParam("hCall")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus, no real reason
play hCall(lCall) 'specify the handle
HitOK
end function
function lineSetAppSpecific(lCall as long)
CallAPI "lineSetAppSpecific", 1
SelectParam("hCall")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hCall(lCall) 'specify the handle
HitOK
end function
function lineDial(lCall as long, slpszDestAddress as string)
CallAPI "lineDial", 1
SelectParam("hCall")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hCall(lCall) 'specify the handle
SelectParam("lpszDestAddress")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play slpszDestAddress
WButtonClick "OK", MY_TIMEOUT
sleep 5
'hide dialog
WButtonFind "&Talk", 15 'use a way to wait for &Talk dialog
WSetActWnd (hwndTapiControl.TapiHandle) 'refocus TB
sleep 1
'WButtonClick( "&Talk", MY_TIMEOUT + 10
end function
function lineGetAddressCaps(lLineApp as long)
CallAPI "lineGetAddressCaps", 1
SelectParam("hLineApp")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLineApp(lLineApp)
HitOK
end function
function lineGetAddressID(lLine as long)
CallAPI "lineGetAddressID", 1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLine(lLine)
HitOK
end function
function lineGetDevConfig
'ensure a LineApp is open when calling lineGetDevConfig
CallAPI "lineGetDevConfig", 0
end function
function lineGetDevCaps(lLineApp as long)
Box("Dumping buffer")
CallAPI "lineGetDevCaps", 1
SelectParam("hLineApp")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLineApp(lLineApp)
HitOK
end function
function lineGetID(lLine as long) 'consider parameter Bit flags here
CallAPI "lineGetID", 1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLine(lLine)
HitOK
end function
function lineGetLineDevStatus(lLine as long)
CallAPI "lineGetLineDevStatus", 1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLine(lLine)
HitOK
end function
function lineGetNumRings(lLine as long)
CallAPI "lineGetNumRings", 1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLine(lLine)
HitOK
end function
function lineGetStatusMessages(lLine as long)
CallAPI "lineGetStatusMessages", 1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLine(lLine)
HitOK
end function
function lineHold(lCall as long)
CallAPI "lineHold", 1
SelectParam("hCall")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hCall(lCall)
HitOK
end function
function lineSetNumRings(lLine as long, sdwNumRings as string)
CallAPI "lineSetNumRings", 1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLine(lLine)
SelectParam("dwNumRings")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play sdwNumRings
HitOK
end function
function lineSetStatusMessages(lLine as long)
CallAPI "lineSetStatusMessages", 1
SelectParam("hLine")
WEditSetFocus "Value:", MY_TIMEOUT 'set focus
play hLine(lLine)
HitOK
end function
sub play(text as string)
dokeys text
end sub
'truly the end