using afFancom::Dispatchusing afFancom::Variant** Defines properties and methods for manipulating data streams.** ** `http://msdn.microsoft.com/en-us/library/ee125250%28v=vs.85%29.aspx`** ** @clsid {6450336F-7D49-4CED-8097-49D6DEE37294}class ISpeechBaseStream {internal Dispatch dispatchnew makeFromDispatch(Dispatch dispatch){this.dispatch = dispatch}// ---- Properties ----------------------------------------------------------------------------** Gets and sets the cached wave format of the stream as an SpAudioFormat object. SpAudioFormat? format { get { dispatch.getProperty("Format").asType(SpAudioFormat#)} set { dispatch.setProperty("Format", it)}}// ---- Methods -------------------------------------------------------------------------------** Reads data from the audio stream. Int? read(Variant? buffer, Int? numberOfBytes){ dispatch.call("Read", buffer, numberOfBytes).asInt}** Returns the current read position of the audio stream in bytes. Variant seek(Variant? position, SpeechStreamSeekPositionType? origin := SpeechStreamSeekPositionType.SSSPTRelativeToStart){ dispatch.call("Seek", position, origin)}** Writes data to the audio stream. Int? write(Variant? buffer){ dispatch.call("Write", buffer).asInt} SpCustomStream toSpCustomStream(){ SpCustomStream(dispatch)} SpFileStream toSpFileStream(){ SpFileStream(dispatch)} SpMemoryStream toSpMemoryStream(){ SpMemoryStream(dispatch)} ISpeechAudio toISpeechAudio(){ ISpeechAudio(dispatch)}}