/** * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER within this package. */ #ifndef _SAPI_BLD_ #define _SAPI_BLD_ 0x54 #endif import "oaidl.idl"; import "ocidl.idl"; cpp_quote("#ifndef _SAPI_VER") cpp_quote("#error \"you have to include header before this.\"") cpp_quote("#endif") #ifndef LANGID #define LANGID WORD #endif cpp_quote("#if 0") typedef [restricted, hidden] struct WAVEFORMATEX { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPerSec; WORD nBlockAlign; WORD wBitsPerSample; WORD cbSize; } WAVEFORMATEX; cpp_quote("#endif") interface ISpNotifySource; interface ISpNotifySink; interface ISpNotifyTranslator; interface ISpDataKey; interface ISpObjectTokenCategory; interface ISpObjectToken; interface IEnumSpObjectTokens; interface ISpObjectWithToken; interface ISpResourceManager; interface ISpEventSource; interface ISpEventSink; interface ISpStreamFormat; interface ISpStream; interface ISpStreamFormatConverter; interface ISpAudio; interface ISpMMSysAudio; interface ISpTranscript; interface ISpVoice; interface ISpRecoResult; interface ISpRecoContext; interface ISpRecognizer; interface ISpProperties; interface ISpLexicon; interface ISpPhoneConverter; interface ISpPhrase; #if _SAPI_BLD_ >= 0x53 interface ISpRecoContext2; interface ISpRecognizer2; interface ISpShortcut; interface ISpPhoneticAlphabetConverter; interface ISpPhoneticAlphabetSelection; interface ISpRecoGrammar2; interface ISpeechResourceLoader; #endif #if _SAPI_BLD_ >= 0x54 interface ISpRecognizer3; #endif typedef [hidden] enum SPDATAKEYLOCATION { SPDKL_DefaultLocation = 0, SPDKL_CurrentUser = 1, SPDKL_LocalMachine = 2, SPDKL_CurrentConfig = 5 } SPDATAKEYLOCATION; typedef [hidden] enum SPSTREAMFORMAT { SPSF_Default = -1, SPSF_NoAssignedFormat = 0, SPSF_Text, SPSF_NonStandardFormat, SPSF_ExtendedAudioFormat, SPSF_8kHz8BitMono, SPSF_8kHz8BitStereo, SPSF_8kHz16BitMono, SPSF_8kHz16BitStereo, SPSF_11kHz8BitMono, SPSF_11kHz8BitStereo, SPSF_11kHz16BitMono, SPSF_11kHz16BitStereo, SPSF_12kHz8BitMono, SPSF_12kHz8BitStereo, SPSF_12kHz16BitMono, SPSF_12kHz16BitStereo, SPSF_16kHz8BitMono, SPSF_16kHz8BitStereo, SPSF_16kHz16BitMono, SPSF_16kHz16BitStereo, SPSF_22kHz8BitMono, SPSF_22kHz8BitStereo, SPSF_22kHz16BitMono, SPSF_22kHz16BitStereo, SPSF_24kHz8BitMono, SPSF_24kHz8BitStereo, SPSF_24kHz16BitMono, SPSF_24kHz16BitStereo, SPSF_32kHz8BitMono, SPSF_32kHz8BitStereo, SPSF_32kHz16BitMono, SPSF_32kHz16BitStereo, SPSF_44kHz8BitMono, SPSF_44kHz8BitStereo, SPSF_44kHz16BitMono, SPSF_44kHz16BitStereo, SPSF_48kHz8BitMono, SPSF_48kHz8BitStereo, SPSF_48kHz16BitMono, SPSF_48kHz16BitStereo, SPSF_TrueSpeech_8kHz1BitMono, SPSF_CCITT_ALaw_8kHzMono, SPSF_CCITT_ALaw_8kHzStereo, SPSF_CCITT_ALaw_11kHzMono, SPSF_CCITT_ALaw_11kHzStereo, SPSF_CCITT_ALaw_22kHzMono, SPSF_CCITT_ALaw_22kHzStereo, SPSF_CCITT_ALaw_44kHzMono, SPSF_CCITT_ALaw_44kHzStereo, SPSF_CCITT_uLaw_8kHzMono, SPSF_CCITT_uLaw_8kHzStereo, SPSF_CCITT_uLaw_11kHzMono, SPSF_CCITT_uLaw_11kHzStereo, SPSF_CCITT_uLaw_22kHzMono, SPSF_CCITT_uLaw_22kHzStereo, SPSF_CCITT_uLaw_44kHzMono, SPSF_CCITT_uLaw_44kHzStereo, SPSF_ADPCM_8kHzMono, SPSF_ADPCM_8kHzStereo, SPSF_ADPCM_11kHzMono, SPSF_ADPCM_11kHzStereo, SPSF_ADPCM_22kHzMono, SPSF_ADPCM_22kHzStereo, SPSF_ADPCM_44kHzMono, SPSF_ADPCM_44kHzStereo, SPSF_GSM610_8kHzMono, SPSF_GSM610_11kHzMono, SPSF_GSM610_22kHzMono, SPSF_GSM610_44kHzMono, SPSF_NUM_FORMATS } SPSTREAMFORMAT; typedef [hidden] enum SPEVENTLPARAMTYPE { SPET_LPARAM_IS_UNDEFINED = 0, SPET_LPARAM_IS_TOKEN, SPET_LPARAM_IS_OBJECT, SPET_LPARAM_IS_POINTER, SPET_LPARAM_IS_STRING } SPEVENTLPARAMTYPE; typedef [hidden] enum SPEVENTENUM { SPEI_UNDEFINED = 0, SPEI_START_INPUT_STREAM = 1, SPEI_END_INPUT_STREAM = 2, SPEI_VOICE_CHANGE = 3, SPEI_TTS_BOOKMARK = 4, SPEI_WORD_BOUNDARY = 5, SPEI_PHONEME = 6, SPEI_SENTENCE_BOUNDARY = 7, SPEI_VISEME = 8, SPEI_TTS_AUDIO_LEVEL = 9, SPEI_TTS_PRIVATE = 15, SPEI_MIN_TTS = 1, SPEI_MAX_TTS = 15, SPEI_END_SR_STREAM = 34, SPEI_SOUND_START = 35, SPEI_SOUND_END = 36, SPEI_PHRASE_START = 37, SPEI_RECOGNITION = 38, SPEI_HYPOTHESIS = 39, SPEI_SR_BOOKMARK = 40, SPEI_PROPERTY_NUM_CHANGE = 41, SPEI_PROPERTY_STRING_CHANGE= 42, SPEI_FALSE_RECOGNITION = 43, SPEI_INTERFERENCE = 44, SPEI_REQUEST_UI = 45, SPEI_RECO_STATE_CHANGE = 46, SPEI_ADAPTATION = 47, SPEI_START_SR_STREAM = 48, SPEI_RECO_OTHER_CONTEXT = 49, SPEI_SR_AUDIO_LEVEL = 50, #if _SAPI_BLD_ >= 0x53 SPEI_SR_RETAINEDAUDIO = 51, #endif SPEI_SR_PRIVATE = 52, #if _SAPI_BLD_ >= 0x53 #if _SAPI_BLD_ >= 0x54 SPEI_ACTIVE_CATEGORY_CHANGED = 53, #else SPEI_RESERVED4 = 53, #endif SPEI_RESERVED5 = 54, SPEI_RESERVED6 = 55, #endif SPEI_MIN_SR = 34, #if _SAPI_BLD_ >= 0x53 SPEI_MAX_SR = 55, #else SPEI_MAX_SR = 52, #endif SPEI_RESERVED1 = 30, SPEI_RESERVED2 = 33, SPEI_RESERVED3 = 63 } SPEVENTENUM; typedef [hidden] enum SPINTERFERENCE { SPINTERFERENCE_NONE = 0, SPINTERFERENCE_NOISE, SPINTERFERENCE_NOSIGNAL, SPINTERFERENCE_TOOLOUD, SPINTERFERENCE_TOOQUIET, SPINTERFERENCE_TOOFAST, SPINTERFERENCE_TOOSLOW, SPINTERFERENCE_LATENCY_WARNING, SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN, SPINTERFERENCE_LATENCY_TRUNCATE_END } SPINTERFERENCE; typedef [hidden] enum SPENDSRSTREAMFLAGS { SPESF_NONE = 0, SPESF_STREAM_RELEASED = 1 #if _SAPI_BLD_ >= 0x53 , SPESF_EMULATED = 2 #endif } SPENDSRSTREAMFLAGS; typedef [hidden] enum SPVFEATURE { SPVFEATURE_STRESSED = 1, SPVFEATURE_EMPHASIS = 2 } SPVFEATURE; typedef [hidden] enum SPVISEMES { SP_VISEME_0 = 0, SP_VISEME_1, SP_VISEME_2, SP_VISEME_3, SP_VISEME_4, SP_VISEME_5, SP_VISEME_6, SP_VISEME_7, SP_VISEME_8, SP_VISEME_9, SP_VISEME_10, SP_VISEME_11, SP_VISEME_12, SP_VISEME_13, SP_VISEME_14, SP_VISEME_15, SP_VISEME_16, SP_VISEME_17, SP_VISEME_18, SP_VISEME_19, SP_VISEME_20, SP_VISEME_21, } SPVISEMES; typedef [hidden] enum SPFILEMODE { SPFM_OPEN_READONLY, SPFM_OPEN_READWRITE, SPFM_CREATE, SPFM_CREATE_ALWAYS, SPFM_NUM_MODES } SPFILEMODE; typedef [hidden] enum _SPAUDIOSTATE { SPAS_CLOSED, SPAS_STOP, SPAS_PAUSE, SPAS_RUN } SPAUDIOSTATE; typedef [hidden] enum SPDISPLYATTRIBUTES { SPAF_ONE_TRAILING_SPACE = 0x2, SPAF_TWO_TRAILING_SPACES = 0x4, SPAF_CONSUME_LEADING_SPACES = 0x8, #if _SAPI_BLD_ >= 0x53 SPAF_BUFFER_POSITION = 0x10, SPAF_ALL = 0x1f, SPAF_USER_SPECIFIED = 0x80 #else SPAF_ALL = 0x0f #endif } SPDISPLAYATTRIBUTES; typedef [hidden] enum SPPHRASEPROPERTYUNIONTYPE { SPPPUT_UNUSED = 0, SPPPUT_ARRAY_INDEX } SPPHRASEPROPERTYUNIONTYPE; #if _SAPI_BLD_ >= 0x53 typedef enum SPSEMANTICFORMAT { SPSMF_SAPI_PROPERTIES = 0, SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1, SPSMF_SRGS_SAPIPROPERTIES = 2, SPSMF_UPS = 4, SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8 } SPSEMANTICFORMAT; #endif typedef [hidden] enum SPRECOEVENTFLAGS { SPREF_AutoPause = 0x1, SPREF_Emulated = 0x2 #if _SAPI_BLD_ >= 0x53 , SPREF_SMLTimeout = 0x4, SPREF_ExtendableParse = 0x8, SPREF_ReSent = 0x10, SPREF_Hypothesis = 0x20, SPREF_FalseRecognition = 0x40 #endif } SPRECOEVENTFLAGS; typedef [hidden] enum SPPARTOFSPEECH { SPPS_NotOverriden = -1, SPPS_Unknown = 0, SPPS_Noun = 0x1000, SPPS_Verb = 0x2000, SPPS_Modifier = 0x3000, SPPS_Function = 0x4000, SPPS_Interjection = 0x5000 #if _SAPI_BLD_ >= 0x53 , SPPS_Noncontent = 0x6000, SPPS_LMA = 0x7000, SPPS_SuppressWord = 0xf000 #endif } SPPARTOFSPEECH; typedef [hidden] enum SPLEXICONTYPE { eLEXTYPE_USER = 0x1, eLEXTYPE_APP = 0x2, eLEXTYPE_VENDORLEXICON = 0x4, eLEXTYPE_LETTERTOSOUND = 0x8, eLEXTYPE_MORPHOLOGY = 0x10, eLEXTYPE_RESERVED4 = 0x20, eLEXTYPE_USER_SHORTCUT = 0x40, eLEXTYPE_RESERVED6 = 0x80, eLEXTYPE_RESERVED7 = 0x100, eLEXTYPE_RESERVED8 = 0x200, eLEXTYPE_RESERVED9 = 0x400, eLEXTYPE_RESERVED10 = 0x800, eLEXTYPE_PRIVATE1 = 0x1000, eLEXTYPE_PRIVATE2 = 0x2000, eLEXTYPE_PRIVATE3 = 0x4000, eLEXTYPE_PRIVATE4 = 0x8000, eLEXTYPE_PRIVATE5 = 0x10000, eLEXTYPE_PRIVATE6 = 0x20000, eLEXTYPE_PRIVATE7 = 0x40000, eLEXTYPE_PRIVATE8 = 0x80000, eLEXTYPE_PRIVATE9 = 0x100000, eLEXTYPE_PRIVATE10 = 0x200000, eLEXTYPE_PRIVATE11 = 0x400000, eLEXTYPE_PRIVATE12 = 0x800000, eLEXTYPE_PRIVATE13 = 0x1000000, eLEXTYPE_PRIVATE14 = 0x2000000, eLEXTYPE_PRIVATE15 = 0x4000000, eLEXTYPE_PRIVATE16 = 0x8000000, eLEXTYPE_PRIVATE17 = 0x10000000, eLEXTYPE_PRIVATE18 = 0x20000000, eLEXTYPE_PRIVATE19 = 0x40000000, eLEXTYPE_PRIVATE20 = 0x80000000u } SPLEXICONTYPE; typedef [hidden] enum SPWORDTYPE { eWORDTYPE_ADDED = 1, eWORDTYPE_DELETED = 2 } SPWORDTYPE; #if _SAPI_BLD_ >= 0x53 typedef [hidden] enum SPPRONUNCIATIONFLAGS { ePRONFLAG_USED = 1 } SPPRONUNCIATIONFLAGS; typedef [hidden] enum SPSHORTCUTTYPE { SPSHT_NotOverriden = -1, SPSHT_Unknown = 0, SPSHT_EMAIL = 0x1000, SPSHT_OTHER = 0x2000, SPPS_RESERVED1 = 0x3000, SPPS_RESERVED2 = 0x4000, SPPS_RESERVED3 = 0x5000, SPPS_RESERVED4 = 0xf000 } SPSHORTCUTTYPE; #endif typedef [hidden] enum SPVALUETYPE { SPDF_PROPERTY = 0x1, SPDF_REPLACEMENT = 0x2, SPDF_RULE = 0x4, SPDF_DISPLAYTEXT = 0x8, SPDF_LEXICALFORM = 0x10, SPDF_PRONUNCIATION = 0x20, SPDF_AUDIO = 0x40, SPDF_ALTERNATES = 0x80, SPDF_ALL = 0xff } SPVALUETYPE; typedef [hidden] enum SPPHRASERNG { SPPR_ALL_ELEMENTS = -1 } SPPHRASERNG; typedef [hidden] enum SPVACTIONS { SPVA_Speak = 0, SPVA_Silence, SPVA_Pronounce, SPVA_Bookmark, SPVA_SpellOut, SPVA_Section, SPVA_ParseUnknownTag } SPVACTIONS; typedef [hidden] enum SPRUNSTATE { SPRS_DONE = 1, SPRS_IS_SPEAKING = 2 } SPRUNSTATE; typedef [hidden] enum SPVLIMITS { SPMIN_VOLUME = 0, SPMAX_VOLUME = 100, SPMIN_RATE = -10, SPMAX_RATE = 10 } SPVLIMITS; typedef [hidden] enum SPVPRIORITY { SPVPRI_NORMAL = 0, SPVPRI_ALERT = 1, SPVPRI_OVER = 2 } SPVPRIORITY; cpp_quote("EXTERN_C const GUID SPDFID_Text;") cpp_quote("EXTERN_C const GUID SPDFID_WaveFormatEx;") cpp_quote("") const signed char SP_LOW_CONFIDENCE = -1; const signed char SP_NORMAL_CONFIDENCE = 0; const signed char SP_HIGH_CONFIDENCE = +1; const float DEFAULT_WEIGHT = 1; const ULONG SP_MAX_WORD_LENGTH = 128; const ULONG SP_MAX_PRON_LENGTH = 384; #if _SAPI_BLD_ >= 0x53 const ULONG SP_EMULATE_RESULT = 0x40000000; #endif cpp_quote("") cpp_quote("#ifdef __cplusplus") cpp_quote("interface ISpNotifyCallback {") cpp_quote(" virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;") cpp_quote("};") cpp_quote("#else") typedef void *ISpNotifyCallback; cpp_quote("#endif") cpp_quote("#if 0") typedef void *SPNOTIFYCALLBACK; cpp_quote("#else") cpp_quote("typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);") cpp_quote("#endif") [object, uuid (5eff4aef-8487-11d2-961c-00c04f8ee628), pointer_default (unique), restricted] interface ISpNotifySource : IUnknown { HRESULT SetNotifySink ([in] ISpNotifySink *pNotifySink); [local] HRESULT SetNotifyWindowMessage ([in] HWND hWnd,[in] UINT Msg,[in] WPARAM wParam,[in] LPARAM lParam); [local] HRESULT SetNotifyCallbackFunction ([in] SPNOTIFYCALLBACK *pfnCallback,[in] WPARAM wParam,[in] LPARAM lParam); [local] HRESULT SetNotifyCallbackInterface ([in] ISpNotifyCallback *pSpCallback,[in] WPARAM wParam,[in] LPARAM lParam); [local] HRESULT SetNotifyWin32Event (void); [local] HRESULT WaitForNotifyEvent ([in] DWORD dwMilliseconds); [local] HANDLE GetNotifyEventHandle (); } [object, uuid (259684dc-37c3-11d2-9603-00c04f8ee628), pointer_default (unique), restricted] interface ISpNotifySink : IUnknown { HRESULT Notify (void); } [object, local, uuid (ACA16614-5d3d-11d2-960e-00c04f8ee628), pointer_default (unique), restricted] interface ISpNotifyTranslator : ISpNotifySink { HRESULT InitWindowMessage ([in] HWND hWnd,[in] UINT Msg,[in] WPARAM wParam,[in] LPARAM lParam); HRESULT InitCallback ([in] SPNOTIFYCALLBACK *pfnCallback,[in] WPARAM wParam,[in] LPARAM lParam); HRESULT InitSpNotifyCallback ([in] ISpNotifyCallback *pSpCallback,[in] WPARAM wParam,[in] LPARAM lParam); HRESULT InitWin32Event ([in] HANDLE hEvent,[in] WINBOOL fCloseHandleOnRelease); HRESULT Wait ([in] DWORD dwMilliseconds); HANDLE GetEventHandle (); } [object, local, uuid (14056581-E16C-11d2-BB90-00c04f8ee6c0), pointer_default (unique), restricted] interface ISpDataKey : IUnknown { HRESULT SetData ([in] LPCWSTR pszValueName,[in] ULONG cbData,[in] const BYTE *pData); HRESULT GetData ([in] LPCWSTR pszValueName,[in] ULONG *pcbData,[out] BYTE *pData); HRESULT SetStringValue ([in] LPCWSTR pszValueName,[in] LPCWSTR pszValue); HRESULT GetStringValue ([in] LPCWSTR pszValueName,[out] LPWSTR *ppszValue); HRESULT SetDWORD ([in] LPCWSTR pszValueName,[in] DWORD dwValue); HRESULT GetDWORD ([in] LPCWSTR pszValueName,[out] DWORD *pdwValue); HRESULT OpenKey ([in] LPCWSTR pszSubKeyName,[out] ISpDataKey **ppSubKey); HRESULT CreateKey ([in] LPCWSTR pszSubKey,[out] ISpDataKey **ppSubKey); HRESULT DeleteKey ([in] LPCWSTR pszSubKey); HRESULT DeleteValue ([in] LPCWSTR pszValueName); HRESULT EnumKeys ([in] ULONG Index,[out] LPWSTR *ppszSubKeyName); HRESULT EnumValues ([in] ULONG Index,[out] LPWSTR *ppszValueName); }; [object, uuid (5b559f40-E952-11d2-BB91-00c04f8ee6c0), pointer_default (unique), restricted] interface ISpObjectWithToken : IUnknown { HRESULT SetObjectToken ([in] ISpObjectToken *pToken); HRESULT GetObjectToken ([out] ISpObjectToken **ppToken); }; [object, local, uuid (06b64f9e-7fda-11d2-B4F2-00c04f797396), pointer_default (unique), restricted] interface IEnumSpObjectTokens : IUnknown { HRESULT Next ([in] ULONG celt,[out, size_is (celt), length_is (*pceltFetched)] ISpObjectToken **pelt,[out] ULONG *pceltFetched); HRESULT Skip ([in] ULONG celt); HRESULT Reset (void); HRESULT Clone ([out] IEnumSpObjectTokens **ppEnum); HRESULT Item ([in] ULONG Index,[out] ISpObjectToken **ppToken); HRESULT GetCount ([out] ULONG *pCount); }; [object, uuid (92a66e2b-C830-4149-83df-6fc2ba1e7a5b), pointer_default (unique), restricted] interface ISpRegDataKey : ISpDataKey { [local] HRESULT SetKey ([in] HKEY hkey,[in] WINBOOL fReadOnly); } [object, local, uuid (2d3d3845-39af-4850-BBF9-40b49780011d), pointer_default (unique), restricted] interface ISpObjectTokenCategory : ISpDataKey { HRESULT SetId ([in] LPCWSTR pszCategoryId,[in] WINBOOL fCreateIfNotExist); HRESULT GetId ([out] LPWSTR *ppszCoMemCategoryId); HRESULT GetDataKey ([in] SPDATAKEYLOCATION spdkl,[out] ISpDataKey **ppDataKey); HRESULT EnumTokens ([in, string] LPCWSTR pzsReqAttribs,[in, string] LPCWSTR pszOptAttribs,[out] IEnumSpObjectTokens **ppEnum); HRESULT SetDefaultTokenId ([in] LPCWSTR pszTokenId); HRESULT GetDefaultTokenId ([out] LPWSTR *ppszCoMemTokenId); }; [object, local, uuid (14056589-E16C-11d2-BB90-00c04f8ee6c0), pointer_default (unique), restricted] interface ISpObjectToken : ISpDataKey { HRESULT SetId (LPCWSTR pszCategoryId,[in] LPCWSTR pszTokenId,[in] WINBOOL fCreateIfNotExist); HRESULT GetId ([out] LPWSTR *ppszCoMemTokenId); HRESULT GetCategory ([out] ISpObjectTokenCategory **ppTokenCategory); HRESULT CreateInstance ([in] IUnknown *pUnkOuter,[in] DWORD dwClsContext,[in] REFIID riid,[out, iid_is (riid)] void **ppvObject); HRESULT GetStorageFileName ([in] REFCLSID clsidCaller,[in] LPCWSTR pszValueName,[in, string] LPCWSTR pszFileNameSpecifier,[in] ULONG nFolder,[out] LPWSTR *ppszFilePath); HRESULT RemoveStorageFileName ([in] REFCLSID clsidCaller,[in] LPCWSTR pszKeyName,[in] WINBOOL fDeleteFile); HRESULT Remove (const CLSID *pclsidCaller); [local] HRESULT IsUISupported ([in] LPCWSTR pszTypeOfUI,[in] void *pvExtraData,[in] ULONG cbExtraData,[in] IUnknown *punkObject,[out] WINBOOL *pfSupported); [local] HRESULT DisplayUI ([in] HWND hwndParent,[in] LPCWSTR pszTitle,[in] LPCWSTR pszTypeOfUI,[in] void *pvExtraData,[in] ULONG cbExtraData,[in] IUnknown *punkObject); HRESULT MatchesAttributes ([in] LPCWSTR pszAttributes,[out] WINBOOL *pfMatches); }; [object, uuid (B8AAB0CF-346f-49d8-9499-C8B03F161D51), pointer_default (unique), restricted] interface ISpObjectTokenInit : ISpObjectToken { HRESULT InitFromDataKey ([in] LPCWSTR pszCategoryId,[in] LPCWSTR pszTokenId,[in] ISpDataKey *pDataKey); }; [object, uuid (93384e18-5014-43d5-ADBB-A78E055926BD), pointer_default (unique), restricted] interface ISpResourceManager : IServiceProvider { HRESULT SetObject ([in] REFGUID guidServiceId,[in] IUnknown *pUnkObject); HRESULT GetObject ([in] REFGUID guidServiceId,[in] REFCLSID ObjectCLSID,[in] REFIID ObjectIID,[in] WINBOOL fReleaseWhenLastExternalRefReleased,[out, iid_is (ObjectIID)] void **ppObject); }; cpp_quote("#if 0") typedef [restricted, hidden] struct SPEVENT { WORD eEventId; WORD elParamType; ULONG ulStreamNum; ULONGLONG ullAudioStreamOffset; WPARAM wParam; LPARAM lParam; } SPEVENT; typedef [restricted, hidden] struct SPSERIALIZEDEVENT { WORD eEventId; WORD elParamType; ULONG ulStreamNum; ULONGLONG ullAudioStreamOffset; ULONG SerializedwParam; LONG SerializedlParam; } SPSERIALIZEDEVENT; typedef [restricted, hidden] struct SPSERIALIZEDEVENT64 { WORD eEventId; WORD elParamType; ULONG ulStreamNum; ULONGLONG ullAudioStreamOffset; ULONGLONG SerializedwParam; LONGLONG SerializedlParam; } SPSERIALIZEDEVENT64; cpp_quote("#else") cpp_quote("typedef struct SPEVENT {") cpp_quote(" SPEVENTENUM eEventId : 16;") cpp_quote(" SPEVENTLPARAMTYPE elParamType : 16;") cpp_quote(" ULONG ulStreamNum;") cpp_quote(" ULONGLONG ullAudioStreamOffset;") cpp_quote(" WPARAM wParam;") cpp_quote(" LPARAM lParam;") cpp_quote("} SPEVENT;") cpp_quote("") cpp_quote("typedef struct SPSERIALIZEDEVENT {") cpp_quote(" SPEVENTENUM eEventId : 16;") cpp_quote(" SPEVENTLPARAMTYPE elParamType : 16;") cpp_quote(" ULONG ulStreamNum;") cpp_quote(" ULONGLONG ullAudioStreamOffset;") cpp_quote(" ULONG SerializedwParam;") cpp_quote(" LONG SerializedlParam;") cpp_quote("} SPSERIALIZEDEVENT;") cpp_quote("") cpp_quote("typedef struct SPSERIALIZEDEVENT64 {") cpp_quote(" SPEVENTENUM eEventId : 16;") cpp_quote(" SPEVENTLPARAMTYPE elParamType : 16;") cpp_quote(" ULONG ulStreamNum;") cpp_quote(" ULONGLONG ullAudioStreamOffset;") cpp_quote(" ULONGLONG SerializedwParam;") cpp_quote(" LONGLONG SerializedlParam;") cpp_quote("} SPSERIALIZEDEVENT64;") cpp_quote("#endif") #if _SAPI_BLD_ >= 0x53 cpp_quote("#if 0") typedef [restricted, hidden] struct SPEVENTEX { WORD eEventId; WORD elParamType; ULONG ulStreamNum; ULONGLONG ullAudioStreamOffset; WPARAM wParam; LPARAM lParam; ULONGLONG ullAudioTimeOffset; } SPEVENTEX; cpp_quote("#else") cpp_quote("typedef struct SPEVENTEX {") cpp_quote(" SPEVENTENUM eEventId : 16;") cpp_quote(" SPEVENTLPARAMTYPE elParamType : 16;") cpp_quote(" ULONG ulStreamNum;") cpp_quote(" ULONGLONG ullAudioStreamOffset;") cpp_quote(" WPARAM wParam;") cpp_quote(" LPARAM lParam;") cpp_quote(" ULONGLONG ullAudioTimeOffset;") cpp_quote("} SPEVENTEX;") cpp_quote("#endif") #endif typedef [restricted, hidden] struct SPEVENTSOURCEINFO { ULONGLONG ullEventInterest; ULONGLONG ullQueuedInterest; ULONG ulCount; } SPEVENTSOURCEINFO; [object, local, uuid (BE7A9CCE-5f9e-11d2-960f-00c04f8ee628), pointer_default (unique), restricted] interface ISpEventSource : ISpNotifySource { HRESULT SetInterest ([in] ULONGLONG ullEventInterest,[in] ULONGLONG ullQueuedInterest); HRESULT GetEvents ([in] ULONG ulCount,[out, size_is (ulCount)] SPEVENT *pEventArray,[out] ULONG *pulFetched); HRESULT GetInfo ([out] SPEVENTSOURCEINFO *pInfo); }; #if _SAPI_BLD_ >= 0x53 [object, local, uuid (2373a435-6a4b-429e-A6AC-D4231A61975B), pointer_default (unique), restricted] interface ISpEventSource2 : ISpEventSource { HRESULT GetEventsEx ([in] ULONG ulCount,[out, size_is (ulCount)] SPEVENTEX *pEventArray,[out] ULONG *pulFetched); }; #endif [object, local, uuid (BE7A9CC9-5f9e-11d2-960f-00c04f8ee628), pointer_default (unique), restricted] interface ISpEventSink : IUnknown { HRESULT AddEvents ([in] const SPEVENT *pEventArray,[in] ULONG ulCount); HRESULT GetEventInterest ([out] ULONGLONG *pullEventInterest); }; [object, uuid (BED530BE-2606-4f4d-A1C0-54c5cda5566f), pointer_default (unique), restricted] interface ISpStreamFormat : IStream { HRESULT GetFormat ([in] GUID *pguidFormatId,[out] WAVEFORMATEX **ppCoMemWaveFormatEx); } [object, local, uuid (12e3cca9-7518-44c5-A5E7-BA5A79CB929E), pointer_default (unique), restricted] interface ISpStream : ISpStreamFormat { HRESULT SetBaseStream ([in] IStream *pStream,[in] REFGUID rguidFormat,[in] const WAVEFORMATEX *pWaveFormatEx); HRESULT GetBaseStream ([out] IStream **ppStream); HRESULT BindToFile ([in] LPCWSTR pszFileName,[in] SPFILEMODE eMode,[in] const GUID *pFormatId, const WAVEFORMATEX *pWaveFormatEx,[in] ULONGLONG ullEventInterest); HRESULT Close (); } [object, uuid (678a932c-EA71-4446-9b41-78fda6280a29), pointer_default (unique), restricted] interface ISpStreamFormatConverter : ISpStreamFormat { HRESULT SetBaseStream ([in] ISpStreamFormat *pStream,[in] WINBOOL fSetFormatToBaseStreamFormat,[in] WINBOOL fWriteToBaseStream); HRESULT GetBaseStream ([out] ISpStreamFormat **ppStream); HRESULT SetFormat ([in] REFGUID rguidFormatIdOfConvertedStream,[in] const WAVEFORMATEX *pWaveFormatExOfConvertedStream); HRESULT ResetSeekPosition (); HRESULT ScaleConvertedToBaseOffset ([in] ULONGLONG ullOffsetConvertedStream,[out] ULONGLONG *pullOffsetBaseStream); HRESULT ScaleBaseToConvertedOffset ([in] ULONGLONG ullOffsetBaseStream,[out] ULONGLONG *pullOffsetConvertedStream); }; typedef [restricted, hidden] struct SPAUDIOSTATUS { long cbFreeBuffSpace; ULONG cbNonBlockingIO; SPAUDIOSTATE State; ULONGLONG CurSeekPos; ULONGLONG CurDevicePos; DWORD dwAudioLevel; DWORD dwReserved2; } SPAUDIOSTATUS; typedef [restricted, hidden] struct SPAUDIOBUFFERINFO { ULONG ulMsMinNotification; ULONG ulMsBufferSize; ULONG ulMsEventBias; } SPAUDIOBUFFERINFO; [object, local, uuid (C05C768F-FAE8-4ec2-8e07-338321c12452), pointer_default (unique), restricted] interface ISpAudio : ISpStreamFormat { HRESULT SetState ([in] SPAUDIOSTATE NewState,[in] ULONGLONG ullReserved); HRESULT SetFormat ([in] REFGUID rguidFmtId,[in] const WAVEFORMATEX *pWaveFormatEx); HRESULT GetStatus ([out] SPAUDIOSTATUS *pStatus); HRESULT SetBufferInfo ([in] const SPAUDIOBUFFERINFO *pBuffInfo); HRESULT GetBufferInfo ([out] SPAUDIOBUFFERINFO *pBuffInfo); HRESULT GetDefaultFormat ([out] GUID *pFormatId,[out] WAVEFORMATEX **ppCoMemWaveFormatEx); HANDLE EventHandle (); HRESULT GetVolumeLevel ([out] ULONG *pLevel); HRESULT SetVolumeLevel ([in] ULONG Level); HRESULT GetBufferNotifySize ([out] ULONG *pcbSize); HRESULT SetBufferNotifySize ([in] ULONG cbSize); }; [object, local, uuid (15806f6e-1d70-4b48-98e6-3b1a007509ab), pointer_default (unique), restricted] interface ISpMMSysAudio : ISpAudio { HRESULT GetDeviceId ([out] UINT *puDeviceId); HRESULT SetDeviceId ([in] UINT uDeviceId); HRESULT GetMMHandle ([out] void **pHandle); HRESULT GetLineId ([out] UINT *puLineId); HRESULT SetLineId ([in] UINT uLineId); }; [object, uuid (10f63bce-201a-11d3-AC70-00c04f8ee6c0), pointer_default (unique), restricted] interface ISpTranscript : IUnknown { HRESULT GetTranscript ([out, string] LPWSTR *ppszTranscript); HRESULT AppendTranscript ([in, string] LPCWSTR pszTranscript); }; typedef WCHAR SPPHONEID; typedef LPWSTR PSPPHONEID; typedef LPCWSTR PCSPPHONEID; typedef [restricted, hidden] struct SPPHRASEELEMENT { ULONG ulAudioTimeOffset; ULONG ulAudioSizeTime; ULONG ulAudioStreamOffset; ULONG ulAudioSizeBytes; ULONG ulRetainedStreamOffset; ULONG ulRetainedSizeBytes; LPCWSTR pszDisplayText; LPCWSTR pszLexicalForm; const SPPHONEID *pszPronunciation; BYTE bDisplayAttributes; signed char RequiredConfidence; signed char ActualConfidence; BYTE Reserved; float SREngineConfidence; } SPPHRASEELEMENT; typedef [restricted, hidden] struct SPPHRASERULE SPPHRASERULE; typedef [restricted, hidden] struct SPPHRASEPROPERTY SPPHRASEPROPERTY; struct SPPHRASERULE { LPCWSTR pszName; ULONG ulId; ULONG ulFirstElement; ULONG ulCountOfElements; const SPPHRASERULE *pNextSibling; const SPPHRASERULE *pFirstChild; float SREngineConfidence; signed char Confidence; }; struct SPPHRASEPROPERTY { LPCWSTR pszName; union { ULONG ulId; struct { byte bType; byte bReserved; unsigned short usArrayIndex; }; }; LPCWSTR pszValue; VARIANT vValue; ULONG ulFirstElement; ULONG ulCountOfElements; const SPPHRASEPROPERTY *pNextSibling; const SPPHRASEPROPERTY *pFirstChild; float SREngineConfidence; signed char Confidence; }; typedef [restricted, hidden] struct SPPHRASEREPLACEMENT { BYTE bDisplayAttributes; LPCWSTR pszReplacementText; ULONG ulFirstElement; ULONG ulCountOfElements; } SPPHRASEREPLACEMENT; #if _SAPI_BLD_ >= 0x53 typedef [restricted, hidden] struct SPSEMANTICERRORINFO { ULONG ulLineNumber; LPWSTR pszScriptLine; LPWSTR pszSource; LPWSTR pszDescription; HRESULT hrResultCode; } SPSEMANTICERRORINFO; #endif #if _SAPI_BLD_ >= 0x53 typedef [restricted, hidden] struct SPPHRASE_50 #else typedef [restricted, hidden] struct SPPHRASE #endif { ULONG cbSize; LANGID LangID; WORD wHomophoneGroupId; ULONGLONG ullGrammarID; ULONGLONG ftStartTime; ULONGLONG ullAudioStreamPosition; ULONG ulAudioSizeBytes; ULONG ulRetainedSizeBytes; ULONG ulAudioSizeTime; SPPHRASERULE Rule; const SPPHRASEPROPERTY *pProperties; const SPPHRASEELEMENT *pElements; ULONG cReplacements; const SPPHRASEREPLACEMENT *pReplacements; GUID SREngineID; ULONG ulSREnginePrivateDataSize; const BYTE *pSREnginePrivateData; } #if _SAPI_BLD_ >= 0x53 SPPHRASE_50; #else SPPHRASE; #endif #if _SAPI_BLD_ >= 0x53 cpp_quote("#define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)") cpp_quote("#ifdef __cplusplus") #if _SAPI_BLD_ > 0x53 cpp_quote("typedef struct SPPHRASE_53 : public SPPHRASE_50 {") #else cpp_quote("typedef struct SPPHRASE : public SPPHRASE_50 {") #endif cpp_quote(" LPWSTR pSML;") cpp_quote(" SPSEMANTICERRORINFO* pSemanticErrorInfo;") #if _SAPI_BLD_ > 0x53 cpp_quote("} SPPHRASE_53;") #else cpp_quote("} SPPHRASE;") #endif cpp_quote("#else") #if _SAPI_BLD_ > 0x53 typedef [restricted, hidden] struct SPPHRASE_53 #else typedef [restricted, hidden] struct SPPHRASE #endif { ULONG cbSize; LANGID LangID; WORD wHomophoneGroupId; ULONGLONG ullGrammarID; ULONGLONG ftStartTime; ULONGLONG ullAudioStreamPosition; ULONG ulAudioSizeBytes; ULONG ulRetainedSizeBytes; ULONG ulAudioSizeTime; SPPHRASERULE Rule; const SPPHRASEPROPERTY *pProperties; const SPPHRASEELEMENT *pElements; ULONG cReplacements; const SPPHRASEREPLACEMENT *pReplacements; GUID SREngineID; ULONG ulSREnginePrivateDataSize; const BYTE *pSREnginePrivateData; LPWSTR pSML; SPSEMANTICERRORINFO *pSemanticErrorInfo; } #if _SAPI_BLD_ > 0x53 SPPHRASE_53; #else SPPHRASE; #endif cpp_quote("#endif") #endif #if _SAPI_BLD_ >= 0x54 cpp_quote("#define SP_SPPHRASESIZE_530 sizeof (SPPHRASE_53)") cpp_quote("#ifdef __cplusplus") cpp_quote("typedef struct SPPHRASE : public SPPHRASE_53 {") cpp_quote(" SPSEMANTICFORMAT SemanticTagFormat;") cpp_quote("} SPPHRASE;") cpp_quote("#else") typedef [restricted, hidden] struct SPPHRASE { ULONG cbSize; LANGID LangID; WORD wHomophoneGroupId; ULONGLONG ullGrammarID; ULONGLONG ftStartTime; ULONGLONG ullAudioStreamPosition; ULONG ulAudioSizeBytes; ULONG ulRetainedSizeBytes; ULONG ulAudioSizeTime; SPPHRASERULE Rule; const SPPHRASEPROPERTY *pProperties; const SPPHRASEELEMENT *pElements; ULONG cReplacements; const SPPHRASEREPLACEMENT *pReplacements; GUID SREngineID; ULONG ulSREnginePrivateDataSize; const BYTE *pSREnginePrivateData; LPWSTR pSML; SPSEMANTICERRORINFO *pSemanticErrorInfo; SPSEMANTICFORMAT SemanticTagFormat; } SPPHRASE; cpp_quote("#endif") #endif typedef [restricted, hidden] struct SPSERIALIZEDPHRASE { ULONG ulSerializedSize; } SPSERIALIZEDPHRASE; #if _SAPI_BLD_ >= 0x53 typedef [restricted, hidden] struct SPRULE { LPCWSTR pszRuleName; ULONG ulRuleId; DWORD dwAttributes; } SPRULE; #endif typedef [hidden] struct SPBINARYGRAMMAR { ULONG ulTotalSerializedSize; } SPBINARYGRAMMAR; cpp_quote("#if 0") typedef void *SPSTATEHANDLE; cpp_quote("#else") cpp_quote("DECLARE_HANDLE(SPSTATEHANDLE);") cpp_quote("#endif") typedef [restricted, hidden] struct SPWORDPRONUNCIATION { struct SPWORDPRONUNCIATION *pNextWordPronunciation; SPLEXICONTYPE eLexiconType; LANGID LangID; WORD wPronunciationFlags; SPPARTOFSPEECH ePartOfSpeech; SPPHONEID szPronunciation[1]; } SPWORDPRONUNCIATION; typedef [restricted, hidden] struct SPWORDPRONUNCIATIONLIST { ULONG ulSize; BYTE *pvBuffer; SPWORDPRONUNCIATION *pFirstWordPronunciation; } SPWORDPRONUNCIATIONLIST; typedef [restricted, hidden] struct SPWORD { struct SPWORD *pNextWord; LANGID LangID; WORD wReserved; SPWORDTYPE eWordType; LPWSTR pszWord; SPWORDPRONUNCIATION *pFirstWordPronunciation; } SPWORD; typedef [restricted, hidden] struct SPWORDLIST { ULONG ulSize; BYTE *pvBuffer; SPWORD *pFirstWord; } SPWORDLIST; [object, local, uuid (DA41A7C2-5383-4db2-916b-6c1719e3db58), pointer_default (unique), restricted] interface ISpLexicon : IUnknown { HRESULT GetPronunciations ([in] LPCWSTR pszWord,[in] LANGID LangID,[in] DWORD dwFlags,[in, out] SPWORDPRONUNCIATIONLIST *pWordPronunciationList); HRESULT AddPronunciation ([in] LPCWSTR pszWord,[in] LANGID LangID,[in] SPPARTOFSPEECH ePartOfSpeech,[in] PCSPPHONEID pszPronunciation); HRESULT RemovePronunciation ([in] LPCWSTR pszWord,[in] LANGID LangID,[in] SPPARTOFSPEECH ePartOfSpeech,[in] PCSPPHONEID pszPronunciation); HRESULT GetGeneration ([out] DWORD *pdwGeneration); HRESULT GetGenerationChange ([in] DWORD dwFlags,[in, out] DWORD *pdwGeneration,[in, out] SPWORDLIST *pWordList); HRESULT GetWords ([in] DWORD dwFlags,[in, out] DWORD *pdwGeneration,[in, out] DWORD *pdwCookie,[in, out] SPWORDLIST *pWordList); }; [object, uuid (8565572f-C094-41cc-B56E-10bd9c3ff044), pointer_default (unique), restricted] interface ISpContainerLexicon : ISpLexicon { HRESULT AddLexicon ([in] ISpLexicon *pAddLexicon,[in] DWORD dwFlags); }; #if _SAPI_BLD_ >= 0x53 typedef [restricted, hidden] struct SPSHORTCUTPAIR { struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR; LANGID LangID; SPSHORTCUTTYPE shType; LPWSTR pszDisplay; LPWSTR pszSpoken; } SPSHORTCUTPAIR; typedef [restricted, hidden] struct SPSHORTCUTPAIRLIST { ULONG ulSize; BYTE *pvBuffer; SPSHORTCUTPAIR *pFirstShortcutPair; } SPSHORTCUTPAIRLIST; #endif #if _SAPI_BLD_ >= 0x53 [object, uuid (3df681e2-EA56-11d9-8bde-F66BAD1E3F3A), pointer_default (unique), restricted] interface ISpShortcut : IUnknown { HRESULT AddShortcut ([in] LPCWSTR pszDisplay,[in] LANGID LangID,[in] LPCWSTR pszSpoken,[in] SPSHORTCUTTYPE shType); HRESULT RemoveShortcut ([in] LPCWSTR pszDisplay,[in] LANGID LangID,[in] LPCWSTR pszSpoken,[in] SPSHORTCUTTYPE shType); HRESULT GetShortcuts ([in] LANGID LangID,[in, out] SPSHORTCUTPAIRLIST *pShortcutpairList); HRESULT GetGeneration ([out] DWORD *pdwGeneration); HRESULT GetWordsFromGenerationChange ([in, out] DWORD *pdwGeneration,[in, out] SPWORDLIST *pWordList); HRESULT GetWords ([in, out] DWORD *pdwGeneration,[in, out] DWORD *pdwCookie,[in, out] SPWORDLIST *pWordList); HRESULT GetShortcutsForGeneration ([in, out] DWORD *pdwGeneration,[in, out] DWORD *pdwCookie,[in, out] SPSHORTCUTPAIRLIST *pShortcutpairList); HRESULT GetGenerationChange ([in, out] DWORD *pdwGeneration,[in, out] SPSHORTCUTPAIRLIST *pShortcutpairList); }; #endif [object, uuid (8445c581-0cac-4a38-ABFE-9b2ce2826455), pointer_default (unique), restricted] interface ISpPhoneConverter : ISpObjectWithToken { HRESULT PhoneToId ([in] LPCWSTR pszPhone,[out] SPPHONEID *pId); HRESULT IdToPhone ([in] PCSPPHONEID pId,[out] WCHAR *pszPhone); }; #if _SAPI_BLD_ >= 0x53 [object, local, uuid (133adcd4-19b4-4020-9fdc-842e78253b17), pointer_default (unique), restricted] interface ISpPhoneticAlphabetConverter : IUnknown { HRESULT GetLangId ([out] LANGID *pLangID); HRESULT SetLangId ([in] LANGID LangID); HRESULT SAPI2UPS ([in] const SPPHONEID *pszSAPIId,[out] SPPHONEID *pszUPSId,[in] DWORD cMaxLength); HRESULT UPS2SAPI ([in] const SPPHONEID *pszUPSId,[out] SPPHONEID *pszSAPIId,[in] DWORD cMaxLength); HRESULT GetMaxConvertLength ([in] DWORD cSrcLength,[in] WINBOOL bSAPI2UPS,[out] DWORD *pcMaxDestLength); }; [object, uuid (B2745EFD-42ce-48ca-81f1-A96E02538A90), pointer_default (unique), restricted] interface ISpPhoneticAlphabetSelection : IUnknown { HRESULT IsAlphabetUPS ([out] WINBOOL *pfIsUPS); HRESULT SetAlphabetToUPS ([in] WINBOOL fForceUPS); }; #endif typedef [restricted, hidden] struct SPVPITCH { long MiddleAdj; long RangeAdj; } SPVPITCH; typedef [restricted, hidden] struct SPVCONTEXT { LPCWSTR pCategory; LPCWSTR pBefore; LPCWSTR pAfter; } SPVCONTEXT; typedef [restricted, hidden] struct SPVSTATE { SPVACTIONS eAction; LANGID LangID; WORD wReserved; long EmphAdj; long RateAdj; ULONG Volume; SPVPITCH PitchAdj; ULONG SilenceMSecs; SPPHONEID *pPhoneIds; SPPARTOFSPEECH ePartOfSpeech; SPVCONTEXT Context; } SPVSTATE; typedef [restricted, hidden] struct SPVOICESTATUS { ULONG ulCurrentStream; ULONG ulLastStreamQueued; HRESULT hrLastResult; DWORD dwRunningState; ULONG ulInputWordPos; ULONG ulInputWordLen; ULONG ulInputSentPos; ULONG ulInputSentLen; LONG lBookmarkId; SPPHONEID PhonemeId; SPVISEMES VisemeId; DWORD dwReserved1; DWORD dwReserved2; } SPVOICESTATUS; typedef [hidden] enum SPEAKFLAGS { SPF_DEFAULT = 0, SPF_ASYNC = 1, SPF_PURGEBEFORESPEAK = 2, SPF_IS_FILENAME = 4, SPF_IS_XML = 8, SPF_IS_NOT_XML = 0x10, SPF_PERSIST_XML = 0x20, SPF_NLP_SPEAK_PUNC = 0x40, #if _SAPI_BLD_ >= 0x53 SPF_PARSE_SAPI = 0x80, SPF_PARSE_SSML = 0x100, SPF_PARSE_AUTODETECT = 0, #endif SPF_NLP_MASK = (SPF_NLP_SPEAK_PUNC), #if _SAPI_BLD_ >= 0x53 SPF_PARSE_MASK = (SPF_PARSE_SAPI | SPF_PARSE_SSML), SPF_VOICE_MASK = (SPF_ASYNC | SPF_PURGEBEFORESPEAK | SPF_IS_FILENAME | SPF_IS_XML | SPF_IS_NOT_XML | SPF_NLP_MASK | SPF_PERSIST_XML | SPF_PARSE_MASK), #else SPF_VOICE_MASK = (SPF_ASYNC | SPF_PURGEBEFORESPEAK | SPF_IS_FILENAME | SPF_IS_XML | SPF_IS_NOT_XML | SPF_NLP_MASK | SPF_PERSIST_XML), #endif SPF_UNUSED_FLAGS = ~ (SPF_VOICE_MASK) } SPEAKFLAGS; [object, local, uuid (6c44df74-72b9-4992-A1EC-EF996E0422D4), pointer_default (unique), restricted] interface ISpVoice : ISpEventSource { HRESULT SetOutput ([in] IUnknown *pUnkOutput,[in] WINBOOL fAllowFormatChanges); HRESULT GetOutputObjectToken ([out] ISpObjectToken **ppObjectToken); HRESULT GetOutputStream ([out] ISpStreamFormat **ppStream); HRESULT Pause (void); HRESULT Resume (void); HRESULT SetVoice ([in] ISpObjectToken *pToken); HRESULT GetVoice ([out] ISpObjectToken **ppToken); HRESULT Speak ([in, string] LPCWSTR pwcs,[in] DWORD dwFlags,[out] ULONG *pulStreamNumber); HRESULT SpeakStream ([in] IStream *pStream,[in] DWORD dwFlags,[out] ULONG *pulStreamNumber); HRESULT GetStatus ([out] SPVOICESTATUS *pStatus,[out] LPWSTR *ppszLastBookmark); HRESULT Skip ([in, string] LPCWSTR pItemType,[in] long lNumItems,[out] ULONG *pulNumSkipped); HRESULT SetPriority ([in] SPVPRIORITY ePriority); HRESULT GetPriority ([out] SPVPRIORITY *pePriority); HRESULT SetAlertBoundary ([in] SPEVENTENUM eBoundary); HRESULT GetAlertBoundary ([out] SPEVENTENUM *peBoundary); HRESULT SetRate ([in] long RateAdjust); HRESULT GetRate ([out] long *pRateAdjust); HRESULT SetVolume ([in] USHORT usVolume); HRESULT GetVolume ([out] USHORT *pusVolume); HRESULT WaitUntilDone ([in] ULONG msTimeout); HRESULT SetSyncSpeakTimeout ([in] ULONG msTimeout); HRESULT GetSyncSpeakTimeout ([out] ULONG *pmsTimeout); [local] HANDLE SpeakCompleteEvent (); [local] HRESULT IsUISupported ([in] LPCWSTR pszTypeOfUI,[in] void *pvExtraData,[in] ULONG cbExtraData,[out] WINBOOL *pfSupported); [local] HRESULT DisplayUI ([in] HWND hwndParent,[in] LPCWSTR pszTitle,[in] LPCWSTR pszTypeOfUI,[in] void *pvExtraData,[in] ULONG cbExtraData); }; [object, local, uuid (1a5c0354-B621-4b5a-8791-D306ED379E53), pointer_default (unique), restricted] interface ISpPhrase : IUnknown { HRESULT GetPhrase ([out] SPPHRASE **ppCoMemPhrase); HRESULT GetSerializedPhrase ([out] SPSERIALIZEDPHRASE **ppCoMemPhrase); HRESULT GetText ([in] ULONG ulStart,[in] ULONG ulCount,[in] WINBOOL fUseTextReplacements,[out] LPWSTR *ppszCoMemText,[out, optional] BYTE *pbDisplayAttributes); HRESULT Discard ([in] DWORD dwValueTypes); }; [object, local, uuid (8fcebc98-4e49-4067-9c6c-D86A0E092E3D), pointer_default (unique), restricted] interface ISpPhraseAlt : ISpPhrase { HRESULT GetAltInfo ([out] ISpPhrase **ppParent,[out] ULONG *pulStartElementInParent,[out] ULONG *pcElementsInParent,[out] ULONG *pcElementsInAlt); HRESULT Commit (); }; #if _SAPI_BLD_ >= 0x53 typedef enum SPXMLRESULTOPTIONS { SPXRO_SML = 0, SPXRO_Alternates_SML = 1 } SPXMLRESULTOPTIONS; #endif #if _SAPI_BLD_ >= 0x53 [object, local, uuid (F264DA52-E457-4696-B856-A737B717AF79), pointer_default (unique), restricted] interface ISpPhrase2 : ISpPhrase { HRESULT GetXMLResult ([out] LPWSTR *ppszCoMemXMLResult,[in] SPXMLRESULTOPTIONS Options); HRESULT GetXMLErrorInfo ([out] SPSEMANTICERRORINFO *pSemanticErrorInfo); HRESULT GetAudio ([in] ULONG ulStartElement,[in] ULONG cElements,[out] ISpStreamFormat **ppStream); }; #endif typedef [restricted, hidden] struct SPRECORESULTTIMES { FILETIME ftStreamTime; ULONGLONG ullLength; DWORD dwTickCount; ULONGLONG ullStart; } SPRECORESULTTIMES; typedef [hidden] struct SPSERIALIZEDRESULT { ULONG ulSerializedSize; } SPSERIALIZEDRESULT; [object, local, uuid (20b053be-E235-43cd-9a2a-8d17a48b7842), pointer_default (unique), restricted] interface ISpRecoResult : ISpPhrase { HRESULT GetResultTimes ([out] SPRECORESULTTIMES *pTimes); HRESULT GetAlternates ([in] ULONG ulStartElement,[in] ULONG cElements,[in] ULONG ulRequestCount,[out] ISpPhraseAlt **ppPhrases,[out] ULONG *pcPhrasesReturned); HRESULT GetAudio ([in] ULONG ulStartElement,[in] ULONG cElements,[out] ISpStreamFormat **ppStream); HRESULT SpeakAudio ([in] ULONG ulStartElement,[in] ULONG cElements,[in] DWORD dwFlags,[out] ULONG *pulStreamNumber); HRESULT Serialize ([out] SPSERIALIZEDRESULT **ppCoMemSerializedResult); HRESULT ScaleAudio ([in] const GUID *pAudioFormatId,[in] const WAVEFORMATEX *pWaveFormatEx); HRESULT GetRecoContext ([out] ISpRecoContext **ppRecoContext); }; #if _SAPI_BLD_ >= 0x53 typedef [hidden] enum SPCOMMITFLAGS { SPCF_NONE = 0, SPCF_ADD_TO_USER_LEXICON = (1 << 0), SPCF_DEFINITE_CORRECTION = (1 << 1) } SPCOMMITFLAGS; #endif #if _SAPI_BLD_ >= 0x53 [object, local, uuid (27cac6c4-88f2-41f2-8817-0c95e59f1e6e), pointer_default (unique), restricted] interface ISpRecoResult2 : ISpRecoResult { HRESULT CommitAlternate ([in] ISpPhraseAlt *pPhraseAlt,[out] ISpRecoResult **ppNewResult); HRESULT CommitText ([in] ULONG ulStartElement,[in] ULONG cElements,[in] LPCWSTR pszCorrectedData,[in] DWORD eCommitFlags); HRESULT SetTextFeedback ([in, string] LPCWSTR pszFeedback,[in] WINBOOL fSuccessful); } [object, local, uuid (AE39362B-45a8-4074-9b9e-CCF49AA2D0B6), pointer_default (unique), restricted] interface ISpXMLRecoResult : ISpRecoResult { HRESULT GetXMLResult ([out] LPWSTR *ppszCoMemXMLResult,[in] SPXMLRESULTOPTIONS Options); HRESULT GetXMLErrorInfo ([out] SPSEMANTICERRORINFO *pSemanticErrorInfo); }; #endif typedef [hidden] struct tagSPTEXTSELECTIONINFO { ULONG ulStartActiveOffset; ULONG cchActiveChars; ULONG ulStartSelection; ULONG cchSelection; } SPTEXTSELECTIONINFO; typedef [hidden] enum SPWORDPRONOUNCEABLE { SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0, SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1, SPWP_KNOWN_WORD_PRONOUNCEABLE = 2 } SPWORDPRONOUNCEABLE; typedef [hidden] enum SPGRAMMARSTATE { SPGS_DISABLED = 0, SPGS_ENABLED = 1, SPGS_EXCLUSIVE = 3 } SPGRAMMARSTATE; typedef [hidden] enum SPCONTEXTSTATE { SPCS_DISABLED = 0, SPCS_ENABLED = 1, } SPCONTEXTSTATE; typedef [hidden] enum SPRULESTATE { SPRS_INACTIVE = 0, SPRS_ACTIVE = 1, SPRS_ACTIVE_WITH_AUTO_PAUSE = 3 #if _SAPI_BLD_ >= 0x53 , SPRS_ACTIVE_USER_DELIMITED = 4 #endif } SPRULESTATE; const ULONGLONG SP_STREAMPOS_ASAP = 0; const ULONGLONG SP_STREAMPOS_REALTIME = -1; cpp_quote("#define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)") cpp_quote("#define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)") cpp_quote("#define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)") typedef [hidden] enum SPGRAMMARWORDTYPE { SPWT_DISPLAY, SPWT_LEXICAL, SPWT_PRONUNCIATION #if _SAPI_BLD_ >= 0x53 , SPWT_LEXICAL_NO_SPECIAL_CHARS #endif } SPGRAMMARWORDTYPE; typedef [hidden] struct tagSPPROPERTYINFO { LPCWSTR pszName; ULONG ulId; LPCWSTR pszValue; VARIANT vValue; } SPPROPERTYINFO; typedef [hidden] enum SPCFGRULEATTRIBUTES { SPRAF_TopLevel = 0x1, SPRAF_Active = 0x2, SPRAF_Export = 0x4, SPRAF_Import = 0x8, SPRAF_Interpreter = 0x10, SPRAF_Dynamic = 0x20, #if _SAPI_BLD_ >= 0x53 SPRAF_Root = 0x40, #endif SPRAF_AutoPause = 0x10000 #if _SAPI_BLD_ >= 0x53 , SPRAF_UserDelimited = 0x20000 #endif } SPCFGRULEATTRIBUTES; [object, local, uuid (8137828f-591a-4a42-BE58-49ea7ebaac68), pointer_default (unique), restricted] interface ISpGrammarBuilder : IUnknown { HRESULT ResetGrammar ([in] LANGID NewLanguage); HRESULT GetRule ([in] LPCWSTR pszRuleName,[in] DWORD dwRuleId,[in] DWORD dwAttributes,[in] WINBOOL fCreateIfNotExist,[out] SPSTATEHANDLE *phInitialState); HRESULT ClearRule ([in] SPSTATEHANDLE hState); HRESULT CreateNewState ([in] SPSTATEHANDLE hState,[out] SPSTATEHANDLE *phState); HRESULT AddWordTransition ([in] SPSTATEHANDLE hFromState,[in] SPSTATEHANDLE hToState,[in] LPCWSTR psz,[in] LPCWSTR pszSeparators,[in] SPGRAMMARWORDTYPE eWordType,[in] float Weight,[in] const SPPROPERTYINFO *pPropInfo); HRESULT AddRuleTransition ([in] SPSTATEHANDLE hFromState,[in] SPSTATEHANDLE hToState,[in] SPSTATEHANDLE hRule,[in] float Weight,[in] const SPPROPERTYINFO *pPropInfo); HRESULT AddResource ([in] SPSTATEHANDLE hRuleState,[in] LPCWSTR pszResourceName,[in] LPCWSTR pszResourceValue); HRESULT Commit ([in] DWORD dwReserved); }; typedef [hidden] enum SPLOADOPTIONS { SPLO_STATIC = 0, SPLO_DYNAMIC = 1 } SPLOADOPTIONS; [object, local, uuid (2177db29-7f45-47d0-8554-067e91c80502), pointer_default (unique), restricted] interface ISpRecoGrammar : ISpGrammarBuilder { HRESULT GetGrammarId ([out] ULONGLONG *pullGrammarId); HRESULT GetRecoContext ([out] ISpRecoContext **ppRecoCtxt); HRESULT LoadCmdFromFile ([in, string] LPCWSTR pszFileName,[in] SPLOADOPTIONS Options); HRESULT LoadCmdFromObject ([in] REFCLSID rcid,[in, string] LPCWSTR pszGrammarName,[in] SPLOADOPTIONS Options); HRESULT LoadCmdFromResource ([in] HMODULE hModule,[in, string] LPCWSTR pszResourceName,[in, string] LPCWSTR pszResourceType,[in] WORD wLanguage,[in] SPLOADOPTIONS Options); HRESULT LoadCmdFromMemory ([in] const SPBINARYGRAMMAR *pGrammar,[in] SPLOADOPTIONS Options); HRESULT LoadCmdFromProprietaryGrammar ([in] REFGUID rguidParam,[in, string] LPCWSTR pszStringParam,[in] const void *pvDataPrarm,[in] ULONG cbDataSize,[in] SPLOADOPTIONS Options); HRESULT SetRuleState ([in, string] LPCWSTR pszName,[in] void *pReserved,[in] SPRULESTATE NewState); HRESULT SetRuleIdState ([in] ULONG ulRuleId,[in] SPRULESTATE NewState); HRESULT LoadDictation ([in, string] LPCWSTR pszTopicName,[in] SPLOADOPTIONS Options); HRESULT UnloadDictation (); HRESULT SetDictationState ([in] SPRULESTATE NewState); HRESULT SetWordSequenceData ([in] const WCHAR *pText,[in] ULONG cchText,[in] const SPTEXTSELECTIONINFO *pInfo); HRESULT SetTextSelection ([in] const SPTEXTSELECTIONINFO *pInfo); HRESULT IsPronounceable ([in, string] LPCWSTR pszWord,[out] SPWORDPRONOUNCEABLE *pWordPronounceable); HRESULT SetGrammarState ([in] SPGRAMMARSTATE eGrammarState); HRESULT SaveCmd ([in] IStream *pStream,[out, optional] LPWSTR *ppszCoMemErrorText); HRESULT GetGrammarState ([out] SPGRAMMARSTATE *peGrammarState); }; #if _SAPI_BLD_ >= 0x53 typedef enum SPMATCHINGMODE { AllWords = 0, Subsequence = 1, OrderedSubset = 3, SubsequenceContentRequired = 5, OrderedSubsetContentRequired = 7 } SPMATCHINGMODE; typedef enum PHONETICALPHABET { PA_Ipa = 0, PA_Ups = 1, PA_Sapi = 2, } PHONETICALPHABET; #endif #if _SAPI_BLD_ >= 0x53 [object, local, uuid (8ab10026-20cc-4b20-8c22-A49C9BA78F60), pointer_default (unique), restricted] interface ISpGrammarBuilder2 : IUnknown { HRESULT AddTextSubset ([in] SPSTATEHANDLE hFromState,[in] SPSTATEHANDLE hToState,[in] LPCWSTR psz,[in] SPMATCHINGMODE eMatchMode); HRESULT SetPhoneticAlphabet ([in] PHONETICALPHABET phoneticALphabet); } cpp_quote("#define SPRP_NORMAL 0") [object, local, uuid (4b37bc9e-9ed6-44a3-93d3-18f022b79ec3), pointer_default (unique), restricted] interface ISpRecoGrammar2 : IUnknown { HRESULT GetRules ([out] SPRULE **ppCoMemRules,[out] UINT *puNumRules); HRESULT LoadCmdFromFile2 ([in, string] LPCWSTR pszFileName,[in] SPLOADOPTIONS Options,[in, string] LPCWSTR pszSharingUri,[in, string] LPCWSTR pszBaseUri); HRESULT LoadCmdFromMemory2 ([in] const SPBINARYGRAMMAR *pGrammar,[in] SPLOADOPTIONS Options,[in, string] LPCWSTR pszSharingUri,[in, string] LPCWSTR pszBaseUri); HRESULT SetRulePriority ([in, string] LPCWSTR pszRuleName,[in] ULONG ulRuleId,[in] int nRulePriority); HRESULT SetRuleWeight ([in, string] LPCWSTR pszRuleName,[in] ULONG ulRuleId,[in] float flWeight); HRESULT SetDictationWeight ([in] float flWeight); HRESULT SetGrammarLoader ([in] ISpeechResourceLoader *pLoader); HRESULT SetSMLSecurityManager ([in] IInternetSecurityManager *pSMLSecurityManager); } [object, local, uuid (B9AC5783-FCD0-4b21-B119-B4F8DA8FD2C3), pointer_default (unique), dual] interface ISpeechResourceLoader : IDispatch { [id (1)] HRESULT LoadResource ([in] BSTR bstrResourceUri,[in] VARIANT_BOOL fAlwaysReload,[out] IUnknown **pStream,[out] BSTR *pbstrMIMEType,[out] VARIANT_BOOL *pfModified,[out] BSTR *pbstrRedirectUrl); [id (2)] HRESULT GetLocalCopy ([in] BSTR bstrResourceUri,[out] BSTR *pbstrLocalPath,[out] BSTR *pbstrMIMEType,[out] BSTR *pbstrRedirectUrl); [id (3)] HRESULT ReleaseLocalCopy ([in] BSTR pbstrLocalPath); } #endif typedef [restricted, hidden] struct SPRECOCONTEXTSTATUS { SPINTERFERENCE eInterference; WCHAR szRequestTypeOfUI[255]; DWORD dwReserved1; DWORD dwReserved2; } SPRECOCONTEXTSTATUS; typedef [hidden] enum SPBOOKMARKOPTIONS { SPBO_NONE = 0, SPBO_PAUSE = 0x1 #if _SAPI_BLD_ >= 0x53 , SPBO_AHEAD = 0x2, SPBO_TIME_UNITS = 0x4 #endif } SPBOOKMARKOPTIONS; typedef [hidden] enum SPAUDIOOPTIONS { SPAO_NONE = 0, SPAO_RETAIN_AUDIO = 0x1 } SPAUDIOOPTIONS; [object, local, uuid (F740A62F-7c15-489e-8234-940a33d9272d), pointer_default (unique), restricted] interface ISpRecoContext : ISpEventSource { HRESULT GetRecognizer ([out] ISpRecognizer **ppRecognizer); HRESULT CreateGrammar ([in] ULONGLONG ullGrammarId,[out] ISpRecoGrammar **ppGrammar); HRESULT GetStatus ([out] SPRECOCONTEXTSTATUS *pStatus); HRESULT GetMaxAlternates ([in] ULONG *pcAlternates); HRESULT SetMaxAlternates ([in] ULONG cAlternates); HRESULT SetAudioOptions ([in] SPAUDIOOPTIONS Options,[in] const GUID *pAudioFormatId,[in] const WAVEFORMATEX *pWaveFormatEx); HRESULT GetAudioOptions ([in] SPAUDIOOPTIONS *pOptions,[out] GUID *pAudioFormatId,[out] WAVEFORMATEX **ppCoMemWFEX); HRESULT DeserializeResult ([in] const SPSERIALIZEDRESULT *pSerializedResult,[out] ISpRecoResult **ppResult); HRESULT Bookmark ([in] SPBOOKMARKOPTIONS Options,[in] ULONGLONG ullStreamPosition,[in] LPARAM lparamEvent); HRESULT SetAdaptationData ([in, string] LPCWSTR pAdaptationData,[in] const ULONG cch); HRESULT Pause ([in] DWORD dwReserved); HRESULT Resume ([in] DWORD dwReserved); HRESULT SetVoice ([in] ISpVoice *pVoice,[in] WINBOOL fAllowFormatChanges); HRESULT GetVoice ([out] ISpVoice **ppVoice); HRESULT SetVoicePurgeEvent ([in] ULONGLONG ullEventInterest); HRESULT GetVoicePurgeEvent ([out] ULONGLONG *pullEventInterest); HRESULT SetContextState ([in] SPCONTEXTSTATE eContextState); HRESULT GetContextState ([out] SPCONTEXTSTATE *peContextState); }; #if _SAPI_BLD_ >= 0x53 typedef [hidden] enum SPGRAMMAROPTIONS { SPGO_SAPI = 0x1, SPGO_SRGS = 0x2, SPGO_UPS = 0x4, SPGO_SRGS_MS_SCRIPT = 0x8, SPGO_FILE = 0x10, SPGO_HTTP = 0x20, SPGO_RES = 0x40, SPGO_OBJECT = 0x80, SPGO_SRGS_W3C_SCRIPT = 0x100, SPGO_SRGS_STG_SCRIPT = 0x200, SPGO_SRGS_SCRIPT = SPGO_SRGS | SPGO_SRGS_MS_SCRIPT | SPGO_SRGS_W3C_SCRIPT | SPGO_SRGS_STG_SCRIPT, SPGO_DEFAULT = 0x03fb, SPGO_ALL = 0x03ff } SPGRAMMAROPTIONS; typedef [hidden] enum SPADAPTATIONSETTINGS { SPADS_Default = 0x0, SPADS_CurrentRecognizer = 0x1, SPADS_RecoProfile = 0x2, SPADS_Immediate = 0x4, SPADS_Reset = 0x8, SPADS_HighVolumeDataSource = 0x10 } SPADAPTATIONSETTINGS; typedef [hidden] enum SPADAPTATIONRELEVANCE { SPAR_Unknown = 0, SPAR_Low = 1, SPAR_Medium = 2, SPAR_High = 3 } SPADAPTATIONRELEVANCE; #endif #if _SAPI_BLD_ >= 0x53 [object, local, uuid (BEAD311C-52ff-437f-9464-6b21054ca73d), pointer_default (unique), restricted] interface ISpRecoContext2 : IUnknown { HRESULT SetGrammarOptions ([in] DWORD eGrammarOptions); HRESULT GetGrammarOptions ([out] DWORD *peGrammarOptions); HRESULT SetAdaptationData2 ([in] LPCWSTR pAdaptationData,[in] const ULONG cch,[in] LPCWSTR pTopicName,[in] DWORD eAdaptationSettings,[in] SPADAPTATIONRELEVANCE eRelevance); } #endif [object, local, uuid (5b4fb971-B115-4de1-AD97-E482E3BF6EE4), pointer_default (unique), restricted] interface ISpProperties : IUnknown { HRESULT SetPropertyNum ([in] LPCWSTR pName,[in] LONG lValue); HRESULT GetPropertyNum ([in] LPCWSTR pName,[out] LONG *plValue); HRESULT SetPropertyString ([in] LPCWSTR pName,[in] LPCWSTR pValue); HRESULT GetPropertyString ([in] LPCWSTR pName,[out, string] LPWSTR *ppCoMemValue); }; const ULONG SP_MAX_LANGIDS = 20; typedef [restricted, hidden] struct SPRECOGNIZERSTATUS { SPAUDIOSTATUS AudioStatus; ULONGLONG ullRecognitionStreamPos; ULONG ulStreamNumber; ULONG ulNumActive; CLSID clsidEngine; ULONG cLangIDs; LANGID aLangID[SP_MAX_LANGIDS]; ULONGLONG ullRecognitionStreamTime; } SPRECOGNIZERSTATUS; typedef [hidden] enum SPWAVEFORMATTYPE { SPWF_INPUT, SPWF_SRENGINE } SPSTREAMFORMATTYPE; typedef [hidden] enum SPRECOSTATE { SPRST_INACTIVE, SPRST_ACTIVE, SPRST_ACTIVE_ALWAYS, SPRST_INACTIVE_WITH_PURGE, SPRST_NUM_STATES } SPRECOSTATE; #if _SAPI_BLD_ >= 0x54 typedef enum SPCATEGORYTYPE { SPCT_COMMAND, SPCT_DICTATION, SPCT_SLEEP, SPCT_SUB_COMMAND, SPCT_SUB_DICTATION } SPCATEGORYTYPE; #endif [object, local, uuid (C2B5F241-DAA0-4507-9e16-5a1eaa2b7a5c), pointer_default (unique), restricted] interface ISpRecognizer : ISpProperties { HRESULT SetRecognizer ([in] ISpObjectToken *pRecognizer); HRESULT GetRecognizer ([out] ISpObjectToken **ppRecognizer); HRESULT SetInput ([in] IUnknown *pUnkInput,[in] WINBOOL fAllowFormatChanges); HRESULT GetInputObjectToken ([out] ISpObjectToken **ppToken); HRESULT GetInputStream ([out] ISpStreamFormat **ppStream); HRESULT CreateRecoContext ([out] ISpRecoContext **ppNewCtxt); HRESULT GetRecoProfile ([out] ISpObjectToken **ppToken); HRESULT SetRecoProfile ([in] ISpObjectToken *pToken); HRESULT IsSharedInstance (void); HRESULT GetRecoState ([out] SPRECOSTATE *pState); HRESULT SetRecoState ([in] SPRECOSTATE NewState); HRESULT GetStatus ([out] SPRECOGNIZERSTATUS *pStatus); HRESULT GetFormat ([in] SPSTREAMFORMATTYPE WaveFormatType,[out] GUID *pFormatId,[out] WAVEFORMATEX **ppCoMemWFEX); [local] HRESULT IsUISupported ([in] LPCWSTR pszTypeOfUI,[in] void *pvExtraData,[in] ULONG cbExtraData,[out] WINBOOL *pfSupported); [local] HRESULT DisplayUI ([in] HWND hwndParent,[in] LPCWSTR pszTitle,[in] LPCWSTR pszTypeOfUI,[in] void *pvExtraData,[in] ULONG cbExtraData); HRESULT EmulateRecognition ([in] ISpPhrase *pPhrase); }; #if _SAPI_BLD_ >= 0x53 [object, uuid (21b501a0-0ec7-46c9-92c3-A2BC784C54B9), pointer_default (unique), restricted] interface ISpSerializeState : IUnknown { HRESULT GetSerializedState ([out] BYTE **ppbData,[out] ULONG *pulSize,[in] DWORD dwReserved); HRESULT SetSerializedState ([in] BYTE *pbData,[in] ULONG ulSize,[in] DWORD dwReserved); }; [object, local, uuid (8fc6d974-C81E-4098-93c5-0147f61ed4d3), pointer_default (unique), restricted] interface ISpRecognizer2 : IUnknown { HRESULT EmulateRecognitionEx ([in] ISpPhrase *pPhrase,[in] DWORD dwCompareFlags); HRESULT SetTrainingState ([in] WINBOOL fDoingTraining,[in] WINBOOL fAdaptFromTrainingData); HRESULT ResetAcousticModelAdaptation (); } #if _SAPI_BLD_ >= 0x54 [object, local, uuid (DA0CD0F9-14a2-4f09-8c2a-85cc48979345), pointer_default (unique), restricted] interface ISpRecoCategory : IUnknown { HRESULT GetType ([out] SPCATEGORYTYPE *peCategoryType); } [object, local, uuid (DF1B943C-5838-4aa2-8706-D7CD5B333499), pointer_default (unique), restricted] interface ISpRecognizer3 : IUnknown { HRESULT GetCategory ([in] SPCATEGORYTYPE categoryType,[out] ISpRecoCategory **ppCategory); HRESULT SetActiveCategory ([in] ISpRecoCategory *pCategory); HRESULT GetActiveCategory ([out] ISpRecoCategory **ppCategory); } #endif typedef [restricted, hidden] struct SPNORMALIZATIONLIST { ULONG ulSize; WCHAR **ppszzNormalizedList; } SPNORMALIZATIONLIST; [object, local, uuid (C360CE4B-76d1-4214-AD68-52657d5083da), pointer_default (unique), restricted] interface ISpEnginePronunciation : IUnknown { HRESULT Normalize ([in, string] LPCWSTR pszWord,[in, string] LPCWSTR pszLeftContext,[in, string] LPCWSTR pszRightContext,[in] LANGID LangID,[out] SPNORMALIZATIONLIST *pNormalizationList); HRESULT GetPronunciations ([in, string] LPCWSTR pszWord,[in, string] LPCWSTR pszLeftContext,[in, string] LPCWSTR pszRightContext,[in] LANGID LangID,[in, out] SPWORDPRONUNCIATIONLIST *pEnginePronunciationList); } typedef [restricted, hidden] struct SPDISPLAYTOKEN { const WCHAR *pszLexical; const WCHAR *pszDisplay; BYTE bDisplayAttributes; } SPDISPLAYTOKEN; typedef [restricted, hidden] struct SPDISPLAYPHRASE { ULONG ulNumTokens; SPDISPLAYTOKEN *pTokens; } SPDISPLAYPHRASE; [object, local, uuid (C8D7C7E2-0dde-44b7-AFE3-B0C991FBEB5E), pointer_default (unique)] interface ISpDisplayAlternates : IUnknown { HRESULT GetDisplayAlternates ([in] const SPDISPLAYPHRASE *pPhrase,[in] ULONG cRequestCount,[out] SPDISPLAYPHRASE **ppCoMemPhrases,[out] ULONG *pcPhrasesReturned); HRESULT SetFullStopTrailSpace ([in] ULONG ulTrailSpace); } #endif [uuid (C866CA3A-32f7-11d2-9602-00c04f8ee628), version (5.4)] library SpeechLib { importlib ("stdole32.tlb"); importlib ("stdole2.tlb"); interface ISpeechDataKey; interface ISpeechObjectToken; interface ISpeechObjectTokens; interface ISpeechObjectTokenCategory; interface ISpeechAudioBufferInfo; interface ISpeechAudioStatus; interface ISpeechAudioFormat; interface ISpeechWaveFormatEx; interface ISpeechBaseStream; interface ISpeechFileStream; interface ISpeechMemoryStream; interface ISpeechCustomStream; interface ISpeechAudio; interface ISpeechMMSysAudio; interface ISpeechVoice; interface ISpeechVoiceStatus; dispinterface _ISpeechVoiceEvents; interface ISpeechRecognizer; interface ISpeechRecognizerStatus; interface ISpeechRecoContext; interface ISpeechRecoGrammar; dispinterface _ISpeechRecoContextEvents; interface ISpeechGrammarRule; interface ISpeechGrammarRules; interface ISpeechGrammarRuleState; interface ISpeechGrammarRuleStateTransition; interface ISpeechGrammarRuleStateTransitions; interface ISpeechTextSelectionInformation; interface ISpeechRecoResult; #if _SAPI_BLD_ >= 0x53 interface ISpeechRecoResult2; #endif interface ISpeechRecoResultTimes; interface ISpeechPhraseAlternate; interface ISpeechPhraseAlternates; interface ISpeechPhraseInfo; interface ISpeechPhraseElement; interface ISpeechPhraseElements; interface ISpeechPhraseReplacement; interface ISpeechPhraseReplacements; interface ISpeechPhraseProperty; interface ISpeechPhraseProperties; interface ISpeechPhraseRule; interface ISpeechPhraseRules; interface ISpeechLexicon; interface ISpeechLexiconWords; interface ISpeechLexiconWord; interface ISpeechLexiconPronunciations; interface ISpeechLexiconPronunciation; typedef long SpeechLanguageId; cpp_quote("#define __SpeechStringConstants_MODULE_DEFINED__") [uuid (E58442E4-0c80-402c-9559-867337a39765)] module SpeechStringConstants { const BSTR SpeechRegistryUserRoot = L"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Speech"; const BSTR SpeechRegistryLocalMachineRoot = L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech"; const BSTR SpeechCategoryAudioOut = L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\AudioOutput"; const BSTR SpeechCategoryAudioIn = L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\AudioInput"; const BSTR SpeechCategoryVoices = L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Voices"; const BSTR SpeechCategoryRecognizers = L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\Recognizers"; const BSTR SpeechCategoryAppLexicons = L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\AppLexicons"; const BSTR SpeechCategoryPhoneConverters = L"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\PhoneConverters"; const BSTR SpeechCategoryRecoProfiles = L"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Speech\\RecoProfiles"; const BSTR SpeechTokenIdUserLexicon = L"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Speech\\CurrentUserLexicon"; const BSTR SpeechTokenValueCLSID = L"CLSID"; const BSTR SpeechTokenKeyFiles = L"Files"; const BSTR SpeechTokenKeyUI = L"UI"; const BSTR SpeechTokenKeyAttributes = L"Attributes"; const BSTR SpeechVoiceCategoryTTSRate = L"DefaultTTSRate"; const BSTR SpeechPropertyResourceUsage = L"ResourceUsage"; const BSTR SpeechPropertyHighConfidenceThreshold = L"HighConfidenceThreshold"; const BSTR SpeechPropertyNormalConfidenceThreshold = L"NormalConfidenceThreshold"; const BSTR SpeechPropertyLowConfidenceThreshold = L"LowConfidenceThreshold"; const BSTR SpeechPropertyResponseSpeed = L"ResponseSpeed"; const BSTR SpeechPropertyComplexResponseSpeed = L"ComplexResponseSpeed"; const BSTR SpeechPropertyAdaptationOn = L"AdaptationOn"; const BSTR SpeechDictationTopicSpelling = L"Spelling"; const BSTR SpeechGrammarTagWildcard = L"..."; const BSTR SpeechGrammarTagDictation = L"*"; const BSTR SpeechGrammarTagUnlimitedDictation = L"*+"; const BSTR SpeechEngineProperties = L"EngineProperties"; const BSTR SpeechAddRemoveWord = L"AddRemoveWord"; const BSTR SpeechUserTraining = L"UserTraining"; const BSTR SpeechMicTraining = L"MicTraining"; const BSTR SpeechRecoProfileProperties = L"RecoProfileProperties"; const BSTR SpeechAudioProperties = L"AudioProperties"; const BSTR SpeechAudioVolume = L"AudioVolume"; const BSTR SpeechVoiceSkipTypeSentence = L"Sentence"; const BSTR SpeechAudioFormatGUIDWave = L"{C31ADBAE-527F-4ff5-A230-F62BB61FF70C}"; const BSTR SpeechAudioFormatGUIDText = L"{7CEEF9F9-3D13-11d2-9EE7-00C04F797396}"; }; [uuid (F3E092B2-6bdc-410f-BCB2-4c5ed4424180)] module SpeechConstants { const float Speech_Default_Weight = DEFAULT_WEIGHT; const LONG Speech_Max_Word_Length = SP_MAX_WORD_LENGTH; const LONG Speech_Max_Pron_Length = SP_MAX_PRON_LENGTH; const LONG Speech_StreamPos_Asap = SP_STREAMPOS_ASAP; const LONG Speech_StreamPos_RealTime = SP_STREAMPOS_REALTIME; const LONG SpeechAllElements = SPPR_ALL_ELEMENTS; }; 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 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; typedef enum SpeechDataKeyLocation { SDKLDefaultLocation = SPDKL_DefaultLocation, SDKLCurrentUser = SPDKL_CurrentUser, SDKLLocalMachine = SPDKL_LocalMachine, SDKLCurrentConfig = SPDKL_CurrentConfig } SpeechDataKeyLocation; #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 enum SpeechTokenShellFolder { STSF_AppData = 0x001a, STSF_LocalAppData = 0x001c, STSF_CommonAppData = 0x0023, STSF_FlagCreate = 0x8000 } SpeechTokenShellFolder; typedef [hidden] enum DISPID_SpeechObjectTokens { DISPID_SOTsCount = 1, DISPID_SOTsItem = DISPID_VALUE, DISPID_SOTs_NewEnum = DISPID_NEWENUM } DISPID_SpeechObjectTokens; typedef [hidden] enum DISPID_SpeechObjectTokenCategory { DISPID_SOTCId = 1, DISPID_SOTCDefault, DISPID_SOTCSetId, DISPID_SOTCGetDataKey, DISPID_SOTCEnumerateTokens, } DISPID_SpeechObjectTokenCategory; [object, uuid (CE17C09B-4efa-44d5-A4C9-59d9585ab0cd), dual, pointer_default (unique)] interface ISpeechDataKey : IDispatch { [id (DISPID_SDKSetBinaryValue)] HRESULT SetBinaryValue ([in]const BSTR ValueName,[in]VARIANT Value); [id (DISPID_SDKGetBinaryValue)] HRESULT GetBinaryValue ([in]const BSTR ValueName,[out, retval]VARIANT *Value); [id (DISPID_SDKSetStringValue)] HRESULT SetStringValue ([in]const BSTR ValueName,[in]const BSTR Value); [id (DISPID_SDKGetStringValue)] HRESULT GetStringValue ([in]const BSTR ValueName,[out, retval]BSTR *Value); [id (DISPID_SDKSetLongValue)] HRESULT SetLongValue ([in]const BSTR ValueName,[in]long Value); [id (DISPID_SDKGetlongValue)] HRESULT GetLongValue ([in]const BSTR ValueName,[out, retval]long *Value); [id (DISPID_SDKOpenKey)] HRESULT OpenKey ([in]const BSTR SubKeyName,[out, retval]ISpeechDataKey **SubKey); [id (DISPID_SDKCreateKey)] HRESULT CreateKey ([in]const BSTR SubKeyName,[out, retval]ISpeechDataKey **SubKey); [id (DISPID_SDKDeleteKey)] HRESULT DeleteKey ([in]const BSTR SubKeyName); [id (DISPID_SDKDeleteValue)] HRESULT DeleteValue ([in]const BSTR ValueName); [id (DISPID_SDKEnumKeys)] HRESULT EnumKeys ([in]long Index,[out, retval]BSTR *SubKeyName); [id (DISPID_SDKEnumValues)] HRESULT EnumValues ([in]long Index,[out, retval]BSTR *ValueName); }; [object, uuid (C74A3ADC-B727-4500-A84A-B526721C8B8C), dual, pointer_default (unique)] interface ISpeechObjectToken : IDispatch { [propget, id (DISPID_SOTId)] HRESULT Id ([out, retval]BSTR *ObjectId); [propget, id (DISPID_SOTDataKey), hidden] HRESULT DataKey ([out, retval]ISpeechDataKey **DataKey); [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 (L"")] BSTR CategoryID,[in, defaultvalue (0)]VARIANT_BOOL CreateIfNotExist); [id (DISPID_SOTGetAttribute)] HRESULT GetAttribute ([in] BSTR AttributeName,[out, retval]BSTR *AttributeValue); [id (DISPID_SOTCreateInstance)] HRESULT CreateInstance ([in, defaultvalue (NULL)] IUnknown *pUnkOuter,[in, defaultvalue (STCAll)] SpeechTokenContext ClsContext,[out, retval]IUnknown **Object); [hidden, id (DISPID_SOTRemove)] HRESULT Remove ([in]BSTR ObjectStorageCLSID); [hidden, id (DISPID_SOTGetStorageFileName)] HRESULT GetStorageFileName ([in]BSTR ObjectStorageCLSID,[in]BSTR KeyName,[in]BSTR FileName,[in]SpeechTokenShellFolder Folder,[out, retval]BSTR *FilePath); [hidden, id (DISPID_SOTRemoveStorageFileName)] HRESULT RemoveStorageFileName ([in]BSTR ObjectStorageCLSID,[in]BSTR KeyName,[in]VARIANT_BOOL DeleteFile); [hidden, id (DISPID_SOTIsUISupported)] HRESULT IsUISupported ([in]const BSTR TypeOfUI,[in, defaultvalue (NULL)]const VARIANT *ExtraData,[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 TypeOfUI,[in, defaultvalue (NULL)]const VARIANT *ExtraData,[in, defaultvalue (NULL)]IUnknown *Object); [id (DISPID_SOTMatchesAttributes)] HRESULT MatchesAttributes ([in]BSTR Attributes,[out, retval] VARIANT_BOOL *Matches); }; [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 **ppEnumVARIANT); }; [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 TokenId); [propget, id (DISPID_SOTCDefault)] HRESULT Default ([out, retval] BSTR *TokenId); [id (DISPID_SOTCSetId)] HRESULT SetId ([in] const BSTR Id,[in, defaultvalue (0)]VARIANT_BOOL CreateIfNotExist); [hidden, id (DISPID_SOTCGetDataKey)] HRESULT GetDataKey ([in, defaultvalue (SDKLDefaultLocation)]SpeechDataKeyLocation Location,[out, retval]ISpeechDataKey **DataKey); [id (DISPID_SOTCEnumerateTokens)] HRESULT EnumerateTokens ([in, defaultvalue (L"")]BSTR RequiredAttributes,[in, defaultvalue (L"")]BSTR OptionalAttributes,[out, retval]ISpeechObjectTokens **Tokens); }; 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; typedef [hidden] enum DISPID_SpeechBaseStream { DISPID_SBSFormat = 1, DISPID_SBSRead, DISPID_SBSWrite, DISPID_SBSSeek } DISPID_SpeechBaseStream; typedef enum SpeechStreamSeekPositionType { SSSPTRelativeToStart = STREAM_SEEK_SET, SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR, SSSPTRelativeToEnd = STREAM_SEEK_END } SpeechStreamSeekPositionType; typedef [hidden] enum DISPID_SpeechAudio { DISPID_SAStatus = 200, DISPID_SABufferInfo, DISPID_SADefaultFormat, DISPID_SAVolume, DISPID_SABufferNotifySize, DISPID_SAEventHandle, DISPID_SASetState } DISPID_SpeechAudio; typedef enum SpeechAudioState { SASClosed = SPAS_CLOSED, SASStop = SPAS_STOP, SASPause = SPAS_PAUSE, SASRun = SPAS_RUN } SpeechAudioState; typedef [hidden] enum DISPID_SpeechMMSysAudio { DISPID_SMSADeviceId = 300, DISPID_SMSALineId, DISPID_SMSAMMHandle } DISPID_SpeechMMSysAudio; typedef [hidden] enum DISPID_SpeechFileStream { DISPID_SFSOpen = 100, DISPID_SFSClose } DISPID_SpeechFileStream; typedef enum SpeechStreamFileMode { SSFMOpenForRead = SPFM_OPEN_READONLY, SSFMOpenReadWrite = SPFM_OPEN_READWRITE, SSFMCreate = SPFM_CREATE, SSFMCreateForWrite = SPFM_CREATE_ALWAYS, } SpeechStreamFileMode; typedef [hidden] enum DISPID_SpeechCustomStream { DISPID_SCSBaseStream = 100 } DISPID_SpeechCustomStream; typedef [hidden] enum DISPID_SpeechMemoryStream { DISPID_SMSSetData = 100, DISPID_SMSGetData } DISPID_SpeechMemoryStream; typedef [hidden] enum DISPID_SpeechAudioStatus { DISPID_SASFreeBufferSpace = 1, DISPID_SASNonBlockingIO, DISPID_SASState, DISPID_SASCurrentSeekPosition, DISPID_SASCurrentDevicePosition } DISPID_SpeechAudioStatus; typedef [hidden] enum DISPID_SpeechAudioBufferInfo { DISPID_SABIMinNotification = 1, DISPID_SABIBufferSize, DISPID_SABIEventBias } DISPID_SpeechAudioBufferInfo; typedef [hidden] enum DISPID_SpeechWaveFormatEx { DISPID_SWFEFormatTag = 1, DISPID_SWFEChannels, DISPID_SWFESamplesPerSec, DISPID_SWFEAvgBytesPerSec, DISPID_SWFEBlockAlign, DISPID_SWFEBitsPerSample, DISPID_SWFEExtraData } DISPID_SpeechWaveFormatEx; 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; typedef enum SpeechVoicePriority { SVPNormal = SPVPRI_NORMAL, SVPAlert = SPVPRI_ALERT, SVPOver = SPVPRI_OVER } SpeechVoicePriority; 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, #if _SAPI_BLD_ >= 0x53 SVSFParseSapi = SPF_PARSE_SAPI, SVSFParseSsml = SPF_PARSE_SSML, SVSFParseAutodetect = SPF_PARSE_AUTODETECT, #endif SVSFNLPMask = SPF_NLP_MASK, #if _SAPI_BLD_ >= 0x53 SVSFParseMask = SPF_PARSE_MASK, #endif SVSFVoiceMask = SPF_VOICE_MASK, SVSFUnusedFlags = SPF_UNUSED_FLAGS, } SpeechVoiceSpeakFlags; typedef enum SpeechVoiceEvents { SVEStartInputStream = 0x2, SVEEndInputStream = 0x4, SVEVoiceChange = 0x8, SVEBookmark = 0x10, SVEWordBoundary = 0x20, SVEPhoneme = 0x40, SVESentenceBoundary = 0x80, SVEViseme = 0x100, SVEAudioLevel = 0x200, SVEPrivate = 0x8000, SVEAllEvents = 0x83fe } SpeechVoiceEvents; 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; typedef enum SpeechRunState { SRSEDone = SPRS_DONE, SRSEIsSpeaking = SPRS_IS_SPEAKING } SpeechRunState; [object, uuid (E6E9C590-3e18-40e3-8299-061f98bde7c7), dual, pointer_default (unique)] interface ISpeechAudioFormat : IDispatch { [propget, id (DISPID_SAFType)] HRESULT Type ([out, retval]SpeechAudioFormatType *AudioFormat); [propput, id (DISPID_SAFType)] HRESULT Type ([in]SpeechAudioFormatType AudioFormat); [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 **SpeechWaveFormatEx); [hidden, id (DISPID_SAFSetWaveFormatEx)] HRESULT SetWaveFormatEx ([in]ISpeechWaveFormatEx *SpeechWaveFormatEx); } [object, uuid (6450336f-7d49-4ced-8097-49d6dee37294), dual, pointer_default (unique)] interface ISpeechBaseStream : IDispatch { [propget, id (DISPID_SBSFormat)] HRESULT Format ([out, retval]ISpeechAudioFormat **AudioFormat); [propputref, id (DISPID_SBSFormat)] HRESULT Format ([in]ISpeechAudioFormat *AudioFormat); [id (DISPID_SBSRead)] HRESULT Read ([out]VARIANT *Buffer,[in]long NumberOfBytes,[out, retval]long *BytesRead); [id (DISPID_SBSWrite)] HRESULT Write ([in]VARIANT Buffer,[out, retval]long *BytesWritten); [id (DISPID_SBSSeek)] HRESULT Seek ([in]VARIANT Position,[in, defaultvalue (SSSPTRelativeToStart)]SpeechStreamSeekPositionType Origin,[out, retval]VARIANT *NewPosition); }; [object, uuid (CFF8E175-019e-11d3-A08E-00c04f8ef9b5), dual, pointer_default (unique)] interface ISpeechAudio : ISpeechBaseStream { [propget, id (DISPID_SAStatus)] HRESULT Status ([out, retval]ISpeechAudioStatus **Status); [propget, id (DISPID_SABufferInfo)] HRESULT BufferInfo ([out, retval]ISpeechAudioBufferInfo **BufferInfo); [propget, id (DISPID_SADefaultFormat)] HRESULT DefaultFormat ([out, retval]ISpeechAudioFormat **StreamFormat); [propget, id (DISPID_SAVolume)] HRESULT Volume ([out, retval]long *Volume); [propput, id (DISPID_SAVolume)] HRESULT Volume ([in]long Volume); [propget, id (DISPID_SABufferNotifySize)] HRESULT BufferNotifySize ([out, retval]long *BufferNotifySize); [propput, id (DISPID_SABufferNotifySize)] HRESULT BufferNotifySize ([in]long BufferNotifySize); [propget, hidden, id (DISPID_SAEventHandle)] HRESULT EventHandle ([out, retval]long *EventHandle); [id (DISPID_SASetState), hidden] HRESULT SetState ([in] SpeechAudioState State); }; [object, uuid (3c76af6d-1fd7-4831-81d1-3b71d5a13c44), dual, pointer_default (unique)] interface ISpeechMMSysAudio : ISpeechAudio { [propget, id (DISPID_SMSADeviceId)] HRESULT DeviceId ([out, retval] long *DeviceId); [propput, id (DISPID_SMSADeviceId)] HRESULT DeviceId ([in] long DeviceId); [propget, id (DISPID_SMSALineId)] HRESULT LineId ([out, retval] long *LineId); [propput, id (DISPID_SMSALineId)] HRESULT LineId ([in] long LineId); [propget, hidden, id (DISPID_SMSAMMHandle)] HRESULT MMHandle ([out, retval] long *Handle); }; [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 FileMode,[in, defaultvalue (0)]VARIANT_BOOL DoEvents); [id (DISPID_SFSClose)] HRESULT Close (void); }; [object, uuid (1a9e9f4f-104f-4db8-A115-EFD7FD0C97AE), dual, pointer_default (unique)] interface ISpeechCustomStream : ISpeechBaseStream { [propget, id (DISPID_SCSBaseStream)] HRESULT BaseStream ([out, retval] IUnknown **ppUnkStream); [propputref, id (DISPID_SCSBaseStream)] HRESULT BaseStream ([in] IUnknown *pUnkStream); }; [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 *pData); }; [object, uuid (C62D9C91-7458-47f6-862d-1ef86fb0b278), dual, pointer_default (unique)] interface ISpeechAudioStatus : IDispatch { [propget, id (DISPID_SASFreeBufferSpace)] HRESULT FreeBufferSpace ([out, retval]long *FreeBufferSpace); [propget, id (DISPID_SASNonBlockingIO)] HRESULT NonBlockingIO ([out, retval]long *NonBlockingIO); [propget, id (DISPID_SASState)] HRESULT State ([out, retval] SpeechAudioState *State); [propget, id (DISPID_SASCurrentSeekPosition)] HRESULT CurrentSeekPosition ([out, retval]VARIANT *CurrentSeekPosition); [propget, id (DISPID_SASCurrentDevicePosition)] HRESULT CurrentDevicePosition ([out, retval]VARIANT *CurrentDevicePosition); }; [object, uuid (11b103d8-1142-4edf-A093-82fb3915f8cc), dual, pointer_default (unique)] interface ISpeechAudioBufferInfo : IDispatch { [propget, id (DISPID_SABIMinNotification)] HRESULT MinNotification ([out, retval]long *MinNotification); [propput, id (DISPID_SABIMinNotification)] HRESULT MinNotification ([in]long MinNotification); [propget, id (DISPID_SABIBufferSize)] HRESULT BufferSize ([out, retval]long *BufferSize); [propput, id (DISPID_SABIBufferSize)] HRESULT BufferSize ([in]long BufferSize); [propget, id (DISPID_SABIEventBias)] HRESULT EventBias ([out, retval]long *EventBias); [propput, id (DISPID_SABIEventBias)] HRESULT EventBias ([in]long EventBias); } [object, uuid (7a1ef0d5-1581-4741-88e4-209a49f11a10), dual, pointer_default (unique)] interface ISpeechWaveFormatEx : IDispatch { [propget, id (DISPID_SWFEFormatTag)] HRESULT FormatTag ([out, retval]short *FormatTag); [propput, id (DISPID_SWFEFormatTag)] HRESULT FormatTag ([in]short FormatTag); [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 *SamplesPerSec); [propput, id (DISPID_SWFESamplesPerSec)] HRESULT SamplesPerSec ([in]long SamplesPerSec); [propget, id (DISPID_SWFEAvgBytesPerSec)] HRESULT AvgBytesPerSec ([out, retval]long *AvgBytesPerSec); [propput, id (DISPID_SWFEAvgBytesPerSec)] HRESULT AvgBytesPerSec ([in]long AvgBytesPerSec); [propget, id (DISPID_SWFEBlockAlign)] HRESULT BlockAlign ([out, retval]short *BlockAlign); [propput, id (DISPID_SWFEBlockAlign)] HRESULT BlockAlign ([in]short BlockAlign); [propget, id (DISPID_SWFEBitsPerSample)] HRESULT BitsPerSample ([out, retval]short *BitsPerSample); [propput, id (DISPID_SWFEBitsPerSample)] HRESULT BitsPerSample ([in]short BitsPerSample); [propget, id (DISPID_SWFEExtraData)] HRESULT ExtraData ([out, retval]VARIANT *ExtraData); [propput, id (DISPID_SWFEExtraData)] HRESULT ExtraData ([in]VARIANT ExtraData); } [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 **AudioOutput); [propputref, id (DISPID_SVAudioOutput)] HRESULT AudioOutput ([in]ISpeechObjectToken *AudioOutput); [propget, id (DISPID_SVAudioOutputStream)] HRESULT AudioOutputStream ([out, retval]ISpeechBaseStream **AudioOutputStream); [propputref, id (DISPID_SVAudioOutputStream)] HRESULT AudioOutputStream ([in]ISpeechBaseStream *AudioOutputStream); [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 *EventInterestFlags); [propput, id (DISPID_SVEventInterests)] HRESULT EventInterests ([in] SpeechVoiceEvents EventInterestFlags); [propput, id (DISPID_SVPriority)] HRESULT Priority ([in] SpeechVoicePriority Priority); [propget, id (DISPID_SVPriority)] HRESULT Priority ([out, retval] SpeechVoicePriority *Priority); [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 msTimeout); [propget, id (DISPID_SVSyncronousSpeakTimeout)] HRESULT SynchronousSpeakTimeout ([out, retval] long *msTimeout); [id (DISPID_SVSpeak)] HRESULT Speak ([in] BSTR Text,[in, defaultvalue (SPF_DEFAULT)] SpeechVoiceSpeakFlags Flags,[out, retval]long *StreamNumber); [id (DISPID_SVSpeakStream)] HRESULT SpeakStream ([in] ISpeechBaseStream *Stream,[in, defaultvalue (SPF_DEFAULT)] SpeechVoiceSpeakFlags Flags,[out, retval]long *StreamNumber); [id (DISPID_SVPause)] HRESULT Pause (void); [id (DISPID_SVResume)] HRESULT Resume (void); [id (DISPID_SVSkip)] HRESULT Skip ([in]const BSTR Type,[in]long NumItems,[out, retval]long *NumSkipped); [id (DISPID_SVGetVoices)] HRESULT GetVoices ([in, defaultvalue (L"")]BSTR RequiredAttributes,[in, defaultvalue (L"")]BSTR OptionalAttributes,[out, retval]ISpeechObjectTokens **ObjectTokens); [id (DISPID_SVGetAudioOutputs)] HRESULT GetAudioOutputs ([in, defaultvalue (L"")]BSTR RequiredAttributes,[in, defaultvalue (L"")]BSTR OptionalAttributes,[out, retval]ISpeechObjectTokens **ObjectTokens); [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 TypeOfUI,[in, defaultvalue (NULL)]const VARIANT *ExtraData,[out, retval] VARIANT_BOOL *Supported); [id (DISPID_SVDisplayUI)] HRESULT DisplayUI ([in]long hWndParent,[in]BSTR Title,[in]const BSTR TypeOfUI,[in, defaultvalue (NULL)]const VARIANT *ExtraData); }; [object, uuid (8be47b07-57f6-11d2-9eee-00c04f797396), dual, pointer_default (unique)] interface ISpeechVoiceStatus : IDispatch { [propget, id (DISPID_SVSCurrentStreamNumber)] HRESULT CurrentStreamNumber ([out, retval] long *StreamNumber); [propget, id (DISPID_SVSLastStreamNumberQueued)] HRESULT LastStreamNumberQueued ([out, retval] long *StreamNumber); [propget, id (DISPID_SVSLastResult)] HRESULT LastHResult ([out, retval]long *HResult); [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 *BookmarkId); [propget, id (DISPID_SVSPhonemeId)] HRESULT PhonemeId ([out, retval] short *PhoneId); [propget, id (DISPID_SVSVisemeId)] HRESULT VisemeId ([out, retval] short *VisemeId); }; typedef enum SpeechVisemeType { SVP_0 = 0, SVP_1, SVP_2, SVP_3, SVP_4, SVP_5, SVP_6, SVP_7, SVP_8, SVP_9, SVP_10, SVP_11, SVP_12, SVP_13, SVP_14, SVP_15, SVP_16, SVP_17, SVP_18, SVP_19, SVP_20, SVP_21, } SpeechVisemeType; typedef enum SpeechVisemeFeature { SVF_None = 0, SVF_Stressed = SPVFEATURE_STRESSED, SVF_Emphasis = SPVFEATURE_EMPHASIS } SpeechVisemeFeature; typedef [hidden] enum DISPID_SpeechVoiceEvent { DISPID_SVEStreamStart = 1, DISPID_SVEStreamEnd, DISPID_SVEVoiceChange, DISPID_SVEBookmark, DISPID_SVEWord, DISPID_SVEPhoneme, DISPID_SVESentenceBoundary, DISPID_SVEViseme, DISPID_SVEAudioLevel, DISPID_SVEEnginePrivate } DISPID_SpeechVoiceEvent; 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; 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 [hidden] enum DISPID_SpeechRecognizerStatus { DISPID_SRSAudioStatus = 1, DISPID_SRSCurrentStreamPosition, DISPID_SRSCurrentStreamNumber, DISPID_SRSNumberOfActiveRules, DISPID_SRSClsidEngine, DISPID_SRSSupportedLanguages } DISPID_SpeechRecognizerStatus; 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 enum SpeechRetainedAudioOptions { SRAONone = SPAO_NONE, SRAORetainAudio = SPAO_RETAIN_AUDIO } SpeechRetainedAudioOptions; typedef enum SpeechBookmarkOptions { SBONone = SPBO_NONE, SBOPause = SPBO_PAUSE } SpeechBookmarkOptions; 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 SpeechRecoEvents { SREStreamEnd = 0x1, SRESoundStart = 0x2, SRESoundEnd = 0x4, SREPhraseStart = 0x8, SRERecognition = 0x10, SREHypothesis = 0x20, SREBookmark = 0x40, SREPropertyNumChange = 0x80, SREPropertyStringChange = 0x100, SREFalseRecognition = 0x200, SREInterference = 0x400, SRERequestUI = 0x800, SREStateChange = 0x1000, SREAdaptation = 0x2000, SREStreamStart = 0x4000, SRERecoOtherContext = 0x8000, SREAudioLevel = 0x10000, SREPrivate = 0x40000, SREAllEvents = 0x5ffff } SpeechRecoEvents; typedef enum SpeechRecoContextState { SRCS_Disabled = SPCS_DISABLED, SRCS_Enabled = SPCS_ENABLED } SpeechRecoContextState; 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 SpeechLoadOption { SLOStatic = SPLO_STATIC, SLODynamic = SPLO_DYNAMIC } SpeechLoadOption; typedef enum SpeechWordPronounceable { SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE, SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE, SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE } SpeechWordPronounceable; typedef enum SpeechGrammarState { SGSEnabled = SPGS_ENABLED, SGSDisabled = SPGS_DISABLED, SGSExclusive = SPGS_EXCLUSIVE, } SpeechGrammarState; typedef enum SpeechRuleState { SGDSInactive = SPRS_INACTIVE, SGDSActive = SPRS_ACTIVE, SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE, #if _SAPI_BLD_ >= 0x053 SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED #endif } SpeechRuleState; typedef enum SpeechRuleAttributes { SRATopLevel = SPRAF_TopLevel, SRADefaultToActive = SPRAF_Active, SRAExport = SPRAF_Export, SRAImport = SPRAF_Import, SRAInterpreter = SPRAF_Interpreter, SRADynamic = SPRAF_Dynamic, #if _SAPI_BLD_ >= 0x053 SRARoot = SPRAF_Root #endif } SpeechRuleAttributes; typedef enum SpeechGrammarWordType { SGDisplay = SPWT_DISPLAY, SGLexical = SPWT_LEXICAL, SGPronounciation = SPWT_PRONUNCIATION, #if _SAPI_BLD_ >= 0x053 SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS #endif } SpeechGrammarWordType; typedef [hidden] enum DISPID_SpeechRecoContextEvents { DISPID_SRCEStartStream = 1, DISPID_SRCEEndStream, DISPID_SRCEBookmark, DISPID_SRCESoundStart, DISPID_SRCESoundEnd, DISPID_SRCEPhraseStart, DISPID_SRCERecognition, DISPID_SRCEHypothesis, DISPID_SRCEPropertyNumberChange, DISPID_SRCEPropertyStringChange, DISPID_SRCEFalseRecognition, DISPID_SRCEInterference, DISPID_SRCERequestUI, DISPID_SRCERecognizerStateChange, DISPID_SRCEAdaptation, DISPID_SRCERecognitionForOtherContext, DISPID_SRCEAudioLevel, DISPID_SRCEEnginePrivate } DISPID_SpeechRecoContextEvents; typedef enum SpeechRecognitionType { SRTStandard = 0, SRTAutopause = SPREF_AutoPause, SRTEmulated = SPREF_Emulated #if _SAPI_BLD_ >= 0x053 , SRTSMLTimeout = SPREF_SMLTimeout, SRTExtendableParse = SPREF_ExtendableParse, SRTReSent = SPREF_ReSent #endif } SpeechRecognitionType; 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_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; typedef [hidden] enum DISPID_SpeechGrammarRuleState { DISPID_SGRSRule = 1, DISPID_SGRSTransitions, DISPID_SGRSAddWordTransition, DISPID_SGRSAddRuleTransition, DISPID_SGRSAddSpecialTransition } DISPID_SpeechGrammarRuleState; typedef enum SpeechSpecialTransitionType { SSTTWildcard = 1, SSTTDictation, SSTTTextBuffer } SpeechSpecialTransitionType; typedef [hidden] enum DISPID_SpeechGrammarRuleStateTransitions { DISPID_SGRSTsCount = 1, DISPID_SGRSTsItem = DISPID_VALUE, DISPID_SGRSTs_NewEnum = DISPID_NEWENUM } DISPID_SpeechGrammarRuleStateTransitions; typedef [hidden] enum DISPID_SpeechGrammarRuleStateTransition { DISPID_SGRSTType = 1, DISPID_SGRSTText, DISPID_SGRSTRule, DISPID_SGRSTWeight, DISPID_SGRSTPropertyName, DISPID_SGRSTPropertyId, DISPID_SGRSTPropertyValue, DISPID_SGRSTNextState } DISPID_SpeechGrammarRuleStateTransition; typedef enum SpeechGrammarRuleStateTransitionType { SGRSTTEpsilon = 0, SGRSTTWord, SGRSTTRule, SGRSTTDictation, SGRSTTWildcard, SGRSTTTextBuffer } SpeechGrammarRuleStateTransitionType; typedef [hidden] enum DISPIDSPTSI { DISPIDSPTSI_ActiveOffset = 1, DISPIDSPTSI_ActiveLength, DISPIDSPTSI_SelectionOffset, DISPIDSPTSI_SelectionLength } DISPIDSPTSI; 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; 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; #if _SAPI_BLD_ >= 0x53 typedef enum SpeechEmulationCompareFlags { SECFIgnoreCase = 0x1, SECFIgnoreKanaType = 0x10000, SECFIgnoreWidth = 0x20000, SECFNoSpecialChars = 0x20000000, SECFEmulateResult = 0x40000000, SECFDefault = SECFIgnoreCase | SECFIgnoreKanaType | SECFIgnoreWidth } SpeechEmulationCompareFlags; typedef [hidden] enum DISPID_SpeechXMLRecoResult { DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1, DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1 } DISPID_SpeechXMLRecoResult; typedef [hidden] enum DISPID_SpeechRecoResult2 { DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1 } DISPID_SpeechRecoResult2; #endif typedef [hidden] enum DISPID_SpeechPhraseBuilder { DISPID_SPPBRestorePhraseFromMemory = 1 } DISPID_SpeechPhraseBuilder; typedef [hidden] enum DISPID_SpeechRecoResultTimes { DISPID_SRRTStreamTime = 1, DISPID_SRRTLength, DISPID_SRRTTickCount, DISPID_SRRTOffsetFromStart } DISPID_SpeechRecoResultTimes; typedef [hidden] enum DISPID_SpeechPhraseAlternate { DISPID_SPARecoResult = 1, DISPID_SPAStartElementInResult, DISPID_SPANumberOfElementsInResult, DISPID_SPAPhraseInfo, DISPID_SPACommit } DISPID_SpeechPhraseAlternate; typedef [hidden] enum DISPID_SpeechPhraseAlternates { DISPID_SPAsCount = 1, DISPID_SPAsItem = DISPID_VALUE, DISPID_SPAs_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseAlternates; 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; 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; typedef enum SpeechEngineConfidence { SECLowConfidence = -1, SECNormalConfidence = 0, SECHighConfidence = 1 } SpeechEngineConfidence; typedef [hidden] enum DISPID_SpeechPhraseElements { DISPID_SPEsCount = 1, DISPID_SPEsItem = DISPID_VALUE, DISPID_SPEs_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseElements; typedef [hidden] enum DISPID_SpeechPhraseReplacement { DISPID_SPRDisplayAttributes = 1, DISPID_SPRText, DISPID_SPRFirstElement, DISPID_SPRNumberOfElements } DISPID_SpeechPhraseReplacement; typedef [hidden] enum DISPID_SpeechPhraseReplacements { DISPID_SPRsCount = 1, DISPID_SPRsItem = DISPID_VALUE, DISPID_SPRs_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseReplacements; 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; typedef [hidden] enum DISPID_SpeechPhraseProperties { DISPID_SPPsCount = 1, DISPID_SPPsItem = DISPID_VALUE, DISPID_SPPs_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseProperties; typedef [hidden] enum DISPID_SpeechPhraseRule { DISPID_SPRuleName = 1, DISPID_SPRuleId, DISPID_SPRuleFirstElement, DISPID_SPRuleNumberOfElements, DISPID_SPRuleParent, DISPID_SPRuleChildren, DISPID_SPRuleConfidence, DISPID_SPRuleEngineConfidence } DISPID_SpeechPhraseRule; typedef [hidden] enum DISPID_SpeechPhraseRules { DISPID_SPRulesCount = 1, DISPID_SPRulesItem = DISPID_VALUE, DISPID_SPRules_NewEnum = DISPID_NEWENUM } DISPID_SpeechPhraseRules; typedef [hidden] enum DISPID_SpeechLexicon { DISPID_SLGenerationId = 1, DISPID_SLGetWords, DISPID_SLAddPronunciation, DISPID_SLAddPronunciationByPhoneIds, DISPID_SLRemovePronunciation, DISPID_SLRemovePronunciationByPhoneIds, DISPID_SLGetPronunciations, DISPID_SLGetGenerationChange } DISPID_SpeechLexicon; typedef enum SpeechLexiconType { SLTUser = eLEXTYPE_USER, SLTApp = eLEXTYPE_APP } SpeechLexiconType; typedef enum SpeechPartOfSpeech { SPSNotOverriden = SPPS_NotOverriden, SPSUnknown = SPPS_Unknown, SPSNoun = SPPS_Noun, SPSVerb = SPPS_Verb, SPSModifier = SPPS_Modifier, SPSFunction = SPPS_Function, SPSInterjection = SPPS_Interjection, #if _SAPI_BLD_ >= 0x53 SPSLMA = SPPS_LMA, SPSSuppressWord = SPPS_SuppressWord #endif } SpeechPartOfSpeech; typedef [hidden] enum DISPID_SpeechLexiconWords { DISPID_SLWsCount = 1, DISPID_SLWsItem = DISPID_VALUE, DISPID_SLWs_NewEnum = DISPID_NEWENUM } DISPID_SpeechLexiconWords; typedef enum SpeechWordType { SWTAdded = eWORDTYPE_ADDED, SWTDeleted = eWORDTYPE_DELETED } SpeechWordType; typedef [hidden] enum DISPID_SpeechLexiconWord { DISPID_SLWLangId = 1, DISPID_SLWType, DISPID_SLWWord, DISPID_SLWPronunciations } DISPID_SpeechLexiconWord; typedef [hidden] enum DISPID_SpeechLexiconProns { DISPID_SLPsCount = 1, DISPID_SLPsItem = DISPID_VALUE, DISPID_SLPs_NewEnum = DISPID_NEWENUM } DISPID_SpeechLexiconProns; typedef [hidden] enum DISPID_SpeechLexiconPronunciation { DISPID_SLPType = 1, DISPID_SLPLangId, DISPID_SLPPartOfSpeech, DISPID_SLPPhoneIds, DISPID_SLPSymbolic, } DISPID_SpeechLexiconPronunciation; typedef [hidden] enum DISPID_SpeechPhoneConverter { DISPID_SPCLangId = 1, DISPID_SPCPhoneToId, DISPID_SPCIdToPhone } DISPID_SpeechPhoneConverter; [uuid (A372ACD1-3bef-4bbd-8ffb-CB3E2B416AF8)] dispinterface _ISpeechVoiceEvents { properties: methods: [id (DISPID_SVEStreamStart)] void StartStream ([in]long StreamNumber,[in]VARIANT StreamPosition); [id (DISPID_SVEStreamEnd)] void EndStream ([in]long StreamNumber,[in]VARIANT StreamPosition); [id (DISPID_SVEVoiceChange)] void VoiceChange ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]ISpeechObjectToken *VoiceObjectToken); [id (DISPID_SVEBookmark)] void Bookmark ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]BSTR Bookmark,[in]long BookmarkId); [id (DISPID_SVEWord)] void Word ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]long CharacterPosition,[in]long Length); [id (DISPID_SVESentenceBoundary)] void Sentence ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]long CharacterPosition,[in]long Length); [id (DISPID_SVEPhoneme)] void Phoneme ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]long Duration,[in]short NextPhoneId,[in]SpeechVisemeFeature Feature,[in]short CurrentPhoneId); [id (DISPID_SVEViseme)] void Viseme ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]long Duration,[in]SpeechVisemeType NextVisemeId,[in]SpeechVisemeFeature Feature,[in]SpeechVisemeType CurrentVisemeId); [id (DISPID_SVEAudioLevel)] void AudioLevel ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]long AudioLevel); [id (DISPID_SVEEnginePrivate)] void EnginePrivate ([in]long StreamNumber,[in]long StreamPosition,[in]VARIANT EngineData); }; [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 *AudioInput); [propget, id (DISPID_SRAudioInput)] HRESULT AudioInput ([out, retval]ISpeechObjectToken **AudioInput); [propputref, id (DISPID_SRAudioInputStream)] HRESULT AudioInputStream ([in, defaultvalue (0)]ISpeechBaseStream *AudioInputStream); [propget, id (DISPID_SRAudioInputStream)] HRESULT AudioInputStream ([out, retval]ISpeechBaseStream **AudioInputStream); [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 TextElements,[in, defaultvalue (NULL)]VARIANT *ElementDisplayAttributes,[in, defaultvalue (0)]long LanguageId); [id (DISPID_SRCreateRecoContext)] HRESULT CreateRecoContext ([out, retval]ISpeechRecoContext **NewContext); [id (DISPID_SRGetFormat)] HRESULT GetFormat ([in] SpeechFormatType Type,[out, retval]ISpeechAudioFormat **Format); [id (DISPID_SRSetPropertyNumber), hidden] HRESULT SetPropertyNumber ([in]const BSTR Name,[in]long Value,[out, retval]VARIANT_BOOL *Supported); [id (DISPID_SRGetPropertyNumber), hidden] HRESULT GetPropertyNumber ([in]const BSTR Name,[in, out]long *Value,[out, retval]VARIANT_BOOL *Supported); [id (DISPID_SRSetPropertyString), hidden] HRESULT SetPropertyString ([in]const BSTR Name,[in]const BSTR Value,[out, retval]VARIANT_BOOL *Supported); [id (DISPID_SRGetPropertyString), hidden] HRESULT GetPropertyString ([in]const BSTR Name,[in, out]BSTR *Value,[out, retval]VARIANT_BOOL *Supported); [id (DISPID_SRIsUISupported)] HRESULT IsUISupported ([in]const BSTR TypeOfUI,[in, defaultvalue (NULL)]const VARIANT *ExtraData,[out, retval] VARIANT_BOOL *Supported); [id (DISPID_SRDisplayUI)] HRESULT DisplayUI ([in]long hWndParent,[in]BSTR Title,[in]const BSTR TypeOfUI,[in, defaultvalue (NULL)]const VARIANT *ExtraData); [id (DISPID_SRGetRecognizers)] HRESULT GetRecognizers ([in, defaultvalue (L"")]BSTR RequiredAttributes,[in, defaultvalue (L"")]BSTR OptionalAttributes,[out, retval]ISpeechObjectTokens **ObjectTokens); [id (DISPID_SVGetAudioInputs)] HRESULT GetAudioInputs ([in, defaultvalue (L"")]BSTR RequiredAttributes,[in, defaultvalue (L"")]BSTR OptionalAttributes,[out, retval]ISpeechObjectTokens **ObjectTokens); [id (DISPID_SVGetProfiles)] HRESULT GetProfiles ([in, defaultvalue (L"")]BSTR RequiredAttributes,[in, defaultvalue (L"")]BSTR OptionalAttributes,[out, retval]ISpeechObjectTokens **ObjectTokens); }; [object, uuid (BFF9E781-53ec-484e-BB8A-0e1b5551e35c), dual, pointer_default (unique)] interface ISpeechRecognizerStatus : IDispatch { [propget, id (DISPID_SRSAudioStatus)] HRESULT AudioStatus ([out, retval]ISpeechAudioStatus **AudioStatus); [propget, id (DISPID_SRSCurrentStreamPosition)] HRESULT CurrentStreamPosition ([out, retval]VARIANT *pCurrentStreamPos); [propget, id (DISPID_SRSCurrentStreamNumber)] HRESULT CurrentStreamNumber ([out, retval]long *StreamNumber); [propget, id (DISPID_SRSNumberOfActiveRules)] HRESULT NumberOfActiveRules ([out, retval]long *NumberOfActiveRules); [propget, id (DISPID_SRSClsidEngine)] HRESULT ClsidEngine ([out, retval]BSTR *ClsidEngine); [propget, id (DISPID_SRSSupportedLanguages)] HRESULT SupportedLanguages ([out, retval]VARIANT *SupportedLanguages); }; [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 *UIType); [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 *pAllow); [propput, id (DISPID_SRCVoicePurgeEvent)] HRESULT VoicePurgeEvent ([in]SpeechRecoEvents EventInterest); [propget, id (DISPID_SRCVoicePurgeEvent)] HRESULT VoicePurgeEvent ([out, retval]SpeechRecoEvents *EventInterest); [propput, id (DISPID_SRCEventInterests)] HRESULT EventInterests ([in]SpeechRecoEvents EventInterest); [propget, id (DISPID_SRCEventInterests)] HRESULT EventInterests ([out, retval]SpeechRecoEvents *EventInterest); [propput, id (DISPID_SRCCmdMaxAlternates)] HRESULT CmdMaxAlternates ([in] long MaxAlternates); [propget, id (DISPID_SRCCmdMaxAlternates)] HRESULT CmdMaxAlternates ([out, retval] long *MaxAlternates); [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 GrammarId,[out, retval]ISpeechRecoGrammar **Grammar); [id (DISPID_SRCCreateResultFromMemory)] HRESULT CreateResultFromMemory ([in]VARIANT *ResultBlock,[out, retval]ISpeechRecoResult **Result); [id (DISPID_SRCBookmark)] HRESULT Bookmark ([in]SpeechBookmarkOptions Options,[in]VARIANT StreamPos,[in]VARIANT BookmarkId); [id (DISPID_SRCSetAdaptationData)] HRESULT SetAdaptationData ([in]BSTR AdaptationString); }; [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 **RecoContext); [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 NewLanguage); [id (DISPID_SRGCmdLoadFromFile)] HRESULT CmdLoadFromFile ([in]const BSTR FileName,[in, defaultvalue (SLOStatic)]SpeechLoadOption LoadOption); [id (DISPID_SRGCmdLoadFromObject)] HRESULT CmdLoadFromObject ([in]const BSTR ClassId,[in]const BSTR GrammarName,[in, defaultvalue (SLOStatic)]SpeechLoadOption LoadOption); [id (DISPID_SRGCmdLoadFromResource)] HRESULT CmdLoadFromResource ([in]long hModule,[in]VARIANT ResourceName,[in]VARIANT ResourceType,[in]SpeechLanguageId LanguageId,[in, defaultvalue (SLOStatic)]SpeechLoadOption LoadOption); [id (DISPID_SRGCmdLoadFromMemory)] HRESULT CmdLoadFromMemory ([in] VARIANT GrammarData,[in, defaultvalue (SLOStatic)]SpeechLoadOption LoadOption); [id (DISPID_SRGCmdLoadFromProprietaryGrammar)] HRESULT CmdLoadFromProprietaryGrammar ([in]const BSTR ProprietaryGuid,[in]const BSTR ProprietaryString,[in]VARIANT ProprietaryData,[in, defaultvalue (SLOStatic)]SpeechLoadOption LoadOption); [id (DISPID_SRGCmdSetRuleState)] HRESULT CmdSetRuleState ([in]const BSTR Name,[in]SpeechRuleState State); [id (DISPID_SRGCmdSetRuleIdState)] HRESULT CmdSetRuleIdState ([in]long RuleId,[in]SpeechRuleState State); [id (DISPID_SRGDictationLoad)] HRESULT DictationLoad ([in, defaultvalue (L"")] const BSTR TopicName,[in, defaultvalue (SLOStatic)]SpeechLoadOption LoadOption); [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 TextLength,[in]ISpeechTextSelectionInformation *Info); [id (DISPID_SRGSetTextSelection)] HRESULT SetTextSelection ([in]ISpeechTextSelectionInformation *Info); [id (DISPID_SRGIsPronounceable)] HRESULT IsPronounceable ([in]const BSTR Word,[out, retval]SpeechWordPronounceable *WordPronounceable); }; [uuid (7b8fcb42-0e9d-4f00-A048-7b04d6179d3d)] dispinterface _ISpeechRecoContextEvents { properties: methods: [id (DISPID_SRCEStartStream)] void StartStream ([in]long StreamNumber,[in]VARIANT StreamPosition); [id (DISPID_SRCEEndStream)] void EndStream ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]VARIANT_BOOL StreamReleased); [id (DISPID_SRCEBookmark)] void Bookmark ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]VARIANT BookmarkId,[in]SpeechBookmarkOptions Options); [id (DISPID_SRCESoundStart)] void SoundStart ([in]long StreamNumber,[in]VARIANT StreamPosition); [id (DISPID_SRCESoundEnd)] void SoundEnd ([in]long StreamNumber,[in]VARIANT StreamPosition); [id (DISPID_SRCEPhraseStart)] void PhraseStart ([in]long StreamNumber,[in]VARIANT StreamPosition); [id (DISPID_SRCERecognition)] void Recognition ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]SpeechRecognitionType RecognitionType,[in]ISpeechRecoResult *Result); [id (DISPID_SRCEHypothesis)] void Hypothesis ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]ISpeechRecoResult *Result); [id (DISPID_SRCEPropertyNumberChange)] void PropertyNumberChange ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]BSTR PropertyName,[in]long NewNumberValue); [id (DISPID_SRCEPropertyStringChange)] void PropertyStringChange ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]BSTR PropertyName,[in]BSTR NewStringValue); [id (DISPID_SRCEFalseRecognition)] void FalseRecognition ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]ISpeechRecoResult *Result); [id (DISPID_SRCEInterference)] void Interference ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]SpeechInterference Interference); [id (DISPID_SRCERequestUI)] void RequestUI ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]BSTR UIType); [id (DISPID_SRCERecognizerStateChange)] void RecognizerStateChange ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]SpeechRecognizerState NewState); [id (DISPID_SRCEAdaptation)] void Adaptation ([in]long StreamNumber,[in]VARIANT StreamPosition); [id (DISPID_SRCERecognitionForOtherContext)] void RecognitionForOtherContext ([in]long StreamNumber,[in]VARIANT StreamPosition); [id (DISPID_SRCEAudioLevel)] void AudioLevel ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]long AudioLevel); [id (DISPID_SRCEEnginePrivate)] void EnginePrivate ([in]long StreamNumber,[in]VARIANT StreamPosition,[in]VARIANT EngineData); }; [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 ResourceName,[in]const BSTR ResourceValue); [id (DISPID_SGRAddState)] HRESULT AddState ([out, retval] ISpeechGrammarRuleState **State); }; [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 RuleNameOrId,[out, retval]ISpeechGrammarRule **Rule); [id (DISPID_SGRsItem)] HRESULT Item ([in] long Index,[out, retval]ISpeechGrammarRule **Rule); [propget, id (DISPID_SGRs_NewEnum), restricted] HRESULT _NewEnum ([out, retval] IUnknown **EnumVARIANT); [propget, id (DISPID_SGRsDynamic)] HRESULT Dynamic ([out, retval] VARIANT_BOOL *Dynamic); [id (DISPID_SGRsAdd)] HRESULT Add ([in] BSTR RuleName,[in] SpeechRuleAttributes Attributes,[in, defaultvalue (0)] long RuleId,[out, retval] ISpeechGrammarRule **Rule); [id (DISPID_SGRsCommit)] HRESULT Commit (void); [id (DISPID_SGRsCommitAndSave)] HRESULT CommitAndSave ([out] BSTR *ErrorText,[out, retval] VARIANT *SaveStream); }; [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 *DestState,[in]const BSTR Words, [in, defaultvalue (L" ")]const BSTR Separators, [in, defaultvalue (SGLexical)]SpeechGrammarWordType Type, [in, defaultvalue (L"")]const BSTR PropertyName, [in, defaultvalue (0)]long PropertyId, [in, defaultvalue (0)]VARIANT *PropertyValue, [in, defaultvalue (1)]float Weight); [id (DISPID_SGRSAddRuleTransition)] HRESULT AddRuleTransition ([in]ISpeechGrammarRuleState *DestinationState,[in]ISpeechGrammarRule *Rule,[in, defaultvalue (L"")]const BSTR PropertyName,[in, defaultvalue (0)]long PropertyId,[in, defaultvalue (0)]VARIANT *PropertyValue,[in, defaultvalue (1)]float Weight); [id (DISPID_SGRSAddSpecialTransition)] HRESULT AddSpecialTransition ([in]ISpeechGrammarRuleState *DestinationState,[in]SpeechSpecialTransitionType Type,[in, defaultvalue (L"")]const BSTR PropertyName,[in, defaultvalue (0)]long PropertyId,[in, defaultvalue (0)]VARIANT *PropertyValue,[in, defaultvalue (1)]float Weight); }; [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 **EnumVARIANT); }; [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 *PropertyName); [propget, id (DISPID_SGRSTPropertyId)] HRESULT PropertyId ([out, retval] long *PropertyId); [propget, id (DISPID_SGRSTPropertyValue)] HRESULT PropertyValue ([out, retval] VARIANT *PropertyValue); [propget, id (DISPID_SGRSTNextState)] HRESULT NextState ([out, retval] ISpeechGrammarRuleState **NextState); }; [object, uuid (3b9c7e7a-6eee-4ded-9092-11657279adbe), dual, pointer_default (unique)] interface ISpeechTextSelectionInformation : IDispatch { [propput, id (DISPIDSPTSI_ActiveOffset)] HRESULT ActiveOffset ([in]long ActiveOffset); [propget, id (DISPIDSPTSI_ActiveOffset)] HRESULT ActiveOffset ([out, retval]long *ActiveOffset); [propput, id (DISPIDSPTSI_ActiveLength)] HRESULT ActiveLength ([in]long ActiveLength); [propget, id (DISPIDSPTSI_ActiveLength)] HRESULT ActiveLength ([out, retval]long *ActiveLength); [propput, id (DISPIDSPTSI_SelectionOffset)] HRESULT SelectionOffset ([in]long SelectionOffset); [propget, id (DISPIDSPTSI_SelectionOffset)] HRESULT SelectionOffset ([out, retval]long *SelectionOffset); [propput, id (DISPIDSPTSI_SelectionLength)] HRESULT SelectionLength ([in]long SelectionLength); [propget, id (DISPIDSPTSI_SelectionLength)] HRESULT SelectionLength ([out, retval]long *SelectionLength); }; [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 **PhraseInfo); [id (DISPID_SRRAlternates)] HRESULT Alternates ([in] long RequestCount,[in, defaultvalue (0)] long StartElement,[in, defaultvalue (SPPR_ALL_ELEMENTS)] long Elements,[out, retval] ISpeechPhraseAlternates **Alternates); [id (DISPID_SRRAudio)] HRESULT Audio ([in, defaultvalue (0)] long StartElement,[in, defaultvalue (SPPR_ALL_ELEMENTS)] long Elements,[out, retval] ISpeechMemoryStream **Stream); [id (DISPID_SRRSpeakAudio)] HRESULT SpeakAudio ([in, defaultvalue (0)] long StartElement,[in, defaultvalue (SPPR_ALL_ELEMENTS)] long Elements,[in, defaultvalue (SPF_DEFAULT)] SpeechVoiceSpeakFlags Flags,[out, retval]long *StreamNumber); [id (DISPID_SRRSaveToMemory)] HRESULT SaveToMemory ([out, retval] VARIANT *ResultBlock); [id (DISPID_SRRDiscardResultInfo)] HRESULT DiscardResultInfo ([in]SpeechDiscardType ValueTypes); }; #if _SAPI_BLD_ >= 0x53 [object, uuid (AAEC54AF-8f85-4924-944d-B79D39D72E19), dual, pointer_default (unique)] interface ISpeechXMLRecoResult : ISpeechRecoResult { [id (DISPID_SRRGetXMLResult)] HRESULT GetXMLResult ([in] SPXMLRESULTOPTIONS Options,[out, retval] BSTR *pResult); [id (DISPID_SRRGetXMLErrorInfo)] HRESULT GetXMLErrorInfo ([out] long *LineNumber,[out]BSTR *ScriptLine,[out]BSTR *Source,[out]BSTR *Description,[out]long *ResultCode,[out, retval]VARIANT_BOOL *IsError); }; [object, uuid (8e0a246d-D3C8-45de-8657-04290c458c3c), dual, pointer_default (unique)] interface ISpeechRecoResult2: ISpeechRecoResult { [id (DISPID_SRRSetTextFeedback)] HRESULT SetTextFeedback ([in]BSTR Feedback,[in]VARIANT_BOOL WasSuccessful); } [object, uuid (6d60eb64-ACED-40a6-BBF3-4e557f71dee2), dual, hidden, pointer_default (unique)] interface ISpeechRecoResultDispatch : 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 **PhraseInfo); [id (DISPID_SRRAlternates)] HRESULT Alternates ([in] long RequestCount,[in, defaultvalue (0)] long StartElement,[in, defaultvalue (SPPR_ALL_ELEMENTS)] long Elements,[out, retval] ISpeechPhraseAlternates **Alternates); [id (DISPID_SRRAudio)] HRESULT Audio ([in, defaultvalue (0)] long StartElement,[in, defaultvalue (SPPR_ALL_ELEMENTS)] long Elements,[out, retval] ISpeechMemoryStream **Stream); [id (DISPID_SRRSpeakAudio)] HRESULT SpeakAudio ([in, defaultvalue (0)] long StartElement,[in, defaultvalue (SPPR_ALL_ELEMENTS)] long Elements,[in, defaultvalue (SPF_DEFAULT)] SpeechVoiceSpeakFlags Flags,[out, retval]long *StreamNumber); [id (DISPID_SRRSaveToMemory)] HRESULT SaveToMemory ([out, retval] VARIANT *ResultBlock); [id (DISPID_SRRDiscardResultInfo)] HRESULT DiscardResultInfo ([in]SpeechDiscardType ValueTypes); [id (DISPID_SRRGetXMLResult)] HRESULT GetXMLResult ([in] SPXMLRESULTOPTIONS Options,[out, retval] BSTR *pResult); [id (DISPID_SRRGetXMLErrorInfo)] HRESULT GetXMLErrorInfo ([out] long *LineNumber,[out]BSTR *ScriptLine,[out]BSTR *Source,[out]BSTR *Description,[out]HRESULT *ResultCode,[out, retval]VARIANT_BOOL *IsError); [id (DISPID_SRRSetTextFeedback)] HRESULT SetTextFeedback ([in] BSTR Feedback,[in] VARIANT_BOOL WasSuccessful); }; #endif [object, uuid (3b151836-DF3A-4e0a-846c-D2ADC9334333), dual, pointer_default (unique)] interface ISpeechPhraseInfoBuilder : IDispatch { [id (DISPID_SPPBRestorePhraseFromMemory)] HRESULT RestorePhraseFromMemory ([in] VARIANT *PhraseInMemory,[out, retval] ISpeechPhraseInfo **PhraseInfo); }; [object, uuid (62b3b8fb-F6E7-41be-BDCB-056b1c29efc0), dual, pointer_default (unique)] interface ISpeechRecoResultTimes : IDispatch { [propget, id (DISPID_SRRTStreamTime)] HRESULT StreamTime ([out, retval]VARIANT *Time); [propget, id (DISPID_SRRTLength)] HRESULT Length ([out, retval]VARIANT *Length); [propget, id (DISPID_SRRTTickCount)] HRESULT TickCount ([out, retval]long *TickCount); [propget, id (DISPID_SRRTOffsetFromStart)] HRESULT OffsetFromStart ([out, retval]VARIANT *OffsetFromStart); }; [object, uuid (27864a2a-2b9f-4cb8-92d3-0d2722fd1e73), dual, pointer_default (unique)] interface ISpeechPhraseAlternate : IDispatch { [propget, id (DISPID_SPARecoResult)] HRESULT RecoResult ([out, retval]ISpeechRecoResult **RecoResult); [propget, id (DISPID_SPAStartElementInResult)] HRESULT StartElementInResult ([out, retval]long *StartElement); [propget, id (DISPID_SPANumberOfElementsInResult)] HRESULT NumberOfElementsInResult ([out, retval]long *NumberOfElements); [propget, id (DISPID_SPAPhraseInfo)] HRESULT PhraseInfo ([out, retval]ISpeechPhraseInfo **PhraseInfo); [id (DISPID_SPACommit)] HRESULT Commit (void); }; [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 **PhraseAlternate); [propget, restricted, id (DISPID_SPAs_NewEnum)] HRESULT _NewEnum ([out, retval] IUnknown **EnumVARIANT); }; [object, uuid (961559cf-4e67-4662-8bf0-D93F1FCD61B3), dual, pointer_default (unique)] interface ISpeechPhraseInfo : IDispatch { [propget, id (DISPID_SPILanguageId)] HRESULT LanguageId ([out, retval]long *LanguageId); [propget, id (DISPID_SPIGrammarId)] HRESULT GrammarId ([out, retval]VARIANT *GrammarId); [propget, id (DISPID_SPIStartTime)] HRESULT StartTime ([out, retval]VARIANT *StartTime); [propget, id (DISPID_SPIAudioStreamPosition)] HRESULT AudioStreamPosition ([out, retval]VARIANT *AudioStreamPosition); [propget, id (DISPID_SPIAudioSizeBytes)] HRESULT AudioSizeBytes ([out, retval]long *pAudioSizeBytes); [propget, id (DISPID_SPIRetainedSizeBytes)] HRESULT RetainedSizeBytes ([out, retval]long *RetainedSizeBytes); [propget, id (DISPID_SPIAudioSizeTime)] HRESULT AudioSizeTime ([out, retval]long *AudioSizeTime); [propget, id (DISPID_SPIRule)] HRESULT Rule ([out, retval]ISpeechPhraseRule **Rule); [propget, id (DISPID_SPIProperties)] HRESULT Properties ([out, retval]ISpeechPhraseProperties **Properties); [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 *EngineIdGuid); [propget, id (DISPID_SPIEnginePrivateData)] HRESULT EnginePrivateData ([out, retval]VARIANT *PrivateData); [id (DISPID_SPISaveToMemory)] HRESULT SaveToMemory ([out, retval]VARIANT *PhraseBlock); [id (DISPID_SPIGetText)] HRESULT GetText ([in, defaultvalue (0)] long StartElement,[in, defaultvalue (SPPR_ALL_ELEMENTS)] long Elements,[in, defaultvalue (-1)] VARIANT_BOOL UseReplacements,[out, retval]BSTR *Text); [id (DISPID_SPIGetDisplayAttributes)] HRESULT GetDisplayAttributes ([in, defaultvalue (0)] long StartElement,[in, defaultvalue (SPPR_ALL_ELEMENTS)] long Elements,[in, defaultvalue (-1)] VARIANT_BOOL UseReplacements,[out, retval]SpeechDisplayAttributes *DisplayAttributes); }; [object, uuid (E6176F96-E373-4801-B223-3b62c068c0b4), dual, pointer_default (unique)] interface ISpeechPhraseElement : IDispatch { [propget, id (DISPID_SPEAudioTimeOffset)] HRESULT AudioTimeOffset ([out, retval]long *AudioTimeOffset); [propget, id (DISPID_SPEAudioSizeTime)] HRESULT AudioSizeTime ([out, retval]long *AudioSizeTime); [propget, id (DISPID_SPEAudioStreamOffset)] HRESULT AudioStreamOffset ([out, retval]long *AudioStreamOffset); [propget, id (DISPID_SPEAudioSizeBytes)] HRESULT AudioSizeBytes ([out, retval]long *AudioSizeBytes); [propget, id (DISPID_SPERetainedStreamOffset)] HRESULT RetainedStreamOffset ([out, retval]long *RetainedStreamOffset); [propget, id (DISPID_SPERetainedSizeBytes)] HRESULT RetainedSizeBytes ([out, retval]long *RetainedSizeBytes); [propget, id (DISPID_SPEDisplayText)] HRESULT DisplayText ([out, retval]BSTR *DisplayText); [propget, id (DISPID_SPELexicalForm)] HRESULT LexicalForm ([out, retval]BSTR *LexicalForm); [propget, id (DISPID_SPEPronunciation)] HRESULT Pronunciation ([out, retval]VARIANT *Pronunciation); [propget, id (DISPID_SPEDisplayAttributes)] HRESULT DisplayAttributes ([out, retval]SpeechDisplayAttributes *DisplayAttributes); [propget, id (DISPID_SPERequiredConfidence)] HRESULT RequiredConfidence ([out, retval]SpeechEngineConfidence *RequiredConfidence); [propget, id (DISPID_SPEActualConfidence)] HRESULT ActualConfidence ([out, retval]SpeechEngineConfidence *ActualConfidence); [propget, id (DISPID_SPEEngineConfidence)] HRESULT EngineConfidence ([out, retval]float *EngineConfidence); }; [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 **EnumVARIANT); }; [object, uuid (2890a410-53a7-4fb5-94ec-06d4998e3d02), dual, pointer_default (unique)] interface ISpeechPhraseReplacement : IDispatch { [propget, id (DISPID_SPRDisplayAttributes)] HRESULT DisplayAttributes ([out, retval]SpeechDisplayAttributes *DisplayAttributes); [propget, id (DISPID_SPRText)] HRESULT Text ([out, retval]BSTR *Text); [propget, id (DISPID_SPRFirstElement)] HRESULT FirstElement ([out, retval]long *FirstElement); [propget, id (DISPID_SPRNumberOfElements)] HRESULT NumberOfElements ([out, retval]long *NumberOfElements); }; [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 **EnumVARIANT); }; [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 *FirstElement); [propget, id (DISPID_SPPNumberOfElements)] HRESULT NumberOfElements ([out, retval]long *NumberOfElements); [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 **ParentProperty); [propget, id (DISPID_SPPChildren)] HRESULT Children ([out, retval]ISpeechPhraseProperties **Children); }; [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 **Property); [propget, id (DISPID_SPPs_NewEnum), restricted] HRESULT _NewEnum ([out, retval] IUnknown **EnumVARIANT); }; [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 *FirstElement); [propget, id (DISPID_SPRuleNumberOfElements)] HRESULT NumberOfElements ([out, retval]long *NumberOfElements); [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 *ActualConfidence); [propget, id (DISPID_SPRuleEngineConfidence)] HRESULT EngineConfidence ([out, retval]float *EngineConfidence); }; [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 **EnumVARIANT); }; [object, uuid (8d199862-415e-47d5-AC4F-FAA608B424E6), dual, pointer_default (unique)] interface ISpeechLexiconWords : IDispatch { [id (DISPID_SLWsCount), propget] HRESULT Count ([out, retval] long *Count); [id (DISPID_VALUE)] HRESULT Item ([in] long Index,[out, retval]ISpeechLexiconWord **Word); [id (DISPID_NEWENUM), propget, restricted] HRESULT _NewEnum ([out, retval] IUnknown **EnumVARIANT); }; [object, uuid (3da7627a-C7AE-4b23-8708-638c50362c25), dual, pointer_default (unique)] interface ISpeechLexicon : IDispatch { [id (DISPID_SLGenerationId), propget, hidden] HRESULT GenerationId ([out, retval]long *GenerationId); [id (DISPID_SLGetWords)] HRESULT GetWords ([in, defaultvalue (eLEXTYPE_USER | eLEXTYPE_APP)]SpeechLexiconType Flags,[out, defaultvalue (NULL)]long *GenerationID,[out, retval]ISpeechLexiconWords **Words); [id (DISPID_SLAddPronunciation)] HRESULT AddPronunciation ([in]BSTR bstrWord,[in]SpeechLanguageId LangId,[in, defaultvalue (SPSUnknown)]SpeechPartOfSpeech PartOfSpeech,[in, defaultvalue (L"")]BSTR bstrPronunciation); [hidden, id (DISPID_SLAddPronunciationByPhoneIds)] HRESULT AddPronunciationByPhoneIds ([in]BSTR bstrWord,[in]SpeechLanguageId LangId,[in, defaultvalue (SPSUnknown)]SpeechPartOfSpeech PartOfSpeech,[in, defaultvalue (NULL)]VARIANT *PhoneIds); [id (DISPID_SLRemovePronunciation)] HRESULT RemovePronunciation ([in]BSTR bstrWord,[in]SpeechLanguageId LangId,[in, defaultvalue (SPSUnknown)]SpeechPartOfSpeech PartOfSpeech,[in, defaultvalue (L"")]BSTR bstrPronunciation); [id (DISPID_SLRemovePronunciationByPhoneIds), hidden] HRESULT RemovePronunciationByPhoneIds ([in]BSTR bstrWord,[in]SpeechLanguageId LangId,[in, defaultvalue (SPSUnknown)]SpeechPartOfSpeech PartOfSpeech,[in, defaultvalue (NULL)]VARIANT *PhoneIds); [id (DISPID_SLGetPronunciations)] HRESULT GetPronunciations ([in]BSTR bstrWord,[in, defaultvalue (0)]SpeechLanguageId LangId,[in, defaultvalue (eLEXTYPE_USER | eLEXTYPE_APP)]SpeechLexiconType TypeFlags,[out, retval]ISpeechLexiconPronunciations **ppPronunciations); [id (DISPID_SLGetGenerationChange), hidden] HRESULT GetGenerationChange ([in, out]long *GenerationID,[out, retval]ISpeechLexiconWords **ppWords); }; [object, uuid (4e5b933c-C9BE-48ed-8842-1ee51bb1d4ff), dual, pointer_default (unique)] interface ISpeechLexiconWord : IDispatch { [id (DISPID_SLWLangId), propget] HRESULT LangId ([out, retval]SpeechLanguageId *LangId); [id (DISPID_SLWType), propget] HRESULT Type ([out, retval]SpeechWordType *WordType); [id (DISPID_SLWWord), propget] HRESULT Word ([out, retval]BSTR *Word); [id (DISPID_SLWPronunciations), propget] HRESULT Pronunciations ([out, retval]ISpeechLexiconPronunciations **Pronunciations); }; [object, uuid (72829128-5682-4704-A0D4-3e2bb6f2ead3), dual, pointer_default (unique)] interface ISpeechLexiconPronunciations : IDispatch { [id (DISPID_SLPsCount), propget] HRESULT Count ([out, retval] long *Count); [id (DISPID_VALUE)] HRESULT Item ([in] long Index,[out, retval]ISpeechLexiconPronunciation **Pronunciation); [id (DISPID_NEWENUM), propget, restricted] HRESULT _NewEnum ([out, retval] IUnknown **EnumVARIANT); }; [object, uuid (95252c5d-9e43-4f4a-9899-48ee73352f9f), dual, pointer_default (unique)] interface ISpeechLexiconPronunciation : IDispatch { [id (DISPID_SLPType), propget] HRESULT Type ([out, retval]SpeechLexiconType *LexiconType); [id (DISPID_SLPLangId), propget] HRESULT LangId ([out, retval]SpeechLanguageId *LangId); [id (DISPID_SLPPartOfSpeech), propget] HRESULT PartOfSpeech ([out, retval]SpeechPartOfSpeech *PartOfSpeech); [id (DISPID_SLPPhoneIds), propget] HRESULT PhoneIds ([out, retval]VARIANT *PhoneIds); [id (DISPID_SLPSymbolic), propget] HRESULT Symbolic ([out, retval]BSTR *Symbolic); }; [object, uuid (C3E4F353-433f-43d6-89a1-6a62a7054c3d), dual, pointer_default (unique)] interface ISpeechPhoneConverter : IDispatch { [propget, id (DISPID_SPCLangId)] HRESULT LanguageId ([out, retval]SpeechLanguageId *LanguageId); [propput, id (DISPID_SPCLangId)] HRESULT LanguageId ([in]SpeechLanguageId LanguageId); [id (DISPID_SPCPhoneToId)] HRESULT PhoneToId ([in]const BSTR Phonemes,[out, retval]VARIANT *IdArray); [id (DISPID_SPCIdToPhone)] HRESULT IdToPhone ([in]const VARIANT IdArray,[out, retval]BSTR *Phonemes); } [uuid (E2AE5372-5d40-11d2-960e-00c04f8ee628), hidden] coclass SpNotifyTranslator { interface ISpNotifyTranslator; } [uuid (A910187F-0c7a-45ac-92cc-59edafb77b53)] coclass SpObjectTokenCategory { [default] interface ISpeechObjectTokenCategory; interface ISpObjectTokenCategory; } [uuid (EF411752-3736-4cb4-9c8c-8ef4ccb58efe)] coclass SpObjectToken { [default] interface ISpeechObjectToken; interface ISpObjectToken; } [uuid (96749373-3391-11d2-9ee3-00c04f797396), hidden] coclass SpResourceManager { [default] interface ISpResourceManager; }; [uuid (7013943a-E2EC-11d2-A086-00c04f8ef9b5), hidden] coclass SpStreamFormatConverter { [default] interface ISpStreamFormatConverter; }; [uuid (AB1890A0-E91F-11d2-BB91-00c04f8ee6c0), hidden] coclass SpMMAudioEnum { interface IEnumSpObjectTokens; }; [uuid (CF3D2E50-53f2-11d2-960c-00c04f8ee628)] coclass SpMMAudioIn { [default] interface ISpeechMMSysAudio; interface ISpEventSource; interface ISpEventSink; interface ISpObjectWithToken; interface ISpMMSysAudio; }; [uuid (A8C680EB-3d32-11d2-9ee7-00c04f797396)] coclass SpMMAudioOut { [default] interface ISpeechMMSysAudio; interface ISpEventSource; interface ISpEventSink; interface ISpObjectWithToken; interface ISpMMSysAudio; }; [uuid (715d9c59-4442-11d2-9605-00c04f8ee628), hidden] coclass SpStream { interface ISpStream; }; [uuid (96749377-3391-11d2-9ee3-00c04f797396)] coclass SpVoice { [default] interface ISpeechVoice; interface ISpVoice; #if _SAPI_BLD_ >= 0x53 interface ISpPhoneticAlphabetSelection; #endif [default, source] dispinterface _ISpeechVoiceEvents; }; [uuid (47206204-5eca-11d2-960f-00c04f8ee628)] coclass SpSharedRecoContext { [default] interface ISpeechRecoContext; interface ISpRecoContext; #if _SAPI_BLD_ >= 0x53 interface ISpRecoContext2; interface ISpPhoneticAlphabetSelection; #endif [default, source] dispinterface _ISpeechRecoContextEvents; }; [uuid (41b89b6b-9399-11d2-9623-00c04f8ee628)] coclass SpInprocRecognizer { [default] interface ISpeechRecognizer; interface ISpRecognizer; #if _SAPI_BLD_ >= 0x053 interface ISpRecognizer2; #if _SAPI_BLD_ >= 0x54 interface ISpRecognizer3; #endif interface ISpSerializeState; #endif }; [uuid (3bee4890-4fe9-4a37-8c1e-5e7e12791c1f)] coclass SpSharedRecognizer { [default] interface ISpeechRecognizer; interface ISpRecognizer; #if _SAPI_BLD_ >= 0x53 interface ISpRecognizer2; #if _SAPI_BLD_ >= 0x054 interface ISpRecognizer3; #endif interface ISpSerializeState; #endif }; [uuid (0655e396-25d0-11d3-9c26-00c04f8ef87c)] coclass SpLexicon { [default] interface ISpeechLexicon; interface ISpLexicon; #if _SAPI_BLD_ >= 0x53 interface ISpPhoneticAlphabetSelection; #endif }; [uuid (C9E37C15-DF92-4727-85d6-72e5eeb6995a)] coclass SpUnCompressedLexicon { [default] interface ISpeechLexicon; interface ISpLexicon; interface ISpObjectWithToken; #if _SAPI_BLD_ >= 0x53 interface ISpPhoneticAlphabetSelection; #endif }; [uuid (90903716-2f42-11d3-9c26-00c04f8ef87c), hidden] coclass SpCompressedLexicon { [default] interface ISpLexicon; interface ISpObjectWithToken; }; #if _SAPI_BLD_ >= 0x053 [uuid (0d722f1a-9fcf-4e62-96d8-6df8f01a26aa)] coclass SpShortcut { interface ISpShortcut; interface ISpObjectWithToken; }; #endif [uuid (9185f743-1143-4c28-86b5-BFF14F20E5C8)] coclass SpPhoneConverter { [default] interface ISpeechPhoneConverter; interface ISpPhoneConverter; #if _SAPI_BLD_ >= 0x53 interface ISpPhoneticAlphabetSelection; #endif }; #if _SAPI_BLD_ >= 0x53 [uuid (4f414126-DFE3-4629-99ee-797978317ead)] coclass SpPhoneticAlphabetConverter { interface ISpPhoneticAlphabetConverter; }; #endif [uuid (455f24e9-7396-4a16-9715-7c0fdbe3efe3), hidden] coclass SpNullPhoneConverter { [default] interface ISpPhoneConverter; }; [uuid (0f92030a-CBFD-4ab8-A164-FF5985547FF6)] coclass SpTextSelectionInformation { [default] interface ISpeechTextSelectionInformation; }; [uuid (C23FC28D-C55F-4720-8b32-91f73c2bd5d1)] coclass SpPhraseInfoBuilder { [default] interface ISpeechPhraseInfoBuilder; }; [uuid (9ef96870-E160-4792-820d-48cf0649e4ec)] coclass SpAudioFormat { [default] interface ISpeechAudioFormat; }; [uuid (C79A574C-63be-44b9-801f-283f87f898be)] coclass SpWaveFormatEx { [default] interface ISpeechWaveFormatEx; }; [uuid (73ad6842-ACE0-45e8-A4DD-8795881a2c2a)] coclass SpInProcRecoContext { [default] interface ISpeechRecoContext; interface ISpRecoContext; #if _SAPI_BLD_ >= 0x53 interface ISpRecoContext2; interface ISpPhoneticAlphabetSelection; #endif [default, source] dispinterface _ISpeechRecoContextEvents; }; [uuid (8dbef13f-1948-4aa8-8cf0-048eebed95d8)] coclass SpCustomStream { [default] interface ISpeechCustomStream; interface ISpStream; }; [uuid (947812b3-2ae1-4644-BA86-9e90ded7ec91)] coclass SpFileStream { [default] interface ISpeechFileStream; interface ISpStream; }; [uuid (5fb7ef7d-DFF4-468a-B6B7-2fcbd188f994)] coclass SpMemoryStream { [default] interface ISpeechMemoryStream; interface ISpStream; }; #if _SAPI_BLD_ >= 0x53 interface ISpXMLRecoResult; interface ISpRecoGrammar2; interface ISpeechResourceLoader; #endif }