Hi John,
Further proposed:
uses COM/COMutil
CoInitialize null
CreateInterfaceByName "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"} )
'
VARIANT va
va.vt=VT_BSTR : va.bstrval="Hello Sky"
CallByNameV( voice, METHOD,"speak", va,1 )
del va.bstrval
'print err
'CallByNameS( voice,1, "speak", BSTR {"Hello World"},countof )
...
voice.Release
CoUninitialize