summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/sapi53.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
committerValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
commit1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch)
tree7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/winapi/src/um/sapi53.rs
parent5ecd8cf2cba827454317368b68571df0d13d7842 (diff)
downloadfparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.tar.xz
fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.zip
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'vendor/winapi/src/um/sapi53.rs')
-rw-r--r--vendor/winapi/src/um/sapi53.rs1823
1 files changed, 1823 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/sapi53.rs b/vendor/winapi/src/um/sapi53.rs
new file mode 100644
index 0000000..7121191
--- /dev/null
+++ b/vendor/winapi/src/um/sapi53.rs
@@ -0,0 +1,1823 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! SAPI 5.3 definitions
+use ctypes::{c_float, c_int, c_long};
+use shared::guiddef::{CLSID, GUID};
+use shared::minwindef::{BOOL, BYTE, DWORD, LPARAM, UINT, ULONG, WORD, WPARAM};
+use shared::wtypes::{BSTR, VARIANT_BOOL};
+use um::oaidl::{IDispatch, IDispatchVtbl, VARIANT};
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::urlmon::IInternetSecurityManager;
+use um::winnt::{HRESULT, LPCWSTR, LPWSTR, ULONGLONG, WCHAR};
+pub use um::sapi51::{
+ SPDATAKEYLOCATION,
+ SPDKL_DefaultLocation,
+ SPDKL_CurrentUser,
+ SPDKL_LocalMachine,
+ SPDKL_CurrentConfig,
+ SPDUI_EngineProperties,
+ SPDUI_AddRemoveWord,
+ SPDUI_UserTraining,
+ SPDUI_MicTraining,
+ SPDUI_RecoProfileProperties,
+ SPDUI_AudioProperties,
+ SPDUI_AudioVolume,
+ SPDUI_UserEnrollment,
+ SPDUI_ShareData,
+ SPDUI_Tutorial,
+ SPSTREAMFORMAT,
+ SPSF_Default,
+ SPSF_NoAssignedFormat,
+ 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,
+ SPDFID_Text,
+ SPDFID_WaveFormatEx,
+ SPREG_USER_ROOT,
+ SPREG_LOCAL_MACHINE_ROOT,
+ SPCAT_AUDIOOUT,
+ SPCAT_AUDIOIN,
+ SPCAT_VOICES,
+ SPCAT_RECOGNIZERS,
+ SPCAT_APPLEXICONS,
+ SPCAT_PHONECONVERTERS,
+ SPCAT_TEXTNORMALIZERS,
+ SPCAT_RECOPROFILES,
+ SPMMSYS_AUDIO_IN_TOKEN_ID,
+ SPMMSYS_AUDIO_OUT_TOKEN_ID,
+ SPCURRENT_USER_LEXICON_TOKEN_ID,
+ SPTOKENVALUE_CLSID,
+ SPTOKENKEY_FILES,
+ SPTOKENKEY_UI,
+ SPTOKENKEY_ATTRIBUTES
+};
+pub const SPTOKENKEY_RETAINEDAUDIO: &'static str = "SecondsPerRetainedAudioEvent";
+pub const SPTOKENKEY_AUDIO_LATENCY_WARNING: &'static str = "LatencyWarningThreshold";
+pub const SPTOKENKEY_AUDIO_LATENCY_TRUNCATE: &'static str = "LatencyTruncateThreshold";
+pub const SPTOKENKEY_AUDIO_LATENCY_UPDATE_INTERVAL: &'static str = "LatencyUpdateInterval";
+pub use um::sapi51::{
+ SPVOICECATEGORY_TTSRATE,
+ SPPROP_RESOURCE_USAGE,
+ SPPROP_HIGH_CONFIDENCE_THRESHOLD,
+ SPPROP_NORMAL_CONFIDENCE_THRESHOLD,
+ SPPROP_LOW_CONFIDENCE_THRESHOLD,
+ SPPROP_RESPONSE_SPEED,
+ SPPROP_COMPLEX_RESPONSE_SPEED,
+ SPPROP_ADAPTATION_ON,
+ SPPROP_PERSISTED_BACKGROUND_ADAPTATION,
+ SPPROP_PERSISTED_LANGUAGE_MODEL_ADAPTATION,
+ SPPROP_UX_IS_LISTENING,
+ SPTOPIC_SPELLING,
+ SPWILDCARD,
+ SPDICTATION
+};
+pub const SPREG_SAFE_USER_TOKENS: &'static str
+ = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\UserTokens";
+pub use um::sapi51::{
+ SPINFDICTATION,
+ SP_LOW_CONFIDENCE,
+ SP_NORMAL_CONFIDENCE,
+ SP_HIGH_CONFIDENCE,
+ DEFAULT_WEIGHT,
+ SP_MAX_WORD_LENGTH,
+ SP_MAX_PRON_LENGTH
+};
+pub const SP_EMULATE_RESULT: ULONG = 0x40000000;
+pub use um::sapi51::{
+ ISpNotifyCallback,
+ SPNOTIFYCALLBACK,
+ ISpNotifySource, ISpNotifySourceVtbl,
+ ISpNotifySink, ISpNotifySinkVtbl,
+ ISpNotifyTranslator, ISpNotifyTranslatorVtbl,
+ ISpDataKey, ISpDataKeyVtbl,
+ ISpRegDataKey, ISpRegDataKeyVtbl,
+ ISpObjectTokenCategory, ISpObjectTokenCategoryVtbl,
+ ISpObjectToken, ISpObjectTokenVtbl,
+ ISpObjectTokenInit, ISpObjectTokenInitVtbl,
+ IEnumSpObjectTokens, IEnumSpObjectTokensVtbl,
+ ISpObjectWithToken, ISpObjectWithTokenVtbl,
+ ISpResourceManager, ISpResourceManagerVtbl,
+ SPEVENTLPARAMTYPE,
+ SPET_LPARAM_IS_UNDEFINED,
+ SPET_LPARAM_IS_TOKEN,
+ SPET_LPARAM_IS_OBJECT,
+ SPET_LPARAM_IS_POINTER,
+ SPET_LPARAM_IS_STRING,
+ SPEVENTENUM,
+ SPEI_UNDEFINED,
+ SPEI_START_INPUT_STREAM,
+ SPEI_END_INPUT_STREAM,
+ SPEI_VOICE_CHANGE,
+ SPEI_TTS_BOOKMARK,
+ SPEI_WORD_BOUNDARY,
+ SPEI_PHONEME,
+ SPEI_SENTENCE_BOUNDARY,
+ SPEI_VISEME,
+ SPEI_TTS_AUDIO_LEVEL,
+ SPEI_TTS_PRIVATE,
+ SPEI_MIN_TTS,
+ SPEI_MAX_TTS,
+ SPEI_END_SR_STREAM,
+ SPEI_SOUND_START,
+ SPEI_SOUND_END,
+ SPEI_PHRASE_START,
+ SPEI_RECOGNITION,
+ SPEI_HYPOTHESIS,
+ SPEI_SR_BOOKMARK,
+ SPEI_PROPERTY_NUM_CHANGE,
+ SPEI_PROPERTY_STRING_CHANGE,
+ SPEI_FALSE_RECOGNITION,
+ SPEI_INTERFERENCE,
+ SPEI_REQUEST_UI,
+ SPEI_RECO_STATE_CHANGE,
+ SPEI_ADAPTATION,
+ SPEI_START_SR_STREAM,
+ SPEI_RECO_OTHER_CONTEXT,
+ SPEI_SR_AUDIO_LEVEL
+};
+pub const SPEI_SR_RETAINEDAUDIO: SPEVENTENUM = 51;
+pub use um::sapi51::SPEI_SR_PRIVATE;
+pub const SPEI_RESERVED4: SPEVENTENUM = 53;
+pub const SPEI_RESERVED5: SPEVENTENUM = 54;
+pub const SPEI_RESERVED6: SPEVENTENUM = 55;
+pub use um::sapi51::SPEI_MIN_SR;
+pub const SPEI_MAX_SR: SPEVENTENUM = 55;
+pub use um::sapi51::{
+ SPEI_RESERVED1,
+ SPEI_RESERVED2,
+ SPEI_RESERVED3,
+ SPFEI_FLAGCHECK,
+ SPFEI_ALL_TTS_EVENTS,
+ SPFEI_ALL_SR_EVENTS,
+ SPFEI_ALL_EVENTS,
+ SPFEI,
+ SPEVENT,
+ SPSERIALIZEDEVENT,
+ SPSERIALIZEDEVENT64
+};
+STRUCT!{struct SPEVENTEX {
+ eEventId: WORD,
+ elParamType: WORD,
+ ulStreamNum: ULONG,
+ ullAudioStreamOffset: ULONGLONG,
+ wParam: WPARAM,
+ lParam: LPARAM,
+ ullAudioTimeOffset: ULONGLONG,
+}}
+pub use um::sapi51::{
+ SPINTERFERENCE,
+ SPINTERFERENCE_NONE,
+ SPINTERFERENCE_NOISE,
+ SPINTERFERENCE_NOSIGNAL,
+ SPINTERFERENCE_TOOLOUD,
+ SPINTERFERENCE_TOOQUIET,
+ SPINTERFERENCE_TOOFAST,
+ SPINTERFERENCE_TOOSLOW,
+ SPINTERFERENCE_LATENCY_WARNING,
+ SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN,
+ SPINTERFERENCE_LATENCY_TRUNCATE_END,
+ SPENDSRSTREAMFLAGS,
+ SPESF_NONE,
+ SPESF_STREAM_RELEASED
+};
+pub const SPESF_EMULATED: SPENDSRSTREAMFLAGS = 1 << 1;
+pub use um::sapi51::{
+ SPVFEATURE,
+ SPVFEATURE_STRESSED,
+ SPVFEATURE_EMPHASIS,
+ SPVISEMES,
+ SP_VISEME_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,
+ SPEVENTSOURCEINFO,
+ ISpEventSource, ISpEventSourceVtbl,
+};
+RIDL!{#[uuid(0x2373a435, 0x6a4b, 0x429e, 0xa6, 0xac, 0xd4, 0x23, 0x1a, 0x61, 0x97, 0x5b)]
+interface ISpEventSource2(ISpEventSource2Vtbl): ISpEventSource(ISpEventSourceVtbl) {
+ fn GetEventsEx(
+ ulCount: ULONG,
+ pEventArray: *mut SPEVENTEX,
+ pulFetched: *mut ULONG,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ ISpEventSink, ISpEventSinkVtbl,
+ ISpStreamFormat, ISpStreamFormatVtbl,
+ SPFILEMODE,
+ SPFM_OPEN_READONLY,
+ SPFM_OPEN_READWRITE,
+ SPFM_CREATE,
+ SPFM_CREATE_ALWAYS,
+ SPFM_NUM_MODES,
+ ISpStream, ISpStreamVtbl,
+ ISpStreamFormatConverter, ISpStreamFormatConverterVtbl,
+ SPAUDIOSTATE,
+ SPAS_CLOSED,
+ SPAS_STOP,
+ SPAS_PAUSE,
+ SPAS_RUN,
+ SPAUDIOSTATUS,
+ SPAUDIOBUFFERINFO,
+ ISpAudio, ISpAudioVtbl,
+ ISpMMSysAudio, ISpMMSysAudioVtbl,
+ ISpTranscript, ISpTranscriptVtbl,
+ SPDISPLAYATTRIBUTES,
+ SPAF_ONE_TRAILING_SPACE,
+ SPAF_TWO_TRAILING_SPACES,
+ SPAF_CONSUME_LEADING_SPACES
+};
+pub const SPAF_BUFFER_POSITION: SPDISPLAYATTRIBUTES = 0x10;
+pub const SPAF_ALL: SPDISPLAYATTRIBUTES = 0x1f;
+pub const SPAF_USER_SPECIFIED: SPDISPLAYATTRIBUTES = 0x80;
+pub use um::sapi51::{
+ SPPHONEID,
+ PSPPHONEID,
+ PCSPPHONEID,
+ SPPHRASEELEMENT,
+ SPPHRASERULE,
+ SPPHRASEPROPERTYUNIONTYPE,
+ SPPPUT_UNUSED,
+ SPPPUT_ARRAY_INDEX,
+ SPPHRASEPROPERTY,
+ SPPHRASEREPLACEMENT
+};
+STRUCT!{struct SPSEMANTICERRORINFO {
+ ulLineNumber: ULONG,
+ pszScriptLine: LPWSTR,
+ pszSource: LPWSTR,
+ pszDescription: LPWSTR,
+ hrResultCode: HRESULT,
+}}
+ENUM!{enum SPSEMANTICFORMAT {
+ SPSMF_SAPI_PROPERTIES = 0,
+ SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
+ SPSMF_SRGS_SAPIPROPERTIES = 2,
+ SPSMF_UPS = 4,
+ SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8,
+}}
+pub use um::sapi51::SPPHRASE as SPPHRASE_50;
+// TODO: pub const SP_SPPHRASESIZE_500: usize = mem::size_of::<SPPHRASE_50>();
+STRUCT!{struct SPPHRASE {
+ cbSize: ULONG,
+ LangID: WORD,
+ wHomophoneGroupId: WORD,
+ ullGrammarID: ULONGLONG,
+ ftStartTime: ULONGLONG,
+ ullAudioStreamPosition: ULONGLONG,
+ ulAudioSizeBytes: ULONG,
+ ulRetainedSizeBytes: ULONG,
+ ulAudioSizeTime: ULONG,
+ Rule: SPPHRASERULE,
+ pProperties: *const SPPHRASEPROPERTY,
+ pElements: *const SPPHRASEELEMENT,
+ cReplacements: ULONG,
+ pReplacements: *const SPPHRASEREPLACEMENT,
+ SREngineID: GUID,
+ ulSREnginePrivateDataSize: ULONG,
+ pSREnginePrivateData: *const BYTE,
+ pSML: LPWSTR,
+ pSemanticErrorInfo: *mut SPSEMANTICERRORINFO,
+}}
+pub use um::sapi51::SPSERIALIZEDPHRASE;
+STRUCT!{struct SPRULE {
+ pszRuleName: LPCWSTR,
+ ulRuleId: ULONG,
+ dwAttributes: DWORD,
+}}
+pub use um::sapi51::{
+ SPVALUETYPE,
+ SPDF_PROPERTY,
+ SPDF_REPLACEMENT,
+ SPDF_RULE,
+ SPDF_DISPLAYTEXT,
+ SPDF_LEXICALFORM ,
+ SPDF_PRONUNCIATION,
+ SPDF_AUDIO,
+ SPDF_ALTERNATES,
+ SPDF_ALL,
+ SPBINARYGRAMMAR,
+ SPPHRASERNG,
+ SPPR_ALL_ELEMENTS,
+ SP_GETWHOLEPHRASE,
+ SPRR_ALL_ELEMENTS,
+ SPSTATEHANDLE,
+ SPRECOEVENTFLAGS,
+ SPREF_AutoPause,
+ SPREF_Emulated
+};
+pub const SPREF_SMLTimeout: SPRECOEVENTFLAGS = 1 << 2;
+pub const SPREF_ExtendableParse: SPRECOEVENTFLAGS = 1 << 3;
+pub const SPREF_ReSent: SPRECOEVENTFLAGS = 1 << 4;
+pub const SPREF_Hypothesis: SPRECOEVENTFLAGS = 1 << 5;
+pub const SPREF_FalseRecognition: SPRECOEVENTFLAGS = 1 << 6;
+pub use um::sapi51::{
+ SPPARTOFSPEECH,
+ SPPS_NotOverriden,
+ SPPS_Unknown,
+ SPPS_Noun,
+ SPPS_Verb,
+ SPPS_Modifier,
+ SPPS_Function,
+ SPPS_Interjection
+};
+pub const SPPS_Noncontent: SPPARTOFSPEECH = 0x6000;
+pub const SPPS_LMA: SPPARTOFSPEECH = 0x7000;
+pub const SPPS_SuppressWord: SPPARTOFSPEECH = 0xf000;
+pub use um::sapi51::{
+ SPLEXICONTYPE,
+ eLEXTYPE_USER,
+ eLEXTYPE_APP,
+ eLEXTYPE_VENDORLEXICON,
+ eLEXTYPE_LETTERTOSOUND,
+ eLEXTYPE_MORPHOLOGY,
+ eLEXTYPE_RESERVED4,
+ eLEXTYPE_USER_SHORTCUT,
+ eLEXTYPE_RESERVED6,
+ eLEXTYPE_RESERVED7,
+ eLEXTYPE_RESERVED8,
+ eLEXTYPE_RESERVED9,
+ eLEXTYPE_RESERVED10,
+ eLEXTYPE_PRIVATE1,
+ eLEXTYPE_PRIVATE2,
+ eLEXTYPE_PRIVATE3,
+ eLEXTYPE_PRIVATE4,
+ eLEXTYPE_PRIVATE5,
+ eLEXTYPE_PRIVATE6,
+ eLEXTYPE_PRIVATE7,
+ eLEXTYPE_PRIVATE8,
+ eLEXTYPE_PRIVATE9,
+ eLEXTYPE_PRIVATE10,
+ eLEXTYPE_PRIVATE11,
+ eLEXTYPE_PRIVATE12,
+ eLEXTYPE_PRIVATE13,
+ eLEXTYPE_PRIVATE14,
+ eLEXTYPE_PRIVATE15,
+ eLEXTYPE_PRIVATE16,
+ eLEXTYPE_PRIVATE17,
+ eLEXTYPE_PRIVATE18,
+ eLEXTYPE_PRIVATE19,
+ eLEXTYPE_PRIVATE20,
+ SPWORDTYPE,
+ eWORDTYPE_ADDED,
+ eWORDTYPE_DELETED
+};
+ENUM!{enum SPPRONUNCIATIONFLAGS {
+ ePRONFLAG_USED = 1 << 0,
+}}
+pub use um::sapi51::{
+ SPWORDPRONUNCIATION,
+ SPWORDPRONUNCIATIONLIST,
+ SPWORD,
+ SPWORDLIST,
+ ISpLexicon, ISpLexiconVtbl,
+ ISpContainerLexicon, ISpContainerLexiconVtbl,
+};
+ENUM!{enum SPSHORTCUTTYPE {
+ SPSHT_NotOverriden = -1i32 as u32,
+ SPSHT_Unknown = 0,
+ SPSHT_EMAIL = 0x1000,
+ SPSHT_OTHER = 0x2000,
+ SPPS_RESERVED1 = 0x3000,
+ SPPS_RESERVED2 = 0x4000,
+ SPPS_RESERVED3 = 0x5000,
+ SPPS_RESERVED4 = 0xf000,
+}}
+STRUCT!{struct SPSHORTCUTPAIR {
+ pNextSHORTCUTPAIR: *mut SPSHORTCUTPAIR,
+ LangID: WORD,
+ shType: SPSHORTCUTTYPE,
+ pszDisplay: LPWSTR,
+ pszSpoken: LPWSTR,
+}}
+STRUCT!{struct SPSHORTCUTPAIRLIST {
+ ulSize: ULONG,
+ pvBuffer: *mut BYTE,
+ pFirstShortcutPair: *mut SPSHORTCUTPAIR,
+}}
+RIDL!{#[uuid(0x3df681e2, 0xea56, 0x11d9, 0x8b, 0xde, 0xf6, 0x6b, 0xad, 0x1e, 0x3f, 0x3a)]
+interface ISpShortcut(ISpShortcutVtbl): IUnknown(IUnknownVtbl) {
+ fn AddShortcut(
+ pszDisplay: LPCWSTR,
+ LangID: WORD,
+ pszSpoken: LPCWSTR,
+ shType: SPSHORTCUTTYPE,
+ ) -> HRESULT,
+ fn RemoveShortcut(
+ pszDisplay: LPCWSTR,
+ LangID: WORD,
+ pszSpoken: LPCWSTR,
+ shType: SPSHORTCUTTYPE,
+ ) -> HRESULT,
+ fn GetShortcuts(
+ LangId: WORD,
+ pShortcutpairList: *mut SPSHORTCUTPAIRLIST,
+ ) -> HRESULT,
+ fn GetGeneration(
+ pdwGeneration: *mut DWORD,
+ ) -> HRESULT,
+ fn GetWordsFromGenerationChange(
+ pdwGeneration: *mut DWORD,
+ pWordList: *mut SPWORDLIST,
+ ) -> HRESULT,
+ fn GetWords(
+ pdwGeneration: *mut DWORD,
+ pdwCookie: *mut DWORD,
+ pWordList: *mut SPWORDLIST,
+ ) -> HRESULT,
+ fn GetShortcutsForGeneration(
+ pdwGeneration: *mut DWORD,
+ pdwCookie: *mut DWORD,
+ pShortcutpairList: *mut SPSHORTCUTPAIRLIST,
+ ) -> HRESULT,
+ fn GetGenerationChange(
+ pdwGeneration: *mut DWORD,
+ pShortcutpairList: *mut SPSHORTCUTPAIRLIST,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{ISpPhoneConverter, ISpPhoneConverterVtbl};
+RIDL!{#[uuid(0x133adcd4, 0x19b4, 0x4020, 0x9f, 0xdc, 0x84, 0x2e, 0x78, 0x25, 0x3b, 0x17)]
+interface ISpPhoneticAlphabetConverter(ISpPhoneticAlphabetConverterVtbl): IUnknown(IUnknownVtbl) {
+ fn GetLangId(
+ pLangID: *mut WORD,
+ ) -> HRESULT,
+ fn SetLangId(
+ LangID: WORD,
+ ) -> HRESULT,
+ fn SAPI2UPS(
+ pszSAPIId: *const SPPHONEID,
+ pszUPSId: *mut SPPHONEID,
+ cMaxLength: DWORD,
+ ) -> HRESULT,
+ fn UPS2SAPI(
+ pszUPSId: *const SPPHONEID,
+ pszSAPIId: *mut SPPHONEID,
+ cMaxLength: DWORD,
+ ) -> HRESULT,
+ fn GetMaxConvertLength(
+ cSrcLength: DWORD,
+ bSAPI2UPS: BOOL,
+ pcMaxDestLength: *mut DWORD,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xb2745efd, 0x42ce, 0x48ca, 0x81, 0xf1, 0xa9, 0x6e, 0x02, 0x53, 0x8a, 0x90)]
+interface ISpPhoneticAlphabetSelection(ISpPhoneticAlphabetSelectionVtbl): IUnknown(IUnknownVtbl) {
+ fn IsAlphabetUPS(
+ pfIsUPS: *mut BOOL,
+ ) -> HRESULT,
+ fn SetAlphabetToUPS(
+ fForceUPS: BOOL,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ SPVPITCH,
+ SPVACTIONS,
+ SPVA_Speak,
+ SPVA_Silence,
+ SPVA_Pronounce,
+ SPVA_Bookmark,
+ SPVA_SpellOut,
+ SPVA_Section,
+ SPVA_ParseUnknownTag,
+ SPVCONTEXT,
+ SPVSTATE,
+ SPRUNSTATE,
+ SPRS_DONE,
+ SPRS_IS_SPEAKING,
+ SPVLIMITS,
+ SPMIN_VOLUME,
+ SPMAX_VOLUME,
+ SPMIN_RATE,
+ SPMAX_RATE,
+ SPVPRIORITY,
+ SPVPRI_NORMAL,
+ SPVPRI_ALERT,
+ SPVPRI_OVER,
+ SPVOICESTATUS,
+ SPEAKFLAGS,
+ SPF_DEFAULT,
+ SPF_ASYNC,
+ SPF_PURGEBEFORESPEAK,
+ SPF_IS_FILENAME,
+ SPF_IS_XML,
+ SPF_IS_NOT_XML,
+ SPF_PERSIST_XML,
+ SPF_NLP_SPEAK_PUNC,
+};
+pub const SPF_PARSE_SAPI: SPEAKFLAGS = 1 << 7;
+pub const SPF_PARSE_SSML: SPEAKFLAGS = 1 << 8;
+pub const SPF_PARSE_AUTODETECT: SPEAKFLAGS = 0;
+pub use um::sapi51::SPF_NLP_MASK;
+pub const SPF_PARSE_MASK: SPEAKFLAGS = SPF_PARSE_SAPI | SPF_PARSE_SSML;
+pub const SPF_VOICE_MASK: SPEAKFLAGS = ::um::sapi51::SPF_VOICE_MASK | SPF_PARSE_MASK;
+pub const SPF_UNUSED_FLAGS: SPEAKFLAGS = !SPF_VOICE_MASK;
+pub use um::sapi51::{
+ ISpVoice, ISpVoiceVtbl,
+ ISpPhrase, ISpPhraseVtbl,
+ ISpPhraseAlt, ISpPhraseAltVtbl,
+};
+ENUM!{enum SPXMLRESULTOPTIONS {
+ SPXRO_SML = 0,
+ SPXRO_Alternates_SML = 1,
+}}
+RIDL!{#[uuid(0xf264da52, 0xe457, 0x4696, 0xb8, 0x56, 0xa7, 0x37, 0xb7, 0x17, 0xaf, 0x79)]
+interface ISpPhrase2(ISpPhrase2Vtbl): ISpPhrase(ISpPhraseVtbl) {
+ fn GetXMLResult(
+ ppszCoMemXMLResult: *mut LPWSTR,
+ Options: SPXMLRESULTOPTIONS,
+ ) -> HRESULT,
+ fn GetXMLErrorInfo(
+ pSemanticErrorInfo: *mut SPSEMANTICERRORINFO,
+ ) -> HRESULT,
+ fn GetAudio(
+ ulStartElement: ULONG,
+ cElements: ULONG,
+ ppStream: *mut *mut ISpStreamFormat,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ SPRECORESULTTIMES,
+ SPSERIALIZEDRESULT,
+ ISpRecoResult, ISpRecoResultVtbl,
+};
+ENUM!{enum SPCOMMITFLAGS {
+ SPCF_NONE = 0,
+ SPCF_ADD_TO_USER_LEXICON = 1 << 0,
+ SPCF_DEFINITE_CORRECTION = 1 << 1,
+}}
+RIDL!{#[uuid(0x27cac6c4, 0x88f2, 0x41f2, 0x88, 0x17, 0x0c, 0x95, 0xe5, 0x9f, 0x1e, 0x6e)]
+interface ISpRecoResult2(ISpRecoResult2Vtbl): ISpRecoResult(ISpRecoResultVtbl) {
+ fn CommitAlternate(
+ pPhraseAlt: *mut ISpPhraseAlt,
+ ppNewResult: *mut *mut ISpRecoResult,
+ ) -> HRESULT,
+ fn CommitText(
+ ulStartElement: ULONG,
+ cElements: ULONG,
+ pszCorrectedData: LPCWSTR,
+ eCommitFlags: DWORD,
+ ) -> HRESULT,
+ fn SetTextFeedback(
+ pszFeedback: LPCWSTR,
+ fSuccessful: BOOL,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xae39362b, 0x45a8, 0x4074, 0x9b, 0x9e, 0xcc, 0xf4, 0x9a, 0xa2, 0xd0, 0xb6)]
+interface ISpXMLRecoResult(ISpXMLRecoResultVtbl): ISpRecoResult(ISpRecoResultVtbl) {
+ fn GetXMLResult(
+ ppszCoMemXMLResult: *mut LPWSTR,
+ Options: SPXMLRESULTOPTIONS,
+ ) -> HRESULT,
+ fn GetXMLErrorInfo(
+ pSemanticErrorInfo: *mut SPSEMANTICERRORINFO,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ SPTEXTSELECTIONINFO,
+ SPWORDPRONOUNCEABLE,
+ SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
+ SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
+ SPWP_KNOWN_WORD_PRONOUNCEABLE,
+ SPGRAMMARSTATE,
+ SPGS_DISABLED,
+ SPGS_ENABLED,
+ SPGS_EXCLUSIVE,
+ SPCONTEXTSTATE,
+ SPCS_DISABLED,
+ SPCS_ENABLED,
+ SPRULESTATE,
+ SPRS_INACTIVE,
+ SPRS_ACTIVE,
+ SPRS_ACTIVE_WITH_AUTO_PAUSE,
+};
+pub const SPRS_ACTIVE_USER_DELIMITED: SPRULESTATE = 4;
+pub use um::sapi51::{
+ SP_STREAMPOS_ASAP,
+ SP_STREAMPOS_REALTIME,
+ SPRULETRANS_TEXTBUFFER,
+ SPRULETRANS_WILDCARD,
+ SPRULETRANS_DICTATION,
+ SPGRAMMARWORDTYPE,
+ SPWT_DISPLAY,
+ SPWT_LEXICAL,
+ SPWT_PRONUNCIATION,
+};
+pub const SPWT_LEXICAL_NO_SPECIAL_CHARS: SPGRAMMARWORDTYPE = SPWT_PRONUNCIATION + 1;
+pub use um::sapi51::{
+ SPPROPERTYINFO,
+ SPCFGRULEATTRIBUTES,
+ SPRAF_TopLevel,
+ SPRAF_Active,
+ SPRAF_Export,
+ SPRAF_Import,
+ SPRAF_Interpreter,
+ SPRAF_Dynamic,
+};
+pub const SPRAF_Root: SPCFGRULEATTRIBUTES = 1 << 6;
+pub use um::sapi51::SPRAF_AutoPause;
+pub const SPRAF_UserDelimited: SPCFGRULEATTRIBUTES = 1 << 17;
+pub use um::sapi51::{
+ ISpGrammarBuilder, ISpGrammarBuilderVtbl,
+ SPLOADOPTIONS,
+ SPLO_STATIC,
+ SPLO_DYNAMIC,
+ ISpRecoGrammar, ISpRecoGrammarVtbl,
+};
+ENUM!{enum SPMATCHINGMODE {
+ AllWords = 0,
+ Subsequence = 1,
+ OrderedSubset = 3,
+ SubsequenceContentRequired = 5,
+ OrderedSubsetContentRequired = 7,
+}}
+ENUM!{enum PHONETICALPHABET {
+ PA_Ipa = 0,
+ PA_Ups = 1,
+ PA_Sapi = 2,
+}}
+RIDL!{#[uuid(0x8ab10026, 0x20cc, 0x4b20, 0x8c, 0x22, 0xa4, 0x9c, 0x9b, 0xa7, 0x8f, 0x60)]
+interface ISpGrammarBuilder2(ISpGrammarBuilder2Vtbl): IUnknown(IUnknownVtbl) {
+ fn AddTextSubset(
+ hFromState: SPSTATEHANDLE,
+ hToState: SPSTATEHANDLE,
+ psz: LPCWSTR,
+ eMatchMode: SPMATCHINGMODE,
+ ) -> HRESULT,
+ fn SetPhoneticAlphabet(
+ phoneticALphabet: PHONETICALPHABET,
+ ) -> HRESULT,
+}}
+pub const SPRP_NORMAL: i32 = 0; // TODO: Unknown purpose and type
+RIDL!{#[uuid(0x4b37bc9e, 0x9ed6, 0x44a3, 0x93, 0xd3, 0x18, 0xf0, 0x22, 0xb7, 0x9e, 0xc3)]
+interface ISpRecoGrammar2(ISpRecoGrammar2Vtbl): IUnknown(IUnknownVtbl) {
+ fn GetRules(
+ ppCoMemRules: *mut *mut SPRULE,
+ puNumRules: *mut UINT,
+ ) -> HRESULT,
+ fn LoadCmdFromFile2(
+ pszFileName: LPCWSTR,
+ Options: SPLOADOPTIONS,
+ pszSharingUri: LPCWSTR,
+ pszBaseUri: LPCWSTR,
+ ) -> HRESULT,
+ fn LoadCmdFromMemory2(
+ pGrammar: *const SPBINARYGRAMMAR,
+ Options: SPLOADOPTIONS,
+ pszSharingUri: LPCWSTR,
+ pszBaseUri: LPCWSTR,
+ ) -> HRESULT,
+ fn SetRulePriority(
+ pszRuleName: LPCWSTR,
+ ulRuleId: ULONG,
+ nRulePriority: c_int,
+ ) -> HRESULT,
+ fn SetRuleWeight(
+ pszRuleName: LPCWSTR,
+ ulRuleId: ULONG,
+ flWeight: c_float,
+ ) -> HRESULT,
+ fn SetDictationWeight(
+ flWeight: c_float,
+ ) -> HRESULT,
+ fn SetGrammarLoader(
+ pLoader: *mut ISpeechResourceLoader,
+ ) -> HRESULT,
+ fn SetSMLSecurityManager(
+ pSMLSecurityManager: *mut IInternetSecurityManager,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xb9ac5783, 0xfcd0, 0x4b21, 0xb1, 0x19, 0xb4, 0xf8, 0xda, 0x8f, 0xd2, 0xc3)]
+interface ISpeechResourceLoader(ISpeechResourceLoaderVtbl): IDispatch(IDispatchVtbl) {
+ fn LoadResource(
+ bstrResourceUri: BSTR,
+ fAlwaysReload: VARIANT_BOOL,
+ pStream: *mut *mut IUnknown,
+ pbstrMIMEType: *mut BSTR,
+ pfModified: *mut VARIANT_BOOL,
+ pbstrRedirectUrl: *mut BSTR,
+ ) -> HRESULT,
+ fn GetLocalCopy(
+ bstrResourceUri: BSTR,
+ pbstrLocalPath: *mut BSTR,
+ pbstrMIMEType: *mut BSTR,
+ pbstrRedirectUrl: *mut BSTR,
+ ) -> HRESULT,
+ fn ReleaseLocalCopy(
+ pbstrLocalPath: BSTR,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ SPRECOCONTEXTSTATUS,
+ SPBOOKMARKOPTIONS,
+ SPBO_NONE,
+ SPBO_PAUSE,
+};
+pub const SPBO_AHEAD: SPBOOKMARKOPTIONS = 1 << 1;
+pub const SPBO_TIME_UNITS: SPBOOKMARKOPTIONS = 1 << 2;
+pub use um::sapi51::{
+ SPAUDIOOPTIONS,
+ SPAO_NONE,
+ SPAO_RETAIN_AUDIO,
+ ISpRecoContext, ISpRecoContextVtbl,
+};
+ENUM!{enum SPGRAMMAROPTIONS {
+ SPGO_SAPI = 0x1,
+ SPGO_SRGS = 0x2,
+ SPGO_UPS = 0x4,
+ SPGO_SRGS_MS_SCRIPT = 0x8,
+ 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_FILE = 0x10,
+ SPGO_HTTP = 0x20,
+ SPGO_RES = 0x40,
+ SPGO_OBJECT = 0x80,
+ SPGO_DEFAULT = 0x3fb,
+ SPGO_ALL = 0x3ff,
+}}
+ENUM!{enum SPADAPTATIONSETTINGS {
+ SPADS_Default = 0,
+ SPADS_CurrentRecognizer = 0x1,
+ SPADS_RecoProfile = 0x2,
+ SPADS_Immediate = 0x4,
+ SPADS_Reset = 0x8,
+ SPADS_HighVolumeDataSource = 0x10,
+}}
+ENUM!{enum SPADAPTATIONRELEVANCE {
+ SPAR_Unknown = 0,
+ SPAR_Low = 1,
+ SPAR_Medium = 2,
+ SPAR_High = 3,
+}}
+RIDL!{#[uuid(0xbead311c, 0x52ff, 0x437f, 0x94, 0x64, 0x6b, 0x21, 0x05, 0x4c, 0xa7, 0x3d)]
+interface ISpRecoContext2(ISpRecoContext2Vtbl): IUnknown(IUnknownVtbl) {
+ fn SetGrammarOptions(
+ eGrammarOptions: DWORD,
+ ) -> HRESULT,
+ fn GetGrammarOptions(
+ peGrammarOptions: *mut DWORD,
+ ) -> HRESULT,
+ fn SetAdaptationData2(
+ pAdaptationData: LPCWSTR,
+ cch: ULONG,
+ pTopicName: LPCWSTR,
+ eAdaptationSettings: DWORD,
+ eRelevance: SPADAPTATIONRELEVANCE,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ ISpProperties, ISpPropertiesVtbl,
+ SP_MAX_LANGIDS,
+ SPRECOGNIZERSTATUS,
+ SPWAVEFORMATTYPE,
+ SPWF_INPUT,
+ SPWF_SRENGINE,
+ SPSTREAMFORMATTYPE,
+ SPRECOSTATE,
+ SPRST_INACTIVE,
+ SPRST_ACTIVE,
+ SPRST_ACTIVE_ALWAYS,
+ SPRST_INACTIVE_WITH_PURGE,
+ SPRST_NUM_STATES,
+ ISpRecognizer, ISpRecognizerVtbl,
+};
+RIDL!{#[uuid(0x21b501a0, 0x0ec7, 0x46c9, 0x92, 0xc3, 0xa2, 0xbc, 0x78, 0x4c, 0x54, 0xb9)]
+interface ISpSerializeState(ISpSerializeStateVtbl): IUnknown(IUnknownVtbl) {
+ fn GetSerializedState(
+ ppbData: *mut *mut BYTE,
+ pulSize: *mut ULONG,
+ dwReserved: DWORD,
+ ) -> HRESULT,
+ fn SetSerializedState(
+ pbData: *mut BYTE,
+ ulSize: ULONG,
+ dwReserved: DWORD,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x8fc6d974, 0xc81e, 0x4098, 0x93, 0xc5, 0x01, 0x47, 0xf6, 0x1e, 0xd4, 0xd3)]
+interface ISpRecognizer2(ISpRecognizer2Vtbl): IUnknown(IUnknownVtbl) {
+ fn EmulateRecognitionEx(
+ pPhrase: *mut ISpPhrase,
+ dwCompareFlags: DWORD,
+ ) -> HRESULT,
+ fn SetTrainingState(
+ fDoingTraining: BOOL,
+ fAdaptFromTrainingData: BOOL,
+ ) -> HRESULT,
+ fn ResetAcousticModelAdaptation() -> HRESULT,
+}}
+STRUCT!{struct SPNORMALIZATIONLIST {
+ ulSize: ULONG,
+ ppszzNormalizedList: *mut *mut WCHAR,
+}}
+RIDL!{#[uuid(0xc360ce4b, 0x76d1, 0x4214, 0xad, 0x68, 0x52, 0x65, 0x7d, 0x50, 0x83, 0xda)]
+interface ISpEnginePronunciation(ISpEnginePronunciationVtbl): IUnknown(IUnknownVtbl) {
+ fn Normalize(
+ pszWord: LPCWSTR,
+ pszLeftContext: LPCWSTR,
+ pszRightContext: LPCWSTR,
+ LangID: WORD,
+ pNormalizationList: *mut SPNORMALIZATIONLIST,
+ ) -> HRESULT,
+ fn GetPronunciations(
+ pszWord: LPCWSTR,
+ pszLeftContext: LPCWSTR,
+ pszRightContext: LPCWSTR,
+ LangID: WORD,
+ pEnginePronunciationList: *mut SPWORDPRONUNCIATIONLIST,
+ ) -> HRESULT,
+}}
+STRUCT!{struct SPDISPLAYTOKEN {
+ pszLexical: *const WCHAR,
+ pszDisplay: *const WCHAR,
+ bDisplayAttributes: BYTE,
+}}
+STRUCT!{struct SPDISPLAYPHRASE {
+ ulNumTokens: ULONG,
+ pTokens: *mut SPDISPLAYTOKEN,
+}}
+RIDL!{#[uuid(0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf, 0xe3, 0xb0, 0xc9, 0x91, 0xfb, 0xeb, 0x5e)]
+interface ISpDisplayAlternates(ISpDisplayAlternatesVtbl): IUnknown(IUnknownVtbl) {
+ fn GetDisplayAlternates(
+ pPhrase: *const SPDISPLAYPHRASE,
+ cRequestCount: ULONG,
+ ppCoMemPhrases: *mut *mut SPDISPLAYPHRASE,
+ pcPhrasesReturned: *mut ULONG,
+ ) -> HRESULT,
+ fn SetFullStopTrailSpace(
+ ulTrailSpace: ULONG,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ SpeechLanguageId,
+ DISPID_SpeechDataKey,
+ DISPID_SDKSetBinaryValue,
+ DISPID_SDKGetBinaryValue,
+ DISPID_SDKSetStringValue,
+ DISPID_SDKGetStringValue,
+ DISPID_SDKSetLongValue,
+ DISPID_SDKGetlongValue,
+ DISPID_SDKOpenKey,
+ DISPID_SDKCreateKey,
+ DISPID_SDKDeleteKey,
+ DISPID_SDKDeleteValue,
+ DISPID_SDKEnumKeys,
+ DISPID_SDKEnumValues,
+ DISPID_SpeechObjectToken,
+ DISPID_SOTId,
+ DISPID_SOTDataKey,
+ DISPID_SOTCategory,
+ DISPID_SOTGetDescription,
+ DISPID_SOTSetId,
+ DISPID_SOTGetAttribute,
+ DISPID_SOTCreateInstance,
+ DISPID_SOTRemove,
+ DISPID_SOTGetStorageFileName,
+ DISPID_SOTRemoveStorageFileName,
+ DISPID_SOTIsUISupported,
+ DISPID_SOTDisplayUI,
+ DISPID_SOTMatchesAttributes,
+ SpeechDataKeyLocation,
+ SDKLDefaultLocation,
+ SDKLCurrentUser,
+ SDKLLocalMachine,
+ SDKLCurrentConfig,
+ SpeechTokenContext,
+ STCInprocServer,
+ STCInprocHandler ,
+ STCLocalServer,
+ STCRemoteServer,
+ STCAll,
+ SpeechTokenShellFolder,
+ STSF_AppData,
+ STSF_LocalAppData,
+ STSF_CommonAppData,
+ STSF_FlagCreate,
+ DISPID_SpeechObjectTokens,
+ DISPID_SOTsCount,
+ DISPID_SOTsItem,
+ DISPID_SOTs_NewEnum,
+ DISPID_SpeechObjectTokenCategory,
+ DISPID_SOTCId,
+ DISPID_SOTCDefault,
+ DISPID_SOTCSetId,
+ DISPID_SOTCGetDataKey,
+ DISPID_SOTCEnumerateTokens,
+ SpeechAudioFormatType,
+ SAFTDefault,
+ SAFTNoAssignedFormat,
+ 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,
+ DISPID_SpeechAudioFormat,
+ DISPID_SAFType,
+ DISPID_SAFGuid,
+ DISPID_SAFGetWaveFormatEx,
+ DISPID_SAFSetWaveFormatEx,
+ DISPID_SpeechBaseStream,
+ DISPID_SBSFormat,
+ DISPID_SBSRead,
+ DISPID_SBSWrite,
+ DISPID_SBSSeek,
+ SpeechStreamSeekPositionType,
+ SSSPTRelativeToStart,
+ SSSPTRelativeToCurrentPosition,
+ SSSPTRelativeToEnd,
+ DISPID_SpeechAudio,
+ DISPID_SAStatus,
+ DISPID_SABufferInfo,
+ DISPID_SADefaultFormat,
+ DISPID_SAVolume,
+ DISPID_SABufferNotifySize,
+ DISPID_SAEventHandle,
+ DISPID_SASetState,
+ SpeechAudioState,
+ SASClosed,
+ SASStop,
+ SASPause,
+ SASRun,
+ DISPID_SpeechMMSysAudio,
+ DISPID_SMSADeviceId,
+ DISPID_SMSALineId,
+ DISPID_SMSAMMHandle,
+ DISPID_SpeechFileStream,
+ DISPID_SFSOpen,
+ DISPID_SFSClose,
+ SpeechStreamFileMode,
+ SSFMOpenForRead,
+ SSFMOpenReadWrite,
+ SSFMCreate,
+ SSFMCreateForWrite,
+ DISPID_SpeechCustomStream,
+ DISPID_SCSBaseStream,
+ DISPID_SpeechMemoryStream,
+ DISPID_SMSSetData,
+ DISPID_SMSGetData,
+ DISPID_SpeechAudioStatus,
+ DISPID_SASFreeBufferSpace,
+ DISPID_SASNonBlockingIO,
+ DISPID_SASState,
+ DISPID_SASCurrentSeekPosition,
+ DISPID_SASCurrentDevicePosition,
+ DISPID_SpeechAudioBufferInfo,
+ DISPID_SABIMinNotification,
+ DISPID_SABIBufferSize,
+ DISPID_SABIEventBias,
+ DISPID_SpeechWaveFormatEx,
+ DISPID_SWFEFormatTag,
+ DISPID_SWFEChannels,
+ DISPID_SWFESamplesPerSec,
+ DISPID_SWFEAvgBytesPerSec,
+ DISPID_SWFEBlockAlign,
+ DISPID_SWFEBitsPerSample,
+ DISPID_SWFEExtraData,
+ DISPID_SpeechVoice,
+ DISPID_SVStatus,
+ 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,
+ SpeechVoicePriority,
+ SVPNormal,
+ SVPAlert,
+ SVPOver,
+ SpeechVoiceSpeakFlags,
+ SVSFDefault,
+ SVSFlagsAsync,
+ SVSFPurgeBeforeSpeak,
+ SVSFIsFilename,
+ SVSFIsXML,
+ SVSFIsNotXML,
+ SVSFPersistXML,
+ SVSFNLPSpeakPunc,
+};
+pub const SVSFParseSapi: SpeechVoiceSpeakFlags = SPF_PARSE_SAPI;
+pub const SVSFParseSsml: SpeechVoiceSpeakFlags = SPF_PARSE_SSML;
+pub const SVSFParseAutodetect: SpeechVoiceSpeakFlags = SPF_PARSE_AUTODETECT;
+pub use um::sapi51::SVSFNLPMask;
+pub const SVSFParseMask: SpeechVoiceSpeakFlags = SPF_PARSE_MASK as u32;
+pub use um::sapi51::{
+ SVSFVoiceMask,
+ SVSFUnusedFlags,
+ SpeechVoiceEvents,
+ SVEStartInputStream,
+ SVEEndInputStream,
+ SVEVoiceChange,
+ SVEBookmark,
+ SVEWordBoundary,
+ SVEPhoneme,
+ SVESentenceBoundary,
+ SVEViseme,
+ SVEAudioLevel,
+ SVEPrivate,
+ SVEAllEvents,
+ DISPID_SpeechVoiceStatus,
+ DISPID_SVSCurrentStreamNumber,
+ DISPID_SVSLastStreamNumberQueued,
+ DISPID_SVSLastResult,
+ DISPID_SVSRunningState,
+ DISPID_SVSInputWordPosition,
+ DISPID_SVSInputWordLength,
+ DISPID_SVSInputSentencePosition,
+ DISPID_SVSInputSentenceLength,
+ DISPID_SVSLastBookmark,
+ DISPID_SVSLastBookmarkId,
+ DISPID_SVSPhonemeId,
+ DISPID_SVSVisemeId,
+ SpeechRunState,
+ SRSEDone,
+ SRSEIsSpeaking,
+ SpeechVisemeType,
+ SVP_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,
+ SpeechVisemeFeature,
+ SVF_None,
+ SVF_Stressed,
+ SVF_Emphasis,
+ DISPID_SpeechVoiceEvent,
+ DISPID_SVEStreamStart,
+ DISPID_SVEStreamEnd,
+ DISPID_SVEVoiceChange,
+ DISPID_SVEBookmark,
+ DISPID_SVEWord,
+ DISPID_SVEPhoneme,
+ DISPID_SVESentenceBoundary,
+ DISPID_SVEViseme,
+ DISPID_SVEAudioLevel,
+ DISPID_SVEEnginePrivate,
+ DISPID_SpeechRecognizer,
+ DISPID_SRRecognizer,
+ 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,
+ SpeechRecognizerState,
+ SRSInactive,
+ SRSActive,
+ SRSActiveAlways,
+ SRSInactiveWithPurge,
+ SpeechDisplayAttributes,
+ SDA_No_Trailing_Space,
+ SDA_One_Trailing_Space,
+ SDA_Two_Trailing_Spaces,
+ SDA_Consume_Leading_Spaces,
+ SpeechFormatType,
+ SFTInput,
+ SFTSREngine,
+};
+ENUM!{enum SpeechEmulationCompareFlags {
+ SECFIgnoreCase = 0x1,
+ SECFIgnoreKanaType = 0x10000,
+ SECFIgnoreWidth = 0x20000,
+ SECFNoSpecialChars = 0x20000000,
+ SECFEmulateResult = 0x40000000,
+ SECFDefault = SECFIgnoreCase | SECFIgnoreKanaType | SECFIgnoreWidth,
+}}
+pub use um::sapi51::{
+ DISPID_SpeechRecognizerStatus,
+ DISPID_SRSAudioStatus,
+ DISPID_SRSCurrentStreamPosition,
+ DISPID_SRSCurrentStreamNumber,
+ DISPID_SRSNumberOfActiveRules,
+ DISPID_SRSClsidEngine,
+ DISPID_SRSSupportedLanguages,
+ DISPID_SpeechRecoContext,
+ DISPID_SRCRecognizer,
+ 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,
+ SpeechRetainedAudioOptions,
+ SRAONone,
+ SRAORetainAudio,
+ SpeechBookmarkOptions,
+ SBONone,
+ SBOPause,
+ SpeechInterference,
+ SINone,
+ SINoise,
+ SINoSignal,
+ SITooLoud,
+ SITooQuiet,
+ SITooFast,
+ SITooSlow,
+ SpeechRecoEvents,
+ SREStreamEnd,
+ SRESoundStart,
+ SRESoundEnd,
+ SREPhraseStart,
+ SRERecognition,
+ SREHypothesis,
+ SREBookmark,
+ SREPropertyNumChange,
+ SREPropertyStringChange,
+ SREFalseRecognition,
+ SREInterference,
+ SRERequestUI,
+ SREStateChange,
+ SREAdaptation,
+ SREStreamStart,
+ SRERecoOtherContext,
+ SREAudioLevel,
+ SREPrivate,
+ SREAllEvents,
+ SpeechRecoContextState,
+ SRCS_Disabled,
+ SRCS_Enabled,
+ DISPIDSPRG,
+ DISPID_SRGId,
+ 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,
+ SpeechLoadOption,
+ SLOStatic,
+ SLODynamic,
+ SpeechWordPronounceable,
+ SWPUnknownWordUnpronounceable,
+ SWPUnknownWordPronounceable,
+ SWPKnownWordPronounceable,
+ SpeechGrammarState,
+ SGSEnabled,
+ SGSDisabled,
+ SGSExclusive,
+ SpeechRuleState,
+ SGDSInactive,
+ SGDSActive,
+ SGDSActiveWithAutoPause,
+};
+pub const SGDSActiveUserDelimited: SpeechRuleState = SPRS_ACTIVE_USER_DELIMITED;
+pub use um::sapi51::{
+ SpeechRuleAttributes,
+ SRATopLevel,
+ SRADefaultToActive,
+ SRAExport,
+ SRAImport,
+ SRAInterpreter,
+ SRADynamic,
+};
+pub const SRARoot: SpeechRuleAttributes = SPRAF_Root;
+pub use um::sapi51::{
+ SpeechGrammarWordType,
+ SGDisplay,
+ SGLexical,
+ SGPronounciation,
+};
+pub const SGLexicalNoSpecialChars: SpeechGrammarWordType = SPWT_LEXICAL_NO_SPECIAL_CHARS;
+pub use um::sapi51::{
+ DISPID_SpeechRecoContextEvents,
+ DISPID_SRCEStartStream,
+ 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,
+ SpeechRecognitionType,
+ SRTStandard,
+ SRTAutopause,
+ SRTEmulated,
+};
+pub const SRTSMLTimeout: SpeechRecognitionType = SPREF_SMLTimeout;
+pub const SRTExtendableParse: SpeechRecognitionType = SPREF_ExtendableParse;
+pub const SRTReSent: SpeechRecognitionType = SPREF_ReSent;
+pub use um::sapi51::{
+ DISPID_SpeechGrammarRule,
+ DISPID_SGRAttributes,
+ DISPID_SGRInitialState,
+ DISPID_SGRName,
+ DISPID_SGRId,
+ DISPID_SGRClear,
+ DISPID_SGRAddResource,
+ DISPID_SGRAddState,
+ DISPID_SpeechGrammarRules,
+ DISPID_SGRsCount,
+ DISPID_SGRsDynamic,
+ DISPID_SGRsAdd,
+ DISPID_SGRsCommit,
+ DISPID_SGRsCommitAndSave,
+ DISPID_SGRsFindRule,
+ DISPID_SGRsItem,
+ DISPID_SGRs_NewEnum,
+ DISPID_SpeechGrammarRuleState,
+ DISPID_SGRSRule,
+ DISPID_SGRSTransitions,
+ DISPID_SGRSAddWordTransition,
+ DISPID_SGRSAddRuleTransition,
+ DISPID_SGRSAddSpecialTransition,
+ SpeechSpecialTransitionType,
+ SSTTWildcard,
+ SSTTDictation,
+ SSTTTextBuffer,
+ DISPID_SpeechGrammarRuleStateTransitions,
+ DISPID_SGRSTsCount,
+ DISPID_SGRSTsItem,
+ DISPID_SGRSTs_NewEnum,
+ DISPID_SpeechGrammarRuleStateTransition,
+ DISPID_SGRSTType,
+ DISPID_SGRSTText,
+ DISPID_SGRSTRule,
+ DISPID_SGRSTWeight,
+ DISPID_SGRSTPropertyName,
+ DISPID_SGRSTPropertyId,
+ DISPID_SGRSTPropertyValue,
+ DISPID_SGRSTNextState,
+ SpeechGrammarRuleStateTransitionType,
+ SGRSTTEpsilon,
+ SGRSTTWord,
+ SGRSTTRule,
+ SGRSTTDictation,
+ SGRSTTWildcard,
+ SGRSTTTextBuffer,
+ DISPIDSPTSI,
+ DISPIDSPTSI_ActiveOffset,
+ DISPIDSPTSI_ActiveLength,
+ DISPIDSPTSI_SelectionOffset,
+ DISPIDSPTSI_SelectionLength,
+ DISPID_SpeechRecoResult,
+ DISPID_SRRRecoContext,
+ DISPID_SRRTimes,
+ DISPID_SRRAudioFormat,
+ DISPID_SRRPhraseInfo,
+ DISPID_SRRAlternates,
+ DISPID_SRRAudio,
+ DISPID_SRRSpeakAudio,
+ DISPID_SRRSaveToMemory,
+ DISPID_SRRDiscardResultInfo,
+ SpeechDiscardType,
+ SDTProperty,
+ SDTReplacement,
+ SDTRule,
+ SDTDisplayText,
+ SDTLexicalForm,
+ SDTPronunciation,
+ SDTAudio,
+ SDTAlternates,
+ SDTAll,
+};
+ENUM!{enum DISPID_SpeechXMLRecoResult {
+ DISPID_SRRGetXMLResult,
+ DISPID_SRRGetXMLErrorInfo,
+}}
+ENUM!{enum DISPID_SpeechRecoResult2 {
+ DISPID_SRRSetTextFeedback,
+}}
+pub use um::sapi51::{
+ DISPID_SpeechPhraseBuilder,
+ DISPID_SPPBRestorePhraseFromMemory,
+ DISPID_SpeechRecoResultTimes,
+ DISPID_SRRTStreamTime,
+ DISPID_SRRTLength,
+ DISPID_SRRTTickCount,
+ DISPID_SRRTOffsetFromStart,
+ DISPID_SpeechPhraseAlternate,
+ DISPID_SPARecoResult,
+ DISPID_SPAStartElementInResult,
+ DISPID_SPANumberOfElementsInResult,
+ DISPID_SPAPhraseInfo,
+ DISPID_SPACommit,
+ DISPID_SpeechPhraseAlternates,
+ DISPID_SPAsCount,
+ DISPID_SPAsItem,
+ DISPID_SPAs_NewEnum,
+ DISPID_SpeechPhraseInfo,
+ DISPID_SPILanguageId,
+ 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_SpeechPhraseElement,
+ DISPID_SPEAudioTimeOffset,
+ DISPID_SPEAudioSizeTime,
+ DISPID_SPEAudioStreamOffset,
+ DISPID_SPEAudioSizeBytes,
+ DISPID_SPERetainedStreamOffset,
+ DISPID_SPERetainedSizeBytes,
+ DISPID_SPEDisplayText,
+ DISPID_SPELexicalForm,
+ DISPID_SPEPronunciation,
+ DISPID_SPEDisplayAttributes,
+ DISPID_SPERequiredConfidence,
+ DISPID_SPEActualConfidence,
+ DISPID_SPEEngineConfidence,
+ SpeechEngineConfidence,
+ SECLowConfidence,
+ SECNormalConfidence,
+ SECHighConfidence,
+ DISPID_SpeechPhraseElements,
+ DISPID_SPEsCount,
+ DISPID_SPEsItem,
+ DISPID_SPEs_NewEnum,
+ DISPID_SpeechPhraseReplacement,
+ DISPID_SPRDisplayAttributes,
+ DISPID_SPRText,
+ DISPID_SPRFirstElement,
+ DISPID_SPRNumberOfElements,
+ DISPID_SpeechPhraseReplacements,
+ DISPID_SPRsCount,
+ DISPID_SPRsItem,
+ DISPID_SPRs_NewEnum,
+ DISPID_SpeechPhraseProperty,
+ DISPID_SPPName,
+ DISPID_SPPId,
+ DISPID_SPPValue,
+ DISPID_SPPFirstElement,
+ DISPID_SPPNumberOfElements,
+ DISPID_SPPEngineConfidence,
+ DISPID_SPPConfidence,
+ DISPID_SPPParent,
+ DISPID_SPPChildren,
+ DISPID_SpeechPhraseProperties,
+ DISPID_SPPsCount,
+ DISPID_SPPsItem,
+ DISPID_SPPs_NewEnum,
+ DISPID_SpeechPhraseRule,
+ DISPID_SPRuleName,
+ DISPID_SPRuleId,
+ DISPID_SPRuleFirstElement,
+ DISPID_SPRuleNumberOfElements,
+ DISPID_SPRuleParent,
+ DISPID_SPRuleChildren,
+ DISPID_SPRuleConfidence,
+ DISPID_SPRuleEngineConfidence,
+ DISPID_SpeechPhraseRules,
+ DISPID_SPRulesCount,
+ DISPID_SPRulesItem,
+ DISPID_SPRules_NewEnum,
+ DISPID_SpeechLexicon,
+ DISPID_SLGenerationId,
+ DISPID_SLGetWords,
+ DISPID_SLAddPronunciation,
+ DISPID_SLAddPronunciationByPhoneIds,
+ DISPID_SLRemovePronunciation,
+ DISPID_SLRemovePronunciationByPhoneIds,
+ DISPID_SLGetPronunciations,
+ DISPID_SLGetGenerationChange,
+ SpeechLexiconType,
+ SLTUser,
+ SLTApp,
+ SpeechPartOfSpeech,
+ SPSNotOverriden,
+ SPSUnknown,
+ SPSNoun,
+ SPSVerb,
+ SPSModifier,
+ SPSFunction,
+ SPSInterjection,
+};
+pub const SPSLMA: SpeechPartOfSpeech = SPPS_LMA;
+pub const SPSSuppressWord: SpeechPartOfSpeech = SPPS_SuppressWord;
+pub use um::sapi51::{
+ DISPID_SpeechLexiconWords,
+ DISPID_SLWsCount,
+ DISPID_SLWsItem,
+ DISPID_SLWs_NewEnum,
+ SpeechWordType,
+ SWTAdded,
+ SWTDeleted,
+ DISPID_SpeechLexiconWord,
+ DISPID_SLWLangId,
+ DISPID_SLWType,
+ DISPID_SLWWord,
+ DISPID_SLWPronunciations,
+ DISPID_SpeechLexiconProns,
+ DISPID_SLPsCount,
+ DISPID_SLPsItem,
+ DISPID_SLPs_NewEnum,
+ DISPID_SpeechLexiconPronunciation,
+ DISPID_SLPType,
+ DISPID_SLPLangId,
+ DISPID_SLPPartOfSpeech,
+ DISPID_SLPPhoneIds,
+ DISPID_SLPSymbolic,
+ DISPID_SpeechPhoneConverter,
+ DISPID_SPCLangId,
+ DISPID_SPCPhoneToId,
+ DISPID_SPCIdToPhone,
+ LIBID_SpeechLib,
+ ISpeechDataKey, ISpeechDataKeyVtbl,
+ ISpeechObjectToken, ISpeechObjectTokenVtbl,
+ ISpeechObjectTokens, ISpeechObjectTokensVtbl,
+ ISpeechObjectTokenCategory, ISpeechObjectTokenCategoryVtbl,
+ ISpeechAudioBufferInfo, ISpeechAudioBufferInfoVtbl,
+ ISpeechAudioStatus, ISpeechAudioStatusVtbl,
+ ISpeechAudioFormat, ISpeechAudioFormatVtbl,
+ ISpeechWaveFormatEx, ISpeechWaveFormatExVtbl,
+ ISpeechBaseStream, ISpeechBaseStreamVtbl,
+ ISpeechFileStream, ISpeechFileStreamVtbl,
+ ISpeechMemoryStream, ISpeechMemoryStreamVtbl,
+ ISpeechCustomStream, ISpeechCustomStreamVtbl,
+ ISpeechAudio, ISpeechAudioVtbl,
+ ISpeechMMSysAudio, ISpeechMMSysAudioVtbl,
+ ISpeechVoice, ISpeechVoiceVtbl,
+ ISpeechVoiceStatus, ISpeechVoiceStatusVtbl,
+ _ISpeechVoiceEvents, _ISpeechVoiceEventsVtbl,
+ ISpeechRecognizer, ISpeechRecognizerVtbl,
+ ISpeechRecognizerStatus, ISpeechRecognizerStatusVtbl,
+ ISpeechRecoContext, ISpeechRecoContextVtbl,
+ ISpeechRecoGrammar, ISpeechRecoGrammarVtbl,
+ _ISpeechRecoContextEvents, _ISpeechRecoContextEventsVtbl,
+ ISpeechGrammarRule, ISpeechGrammarRuleVtbl,
+ ISpeechGrammarRules, ISpeechGrammarRulesVtbl,
+ ISpeechGrammarRuleState, ISpeechGrammarRuleStateVtbl,
+ ISpeechGrammarRuleStateTransition, ISpeechGrammarRuleStateTransitionVtbl,
+ ISpeechGrammarRuleStateTransitions, ISpeechGrammarRuleStateTransitionsVtbl,
+ ISpeechTextSelectionInformation, ISpeechTextSelectionInformationVtbl,
+ ISpeechRecoResult, ISpeechRecoResultVtbl,
+};
+RIDL!{#[uuid(0x8e0a246d, 0xd3c8, 0x45de, 0x86, 0x57, 0x04, 0x29, 0x0c, 0x45, 0x8c, 0x3c)]
+interface ISpeechRecoResult2(ISpeechRecoResult2Vtbl): ISpeechRecoResult(ISpeechRecoResultVtbl) {
+ fn SetTextFeedback(
+ Feedback: BSTR,
+ WasSuccessful: VARIANT_BOOL,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ ISpeechRecoResultTimes, ISpeechRecoResultTimesVtbl,
+ ISpeechPhraseAlternate, ISpeechPhraseAlternateVtbl,
+ ISpeechPhraseAlternates, ISpeechPhraseAlternatesVtbl,
+ ISpeechPhraseInfo, ISpeechPhraseInfoVtbl,
+ ISpeechPhraseElement, ISpeechPhraseElementVtbl,
+ ISpeechPhraseElements, ISpeechPhraseElementsVtbl,
+ ISpeechPhraseReplacement, ISpeechPhraseReplacementVtbl,
+ ISpeechPhraseReplacements, ISpeechPhraseReplacementsVtbl,
+ ISpeechPhraseProperty, ISpeechPhrasePropertyVtbl,
+ ISpeechPhraseProperties, ISpeechPhrasePropertiesVtbl,
+ ISpeechPhraseRule, ISpeechPhraseRuleVtbl,
+ ISpeechPhraseRules, ISpeechPhraseRulesVtbl,
+ ISpeechLexicon, ISpeechLexiconVtbl,
+ ISpeechLexiconWords, ISpeechLexiconWordsVtbl,
+ ISpeechLexiconWord, ISpeechLexiconWordVtbl,
+ ISpeechLexiconPronunciations, ISpeechLexiconPronunciationsVtbl,
+ ISpeechLexiconPronunciation, ISpeechLexiconPronunciationVtbl,
+ Speech_Default_Weight,
+ Speech_Max_Word_Length,
+ Speech_Max_Pron_Length,
+ Speech_StreamPos_Asap,
+ Speech_StreamPos_RealTime,
+ SpeechAllElements,
+};
+RIDL!{#[uuid(0xaaec54af, 0x8f85, 0x4924, 0x94, 0x4d, 0xb7, 0x9d, 0x39, 0xd7, 0x2e, 0x19)]
+interface ISpeechXMLRecoResult(ISpeechXMLRecoResultVtbl):
+ ISpeechRecoResult(ISpeechRecoResultVtbl) {
+ fn GetXMLResult(
+ Options: SPXMLRESULTOPTIONS,
+ pResult: *mut BSTR,
+ ) -> HRESULT,
+ fn GetXMLErrorInfo(
+ LineNumber: *mut c_long,
+ ScriptLine: *mut BSTR,
+ Source: *mut BSTR,
+ Description: *mut BSTR,
+ ResultCode: *mut c_long,
+ IsError: *mut VARIANT_BOOL,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x6d60eb64, 0xaced, 0x40a6, 0xbb, 0xf3, 0x4e, 0x55, 0x7f, 0x71, 0xde, 0xe2)]
+interface ISpeechRecoResultDispatch(ISpeechRecoResultDispatchVtbl): IDispatch(IDispatchVtbl) {
+ fn get_RecoContext(
+ RecoContext: *mut ISpeechRecoContext,
+ ) -> HRESULT,
+ fn get_Times(
+ Times: *mut ISpeechRecoResultTimes,
+ ) -> HRESULT,
+ fn putref_AudioFormat(
+ Format: *mut ISpeechAudioFormat,
+ ) -> HRESULT,
+ fn get_AudioFormat(
+ Format: *mut *mut ISpeechAudioFormat,
+ ) -> HRESULT,
+ fn get_PhraseInfo(
+ PhraseInfo: *mut *mut ISpeechPhraseInfo,
+ ) -> HRESULT,
+ fn Alternates(
+ RequestCount: c_long,
+ StartElement: c_long,
+ Elements: c_long,
+ Alternates: *mut *mut ISpeechPhraseAlternates,
+ ) -> HRESULT,
+ fn Audio(
+ StartElement: c_long,
+ Elements: c_long,
+ Stream: *mut *mut ISpeechMemoryStream,
+ ) -> HRESULT,
+ fn SpeakAudio(
+ StartElement: c_long,
+ Elements: c_long,
+ Flags: SpeechVoiceSpeakFlags,
+ StreamNumber: *mut c_long,
+ ) -> HRESULT,
+ fn SaveToMemory(
+ ResultBlock: *mut VARIANT,
+ ) -> HRESULT,
+ fn DiscardResultInfo(
+ ValueTypes: SpeechDiscardType,
+ ) -> HRESULT,
+ fn GetXMLResult(
+ Options: SPXMLRESULTOPTIONS,
+ pResult: *mut BSTR,
+ ) -> HRESULT,
+ fn GetXMLErrorInfo(
+ LineNumber: *mut c_long,
+ ScriptLine: *mut BSTR,
+ Source: *mut BSTR,
+ Description: *mut BSTR,
+ ResultCode: *mut HRESULT,
+ IsError: *mut VARIANT_BOOL,
+ ) -> HRESULT,
+ fn SetTextFeedback(
+ Feedback: BSTR,
+ WasSuccessful: VARIANT_BOOL,
+ ) -> HRESULT,
+}}
+pub use um::sapi51::{
+ ISpeechPhraseInfoBuilder, ISpeechPhraseInfoBuilderVtbl,
+ ISpeechPhoneConverter, ISpeechPhoneConverterVtbl,
+ CLSID_SpNotifyTranslator,
+ CLSID_SpObjectTokenCategory,
+ CLSID_SpObjectToken,
+ CLSID_SpResourceManager,
+ CLSID_SpStreamFormatConverter,
+ CLSID_SpMMAudioEnum,
+ CLSID_SpMMAudioIn,
+ CLSID_SpMMAudioOut,
+ CLSID_SpStream,
+ CLSID_SpVoice,
+ CLSID_SpSharedRecoContext,
+ CLSID_SpInprocRecognizer,
+ CLSID_SpSharedRecognizer,
+ CLSID_SpLexicon,
+ CLSID_SpUnCompressedLexicon,
+ CLSID_SpCompressedLexicon,
+};
+extern {
+ pub static CLSID_SpShortcut: CLSID;
+}
+pub use um::sapi51::CLSID_SpPhoneConverter;
+extern {
+ pub static CLSID_SpPhoneticAlphabetConverter: CLSID;
+}
+pub use um::sapi51::{
+ CLSID_SpNullPhoneConverter,
+ CLSID_SpTextSelectionInformation,
+ CLSID_SpPhraseInfoBuilder,
+ CLSID_SpAudioFormat,
+ CLSID_SpWaveFormatEx,
+ CLSID_SpInProcRecoContext,
+ CLSID_SpCustomStream,
+ CLSID_SpFileStream,
+ CLSID_SpMemoryStream,
+};