Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
---
include/Makefile.in | 1 +
include/sapi.idl | 2 +
include/sapiaut.idl | 2007 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 2010 insertions(+)
create mode 100644 include/sapiaut.idl
diff --git a/include/Makefile.in b/include/Makefile.in
index 7832d64a0e..d4676f0fdd 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -574,6 +574,7 @@ SOURCES = \
rtutils.h \
sal.h \
sapi.idl \
+ sapiaut.idl \
sapiddk.idl \
scarderr.h \
schannel.h \
diff --git a/include/sapi.idl b/include/sapi.idl
index d6f904f29a..8e591bd3a0 100644
--- a/include/sapi.idl
+++ b/include/sapi.idl
@@ -1025,6 +1025,8 @@ library SpeechLib
{
importlib("stdole2.tlb");
+ #include "sapiaut.idl"
+
[
uuid(a910187f-0c7a-45ac-92cc-59edafb77b53),
helpstring("SpObjectTokenCategory Class"),
diff --git a/include/sapiaut.idl b/include/sapiaut.idl
new file mode 100644
index 0000000000..41bd32030f
--- /dev/null
+++ b/include/sapiaut.idl
@@ -0,0 +1,2007 @@
+/*
+ * 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 yype, [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 **satus);
+
+ [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);
+
+};
--
2.17.1