Hi John,
Does this SAPI callbyname example work on your system?
'16:33 09/11/2020
'10:01 14/03/2021
'com automation
'
$filename "t.exe"
'uses rtl64
uses COM/COMutil
CoInitialize null
CreateInterfaceByName "SAPI.SpVoice" voice
'ConnectByName "SAPI.SpVoice", voice
'
BSTR r
GetByName(voice,"volume",r) : print "vol " r
GetByName(voice,"rate",r) : print "rate " r
CallByName( voice,"speak", BSTR {"Hello World"} )
LetByName(voice,"volume",7)
LetByName(voice,"rate",3)
CallByName( voice,"speak", BSTR {"Hello World","1"} )
'
'Working with variants
======================
indexbase 1
VARIANT va[2]
va.vt[1]=VT_BSTR : va[1].bstrval="Hello Sky"
va.vt[2]=VT_BSTR : va[2].lval=1
CallByNameV( voice, METHOD,"speak", va,2 )
del va.bstrval
print err
...
voice.Release
CoUninitialize