/* * Copyright (C) 2019 Alistair Leslie-Hughes * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA */ #if 0 #pragma makedep install #endif import "oaidl.idl"; import "ocidl.idl"; interface ISpeechAudioFormat; interface ISpeechGrammarRule; interface ISpeechGrammarRuleState; interface ISpeechObjectTokens; interface ISpeechPhraseProperties; interface ISpeechPhraseRule; interface ISpeechRecognizer; interface ISpeechRecoContext; interface ISpeechRecoGrammar; interface ISpeechRecoResult; typedef long SpeechLanguageId; typedef enum SpeechLoadOption { SLOStatic = SPLO_STATIC, SLODynamic = SPLO_DYNAMIC } SpeechLoadOption; typedef enum SpeechRuleState { SGDSInactive = SPRS_INACTIVE, SGDSActive = SPRS_ACTIVE, SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE, SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED } SpeechRuleState; typedef enum SpeechTokenShellFolder { STSF_AppData = 0x001a, STSF_LocalAppData = 0x001c, STSF_CommonAppData = 0x0023, STSF_FlagCreate = 0x8000 } SpeechTokenShellFolder; typedef enum SpeechEngineConfidence { SECLowConfidence = -1, SECNormalConfidence = 0, SECHighConfidence = 1 } SpeechEngineConfidence; typedef enum SpeechAudioState { SASClosed = SPAS_CLOSED, SASStop = SPAS_STOP, SASPause = SPAS_PAUSE, SASRun = SPAS_RUN } SpeechAudioState; typedef enum SpeechRunState { SRSEDone = SPRS_DONE, SRSEIsSpeaking = SPRS_IS_SPEAKING } SpeechRunState; typedef enum SpeechDiscardType { SDTProperty = SPDF_PROPERTY, SDTReplacement = SPDF_REPLACEMENT, SDTRule = SPDF_RULE, SDTDisplayText = SPDF_DISPLAYTEXT, SDTLexicalForm = SPDF_LEXICALFORM, SDTPronunciation = SPDF_PRONUNCIATION, SDTAudio = SPDF_AUDIO, SDTAlternates = SPDF_ALTERNATES, SDTAll = SPDF_ALL } SpeechDiscardType; typedef enum SpeechRecognizerState { SRSInactive = SPRST_INACTIVE, SRSActive = SPRST_ACTIVE, SRSActiveAlways = SPRST_ACTIVE_ALWAYS, SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE, } SpeechRecognizerState; typedef enum SpeechDisplayAttributes { SDA_No_Trailing_Space = 0, SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE, SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES, SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES } SpeechDisplayAttributes; typedef enum SpeechFormatType { SFTInput = SPWF_INPUT, SFTSREngine = SPWF_SRENGINE } SpeechFormatType; typedef enum SpeechGrammarState { SGSEnabled = SPGS_ENABLED, SGSDisabled = SPGS_DISABLED, SGSExclusive = SPGS_EXCLUSIVE, } SpeechGrammarState; typedef enum SpeechRuleAttributes { SRATopLevel = SPRAF_TopLevel, SRADefaultToActive = SPRAF_Active, SRAExport = SPRAF_Export, SRAImport = SPRAF_Import, SRAInterpreter = SPRAF_Interpreter, SRADynamic = SPRAF_Dynamic, SRARoot = SPRAF_Root } SpeechRuleAttributes; typedef enum SpeechWordPronounceable { SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE, SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE, SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE } SpeechWordPronounceable; typedef enum SpeechSpecialTransitionType { SSTTWildcard = 1, SSTTDictation, SSTTTextBuffer } SpeechSpecialTransitionType; typedef [hidden] enum DISPID_SpeechRecoContext { DISPID_SRCRecognizer = 1, DISPID_SRCAudioInInterferenceStatus, DISPID_SRCRequestedUIType, DISPID_SRCVoice, DISPID_SRAllowVoiceFormatMatchingOnNextSet, DISPID_SRCVoicePurgeEvent, DISPID_SRCEventInterests, DISPID_SRCCmdMaxAlternates, DISPID_SRCState, DISPID_SRCRetainedAudio, DISPID_SRCRetainedAudioFormat, DISPID_SRCPause, DISPID_SRCResume, DISPID_SRCCreateGrammar, DISPID_SRCCreateResultFromMemory, DISPID_SRCBookmark, DISPID_SRCSetAdaptationData } DISPID_SpeechRecoContext; typedef [hidden] enum DISPID_SpeechDataKey { DISPID_SDKSetBinaryValue = 1, DISPID_SDKGetBinaryValue, DISPID_SDKSetStringValue, DISPID_SDKGetStringValue, DISPID_SDKSetLongValue, DISPID_SDKGetlongValue, DISPID_SDKOpenKey, DISPID_SDKCreateKey, DISPID_SDKDeleteKey, DISPID_SDKDeleteValue, DISPID_SDKEnumKeys, DISPID_SDKEnumValues } DISPID_SpeechDataKey; typedef [hidden] enum DISPIDSPRG { DISPID_SRGId = 1, DISPID_SRGRecoContext, DISPID_SRGState, DISPID_SRGRules, DISPID_SRGReset, DISPID_SRGCommit, DISPID_SRGCmdLoadFromFile, DISPID_SRGCmdLoadFromObject, DISPID_SRGCmdLoadFromResource, DISPID_SRGCmdLoadFromMemory, DISPID_SRGCmdLoadFromProprietaryGrammar, DISPID_SRGCmdSetRuleState, DISPID_SRGCmdSetRuleIdState, DISPID_SRGDictationLoad, DISPID_SRGDictationUnload, DISPID_SRGDictationSetState, DISPID_SRGSetWordSequenceData, DISPID_SRGSetTextSelection, DISPID_SRGIsPronounceable } DISPIDSPRG; typedef enum SpeechInterference { SINone = SPINTERFERENCE_NONE, SINoise = SPINTERFERENCE_NOISE, SINoSignal = SPINTERFERENCE_NOSIGNAL, SITooLoud = SPINTERFERENCE_TOOLOUD, SITooQuiet = SPINTERFERENCE_TOOQUIET, SITooFast = SPINTERFERENCE_TOOFAST, SITooSlow = SPINTERFERENCE_TOOSLOW } SpeechInterference; typedef enum SpeechVoiceEvents { SVEStartInputStream = (1L << 1), SVEEndInputStream = (1L << 2), SVEVoiceChange = (1L << 3), SVEBookmark = (1L << 4), SVEWordBoundary = (1L << 5), SVEPhoneme = (1L << 6), SVESentenceBoundary = (1L << 7), SVEViseme = (1L << 8), SVEAudioLevel = (1L << 9), SVEPrivate = (1L << 15), SVEAllEvents = 0x083FE } SpeechVoiceEvents; typedef enum SpeechVoiceSpeakFlags { SVSFDefault = SPF_DEFAULT, SVSFlagsAsync = SPF_ASYNC, SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK, SVSFIsFilename = SPF_IS_FILENAME, SVSFIsXML = SPF_IS_XML, SVSFIsNotXML = SPF_IS_NOT_XML, SVSFPersistXML = SPF_PERSIST_XML, SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC, SVSFParseSapi = SPF_PARSE_SAPI, SVSFParseSsml = SPF_PARSE_SSML, SVSFParseAutodetect = SPF_PARSE_AUTODETECT, SVSFNLPMask = SPF_NLP_MASK, SVSFParseMask = SPF_PARSE_MASK, SVSFVoiceMask = SPF_VOICE_MASK, SVSFUnusedFlags = SPF_UNUSED_FLAGS, } SpeechVoiceSpeakFlags; typedef enum SpeechGrammarWordType { SGDisplay = SPWT_DISPLAY, SGLexical = SPWT_LEXICAL, SGPronounciation = SPWT_PRONUNCIATION, SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS } SpeechGrammarWordType; typedef enum SpeechRecoEvents { SREStreamEnd = (1L << 0), SRESoundStart = (1L << 1), SRESoundEnd = (1L << 2), SREPhraseStart = (1L << 3), SRERecognition = (1L << 4), SREHypothesis = (1L << 5), SREBookmark = (1L << 6), SREPropertyNumChange = (1L << 7), SREPropertyStringChange = (1L << 8), SREFalseRecognition = (1L << 9), SREInterference = (1L << 10), SRERequestUI = (1L << 11), SREStateChange = (1L << 12), SREAdaptation = (1L << 13), SREStreamStart = (1L << 14), SRERecoOtherContext = (1L << 15), SREAudioLevel = (1L << 16), SREPrivate = (1L << 18), SREAllEvents = 0x5FFFF } SpeechRecoEvents; typedef enum SpeechRecoContextState { SRCS_Disabled = SPCS_DISABLED, SRCS_Enabled = SPCS_ENABLED } SpeechRecoContextState; typedef enum SpeechRetainedAudioOptions { SRAONone = SPAO_NONE, SRAORetainAudio = SPAO_RETAIN_AUDIO } SpeechRetainedAudioOptions; typedef enum SpeechVoicePriority { SVPNormal = SPVPRI_NORMAL, SVPAlert = SPVPRI_ALERT, SVPOver = SPVPRI_OVER } SpeechVoicePriority; [ object, uuid(ce17c09b-4efa-44d5-a4c9-59d9585ab0cd), dual, pointer_default(unique) ] interface ISpeechDataKey : IDispatch { [id(DISPID_SDKSetBinaryValue)] HRESULT SetBinaryValue([in] const BSTR name, [in] VARIANT value); [id(DISPID_SDKGetBinaryValue)] HRESULT GetBinaryValue([in] const BSTR name, [out,retval] VARIANT *value); [id(DISPID_SDKSetStringValue)] HRESULT SetStringValue([in] const BSTR name, [in]const BSTR value); [id(DISPID_SDKGetStringValue)] HRESULT GetStringValue([in] const BSTR name, [out,retval] BSTR* value); [id(DISPID_SDKSetLongValue)] HRESULT SetLongValue([in] const BSTR name, [in] long value); [id(DISPID_SDKGetlongValue)] HRESULT GetLongValue([in] const BSTR name, [out,retval] long *value); [id(DISPID_SDKOpenKey)] HRESULT OpenKey( [in] const BSTR name, [out,retval] ISpeechDataKey **key); [id(DISPID_SDKCreateKey)] HRESULT CreateKey([in] const BSTR name, [out,retval] ISpeechDataKey **key); [id(DISPID_SDKDeleteKey)] HRESULT DeleteKey([in] const BSTR name); [id(DISPID_SDKDeleteValue)] HRESULT DeleteValue([in] const BSTR name); [id(DISPID_SDKEnumKeys)] HRESULT EnumKeys([in] long index, [out,retval] BSTR *name); [id(DISPID_SDKEnumValues)] HRESULT EnumValues([in] long Index, [out,retval] BSTR *value); } typedef enum SpeechDataKeyLocation { SDKLDefaultLocation = 0, SDKLCurrentUser = 1, SDKLLocalMachine = 2, SDKLCurrentConfig = 5 } SpeechDataKeyLocation; typedef enum SpeechBookmarkOptions { SBONone = SPBO_NONE, SBOPause = SPBO_PAUSE } SpeechBookmarkOptions; #define CLSCTXALL (CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER | CLSCTX_LOCAL_SERVER | CLSCTX_REMOTE_SERVER) typedef enum SpeechTokenContext { STCInprocServer = CLSCTX_INPROC_SERVER, STCInprocHandler = CLSCTX_INPROC_HANDLER, STCLocalServer = CLSCTX_LOCAL_SERVER, STCRemoteServer = CLSCTX_REMOTE_SERVER, STCAll = CLSCTXALL } SpeechTokenContext; typedef [hidden] enum DISPID_SpeechObjectTokenCategory { DISPID_SOTCId = 1, DISPID_SOTCDefault, DISPID_SOTCSetId, DISPID_SOTCGetDataKey, DISPID_SOTCEnumerateTokens, } DISPID_SpeechObjectTokenCategory; [ object, uuid(ca7eac50-2d01-4145-86d4-5ae7d70f4469), dual, pointer_default(unique) ] interface ISpeechObjectTokenCategory : IDispatch { [propget, id(DISPID_SOTCId)] HRESULT Id([out, retval] BSTR *id); [propput, id(DISPID_SOTCDefault)] HRESULT Default([in] const BSTR token); [propget, id(DISPID_SOTCDefault)] HRESULT Default([out, retval] BSTR *token); [id(DISPID_SOTCSetId)] HRESULT SetId([in] const BSTR id, [in, defaultvalue(0)] VARIANT_BOOL created); [hidden, id(DISPID_SOTCGetDataKey)] HRESULT GetDataKey([in, defaultvalue(SDKLDefaultLocation)] SpeechDataKeyLocation location, [out, retval] ISpeechDataKey **key); [id(DISPID_SOTCEnumerateTokens)] HRESULT EnumerateTokens([in, defaultvalue("")] BSTR required, [in, defaultvalue("")] BSTR optional, [out, retval] ISpeechObjectTokens **tokens); } typedef [hidden] enum DISPID_SpeechObjectToken { DISPID_SOTId = 1, DISPID_SOTDataKey, DISPID_SOTCategory, DISPID_SOTGetDescription, DISPID_SOTSetId, DISPID_SOTGetAttribute, DISPID_SOTCreateInstance, DISPID_SOTRemove, DISPID_SOTGetStorageFileName, DISPID_SOTRemoveStorageFileName, DISPID_SOTIsUISupported, DISPID_SOTDisplayUI, DISPID_SOTMatchesAttributes } DISPID_SpeechObjectToken; [ object, uuid(c74a3adc-b727-4500-a84a-b526721c8b8c), dual, pointer_default(unique) ] interface ISpeechObjectToken : IDispatch { [propget, id(DISPID_SOTId)] HRESULT Id([out,retval] BSTR *object); [propget, id(DISPID_SOTDataKey), hidden] HRESULT DataKey([out,retval] ISpeechDataKey **key); [propget, id(DISPID_SOTCategory)] HRESULT Category([out,retval] ISpeechObjectTokenCategory **category); [id(DISPID_SOTGetDescription)] HRESULT GetDescription( [in,defaultvalue(0)] long locale, [out,retval]BSTR *description); [hidden, id(DISPID_SOTSetId)] HRESULT SetId([in] BSTR id, [in, defaultvalue("")] BSTR category, [in, defaultvalue(0)] VARIANT_BOOL create); [id(DISPID_SOTGetAttribute)] HRESULT GetAttribute([in] BSTR name, [out, retval] BSTR* value); [id(DISPID_SOTCreateInstance)] HRESULT CreateInstance([in, defaultvalue(NULL)] IUnknown *outer, [in, defaultvalue(STCAll)] SpeechTokenContext spcontext, [out, retval] IUnknown **object); [hidden, id(DISPID_SOTRemove)] HRESULT Remove([in] BSTR clsid); [hidden, id(DISPID_SOTGetStorageFileName)] HRESULT GetStorageFileName([in] BSTR clsid, [in] BSTR key, [in] BSTR name, [in] SpeechTokenShellFolder folder, [out,retval] BSTR* path); [hidden, id(DISPID_SOTRemoveStorageFileName)] HRESULT RemoveStorageFileName([in] BSTR clsid, [in]BSTR key, [in] VARIANT_BOOL delete); [hidden, id(DISPID_SOTIsUISupported)] HRESULT IsUISupported( [in]const BSTR type, [in, defaultvalue(NULL)] const VARIANT *data, [in, defaultvalue(NULL)] IUnknown *object, [out,retval] VARIANT_BOOL *supported); [hidden, id(DISPID_SOTDisplayUI)] HRESULT DisplayUI([in] long hwnd, [in] BSTR title, [in]const BSTR type, [in, defaultvalue(NULL)] const VARIANT *data, [in, defaultvalue(NULL)] IUnknown *object); [id(DISPID_SOTMatchesAttributes)] HRESULT MatchesAttributes([in] BSTR attributes, [out,retval] VARIANT_BOOL *matches); } typedef [hidden] enum DISPID_SpeechObjectTokens { DISPID_SOTsCount = 1, DISPID_SOTsItem = DISPID_VALUE, DISPID_SOTs_NewEnum = DISPID_NEWENUM } DISPID_SpeechObjectTokens; [ object, uuid(9285b776-2e7b-4bc0-b53e-580eb6fa967f), dual, pointer_default(unique) ] interface ISpeechObjectTokens : IDispatch { [propget, id(DISPID_SOTsCount)] HRESULT Count([out, retval] long* count); [id(DISPID_VALUE)] HRESULT Item([in] long index, [out, retval] ISpeechObjectToken **token); [propget, restricted, id(DISPID_NEWENUM)] HRESULT _NewEnum([out, retval] IUnknown **ppenum); } typedef [hidden] enum DISPID_SpeechWaveFormatEx { DISPID_SWFEFormatTag = 1, DISPID_SWFEChannels, DISPID_SWFESamplesPerSec, DISPID_SWFEAvgBytesPerSec, DISPID_SWFEBlockAlign, DISPID_SWFEBitsPerSample, DISPID_SWFEExtraData } DISPID_SpeechWaveFormatEx; [ object, uuid(7a1ef0d5-1581-4741-88e4-209a49f11a10), dual, pointer_default(unique) ] interface ISpeechWaveFormatEx : IDispatch { [propget, id(DISPID_SWFEFormatTag)] HRESULT FormatTag([out,retval] short *tag); [propput, id(DISPID_SWFEFormatTag)] HRESULT FormatTag([in] short tag); [propget, id(DISPID_SWFEChannels)] HRESULT Channels([out,retval] short *channels); [propput, id(DISPID_SWFEChannels)] HRESULT Channels([in] short channels); [propget, id(DISPID_SWFESamplesPerSec)] HRESULT SamplesPerSec([out,retval] long * samples); [propput, id(DISPID_SWFESamplesPerSec)] HRESULT SamplesPerSec([in] long samples); [propget, id(DISPID_SWFEAvgBytesPerSec)] HRESULT AvgBytesPerSec([out,retval] long *average); [propput, id(DISPID_SWFEAvgBytesPerSec)] HRESULT AvgBytesPerSec([in] long average); [propget, id(DISPID_SWFEBlockAlign)] HRESULT BlockAlign([out,retval] short *alignment); [propput, id(DISPID_SWFEBlockAlign)] HRESULT BlockAlign([in] short alignment); [propget, id(DISPID_SWFEBitsPerSample)] HRESULT BitsPerSample([out,retval] short *bits); [propput, id(DISPID_SWFEBitsPerSample)] HRESULT BitsPerSample([in] short bits); [propget, id(DISPID_SWFEExtraData)] HRESULT ExtraData([out,retval] VARIANT *data); [propput, id(DISPID_SWFEExtraData)] HRESULT ExtraData([in] VARIANT data); } typedef enum SpeechAudioFormatType { SAFTDefault = -1, SAFTNoAssignedFormat = 0, SAFTText, SAFTNonStandardFormat, SAFTExtendedAudioFormat, SAFT8kHz8BitMono, SAFT8kHz8BitStereo, SAFT8kHz16BitMono, SAFT8kHz16BitStereo, SAFT11kHz8BitMono, SAFT11kHz8BitStereo, SAFT11kHz16BitMono, SAFT11kHz16BitStereo, SAFT12kHz8BitMono, SAFT12kHz8BitStereo, SAFT12kHz16BitMono, SAFT12kHz16BitStereo, SAFT16kHz8BitMono, SAFT16kHz8BitStereo, SAFT16kHz16BitMono, SAFT16kHz16BitStereo, SAFT22kHz8BitMono, SAFT22kHz8BitStereo, SAFT22kHz16BitMono, SAFT22kHz16BitStereo, SAFT24kHz8BitMono, SAFT24kHz8BitStereo, SAFT24kHz16BitMono, SAFT24kHz16BitStereo, SAFT32kHz8BitMono, SAFT32kHz8BitStereo, SAFT32kHz16BitMono, SAFT32kHz16BitStereo, SAFT44kHz8BitMono, SAFT44kHz8BitStereo, SAFT44kHz16BitMono, SAFT44kHz16BitStereo, SAFT48kHz8BitMono, SAFT48kHz8BitStereo, SAFT48kHz16BitMono, SAFT48kHz16BitStereo, SAFTTrueSpeech_8kHz1BitMono, SAFTCCITT_ALaw_8kHzMono, SAFTCCITT_ALaw_8kHzStereo, SAFTCCITT_ALaw_11kHzMono, SAFTCCITT_ALaw_11kHzStereo, SAFTCCITT_ALaw_22kHzMono, SAFTCCITT_ALaw_22kHzStereo, SAFTCCITT_ALaw_44kHzMono, SAFTCCITT_ALaw_44kHzStereo, SAFTCCITT_uLaw_8kHzMono, SAFTCCITT_uLaw_8kHzStereo, SAFTCCITT_uLaw_11kHzMono, SAFTCCITT_uLaw_11kHzStereo, SAFTCCITT_uLaw_22kHzMono, SAFTCCITT_uLaw_22kHzStereo, SAFTCCITT_uLaw_44kHzMono, SAFTCCITT_uLaw_44kHzStereo, SAFTADPCM_8kHzMono, SAFTADPCM_8kHzStereo, SAFTADPCM_11kHzMono, SAFTADPCM_11kHzStereo, SAFTADPCM_22kHzMono, SAFTADPCM_22kHzStereo, SAFTADPCM_44kHzMono, SAFTADPCM_44kHzStereo, SAFTGSM610_8kHzMono, SAFTGSM610_11kHzMono, SAFTGSM610_22kHzMono, SAFTGSM610_44kHzMono, } SpeechAudioFormatType; typedef [hidden] enum DISPID_SpeechAudioFormat { DISPID_SAFType = 1, DISPID_SAFGuid, DISPID_SAFGetWaveFormatEx, DISPID_SAFSetWaveFormatEx } DISPID_SpeechAudioFormat; [ object, uuid(e6e9c590-3e18-40e3-8299-061f98bde7c7), dual, pointer_default(unique) ] interface ISpeechAudioFormat : IDispatch { [propget, id(DISPID_SAFType)] HRESULT Type([out,retval] SpeechAudioFormatType *format); [propput, id(DISPID_SAFType)] HRESULT Type([in] SpeechAudioFormatType format); [propget, hidden, id(DISPID_SAFGuid)] HRESULT Guid([out,retval] BSTR *guid); [propput, hidden, id(DISPID_SAFGuid)] HRESULT Guid([in] BSTR guid); [hidden, id(DISPID_SAFGetWaveFormatEx)] HRESULT GetWaveFormatEx([out,retval] ISpeechWaveFormatEx **speechwave); [hidden, id(DISPID_SAFSetWaveFormatEx)] HRESULT SetWaveFormatEx([in] ISpeechWaveFormatEx *speechwave); } typedef enum SpeechStreamSeekPositionType { SSSPTRelativeToStart = STREAM_SEEK_SET, SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR, SSSPTRelativeToEnd = STREAM_SEEK_END } SpeechStreamSeekPositionType; typedef [hidden] enum DISPID_SpeechBaseStream { DISPID_SBSFormat = 1, DISPID_SBSRead, DISPID_SBSWrite, DISPID_SBSSeek } DISPID_SpeechBaseStream; [ object, uuid(6450336f-7d49-4ced-8097-49d6dee37294), dual, pointer_default(unique) ] interface ISpeechBaseStream : IDispatch { [propget, id(DISPID_SBSFormat)] HRESULT Format([out,retval] ISpeechAudioFormat **format); [propputref, id(DISPID_SBSFormat)] HRESULT Format([in] ISpeechAudioFormat *format); [id(DISPID_SBSRead)] HRESULT Read([out] VARIANT *buffer, [in] long written, [out,retval] long *read); [id(DISPID_SBSWrite)] HRESULT Write([in] VARIANT buffer, [out,retval] long *written); [id(DISPID_SBSSeek)] HRESULT Seek([in] VARIANT position, [in, defaultvalue(SSSPTRelativeToStart)] SpeechStreamSeekPositionType origin, [out,retval] VARIANT *pos); } typedef [hidden] enum DISPID_SpeechAudioStatus { DISPID_SASFreeBufferSpace = 1, DISPID_SASNonBlockingIO, DISPID_SASState, DISPID_SASCurrentSeekPosition, DISPID_SASCurrentDevicePosition } DISPID_SpeechAudioStatus; [ object, uuid(c62d9c91-7458-47f6-862d-1ef86fb0b278), dual, pointer_default(unique) ] interface ISpeechAudioStatus : IDispatch { [propget, id(DISPID_SASFreeBufferSpace)] HRESULT FreeBufferSpace([out,retval] long *space); [propget, id(DISPID_SASNonBlockingIO)] HRESULT NonBlockingIO([out,retval] long *nonblocking); [propget, id(DISPID_SASState)] HRESULT State([out, retval] SpeechAudioState *state); [propget, id(DISPID_SASCurrentSeekPosition)] HRESULT CurrentSeekPosition([out,retval] VARIANT *position); [propget, id(DISPID_SASCurrentDevicePosition)] HRESULT CurrentDevicePosition([out,retval] VARIANT *position); } typedef [hidden] enum DISPID_SpeechRecognizerStatus { DISPID_SRSAudioStatus = 1, DISPID_SRSCurrentStreamPosition, DISPID_SRSCurrentStreamNumber, DISPID_SRSNumberOfActiveRules, DISPID_SRSClsidEngine, DISPID_SRSSupportedLanguages } DISPID_SpeechRecognizerStatus; [ object, uuid(bff9e781-53ec-484e-bb8a-0e1b5551e35c), dual, pointer_default(unique) ] interface ISpeechRecognizerStatus : IDispatch { [propget, id(DISPID_SRSAudioStatus)] HRESULT AudioStatus([out,retval] ISpeechAudioStatus **audio); [propget, id(DISPID_SRSCurrentStreamPosition)] HRESULT CurrentStreamPosition([out,retval] VARIANT *pos); [propget, id(DISPID_SRSCurrentStreamNumber)] HRESULT CurrentStreamNumber([out,retval] long *number); [propget, id(DISPID_SRSNumberOfActiveRules)] HRESULT NumberOfActiveRules([out,retval] long *rules); [propget, id(DISPID_SRSClsidEngine)] HRESULT ClsidEngine([out,retval] BSTR *clsid); [propget, id(DISPID_SRSSupportedLanguages)] HRESULT SupportedLanguages([out,retval] VARIANT *languages); } typedef [hidden] enum DISPID_SpeechVoiceStatus { DISPID_SVSCurrentStreamNumber = 1, DISPID_SVSLastStreamNumberQueued, DISPID_SVSLastResult, DISPID_SVSRunningState, DISPID_SVSInputWordPosition, DISPID_SVSInputWordLength, DISPID_SVSInputSentencePosition, DISPID_SVSInputSentenceLength, DISPID_SVSLastBookmark, DISPID_SVSLastBookmarkId, DISPID_SVSPhonemeId, DISPID_SVSVisemeId } DISPID_SpeechVoiceStatus; [ object, uuid(8be47b07-57f6-11d2-9eee-00c04f797396), dual, pointer_default(unique) ] interface ISpeechVoiceStatus : IDispatch { [propget, id(DISPID_SVSCurrentStreamNumber)] HRESULT CurrentStreamNumber([out, retval] long *number); [propget, id(DISPID_SVSLastStreamNumberQueued)] HRESULT LastStreamNumberQueued([out, retval] long *number); [propget, id(DISPID_SVSLastResult)] HRESULT LastHResult([out, retval]long *result); [propget, id(DISPID_SVSRunningState)] HRESULT RunningState([out, retval] SpeechRunState *state); [propget, id(DISPID_SVSInputWordPosition)] HRESULT InputWordPosition([out, retval] long *position); [propget, id(DISPID_SVSInputWordLength)] HRESULT InputWordLength([out, retval] long *length); [propget, id(DISPID_SVSInputSentencePosition)] HRESULT InputSentencePosition([out, retval] long *position); [propget, id(DISPID_SVSInputSentenceLength)] HRESULT InputSentenceLength([out, retval] long *length); [propget, id(DISPID_SVSLastBookmark)] HRESULT LastBookmark([out, retval] BSTR *bookmark); [propget, id(DISPID_SVSLastBookmarkId), hidden] HRESULT LastBookmarkId([out, retval] long *bookmark); [propget, id(DISPID_SVSPhonemeId)] HRESULT PhonemeId([out, retval] short *phone); [propget, id(DISPID_SVSVisemeId)] HRESULT VisemeId([out, retval] short *id); } typedef [hidden] enum DISPID_SpeechVoice { DISPID_SVStatus = 1, DISPID_SVVoice, DISPID_SVAudioOutput, DISPID_SVAudioOutputStream, DISPID_SVRate, DISPID_SVVolume, DISPID_SVAllowAudioOuputFormatChangesOnNextSet, DISPID_SVEventInterests, DISPID_SVPriority, DISPID_SVAlertBoundary, DISPID_SVSyncronousSpeakTimeout, DISPID_SVSpeak, DISPID_SVSpeakStream, DISPID_SVPause, DISPID_SVResume, DISPID_SVSkip, DISPID_SVGetVoices, DISPID_SVGetAudioOutputs, DISPID_SVWaitUntilDone, DISPID_SVSpeakCompleteEvent, DISPID_SVIsUISupported, DISPID_SVDisplayUI } DISPID_SpeechVoice; [ object, uuid(269316d8-57bd-11d2-9eee-00c04f797396), dual, pointer_default(unique) ] interface ISpeechVoice : IDispatch { [propget, id(DISPID_SVStatus)] HRESULT Status([out, retval] ISpeechVoiceStatus **Status); [propget, id(DISPID_SVVoice)] HRESULT Voice([out, retval] ISpeechObjectToken **voice); [propputref, id(DISPID_SVVoice)] HRESULT Voice([in] ISpeechObjectToken *voice); [propget, id(DISPID_SVAudioOutput)] HRESULT AudioOutput([out, retval] ISpeechObjectToken **output); [propputref, id(DISPID_SVAudioOutput)] HRESULT AudioOutput([in] ISpeechObjectToken *output); [propget, id(DISPID_SVAudioOutputStream)] HRESULT AudioOutputStream([out, retval] ISpeechBaseStream **output); [propputref, id(DISPID_SVAudioOutputStream)] HRESULT AudioOutputStream([in] ISpeechBaseStream *output); [propget, id(DISPID_SVRate)] HRESULT Rate([out, retval] long *rate); [propput, id(DISPID_SVRate)] HRESULT Rate([in] long rate); [propget, id(DISPID_SVVolume)] HRESULT Volume([out, retval] long *volume); [propput, id(DISPID_SVVolume)] HRESULT Volume([in] long volume); [propput, hidden, id(DISPID_SVAllowAudioOuputFormatChangesOnNextSet)] HRESULT AllowAudioOutputFormatChangesOnNextSet([in] VARIANT_BOOL allow); [propget, hidden, id(DISPID_SVAllowAudioOuputFormatChangesOnNextSet)] HRESULT AllowAudioOutputFormatChangesOnNextSet([out,retval] VARIANT_BOOL *allow); [propget, id(DISPID_SVEventInterests)] HRESULT EventInterests([out,retval] SpeechVoiceEvents *flags); [propput, id(DISPID_SVEventInterests)] HRESULT EventInterests([in] SpeechVoiceEvents flags); [propput, id(DISPID_SVPriority)] HRESULT Priority([in] SpeechVoicePriority vpriority); [propget, id(DISPID_SVPriority)] HRESULT Priority([out,retval] SpeechVoicePriority *vpriority); [propput, id(DISPID_SVAlertBoundary)] HRESULT AlertBoundary([in] SpeechVoiceEvents boundary); [propget, id(DISPID_SVAlertBoundary)] HRESULT AlertBoundary([out,retval] SpeechVoiceEvents *boundary); [propput, id(DISPID_SVSyncronousSpeakTimeout)] HRESULT SynchronousSpeakTimeout([in] long timeout); [propget, id(DISPID_SVSyncronousSpeakTimeout)] HRESULT SynchronousSpeakTimeout([out,retval] long *timeout); [id(DISPID_SVSpeak)] HRESULT Speak([in] BSTR text, [in, defaultvalue(SPF_DEFAULT)] SpeechVoiceSpeakFlags flags, [out, retval] long *number); [id(DISPID_SVSpeakStream)] HRESULT SpeakStream([in] ISpeechBaseStream *stream, [in, defaultvalue(SPF_DEFAULT)] SpeechVoiceSpeakFlags flags, [out, retval] long *number); [id(DISPID_SVPause)] HRESULT Pause(void); [id(DISPID_SVResume)] HRESULT Resume(void); [id(DISPID_SVSkip)] HRESULT Skip([in] const BSTR type, [in] long items, [out,retval ]long *skipped); [id(DISPID_SVGetVoices)] HRESULT GetVoices([in, defaultvalue("")] BSTR required, [in, defaultvalue("")] BSTR optional, [out,retval] ISpeechObjectTokens **tokens); [id(DISPID_SVGetAudioOutputs)] HRESULT GetAudioOutputs([in, defaultvalue("")] BSTR required, [in, defaultvalue("")] BSTR optional, [out,retval] ISpeechObjectTokens **tokens); [id(DISPID_SVWaitUntilDone)] HRESULT WaitUntilDone([in] long msTimeout, [out,retval] VARIANT_BOOL *done); [hidden, id(DISPID_SVSpeakCompleteEvent)] HRESULT SpeakCompleteEvent([out,retval] long *handle); [id(DISPID_SVIsUISupported)] HRESULT IsUISupported( [in] const BSTR typeui, [in, defaultvalue(NULL)] const VARIANT *data, [out,retval] VARIANT_BOOL *supported); [id(DISPID_SVDisplayUI)] HRESULT DisplayUI([in] long hwnd, [in] BSTR title, [in] const BSTR typeui, [in, defaultvalue(NULL)] const VARIANT *data); } typedef [hidden] enum DISPID_SpeechRecoResultTimes { DISPID_SRRTStreamTime = 1, DISPID_SRRTLength, DISPID_SRRTTickCount, DISPID_SRRTOffsetFromStart } DISPID_SpeechRecoResultTimes; [ object, uuid(62b3b8fb-f6e7-41be-bdcb-056b1c29efc0), dual, pointer_default(unique) ] interface ISpeechRecoResultTimes : IDispatch { [propget, id(DISPID_SRRTStreamTime)] HRESULT StreamTime([out,retval] VARIANT *streamtime); [propget, id(DISPID_SRRTLength)] HRESULT Length([out,retval] VARIANT *length); [propget, id(DISPID_SRRTTickCount)] HRESULT TickCount([out,retval] long *count); [propget, id(DISPID_SRRTOffsetFromStart)] HRESULT OffsetFromStart([out,retval] VARIANT *offset); } typedef [hidden] enum DISPID_SpeechPhraseRules { DISPID_SPRulesCount = 1, DISPID_SPRulesItem = DISPID_VALUE, DISPID_SPRules_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseRules; [ object, uuid(9047d593-01dd-4b72-81a3-e4a0ca69f407), dual, pointer_default(unique) ] interface ISpeechPhraseRules : IDispatch { [propget, id(DISPID_SPRulesCount)] HRESULT Count([out, retval] long *count); [id(DISPID_SPRulesItem)] HRESULT Item([in] long index, [out, retval] ISpeechPhraseRule **rule); [propget, restricted, id(DISPID_SPRules_NewEnum)] HRESULT _NewEnum([out, retval] IUnknown **obj); } typedef [hidden] enum DISPID_SpeechPhraseRule { DISPID_SPRuleName = 1, DISPID_SPRuleId, DISPID_SPRuleFirstElement, DISPID_SPRuleNumberOfElements, DISPID_SPRuleParent, DISPID_SPRuleChildren, DISPID_SPRuleConfidence, DISPID_SPRuleEngineConfidence } DISPID_SpeechPhraseRule; [ object, uuid(a7bfe112-a4a0-48d9-b602-c313843f6964), dual, pointer_default(unique) ] interface ISpeechPhraseRule : IDispatch { [propget, id(DISPID_SPRuleName)] HRESULT Name([out, retval]BSTR *name); [propget, id(DISPID_SPRuleId)] HRESULT Id( [out, retval] long *id); [propget, id(DISPID_SPRuleFirstElement)] HRESULT FirstElement([out, retval] long *element); [propget, id(DISPID_SPRuleNumberOfElements)] HRESULT NumberOfElements([out, retval] long *count); [propget, id(DISPID_SPRuleParent)] HRESULT Parent([out, retval] ISpeechPhraseRule **parent); [propget, id(DISPID_SPRuleChildren)] HRESULT Children([out, retval] ISpeechPhraseRules **children); [propget, id(DISPID_SPRuleConfidence)] HRESULT Confidence([out, retval] SpeechEngineConfidence *confidence); [propget, id(DISPID_SPRuleEngineConfidence)] HRESULT EngineConfidence([out, retval] float *confidence); } typedef [hidden] enum DISPID_SpeechPhraseProperty { DISPID_SPPName = 1, DISPID_SPPId, DISPID_SPPValue, DISPID_SPPFirstElement, DISPID_SPPNumberOfElements, DISPID_SPPEngineConfidence, DISPID_SPPConfidence, DISPID_SPPParent, DISPID_SPPChildren } DISPID_SpeechPhraseProperty; [ object, uuid(CE563D48-961E-4732-A2E1-378A42B430BE), dual, pointer_default(unique) ] interface ISpeechPhraseProperty : IDispatch { [propget, id(DISPID_SPPName)] HRESULT Name([out, retval] BSTR *name); [propget, id(DISPID_SPPId)] HRESULT Id([out, retval] long *id); [propget, id(DISPID_SPPValue)] HRESULT Value([out, retval] VARIANT *value); [propget, id(DISPID_SPPFirstElement)] HRESULT FirstElement( [out, retval] long *element); [propget, id(DISPID_SPPNumberOfElements)] HRESULT NumberOfElements([out, retval] long *elements); [propget, id(DISPID_SPPEngineConfidence)] HRESULT EngineConfidence([out, retval] float *confidence); [propget, id(DISPID_SPPConfidence)] HRESULT Confidence([out, retval] SpeechEngineConfidence *Confidence); [propget, id(DISPID_SPPParent)] HRESULT Parent([out, retval] ISpeechPhraseProperty **parent); [propget, id(DISPID_SPPChildren)] HRESULT Children( [out, retval] ISpeechPhraseProperties **children); } typedef [hidden] enum DISPID_SpeechPhraseProperties { DISPID_SPPsCount = 1, DISPID_SPPsItem = DISPID_VALUE, DISPID_SPPs_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseProperties; [ object, uuid(08166b47-102e-4b23-a599-bdb98dbfd1f4), dual, pointer_default(unique) ] interface ISpeechPhraseProperties : IDispatch { [propget, id(DISPID_SPPsCount)] HRESULT Count([out, retval] long *count); [id(DISPID_SPPsItem)] HRESULT Item([in] long index, [out, retval] ISpeechPhraseProperty **obj); [propget, restricted, id(DISPID_SPPs_NewEnum)] HRESULT _NewEnum([out, retval] IUnknown **obj); } typedef [hidden] enum DISPID_SpeechPhraseElement { DISPID_SPEAudioTimeOffset = 1, DISPID_SPEAudioSizeTime, DISPID_SPEAudioStreamOffset, DISPID_SPEAudioSizeBytes, DISPID_SPERetainedStreamOffset, DISPID_SPERetainedSizeBytes, DISPID_SPEDisplayText, DISPID_SPELexicalForm, DISPID_SPEPronunciation, DISPID_SPEDisplayAttributes, DISPID_SPERequiredConfidence, DISPID_SPEActualConfidence, DISPID_SPEEngineConfidence } DISPID_SpeechPhraseElement; [ object, uuid(e6176f96-e373-4801-b223-3b62c068c0b4), dual, pointer_default(unique) ] interface ISpeechPhraseElement : IDispatch { [propget, id(DISPID_SPEAudioTimeOffset)] HRESULT AudioTimeOffset( [out, retval] long *offset); [propget, id(DISPID_SPEAudioSizeTime)] HRESULT AudioSizeTime([out, retval] long *audiotime); [propget, id(DISPID_SPEAudioStreamOffset)] HRESULT AudioStreamOffset([out, retval] long *offset); [propget, id(DISPID_SPEAudioSizeBytes)] HRESULT AudioSizeBytes([out, retval]long *bytes); [propget, id(DISPID_SPERetainedStreamOffset)] HRESULT RetainedStreamOffset([out, retval] long *offset); [propget, id(DISPID_SPERetainedSizeBytes)] HRESULT RetainedSizeBytes([out, retval] long *retained); [propget, id(DISPID_SPEDisplayText)] HRESULT DisplayText([out, retval] BSTR *display); [propget, id(DISPID_SPELexicalForm)] HRESULT LexicalForm( [out, retval] BSTR *lexical); [propget, id(DISPID_SPEPronunciation)] HRESULT Pronunciation([out, retval] VARIANT *pronunciation); [propget, id(DISPID_SPEDisplayAttributes)] HRESULT DisplayAttributes([out, retval] SpeechDisplayAttributes *attributes); [propget, id(DISPID_SPERequiredConfidence)] HRESULT RequiredConfidence([out, retval] SpeechEngineConfidence *confidence); [propget, id(DISPID_SPEActualConfidence)] HRESULT ActualConfidence([out, retval] SpeechEngineConfidence *confidence); [propget, id(DISPID_SPEEngineConfidence)] HRESULT EngineConfidence([out, retval] float *confidence); } typedef [hidden] enum DISPID_SpeechPhraseElements { DISPID_SPEsCount = 1, DISPID_SPEsItem = DISPID_VALUE, DISPID_SPEs_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseElements; [ object, uuid(0626b328-3478-467d-a0b3-d0853b93dda3), dual, pointer_default(unique) ] interface ISpeechPhraseElements : IDispatch { [propget, id(DISPID_SPEsCount)] HRESULT Count([out, retval] long *count); [id(DISPID_SPEsItem)] HRESULT Item([in] long Index, [out, retval] ISpeechPhraseElement **element); [propget, restricted, id(DISPID_SPEs_NewEnum)] HRESULT _NewEnum([out, retval] IUnknown **obj); } typedef [hidden] enum DISPID_SpeechPhraseReplacement { DISPID_SPRDisplayAttributes = 1, DISPID_SPRText, DISPID_SPRFirstElement, DISPID_SPRNumberOfElements } DISPID_SpeechPhraseReplacement; [ object, uuid(2890a410-53a7-4fb5-94ec-06d4998e3d02), dual, pointer_default(unique) ] interface ISpeechPhraseReplacement : IDispatch { [propget, id(DISPID_SPRDisplayAttributes)] HRESULT DisplayAttributes([out,retval] SpeechDisplayAttributes *attributes); [propget, id(DISPID_SPRText)] HRESULT Text([out, retval] BSTR *text); [propget, id(DISPID_SPRFirstElement)] HRESULT FirstElement([out, retval] long *element); [propget, id(DISPID_SPRNumberOfElements)] HRESULT NumberOfElements([out, retval] long *elements); } typedef [hidden] enum DISPID_SpeechPhraseReplacements { DISPID_SPRsCount = 1, DISPID_SPRsItem = DISPID_VALUE, DISPID_SPRs_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseReplacements; [ object, uuid(38bc662f-2257-4525-959e-2069d2596c05), dual, pointer_default(unique) ] interface ISpeechPhraseReplacements : IDispatch { [propget, id(DISPID_SPRsCount)] HRESULT Count([out, retval] long *count); [id(DISPID_SPRsItem)] HRESULT Item([in] long index, [out, retval] ISpeechPhraseReplacement **reps); [propget, restricted, id(DISPID_SPRs_NewEnum)] HRESULT _NewEnum([out, retval] IUnknown **obj); } typedef [hidden] enum DISPID_SpeechPhraseInfo { DISPID_SPILanguageId = 1, DISPID_SPIGrammarId, DISPID_SPIStartTime, DISPID_SPIAudioStreamPosition, DISPID_SPIAudioSizeBytes, DISPID_SPIRetainedSizeBytes, DISPID_SPIAudioSizeTime, DISPID_SPIRule, DISPID_SPIProperties, DISPID_SPIElements, DISPID_SPIReplacements, DISPID_SPIEngineId, DISPID_SPIEnginePrivateData, DISPID_SPISaveToMemory, DISPID_SPIGetText, DISPID_SPIGetDisplayAttributes } DISPID_SpeechPhraseInfo; [ object, uuid(961559cf-4e67-4662-8bf0-d93f1fcd61b3), dual, pointer_default(unique) ] interface ISpeechPhraseInfo : IDispatch { [propget, id(DISPID_SPILanguageId)] HRESULT LanguageId( [out, retval] long *language); [propget, id(DISPID_SPIGrammarId)] HRESULT GrammarId([out, retval] VARIANT *grammar); [propget, id(DISPID_SPIStartTime)] HRESULT StartTime([out, retval]VARIANT *start); [propget, id(DISPID_SPIAudioStreamPosition)] HRESULT AudioStreamPosition([out, retval] VARIANT *position); [propget, id(DISPID_SPIAudioSizeBytes)] HRESULT AudioSizeBytes([out, retval] long *bytes); [propget, id(DISPID_SPIRetainedSizeBytes)] HRESULT RetainedSizeBytes([out, retval] long *bytes); [propget, id(DISPID_SPIAudioSizeTime)] HRESULT AudioSizeTime([out, retval] long *audiotime); [propget, id(DISPID_SPIRule)] HRESULT Rule([out, retval] ISpeechPhraseRule **rule); [propget, id(DISPID_SPIProperties)] HRESULT Properties([out, retval] ISpeechPhraseProperties **props); [propget, id(DISPID_SPIElements)] HRESULT Elements([out, retval] ISpeechPhraseElements **elements); [propget, id(DISPID_SPIReplacements)] HRESULT Replacements([out, retval] ISpeechPhraseReplacements **replacements); [propget, id(DISPID_SPIEngineId)] HRESULT EngineId([out, retval] BSTR *engine); [propget, id(DISPID_SPIEnginePrivateData)] HRESULT EnginePrivateData([out, retval] VARIANT *data); [id(DISPID_SPISaveToMemory)] HRESULT SaveToMemory([out,retval] VARIANT *block); [id(DISPID_SPIGetText)] HRESULT GetText([in, defaultvalue(0)] long start, [in, defaultvalue(SPPR_ALL_ELEMENTS)] long elements, [in, defaultvalue(-1)] VARIANT_BOOL replacements, [out,retval] BSTR *text); [id(DISPID_SPIGetDisplayAttributes)] HRESULT GetDisplayAttributes([in, defaultvalue(0)] long start, [in, defaultvalue(SPPR_ALL_ELEMENTS)] long elements, [in, defaultvalue(-1)] VARIANT_BOOL replacements, [out,retval] SpeechDisplayAttributes *attributes); } typedef [hidden] enum DISPID_SpeechPhraseAlternate { DISPID_SPARecoResult = 1, DISPID_SPAStartElementInResult, DISPID_SPANumberOfElementsInResult, DISPID_SPAPhraseInfo, DISPID_SPACommit } DISPID_SpeechPhraseAlternate; [ object, uuid(27864a2a-2b9f-4cb8-92d3-0d2722fd1e73), dual, pointer_default(unique) ] interface ISpeechPhraseAlternate : IDispatch { [propget, id(DISPID_SPARecoResult)] HRESULT RecoResult( [out,retval] ISpeechRecoResult **result); [propget, id(DISPID_SPAStartElementInResult)] HRESULT StartElementInResult([out,retval] long *element); [propget, id(DISPID_SPANumberOfElementsInResult)] HRESULT NumberOfElementsInResult([out,retval] long *elements); [propget, id(DISPID_SPAPhraseInfo)] HRESULT PhraseInfo( [out,retval] ISpeechPhraseInfo **PhraseInfo); [id(DISPID_SPACommit)] HRESULT Commit(void); } typedef [hidden] enum DISPID_SpeechPhraseAlternates { DISPID_SPAsCount = 1, DISPID_SPAsItem = DISPID_VALUE, DISPID_SPAs_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseAlternates; [ object, uuid(b238b6d5-f276-4c3d-a6c1-2974801c3cc2), dual, pointer_default(unique) ] interface ISpeechPhraseAlternates : IDispatch { [propget, id(DISPID_SPAsCount)] HRESULT Count([out, retval] long *count); [id(DISPID_SPAsItem)] HRESULT Item([in] long index, [out, retval] ISpeechPhraseAlternate **alternate); [propget, restricted, id(DISPID_SPAs_NewEnum)] HRESULT _NewEnum([out, retval] IUnknown **obj); } typedef [hidden] enum DISPID_SpeechMemoryStream { DISPID_SMSSetData = 100, DISPID_SMSGetData } DISPID_SpeechMemoryStream; [ object, uuid(eeb14b68-808b-4abe-a5ea-b51da7588008), dual, pointer_default(unique) ] interface ISpeechMemoryStream : ISpeechBaseStream { [id(DISPID_SMSSetData)] HRESULT SetData([in] VARIANT data); [id(DISPID_SMSGetData)] HRESULT GetData([out, retval] VARIANT *data); } typedef [hidden] enum DISPID_SpeechRecoResult { DISPID_SRRRecoContext = 1, DISPID_SRRTimes, DISPID_SRRAudioFormat, DISPID_SRRPhraseInfo, DISPID_SRRAlternates, DISPID_SRRAudio, DISPID_SRRSpeakAudio, DISPID_SRRSaveToMemory, DISPID_SRRDiscardResultInfo } DISPID_SpeechRecoResult; [ object, uuid(ed2879cf-ced9-4ee6-a534-de0191d5468d), dual, pointer_default(unique) ] interface ISpeechRecoResult : IDispatch { [propget, id(DISPID_SRRRecoContext)] HRESULT RecoContext( [out,retval] ISpeechRecoContext** RecoContext ); [propget, id(DISPID_SRRTimes)] HRESULT Times([out,retval] ISpeechRecoResultTimes **times); [propputref, id(DISPID_SRRAudioFormat)] HRESULT AudioFormat([in]ISpeechAudioFormat *format); [propget, id(DISPID_SRRAudioFormat)] HRESULT AudioFormat([out,retval] ISpeechAudioFormat **format); [propget, id(DISPID_SRRPhraseInfo)] HRESULT PhraseInfo([out,retval] ISpeechPhraseInfo **phrase); [id(DISPID_SRRAlternates)] HRESULT Alternates( [in] long count, [in, defaultvalue(0)] long start, [in, defaultvalue(SPPR_ALL_ELEMENTS)] long elements, [out,retval] ISpeechPhraseAlternates **alternates); [id(DISPID_SRRAudio)] HRESULT Audio([in, defaultvalue(0)] long start, [in, defaultvalue(SPPR_ALL_ELEMENTS)] long elements, [out,retval] ISpeechMemoryStream **stream); [id(DISPID_SRRSpeakAudio)] HRESULT SpeakAudio([in, defaultvalue(0)] long start, [in, defaultvalue(SPPR_ALL_ELEMENTS)] long elements, [in, defaultvalue(SPF_DEFAULT)] SpeechVoiceSpeakFlags flags, [out,retval] long *stream); [id(DISPID_SRRSaveToMemory)] HRESULT SaveToMemory([out,retval] VARIANT *block); [id(DISPID_SRRDiscardResultInfo)] HRESULT DiscardResultInfo([in] SpeechDiscardType types); } typedef [hidden] enum DISPID_SpeechGrammarRule { DISPID_SGRAttributes = 1, DISPID_SGRInitialState, DISPID_SGRName, DISPID_SGRId, DISPID_SGRClear, DISPID_SGRAddResource, DISPID_SGRAddState } DISPID_SpeechGrammarRule; typedef [hidden] enum DISPID_SpeechGrammarRuleStateTransitions { DISPID_SGRSTsCount = 1, DISPID_SGRSTsItem = DISPID_VALUE, DISPID_SGRSTs_NewEnum = DISPID_NEWENUM } DISPID_SpeechGrammarRuleStateTransitions; typedef enum SpeechGrammarRuleStateTransitionType { SGRSTTEpsilon = 0, SGRSTTWord, SGRSTTRule, SGRSTTDictation, SGRSTTWildcard, SGRSTTTextBuffer } SpeechGrammarRuleStateTransitionType; typedef [hidden] enum DISPID_SpeechGrammarRuleStateTransition { DISPID_SGRSTType = 1, DISPID_SGRSTText, DISPID_SGRSTRule, DISPID_SGRSTWeight, DISPID_SGRSTPropertyName, DISPID_SGRSTPropertyId, DISPID_SGRSTPropertyValue, DISPID_SGRSTNextState } DISPID_SpeechGrammarRuleStateTransition; [ object, uuid(cafd1db1-41d1-4a06-9863-e2e81da17a9a), dual, pointer_default(unique) ] interface ISpeechGrammarRuleStateTransition : IDispatch { [propget, id(DISPID_SGRSTType)] HRESULT Type([out, retval] SpeechGrammarRuleStateTransitionType *type); [propget, id(DISPID_SGRSTText)] HRESULT Text([out, retval] BSTR *text); [propget, id(DISPID_SGRSTRule)] HRESULT Rule([out, retval] ISpeechGrammarRule **rule); [propget, id(DISPID_SGRSTWeight)] HRESULT Weight([out, retval] VARIANT *weight); [propget, id(DISPID_SGRSTPropertyName)] HRESULT PropertyName([out, retval] BSTR *name); [propget, id(DISPID_SGRSTPropertyId)] HRESULT PropertyId([out, retval] long *id); [propget, id(DISPID_SGRSTPropertyValue)] HRESULT PropertyValue([out, retval] VARIANT *value); [propget, id(DISPID_SGRSTNextState)] HRESULT NextState([out, retval] ISpeechGrammarRuleState **state); } [ object, uuid(EABCE657-75BC-44a2-AA7F-C56476742963), dual, pointer_default(unique) ] interface ISpeechGrammarRuleStateTransitions : IDispatch { [propget, id(DISPID_SGRSTsCount)] HRESULT Count([out, retval] long *count); [id(DISPID_SGRSTsItem)] HRESULT Item([in] long index, [out, retval] ISpeechGrammarRuleStateTransition **transition); [propget, restricted, id(DISPID_SGRSTs_NewEnum)] HRESULT _NewEnum([out, retval] IUnknown **enum_var); } typedef [hidden] enum DISPID_SpeechGrammarRuleState { DISPID_SGRSRule = 1, DISPID_SGRSTransitions, DISPID_SGRSAddWordTransition, DISPID_SGRSAddRuleTransition, DISPID_SGRSAddSpecialTransition } DISPID_SpeechGrammarRuleState; [ object, uuid(d4286f2c-ee67-45ae-b928-28d695362eda), dual, pointer_default(unique) ] interface ISpeechGrammarRuleState : IDispatch { [propget, id(DISPID_SGRSRule)] HRESULT Rule([out, retval] ISpeechGrammarRule **rule); [propget, id(DISPID_SGRSTransitions)] HRESULT Transitions([out, retval] ISpeechGrammarRuleStateTransitions **transitions); [id(DISPID_SGRSAddWordTransition)] HRESULT AddWordTransition([in] ISpeechGrammarRuleState *state, [in] const BSTR Words, [in, defaultvalue(" ")] const BSTR separators, [in, defaultvalue(SGLexical)] SpeechGrammarWordType type, [in, defaultvalue("")] const BSTR name, [in, defaultvalue(0)] long id, [in, defaultvalue(0)] VARIANT *value, [in, defaultvalue(1)] float weight); [id(DISPID_SGRSAddRuleTransition)] HRESULT AddRuleTransition([in] ISpeechGrammarRuleState *state, [in] ISpeechGrammarRule *rule, [in, defaultvalue("")] const BSTR name, [in, defaultvalue(0)] long id, [in, defaultvalue(0)] VARIANT *value, [in, defaultvalue(1)] float weight); [id(DISPID_SGRSAddSpecialTransition)] HRESULT AddSpecialTransition([in] ISpeechGrammarRuleState *state, [in] SpeechSpecialTransitionType type, [in, defaultvalue("")] const BSTR name, [in, defaultvalue(0)] long id, [in, defaultvalue(0)] VARIANT* value, [in, defaultvalue(1)] float weight); } [ object, uuid(afe719cf-5dd1-44f2-999c-7a399f1cfccc), dual, pointer_default(unique) ] interface ISpeechGrammarRule : IDispatch { [propget, id(DISPID_SGRAttributes)] HRESULT Attributes([out, retval] SpeechRuleAttributes *attributes); [propget, id(DISPID_SGRInitialState)] HRESULT InitialState([out, retval] ISpeechGrammarRuleState **state); [propget, id(DISPID_SGRName)] HRESULT Name([out, retval] BSTR *name); [propget, id(DISPID_SGRId)] HRESULT Id([out, retval] long *id); [id(DISPID_SGRClear)] HRESULT Clear(); [id(DISPID_SGRAddResource)] HRESULT AddResource([in] const BSTR name, [in] const BSTR value); [id(DISPID_SGRAddState)] HRESULT AddState([out, retval] ISpeechGrammarRuleState **state); } typedef [hidden] enum DISPIDSPTSI { DISPIDSPTSI_ActiveOffset = 1, DISPIDSPTSI_ActiveLength, DISPIDSPTSI_SelectionOffset, DISPIDSPTSI_SelectionLength } DISPIDSPTSI; [ object, uuid(3b9c7e7a-6eee-4ded-9092-11657279adbe), dual, pointer_default(unique) ] interface ISpeechTextSelectionInformation : IDispatch { [propput, id(DISPIDSPTSI_ActiveOffset)] HRESULT ActiveOffset([in] long offset); [propget, id(DISPIDSPTSI_ActiveOffset)] HRESULT ActiveOffset([out, retval] long *offset); [propput, id(DISPIDSPTSI_ActiveLength)] HRESULT ActiveLength([in] long length); [propget, id(DISPIDSPTSI_ActiveLength)] HRESULT ActiveLength([out, retval] long *length); [propput, id(DISPIDSPTSI_SelectionOffset)] HRESULT SelectionOffset([in] long offset); [propget, id(DISPIDSPTSI_SelectionOffset)] HRESULT SelectionOffset([out, retval] long *offset); [propput, id(DISPIDSPTSI_SelectionLength)] HRESULT SelectionLength([in] long length); [propget, id(DISPIDSPTSI_SelectionLength)] HRESULT SelectionLength([out, retval] long* length); } typedef [hidden] enum DISPID_SpeechGrammarRules { DISPID_SGRsCount = 1, DISPID_SGRsDynamic, DISPID_SGRsAdd, DISPID_SGRsCommit, DISPID_SGRsCommitAndSave, DISPID_SGRsFindRule, DISPID_SGRsItem = DISPID_VALUE, DISPID_SGRs_NewEnum = DISPID_NEWENUM } DISPID_SpeechGrammarRules; [ object, uuid(6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1), dual, pointer_default(unique) ] interface ISpeechGrammarRules : IDispatch { [propget, id(DISPID_SGRsCount)] HRESULT Count([out, retval] long *count); [id(DISPID_SGRsFindRule)] HRESULT FindRule([in] VARIANT id, [out, retval] ISpeechGrammarRule **rule); [id(DISPID_SGRsItem)] HRESULT Item([in] long index, [out, retval] ISpeechGrammarRule **rule); [id(DISPID_SGRs_NewEnum), propget, restricted] HRESULT _NewEnum([out, retval] IUnknown **enum_var); [propget, id(DISPID_SGRsDynamic)] HRESULT Dynamic([out, retval] VARIANT_BOOL *dynamic); [id(DISPID_SGRsAdd)] HRESULT Add([in] BSTR name, [in] SpeechRuleAttributes attributes, [in, defaultvalue(0)] long id, [out, retval] ISpeechGrammarRule **rule); [id(DISPID_SGRsCommit)] HRESULT Commit(void); [id(DISPID_SGRsCommitAndSave)] HRESULT CommitAndSave([out] BSTR *text, [out, retval] VARIANT *stream); } [ object, uuid(b6d6f79f-2158-4e50-b5bc-9a9ccd852a09), dual, pointer_default(unique) ] interface ISpeechRecoGrammar : IDispatch { [propget, id(DISPID_SRGId)] HRESULT Id([out, retval] VARIANT *id); [propget, id(DISPID_SRGRecoContext)] HRESULT RecoContext([out, retval] ISpeechRecoContext **context); [propput, id(DISPID_SRGState)] HRESULT State([in] SpeechGrammarState state); [propget, id(DISPID_SRGState)] HRESULT State([out, retval] SpeechGrammarState *state); [propget, id(DISPID_SRGRules)] HRESULT Rules([out, retval] ISpeechGrammarRules **rules); [id(DISPID_SRGReset)] HRESULT Reset([in, defaultvalue(0)] SpeechLanguageId language); [id(DISPID_SRGCmdLoadFromFile)] HRESULT CmdLoadFromFile([in] const BSTR filename, [in, defaultvalue(SLOStatic)] SpeechLoadOption option); [id(DISPID_SRGCmdLoadFromObject)] HRESULT CmdLoadFromObject([in]const BSTR classid, [in] const BSTR grammarname, [in, defaultvalue(SLOStatic)] SpeechLoadOption option); [id(DISPID_SRGCmdLoadFromResource)] HRESULT CmdLoadFromResource([in]long mod, [in] VARIANT name, [in] VARIANT type, [in] SpeechLanguageId language, [in, defaultvalue(SLOStatic)] SpeechLoadOption option); [id(DISPID_SRGCmdLoadFromMemory)] HRESULT CmdLoadFromMemory([in] VARIANT data, [in, defaultvalue(SLOStatic)] SpeechLoadOption option); [id(DISPID_SRGCmdLoadFromProprietaryGrammar)] HRESULT CmdLoadFromProprietaryGrammar([in] const BSTR guid, [in] const BSTR string, [in] VARIANT data, [in, defaultvalue(SLOStatic)] SpeechLoadOption option); [id(DISPID_SRGCmdSetRuleState)] HRESULT CmdSetRuleState([in] const BSTR name, [in] SpeechRuleState state); [id(DISPID_SRGCmdSetRuleIdState)] HRESULT CmdSetRuleIdState([in] long rule, [in] SpeechRuleState State); [id(DISPID_SRGDictationLoad)] HRESULT DictationLoad([in, defaultvalue("")] const BSTR topic, [in, defaultvalue(SLOStatic)] SpeechLoadOption option); [id(DISPID_SRGDictationUnload)] HRESULT DictationUnload(void); [id(DISPID_SRGDictationSetState)] HRESULT DictationSetState([in] SpeechRuleState State); [id(DISPID_SRGSetWordSequenceData)] HRESULT SetWordSequenceData([in] const BSTR text, [in] long length, [in] ISpeechTextSelectionInformation *info); [id(DISPID_SRGSetTextSelection)] HRESULT SetTextSelection([in] ISpeechTextSelectionInformation *info); [id(DISPID_SRGIsPronounceable)] HRESULT IsPronounceable([in] const BSTR word, [out, retval] SpeechWordPronounceable *pronounceable); } [ object, uuid(580aa49d-7e1e-4809-b8e2-57da806104b8), dual, pointer_default(unique) ] interface ISpeechRecoContext : IDispatch { [propget, id(DISPID_SRCRecognizer)] HRESULT Recognizer([out,retval] ISpeechRecognizer **recognizer); [propget, id(DISPID_SRCAudioInInterferenceStatus)] HRESULT AudioInputInterferenceStatus([out,retval] SpeechInterference *interference); [propget, id(DISPID_SRCRequestedUIType)] HRESULT RequestedUIType([out,retval] BSTR *type ); [propputref, id(DISPID_SRCVoice)] HRESULT Voice([in] ISpeechVoice *voice); [propget, id(DISPID_SRCVoice)] HRESULT Voice([out,retval] ISpeechVoice **voice); [propput, hidden, id(DISPID_SRAllowVoiceFormatMatchingOnNextSet)] HRESULT AllowVoiceFormatMatchingOnNextSet([in] VARIANT_BOOL allow); [propget, hidden, id(DISPID_SRAllowVoiceFormatMatchingOnNextSet)] HRESULT AllowVoiceFormatMatchingOnNextSet([out,retval] VARIANT_BOOL *allow); [propput, id(DISPID_SRCVoicePurgeEvent)] HRESULT VoicePurgeEvent([in] SpeechRecoEvents interest); [propget, id(DISPID_SRCVoicePurgeEvent)] HRESULT VoicePurgeEvent([out,retval] SpeechRecoEvents *interest); [propput, id(DISPID_SRCEventInterests)] HRESULT EventInterests([in] SpeechRecoEvents interest); [propget, id(DISPID_SRCEventInterests)] HRESULT EventInterests([out,retval] SpeechRecoEvents *interest); [propput, id(DISPID_SRCCmdMaxAlternates)] HRESULT CmdMaxAlternates([in] long alternates); [propget, id(DISPID_SRCCmdMaxAlternates)] HRESULT CmdMaxAlternates([out,retval] long *alternates); [propput, id(DISPID_SRCState)] HRESULT State([in] SpeechRecoContextState state); [propget, id(DISPID_SRCState)] HRESULT State([out,retval] SpeechRecoContextState *state); [propput, id(DISPID_SRCRetainedAudio)] HRESULT RetainedAudio([in] SpeechRetainedAudioOptions option); [propget, id(DISPID_SRCRetainedAudio)] HRESULT RetainedAudio([out,retval] SpeechRetainedAudioOptions *option); [propputref, id(DISPID_SRCRetainedAudioFormat)] HRESULT RetainedAudioFormat([in] ISpeechAudioFormat *format); [propget, id(DISPID_SRCRetainedAudioFormat)] HRESULT RetainedAudioFormat([out,retval] ISpeechAudioFormat **format); [id(DISPID_SRCPause)] HRESULT Pause(void); [id(DISPID_SRCResume)] HRESULT Resume(void); [id(DISPID_SRCCreateGrammar)] HRESULT CreateGrammar([in, defaultvalue(0)] VARIANT id, [out,retval] ISpeechRecoGrammar **grammar); [id(DISPID_SRCCreateResultFromMemory)] HRESULT CreateResultFromMemory([in] VARIANT *block, [out,retval] ISpeechRecoResult **result); [id(DISPID_SRCBookmark)] HRESULT Bookmark([in] SpeechBookmarkOptions options, [in] VARIANT pos, [in] VARIANT bookmark); [id(DISPID_SRCSetAdaptationData)] HRESULT SetAdaptationData([in] BSTR adaptation); } typedef [hidden] enum DISPID_SpeechRecognizer { DISPID_SRRecognizer = 1, DISPID_SRAllowAudioInputFormatChangesOnNextSet, DISPID_SRAudioInput, DISPID_SRAudioInputStream, DISPID_SRIsShared, DISPID_SRState, DISPID_SRStatus, DISPID_SRProfile, DISPID_SREmulateRecognition, DISPID_SRCreateRecoContext, DISPID_SRGetFormat, DISPID_SRSetPropertyNumber, DISPID_SRGetPropertyNumber, DISPID_SRSetPropertyString, DISPID_SRGetPropertyString, DISPID_SRIsUISupported, DISPID_SRDisplayUI, DISPID_SRGetRecognizers, DISPID_SVGetAudioInputs, DISPID_SVGetProfiles } DISPID_SpeechRecognizer; [ object, uuid(2d5f1c0c-bd75-4b08-9478-3b11fea2586c), dual, pointer_default(unique) ] interface ISpeechRecognizer : IDispatch { [propputref, id(DISPID_SRRecognizer)] HRESULT Recognizer([in]ISpeechObjectToken *recognizer); [propget, id(DISPID_SRRecognizer)] HRESULT Recognizer([out,retval]ISpeechObjectToken **recognizer); [propput, hidden, id(DISPID_SRAllowAudioInputFormatChangesOnNextSet)] HRESULT AllowAudioInputFormatChangesOnNextSet([in] VARIANT_BOOL allow); [propget, hidden, id(DISPID_SRAllowAudioInputFormatChangesOnNextSet)] HRESULT AllowAudioInputFormatChangesOnNextSet([out,retval] VARIANT_BOOL *allow); [propputref, id(DISPID_SRAudioInput)] HRESULT AudioInput([in,defaultvalue(0)] ISpeechObjectToken *input); [propget, id(DISPID_SRAudioInput)] HRESULT AudioInput([out,retval] ISpeechObjectToken **input); [propputref, id(DISPID_SRAudioInputStream)] HRESULT AudioInputStream([in,defaultvalue(0)] ISpeechBaseStream *input); [propget, id(DISPID_SRAudioInputStream)] HRESULT AudioInputStream([out,retval] ISpeechBaseStream **input); [propget, id(DISPID_SRIsShared)] HRESULT IsShared([out,retval] VARIANT_BOOL *shared); [propput, id(DISPID_SRState)] HRESULT State([in] SpeechRecognizerState state); [propget, id(DISPID_SRState)] HRESULT State([out,retval] SpeechRecognizerState *state); [propget, id(DISPID_SRStatus)] HRESULT Status([out,retval] ISpeechRecognizerStatus **status); [propputref, id(DISPID_SRProfile)] HRESULT Profile([in,defaultvalue(0)] ISpeechObjectToken *profile); [propget, id(DISPID_SRProfile)] HRESULT Profile([out,retval] ISpeechObjectToken **profile); [id(DISPID_SREmulateRecognition)] HRESULT EmulateRecognition([in] VARIANT elements, [in, defaultvalue(NULL)] VARIANT *attributes, [in, defaultvalue(0)] long id); [id(DISPID_SRCreateRecoContext)] HRESULT CreateRecoContext([out,retval] ISpeechRecoContext **ncontext); [id(DISPID_SRGetFormat)] HRESULT GetFormat([in] SpeechFormatType speechtype, [out,retval] ISpeechAudioFormat **audioformat); [hidden, id(DISPID_SRSetPropertyNumber)] HRESULT SetPropertyNumber([in] const BSTR name, [in] long value, [out,retval] VARIANT_BOOL *supported); [hidden, id(DISPID_SRGetPropertyNumber)] HRESULT GetPropertyNumber([in] const BSTR name, [in,out] long *value, [out,retval] VARIANT_BOOL *supported); [hidden, id(DISPID_SRSetPropertyString)] HRESULT SetPropertyString([in] const BSTR name, [in] const BSTR value, [out,retval] VARIANT_BOOL *supported); [hidden, id(DISPID_SRGetPropertyString)] HRESULT GetPropertyString([in] const BSTR name, [in,out] BSTR *value, [out,retval] VARIANT_BOOL *supported); [id(DISPID_SRIsUISupported)] HRESULT IsUISupported([in] const BSTR type, [in, defaultvalue(NULL)] const VARIANT *data, [out,retval] VARIANT_BOOL *supported); [id(DISPID_SRDisplayUI)] HRESULT DisplayUI( [in] long hWnd, [in] BSTR title, [in] const BSTR type, [in, defaultvalue(NULL)] const VARIANT *data); [id(DISPID_SRGetRecognizers)] HRESULT GetRecognizers([in, defaultvalue("")] BSTR required, [in, defaultvalue("")] BSTR optional, [out,retval] ISpeechObjectTokens **tokens); [id(DISPID_SVGetAudioInputs)] HRESULT GetAudioInputs([in, defaultvalue("")] BSTR required, [in, defaultvalue("")] BSTR optional, [out,retval] ISpeechObjectTokens **tokens); [id(DISPID_SVGetProfiles)] HRESULT GetProfiles([in, defaultvalue("")] BSTR required, [in, defaultvalue("")] BSTR optional, [out,retval] ISpeechObjectTokens **tokens); } typedef enum SpeechStreamFileMode { SSFMOpenForRead = SPFM_OPEN_READONLY, SSFMOpenReadWrite = SPFM_OPEN_READWRITE, SSFMCreate = SPFM_CREATE, SSFMCreateForWrite = SPFM_CREATE_ALWAYS, } SpeechStreamFileMode; typedef [hidden] enum DISPID_SpeechFileStream { DISPID_SFSOpen = 100, DISPID_SFSClose } DISPID_SpeechFileStream; [ object, uuid(af67f125-ab39-4e93-b4a2-cc2e66e182a7), dual, pointer_default(unique) ] interface ISpeechFileStream : ISpeechBaseStream { [id(DISPID_SFSOpen)] HRESULT Open([in] BSTR filename, [in, defaultvalue(SSFMOpenForRead)] SpeechStreamFileMode mode, [in, defaultvalue(0)] VARIANT_BOOL events); [id(DISPID_SFSClose)] HRESULT Close(void); };