using afFancom::Dispatchusing afFancom::Variant** Supports audio implementation for the standard Windows wave-in multimedia layer.** ** `http://msdn.microsoft.com/en-us/library/ee125573%28v=vs.85%29.aspx`** ** @clsid {3C76AF6D-1FD7-4831-81D1-3B71D5A13C44}class ISpeechMMSysAudio {internal Dispatch dispatchnew makeFromDispatch(Dispatch dispatch){this.dispatch = dispatch}// ---- Properties ----------------------------------------------------------------------------** Returns the audio buffer information as an ISpeechAudioBufferInfo object. ISpeechAudioBufferInfo? bufferInfo { get { dispatch.getProperty("BufferInfo").asType(ISpeechAudioBufferInfo#)}private set {}}** Gets and sets the audio stream buffer size information. Int? bufferNotifySize { get { dispatch.getProperty("BufferNotifySize").asInt } set { dispatch.setProperty("BufferNotifySize", it)}}** Returns the default audio format as an SpAudioFormat object. SpAudioFormat? defaultFormat { get { dispatch.getProperty("DefaultFormat").asType(SpAudioFormat#)}private set {}}** Gets and sets the multimedia device ID that is used by the audio object. Int? deviceId { get { dispatch.getProperty("DeviceId").asInt } set { dispatch.setProperty("DeviceId", it)}}** Returns a Win32 event handle that applications can use to wait for status changes in the I/O ** stream. Int? eventHandle { get { dispatch.getProperty("EventHandle").asInt }private set {}}** 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)}}** Gets and sets the current line identifier associated with the multimedia device. Int? lineId { get { dispatch.getProperty("LineId").asInt } set { dispatch.setProperty("LineId", it)}}** Returns the handle of the multimedia audio device stream. Int? mMHandle { get { dispatch.getProperty("MMHandle").asInt }private set {}}** Returns the audio status as an ISpeechAudioStatus object. ISpeechAudioStatus? status { get { dispatch.getProperty("Status").asType(ISpeechAudioStatus#)}private set {}}** Gets and sets the volume level. Int? volume { get { dispatch.getProperty("Volume").asInt } set { dispatch.setProperty("Volume", 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)}** Sets the audio state with a SpeechAudioState constant. Void setState(SpeechAudioState? state){ dispatch.call("SetState", state)}** Writes data to the audio stream. Int? write(Variant? buffer){ dispatch.call("Write", buffer).asInt}}