1 // Licensed under the Apache License, Version 2.0 2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. 4 // All files in the project carrying such notice may not be copied, modified, or distributed 5 // except according to those terms. 6 //! SAPI 5.3 definitions 7 use ctypes::{c_float, c_int, c_long}; 8 use shared::guiddef::{CLSID, GUID}; 9 use shared::minwindef::{BOOL, BYTE, DWORD, LPARAM, UINT, ULONG, WORD, WPARAM}; 10 use shared::wtypes::{BSTR, VARIANT_BOOL}; 11 use um::oaidl::{IDispatch, IDispatchVtbl, VARIANT}; 12 use um::unknwnbase::{IUnknown, IUnknownVtbl}; 13 use um::urlmon::IInternetSecurityManager; 14 use um::winnt::{HRESULT, LPCWSTR, LPWSTR, ULONGLONG, WCHAR}; 15 pub use um::sapi51::{ 16 SPDATAKEYLOCATION, 17 SPDKL_DefaultLocation, 18 SPDKL_CurrentUser, 19 SPDKL_LocalMachine, 20 SPDKL_CurrentConfig, 21 SPDUI_EngineProperties, 22 SPDUI_AddRemoveWord, 23 SPDUI_UserTraining, 24 SPDUI_MicTraining, 25 SPDUI_RecoProfileProperties, 26 SPDUI_AudioProperties, 27 SPDUI_AudioVolume, 28 SPDUI_UserEnrollment, 29 SPDUI_ShareData, 30 SPDUI_Tutorial, 31 SPSTREAMFORMAT, 32 SPSF_Default, 33 SPSF_NoAssignedFormat, 34 SPSF_Text, 35 SPSF_NonStandardFormat, 36 SPSF_ExtendedAudioFormat, 37 SPSF_8kHz8BitMono, 38 SPSF_8kHz8BitStereo, 39 SPSF_8kHz16BitMono, 40 SPSF_8kHz16BitStereo, 41 SPSF_11kHz8BitMono, 42 SPSF_11kHz8BitStereo, 43 SPSF_11kHz16BitMono, 44 SPSF_11kHz16BitStereo, 45 SPSF_12kHz8BitMono, 46 SPSF_12kHz8BitStereo, 47 SPSF_12kHz16BitMono, 48 SPSF_12kHz16BitStereo, 49 SPSF_16kHz8BitMono, 50 SPSF_16kHz8BitStereo, 51 SPSF_16kHz16BitMono, 52 SPSF_16kHz16BitStereo, 53 SPSF_22kHz8BitMono, 54 SPSF_22kHz8BitStereo, 55 SPSF_22kHz16BitMono, 56 SPSF_22kHz16BitStereo, 57 SPSF_24kHz8BitMono, 58 SPSF_24kHz8BitStereo, 59 SPSF_24kHz16BitMono, 60 SPSF_24kHz16BitStereo, 61 SPSF_32kHz8BitMono, 62 SPSF_32kHz8BitStereo, 63 SPSF_32kHz16BitMono, 64 SPSF_32kHz16BitStereo, 65 SPSF_44kHz8BitMono, 66 SPSF_44kHz8BitStereo, 67 SPSF_44kHz16BitMono, 68 SPSF_44kHz16BitStereo, 69 SPSF_48kHz8BitMono, 70 SPSF_48kHz8BitStereo, 71 SPSF_48kHz16BitMono, 72 SPSF_48kHz16BitStereo, 73 SPSF_TrueSpeech_8kHz1BitMono, 74 SPSF_CCITT_ALaw_8kHzMono, 75 SPSF_CCITT_ALaw_8kHzStereo, 76 SPSF_CCITT_ALaw_11kHzMono, 77 SPSF_CCITT_ALaw_11kHzStereo, 78 SPSF_CCITT_ALaw_22kHzMono, 79 SPSF_CCITT_ALaw_22kHzStereo, 80 SPSF_CCITT_ALaw_44kHzMono, 81 SPSF_CCITT_ALaw_44kHzStereo, 82 SPSF_CCITT_uLaw_8kHzMono, 83 SPSF_CCITT_uLaw_8kHzStereo, 84 SPSF_CCITT_uLaw_11kHzMono, 85 SPSF_CCITT_uLaw_11kHzStereo, 86 SPSF_CCITT_uLaw_22kHzMono, 87 SPSF_CCITT_uLaw_22kHzStereo, 88 SPSF_CCITT_uLaw_44kHzMono, 89 SPSF_CCITT_uLaw_44kHzStereo, 90 SPSF_ADPCM_8kHzMono, 91 SPSF_ADPCM_8kHzStereo, 92 SPSF_ADPCM_11kHzMono, 93 SPSF_ADPCM_11kHzStereo, 94 SPSF_ADPCM_22kHzMono, 95 SPSF_ADPCM_22kHzStereo, 96 SPSF_ADPCM_44kHzMono, 97 SPSF_ADPCM_44kHzStereo, 98 SPSF_GSM610_8kHzMono, 99 SPSF_GSM610_11kHzMono, 100 SPSF_GSM610_22kHzMono, 101 SPSF_GSM610_44kHzMono, 102 SPSF_NUM_FORMATS, 103 SPDFID_Text, 104 SPDFID_WaveFormatEx, 105 SPREG_USER_ROOT, 106 SPREG_LOCAL_MACHINE_ROOT, 107 SPCAT_AUDIOOUT, 108 SPCAT_AUDIOIN, 109 SPCAT_VOICES, 110 SPCAT_RECOGNIZERS, 111 SPCAT_APPLEXICONS, 112 SPCAT_PHONECONVERTERS, 113 SPCAT_TEXTNORMALIZERS, 114 SPCAT_RECOPROFILES, 115 SPMMSYS_AUDIO_IN_TOKEN_ID, 116 SPMMSYS_AUDIO_OUT_TOKEN_ID, 117 SPCURRENT_USER_LEXICON_TOKEN_ID, 118 SPTOKENVALUE_CLSID, 119 SPTOKENKEY_FILES, 120 SPTOKENKEY_UI, 121 SPTOKENKEY_ATTRIBUTES 122 }; 123 pub const SPTOKENKEY_RETAINEDAUDIO: &'static str = "SecondsPerRetainedAudioEvent"; 124 pub const SPTOKENKEY_AUDIO_LATENCY_WARNING: &'static str = "LatencyWarningThreshold"; 125 pub const SPTOKENKEY_AUDIO_LATENCY_TRUNCATE: &'static str = "LatencyTruncateThreshold"; 126 pub const SPTOKENKEY_AUDIO_LATENCY_UPDATE_INTERVAL: &'static str = "LatencyUpdateInterval"; 127 pub use um::sapi51::{ 128 SPVOICECATEGORY_TTSRATE, 129 SPPROP_RESOURCE_USAGE, 130 SPPROP_HIGH_CONFIDENCE_THRESHOLD, 131 SPPROP_NORMAL_CONFIDENCE_THRESHOLD, 132 SPPROP_LOW_CONFIDENCE_THRESHOLD, 133 SPPROP_RESPONSE_SPEED, 134 SPPROP_COMPLEX_RESPONSE_SPEED, 135 SPPROP_ADAPTATION_ON, 136 SPPROP_PERSISTED_BACKGROUND_ADAPTATION, 137 SPPROP_PERSISTED_LANGUAGE_MODEL_ADAPTATION, 138 SPPROP_UX_IS_LISTENING, 139 SPTOPIC_SPELLING, 140 SPWILDCARD, 141 SPDICTATION 142 }; 143 pub const SPREG_SAFE_USER_TOKENS: &'static str 144 = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Speech\\UserTokens"; 145 pub use um::sapi51::{ 146 SPINFDICTATION, 147 SP_LOW_CONFIDENCE, 148 SP_NORMAL_CONFIDENCE, 149 SP_HIGH_CONFIDENCE, 150 DEFAULT_WEIGHT, 151 SP_MAX_WORD_LENGTH, 152 SP_MAX_PRON_LENGTH 153 }; 154 pub const SP_EMULATE_RESULT: ULONG = 0x40000000; 155 pub use um::sapi51::{ 156 ISpNotifyCallback, 157 SPNOTIFYCALLBACK, 158 ISpNotifySource, ISpNotifySourceVtbl, 159 ISpNotifySink, ISpNotifySinkVtbl, 160 ISpNotifyTranslator, ISpNotifyTranslatorVtbl, 161 ISpDataKey, ISpDataKeyVtbl, 162 ISpRegDataKey, ISpRegDataKeyVtbl, 163 ISpObjectTokenCategory, ISpObjectTokenCategoryVtbl, 164 ISpObjectToken, ISpObjectTokenVtbl, 165 ISpObjectTokenInit, ISpObjectTokenInitVtbl, 166 IEnumSpObjectTokens, IEnumSpObjectTokensVtbl, 167 ISpObjectWithToken, ISpObjectWithTokenVtbl, 168 ISpResourceManager, ISpResourceManagerVtbl, 169 SPEVENTLPARAMTYPE, 170 SPET_LPARAM_IS_UNDEFINED, 171 SPET_LPARAM_IS_TOKEN, 172 SPET_LPARAM_IS_OBJECT, 173 SPET_LPARAM_IS_POINTER, 174 SPET_LPARAM_IS_STRING, 175 SPEVENTENUM, 176 SPEI_UNDEFINED, 177 SPEI_START_INPUT_STREAM, 178 SPEI_END_INPUT_STREAM, 179 SPEI_VOICE_CHANGE, 180 SPEI_TTS_BOOKMARK, 181 SPEI_WORD_BOUNDARY, 182 SPEI_PHONEME, 183 SPEI_SENTENCE_BOUNDARY, 184 SPEI_VISEME, 185 SPEI_TTS_AUDIO_LEVEL, 186 SPEI_TTS_PRIVATE, 187 SPEI_MIN_TTS, 188 SPEI_MAX_TTS, 189 SPEI_END_SR_STREAM, 190 SPEI_SOUND_START, 191 SPEI_SOUND_END, 192 SPEI_PHRASE_START, 193 SPEI_RECOGNITION, 194 SPEI_HYPOTHESIS, 195 SPEI_SR_BOOKMARK, 196 SPEI_PROPERTY_NUM_CHANGE, 197 SPEI_PROPERTY_STRING_CHANGE, 198 SPEI_FALSE_RECOGNITION, 199 SPEI_INTERFERENCE, 200 SPEI_REQUEST_UI, 201 SPEI_RECO_STATE_CHANGE, 202 SPEI_ADAPTATION, 203 SPEI_START_SR_STREAM, 204 SPEI_RECO_OTHER_CONTEXT, 205 SPEI_SR_AUDIO_LEVEL 206 }; 207 pub const SPEI_SR_RETAINEDAUDIO: SPEVENTENUM = 51; 208 pub use um::sapi51::SPEI_SR_PRIVATE; 209 pub const SPEI_RESERVED4: SPEVENTENUM = 53; 210 pub const SPEI_RESERVED5: SPEVENTENUM = 54; 211 pub const SPEI_RESERVED6: SPEVENTENUM = 55; 212 pub use um::sapi51::SPEI_MIN_SR; 213 pub const SPEI_MAX_SR: SPEVENTENUM = 55; 214 pub use um::sapi51::{ 215 SPEI_RESERVED1, 216 SPEI_RESERVED2, 217 SPEI_RESERVED3, 218 SPFEI_FLAGCHECK, 219 SPFEI_ALL_TTS_EVENTS, 220 SPFEI_ALL_SR_EVENTS, 221 SPFEI_ALL_EVENTS, 222 SPFEI, 223 SPEVENT, 224 SPSERIALIZEDEVENT, 225 SPSERIALIZEDEVENT64 226 }; 227 STRUCT!{struct SPEVENTEX { 228 eEventId: WORD, 229 elParamType: WORD, 230 ulStreamNum: ULONG, 231 ullAudioStreamOffset: ULONGLONG, 232 wParam: WPARAM, 233 lParam: LPARAM, 234 ullAudioTimeOffset: ULONGLONG, 235 }} 236 pub use um::sapi51::{ 237 SPINTERFERENCE, 238 SPINTERFERENCE_NONE, 239 SPINTERFERENCE_NOISE, 240 SPINTERFERENCE_NOSIGNAL, 241 SPINTERFERENCE_TOOLOUD, 242 SPINTERFERENCE_TOOQUIET, 243 SPINTERFERENCE_TOOFAST, 244 SPINTERFERENCE_TOOSLOW, 245 SPINTERFERENCE_LATENCY_WARNING, 246 SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN, 247 SPINTERFERENCE_LATENCY_TRUNCATE_END, 248 SPENDSRSTREAMFLAGS, 249 SPESF_NONE, 250 SPESF_STREAM_RELEASED 251 }; 252 pub const SPESF_EMULATED: SPENDSRSTREAMFLAGS = 1 << 1; 253 pub use um::sapi51::{ 254 SPVFEATURE, 255 SPVFEATURE_STRESSED, 256 SPVFEATURE_EMPHASIS, 257 SPVISEMES, 258 SP_VISEME_0, 259 SP_VISEME_1, 260 SP_VISEME_2, 261 SP_VISEME_3, 262 SP_VISEME_4, 263 SP_VISEME_5, 264 SP_VISEME_6, 265 SP_VISEME_7, 266 SP_VISEME_8, 267 SP_VISEME_9, 268 SP_VISEME_10, 269 SP_VISEME_11, 270 SP_VISEME_12, 271 SP_VISEME_13, 272 SP_VISEME_14, 273 SP_VISEME_15, 274 SP_VISEME_16, 275 SP_VISEME_17, 276 SP_VISEME_18, 277 SP_VISEME_19, 278 SP_VISEME_20, 279 SP_VISEME_21, 280 SPEVENTSOURCEINFO, 281 ISpEventSource, ISpEventSourceVtbl, 282 }; 283 RIDL!{#[uuid(0x2373a435, 0x6a4b, 0x429e, 0xa6, 0xac, 0xd4, 0x23, 0x1a, 0x61, 0x97, 0x5b)] 284 interface ISpEventSource2(ISpEventSource2Vtbl): ISpEventSource(ISpEventSourceVtbl) { 285 fn GetEventsEx( 286 ulCount: ULONG, 287 pEventArray: *mut SPEVENTEX, 288 pulFetched: *mut ULONG, 289 ) -> HRESULT, 290 }} 291 pub use um::sapi51::{ 292 ISpEventSink, ISpEventSinkVtbl, 293 ISpStreamFormat, ISpStreamFormatVtbl, 294 SPFILEMODE, 295 SPFM_OPEN_READONLY, 296 SPFM_OPEN_READWRITE, 297 SPFM_CREATE, 298 SPFM_CREATE_ALWAYS, 299 SPFM_NUM_MODES, 300 ISpStream, ISpStreamVtbl, 301 ISpStreamFormatConverter, ISpStreamFormatConverterVtbl, 302 SPAUDIOSTATE, 303 SPAS_CLOSED, 304 SPAS_STOP, 305 SPAS_PAUSE, 306 SPAS_RUN, 307 SPAUDIOSTATUS, 308 SPAUDIOBUFFERINFO, 309 ISpAudio, ISpAudioVtbl, 310 ISpMMSysAudio, ISpMMSysAudioVtbl, 311 ISpTranscript, ISpTranscriptVtbl, 312 SPDISPLAYATTRIBUTES, 313 SPAF_ONE_TRAILING_SPACE, 314 SPAF_TWO_TRAILING_SPACES, 315 SPAF_CONSUME_LEADING_SPACES 316 }; 317 pub const SPAF_BUFFER_POSITION: SPDISPLAYATTRIBUTES = 0x10; 318 pub const SPAF_ALL: SPDISPLAYATTRIBUTES = 0x1f; 319 pub const SPAF_USER_SPECIFIED: SPDISPLAYATTRIBUTES = 0x80; 320 pub use um::sapi51::{ 321 SPPHONEID, 322 PSPPHONEID, 323 PCSPPHONEID, 324 SPPHRASEELEMENT, 325 SPPHRASERULE, 326 SPPHRASEPROPERTYUNIONTYPE, 327 SPPPUT_UNUSED, 328 SPPPUT_ARRAY_INDEX, 329 SPPHRASEPROPERTY, 330 SPPHRASEREPLACEMENT 331 }; 332 STRUCT!{struct SPSEMANTICERRORINFO { 333 ulLineNumber: ULONG, 334 pszScriptLine: LPWSTR, 335 pszSource: LPWSTR, 336 pszDescription: LPWSTR, 337 hrResultCode: HRESULT, 338 }} 339 ENUM!{enum SPSEMANTICFORMAT { 340 SPSMF_SAPI_PROPERTIES = 0, 341 SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1, 342 SPSMF_SRGS_SAPIPROPERTIES = 2, 343 SPSMF_UPS = 4, 344 SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8, 345 }} 346 pub use um::sapi51::SPPHRASE as SPPHRASE_50; 347 // TODO: pub const SP_SPPHRASESIZE_500: usize = mem::size_of::<SPPHRASE_50>(); 348 STRUCT!{struct SPPHRASE { 349 cbSize: ULONG, 350 LangID: WORD, 351 wHomophoneGroupId: WORD, 352 ullGrammarID: ULONGLONG, 353 ftStartTime: ULONGLONG, 354 ullAudioStreamPosition: ULONGLONG, 355 ulAudioSizeBytes: ULONG, 356 ulRetainedSizeBytes: ULONG, 357 ulAudioSizeTime: ULONG, 358 Rule: SPPHRASERULE, 359 pProperties: *const SPPHRASEPROPERTY, 360 pElements: *const SPPHRASEELEMENT, 361 cReplacements: ULONG, 362 pReplacements: *const SPPHRASEREPLACEMENT, 363 SREngineID: GUID, 364 ulSREnginePrivateDataSize: ULONG, 365 pSREnginePrivateData: *const BYTE, 366 pSML: LPWSTR, 367 pSemanticErrorInfo: *mut SPSEMANTICERRORINFO, 368 }} 369 pub use um::sapi51::SPSERIALIZEDPHRASE; 370 STRUCT!{struct SPRULE { 371 pszRuleName: LPCWSTR, 372 ulRuleId: ULONG, 373 dwAttributes: DWORD, 374 }} 375 pub use um::sapi51::{ 376 SPVALUETYPE, 377 SPDF_PROPERTY, 378 SPDF_REPLACEMENT, 379 SPDF_RULE, 380 SPDF_DISPLAYTEXT, 381 SPDF_LEXICALFORM , 382 SPDF_PRONUNCIATION, 383 SPDF_AUDIO, 384 SPDF_ALTERNATES, 385 SPDF_ALL, 386 SPBINARYGRAMMAR, 387 SPPHRASERNG, 388 SPPR_ALL_ELEMENTS, 389 SP_GETWHOLEPHRASE, 390 SPRR_ALL_ELEMENTS, 391 SPSTATEHANDLE, 392 SPRECOEVENTFLAGS, 393 SPREF_AutoPause, 394 SPREF_Emulated 395 }; 396 pub const SPREF_SMLTimeout: SPRECOEVENTFLAGS = 1 << 2; 397 pub const SPREF_ExtendableParse: SPRECOEVENTFLAGS = 1 << 3; 398 pub const SPREF_ReSent: SPRECOEVENTFLAGS = 1 << 4; 399 pub const SPREF_Hypothesis: SPRECOEVENTFLAGS = 1 << 5; 400 pub const SPREF_FalseRecognition: SPRECOEVENTFLAGS = 1 << 6; 401 pub use um::sapi51::{ 402 SPPARTOFSPEECH, 403 SPPS_NotOverriden, 404 SPPS_Unknown, 405 SPPS_Noun, 406 SPPS_Verb, 407 SPPS_Modifier, 408 SPPS_Function, 409 SPPS_Interjection 410 }; 411 pub const SPPS_Noncontent: SPPARTOFSPEECH = 0x6000; 412 pub const SPPS_LMA: SPPARTOFSPEECH = 0x7000; 413 pub const SPPS_SuppressWord: SPPARTOFSPEECH = 0xf000; 414 pub use um::sapi51::{ 415 SPLEXICONTYPE, 416 eLEXTYPE_USER, 417 eLEXTYPE_APP, 418 eLEXTYPE_VENDORLEXICON, 419 eLEXTYPE_LETTERTOSOUND, 420 eLEXTYPE_MORPHOLOGY, 421 eLEXTYPE_RESERVED4, 422 eLEXTYPE_USER_SHORTCUT, 423 eLEXTYPE_RESERVED6, 424 eLEXTYPE_RESERVED7, 425 eLEXTYPE_RESERVED8, 426 eLEXTYPE_RESERVED9, 427 eLEXTYPE_RESERVED10, 428 eLEXTYPE_PRIVATE1, 429 eLEXTYPE_PRIVATE2, 430 eLEXTYPE_PRIVATE3, 431 eLEXTYPE_PRIVATE4, 432 eLEXTYPE_PRIVATE5, 433 eLEXTYPE_PRIVATE6, 434 eLEXTYPE_PRIVATE7, 435 eLEXTYPE_PRIVATE8, 436 eLEXTYPE_PRIVATE9, 437 eLEXTYPE_PRIVATE10, 438 eLEXTYPE_PRIVATE11, 439 eLEXTYPE_PRIVATE12, 440 eLEXTYPE_PRIVATE13, 441 eLEXTYPE_PRIVATE14, 442 eLEXTYPE_PRIVATE15, 443 eLEXTYPE_PRIVATE16, 444 eLEXTYPE_PRIVATE17, 445 eLEXTYPE_PRIVATE18, 446 eLEXTYPE_PRIVATE19, 447 eLEXTYPE_PRIVATE20, 448 SPWORDTYPE, 449 eWORDTYPE_ADDED, 450 eWORDTYPE_DELETED 451 }; 452 ENUM!{enum SPPRONUNCIATIONFLAGS { 453 ePRONFLAG_USED = 1 << 0, 454 }} 455 pub use um::sapi51::{ 456 SPWORDPRONUNCIATION, 457 SPWORDPRONUNCIATIONLIST, 458 SPWORD, 459 SPWORDLIST, 460 ISpLexicon, ISpLexiconVtbl, 461 ISpContainerLexicon, ISpContainerLexiconVtbl, 462 }; 463 ENUM!{enum SPSHORTCUTTYPE { 464 SPSHT_NotOverriden = -1i32 as u32, 465 SPSHT_Unknown = 0, 466 SPSHT_EMAIL = 0x1000, 467 SPSHT_OTHER = 0x2000, 468 SPPS_RESERVED1 = 0x3000, 469 SPPS_RESERVED2 = 0x4000, 470 SPPS_RESERVED3 = 0x5000, 471 SPPS_RESERVED4 = 0xf000, 472 }} 473 STRUCT!{struct SPSHORTCUTPAIR { 474 pNextSHORTCUTPAIR: *mut SPSHORTCUTPAIR, 475 LangID: WORD, 476 shType: SPSHORTCUTTYPE, 477 pszDisplay: LPWSTR, 478 pszSpoken: LPWSTR, 479 }} 480 STRUCT!{struct SPSHORTCUTPAIRLIST { 481 ulSize: ULONG, 482 pvBuffer: *mut BYTE, 483 pFirstShortcutPair: *mut SPSHORTCUTPAIR, 484 }} 485 RIDL!{#[uuid(0x3df681e2, 0xea56, 0x11d9, 0x8b, 0xde, 0xf6, 0x6b, 0xad, 0x1e, 0x3f, 0x3a)] 486 interface ISpShortcut(ISpShortcutVtbl): IUnknown(IUnknownVtbl) { 487 fn AddShortcut( 488 pszDisplay: LPCWSTR, 489 LangID: WORD, 490 pszSpoken: LPCWSTR, 491 shType: SPSHORTCUTTYPE, 492 ) -> HRESULT, 493 fn RemoveShortcut( 494 pszDisplay: LPCWSTR, 495 LangID: WORD, 496 pszSpoken: LPCWSTR, 497 shType: SPSHORTCUTTYPE, 498 ) -> HRESULT, 499 fn GetShortcuts( 500 LangId: WORD, 501 pShortcutpairList: *mut SPSHORTCUTPAIRLIST, 502 ) -> HRESULT, 503 fn GetGeneration( 504 pdwGeneration: *mut DWORD, 505 ) -> HRESULT, 506 fn GetWordsFromGenerationChange( 507 pdwGeneration: *mut DWORD, 508 pWordList: *mut SPWORDLIST, 509 ) -> HRESULT, 510 fn GetWords( 511 pdwGeneration: *mut DWORD, 512 pdwCookie: *mut DWORD, 513 pWordList: *mut SPWORDLIST, 514 ) -> HRESULT, 515 fn GetShortcutsForGeneration( 516 pdwGeneration: *mut DWORD, 517 pdwCookie: *mut DWORD, 518 pShortcutpairList: *mut SPSHORTCUTPAIRLIST, 519 ) -> HRESULT, 520 fn GetGenerationChange( 521 pdwGeneration: *mut DWORD, 522 pShortcutpairList: *mut SPSHORTCUTPAIRLIST, 523 ) -> HRESULT, 524 }} 525 pub use um::sapi51::{ISpPhoneConverter, ISpPhoneConverterVtbl}; 526 RIDL!{#[uuid(0x133adcd4, 0x19b4, 0x4020, 0x9f, 0xdc, 0x84, 0x2e, 0x78, 0x25, 0x3b, 0x17)] 527 interface ISpPhoneticAlphabetConverter(ISpPhoneticAlphabetConverterVtbl): IUnknown(IUnknownVtbl) { 528 fn GetLangId( 529 pLangID: *mut WORD, 530 ) -> HRESULT, 531 fn SetLangId( 532 LangID: WORD, 533 ) -> HRESULT, 534 fn SAPI2UPS( 535 pszSAPIId: *const SPPHONEID, 536 pszUPSId: *mut SPPHONEID, 537 cMaxLength: DWORD, 538 ) -> HRESULT, 539 fn UPS2SAPI( 540 pszUPSId: *const SPPHONEID, 541 pszSAPIId: *mut SPPHONEID, 542 cMaxLength: DWORD, 543 ) -> HRESULT, 544 fn GetMaxConvertLength( 545 cSrcLength: DWORD, 546 bSAPI2UPS: BOOL, 547 pcMaxDestLength: *mut DWORD, 548 ) -> HRESULT, 549 }} 550 RIDL!{#[uuid(0xb2745efd, 0x42ce, 0x48ca, 0x81, 0xf1, 0xa9, 0x6e, 0x02, 0x53, 0x8a, 0x90)] 551 interface ISpPhoneticAlphabetSelection(ISpPhoneticAlphabetSelectionVtbl): IUnknown(IUnknownVtbl) { 552 fn IsAlphabetUPS( 553 pfIsUPS: *mut BOOL, 554 ) -> HRESULT, 555 fn SetAlphabetToUPS( 556 fForceUPS: BOOL, 557 ) -> HRESULT, 558 }} 559 pub use um::sapi51::{ 560 SPVPITCH, 561 SPVACTIONS, 562 SPVA_Speak, 563 SPVA_Silence, 564 SPVA_Pronounce, 565 SPVA_Bookmark, 566 SPVA_SpellOut, 567 SPVA_Section, 568 SPVA_ParseUnknownTag, 569 SPVCONTEXT, 570 SPVSTATE, 571 SPRUNSTATE, 572 SPRS_DONE, 573 SPRS_IS_SPEAKING, 574 SPVLIMITS, 575 SPMIN_VOLUME, 576 SPMAX_VOLUME, 577 SPMIN_RATE, 578 SPMAX_RATE, 579 SPVPRIORITY, 580 SPVPRI_NORMAL, 581 SPVPRI_ALERT, 582 SPVPRI_OVER, 583 SPVOICESTATUS, 584 SPEAKFLAGS, 585 SPF_DEFAULT, 586 SPF_ASYNC, 587 SPF_PURGEBEFORESPEAK, 588 SPF_IS_FILENAME, 589 SPF_IS_XML, 590 SPF_IS_NOT_XML, 591 SPF_PERSIST_XML, 592 SPF_NLP_SPEAK_PUNC, 593 }; 594 pub const SPF_PARSE_SAPI: SPEAKFLAGS = 1 << 7; 595 pub const SPF_PARSE_SSML: SPEAKFLAGS = 1 << 8; 596 pub const SPF_PARSE_AUTODETECT: SPEAKFLAGS = 0; 597 pub use um::sapi51::SPF_NLP_MASK; 598 pub const SPF_PARSE_MASK: SPEAKFLAGS = SPF_PARSE_SAPI | SPF_PARSE_SSML; 599 pub const SPF_VOICE_MASK: SPEAKFLAGS = ::um::sapi51::SPF_VOICE_MASK | SPF_PARSE_MASK; 600 pub const SPF_UNUSED_FLAGS: SPEAKFLAGS = !SPF_VOICE_MASK; 601 pub use um::sapi51::{ 602 ISpVoice, ISpVoiceVtbl, 603 ISpPhrase, ISpPhraseVtbl, 604 ISpPhraseAlt, ISpPhraseAltVtbl, 605 }; 606 ENUM!{enum SPXMLRESULTOPTIONS { 607 SPXRO_SML = 0, 608 SPXRO_Alternates_SML = 1, 609 }} 610 RIDL!{#[uuid(0xf264da52, 0xe457, 0x4696, 0xb8, 0x56, 0xa7, 0x37, 0xb7, 0x17, 0xaf, 0x79)] 611 interface ISpPhrase2(ISpPhrase2Vtbl): ISpPhrase(ISpPhraseVtbl) { 612 fn GetXMLResult( 613 ppszCoMemXMLResult: *mut LPWSTR, 614 Options: SPXMLRESULTOPTIONS, 615 ) -> HRESULT, 616 fn GetXMLErrorInfo( 617 pSemanticErrorInfo: *mut SPSEMANTICERRORINFO, 618 ) -> HRESULT, 619 fn GetAudio( 620 ulStartElement: ULONG, 621 cElements: ULONG, 622 ppStream: *mut *mut ISpStreamFormat, 623 ) -> HRESULT, 624 }} 625 pub use um::sapi51::{ 626 SPRECORESULTTIMES, 627 SPSERIALIZEDRESULT, 628 ISpRecoResult, ISpRecoResultVtbl, 629 }; 630 ENUM!{enum SPCOMMITFLAGS { 631 SPCF_NONE = 0, 632 SPCF_ADD_TO_USER_LEXICON = 1 << 0, 633 SPCF_DEFINITE_CORRECTION = 1 << 1, 634 }} 635 RIDL!{#[uuid(0x27cac6c4, 0x88f2, 0x41f2, 0x88, 0x17, 0x0c, 0x95, 0xe5, 0x9f, 0x1e, 0x6e)] 636 interface ISpRecoResult2(ISpRecoResult2Vtbl): ISpRecoResult(ISpRecoResultVtbl) { 637 fn CommitAlternate( 638 pPhraseAlt: *mut ISpPhraseAlt, 639 ppNewResult: *mut *mut ISpRecoResult, 640 ) -> HRESULT, 641 fn CommitText( 642 ulStartElement: ULONG, 643 cElements: ULONG, 644 pszCorrectedData: LPCWSTR, 645 eCommitFlags: DWORD, 646 ) -> HRESULT, 647 fn SetTextFeedback( 648 pszFeedback: LPCWSTR, 649 fSuccessful: BOOL, 650 ) -> HRESULT, 651 }} 652 RIDL!{#[uuid(0xae39362b, 0x45a8, 0x4074, 0x9b, 0x9e, 0xcc, 0xf4, 0x9a, 0xa2, 0xd0, 0xb6)] 653 interface ISpXMLRecoResult(ISpXMLRecoResultVtbl): ISpRecoResult(ISpRecoResultVtbl) { 654 fn GetXMLResult( 655 ppszCoMemXMLResult: *mut LPWSTR, 656 Options: SPXMLRESULTOPTIONS, 657 ) -> HRESULT, 658 fn GetXMLErrorInfo( 659 pSemanticErrorInfo: *mut SPSEMANTICERRORINFO, 660 ) -> HRESULT, 661 }} 662 pub use um::sapi51::{ 663 SPTEXTSELECTIONINFO, 664 SPWORDPRONOUNCEABLE, 665 SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE, 666 SPWP_UNKNOWN_WORD_PRONOUNCEABLE, 667 SPWP_KNOWN_WORD_PRONOUNCEABLE, 668 SPGRAMMARSTATE, 669 SPGS_DISABLED, 670 SPGS_ENABLED, 671 SPGS_EXCLUSIVE, 672 SPCONTEXTSTATE, 673 SPCS_DISABLED, 674 SPCS_ENABLED, 675 SPRULESTATE, 676 SPRS_INACTIVE, 677 SPRS_ACTIVE, 678 SPRS_ACTIVE_WITH_AUTO_PAUSE, 679 }; 680 pub const SPRS_ACTIVE_USER_DELIMITED: SPRULESTATE = 4; 681 pub use um::sapi51::{ 682 SP_STREAMPOS_ASAP, 683 SP_STREAMPOS_REALTIME, 684 SPRULETRANS_TEXTBUFFER, 685 SPRULETRANS_WILDCARD, 686 SPRULETRANS_DICTATION, 687 SPGRAMMARWORDTYPE, 688 SPWT_DISPLAY, 689 SPWT_LEXICAL, 690 SPWT_PRONUNCIATION, 691 }; 692 pub const SPWT_LEXICAL_NO_SPECIAL_CHARS: SPGRAMMARWORDTYPE = SPWT_PRONUNCIATION + 1; 693 pub use um::sapi51::{ 694 SPPROPERTYINFO, 695 SPCFGRULEATTRIBUTES, 696 SPRAF_TopLevel, 697 SPRAF_Active, 698 SPRAF_Export, 699 SPRAF_Import, 700 SPRAF_Interpreter, 701 SPRAF_Dynamic, 702 }; 703 pub const SPRAF_Root: SPCFGRULEATTRIBUTES = 1 << 6; 704 pub use um::sapi51::SPRAF_AutoPause; 705 pub const SPRAF_UserDelimited: SPCFGRULEATTRIBUTES = 1 << 17; 706 pub use um::sapi51::{ 707 ISpGrammarBuilder, ISpGrammarBuilderVtbl, 708 SPLOADOPTIONS, 709 SPLO_STATIC, 710 SPLO_DYNAMIC, 711 ISpRecoGrammar, ISpRecoGrammarVtbl, 712 }; 713 ENUM!{enum SPMATCHINGMODE { 714 AllWords = 0, 715 Subsequence = 1, 716 OrderedSubset = 3, 717 SubsequenceContentRequired = 5, 718 OrderedSubsetContentRequired = 7, 719 }} 720 ENUM!{enum PHONETICALPHABET { 721 PA_Ipa = 0, 722 PA_Ups = 1, 723 PA_Sapi = 2, 724 }} 725 RIDL!{#[uuid(0x8ab10026, 0x20cc, 0x4b20, 0x8c, 0x22, 0xa4, 0x9c, 0x9b, 0xa7, 0x8f, 0x60)] 726 interface ISpGrammarBuilder2(ISpGrammarBuilder2Vtbl): IUnknown(IUnknownVtbl) { 727 fn AddTextSubset( 728 hFromState: SPSTATEHANDLE, 729 hToState: SPSTATEHANDLE, 730 psz: LPCWSTR, 731 eMatchMode: SPMATCHINGMODE, 732 ) -> HRESULT, 733 fn SetPhoneticAlphabet( 734 phoneticALphabet: PHONETICALPHABET, 735 ) -> HRESULT, 736 }} 737 pub const SPRP_NORMAL: i32 = 0; // TODO: Unknown purpose and type 738 RIDL!{#[uuid(0x4b37bc9e, 0x9ed6, 0x44a3, 0x93, 0xd3, 0x18, 0xf0, 0x22, 0xb7, 0x9e, 0xc3)] 739 interface ISpRecoGrammar2(ISpRecoGrammar2Vtbl): IUnknown(IUnknownVtbl) { 740 fn GetRules( 741 ppCoMemRules: *mut *mut SPRULE, 742 puNumRules: *mut UINT, 743 ) -> HRESULT, 744 fn LoadCmdFromFile2( 745 pszFileName: LPCWSTR, 746 Options: SPLOADOPTIONS, 747 pszSharingUri: LPCWSTR, 748 pszBaseUri: LPCWSTR, 749 ) -> HRESULT, 750 fn LoadCmdFromMemory2( 751 pGrammar: *const SPBINARYGRAMMAR, 752 Options: SPLOADOPTIONS, 753 pszSharingUri: LPCWSTR, 754 pszBaseUri: LPCWSTR, 755 ) -> HRESULT, 756 fn SetRulePriority( 757 pszRuleName: LPCWSTR, 758 ulRuleId: ULONG, 759 nRulePriority: c_int, 760 ) -> HRESULT, 761 fn SetRuleWeight( 762 pszRuleName: LPCWSTR, 763 ulRuleId: ULONG, 764 flWeight: c_float, 765 ) -> HRESULT, 766 fn SetDictationWeight( 767 flWeight: c_float, 768 ) -> HRESULT, 769 fn SetGrammarLoader( 770 pLoader: *mut ISpeechResourceLoader, 771 ) -> HRESULT, 772 fn SetSMLSecurityManager( 773 pSMLSecurityManager: *mut IInternetSecurityManager, 774 ) -> HRESULT, 775 }} 776 RIDL!{#[uuid(0xb9ac5783, 0xfcd0, 0x4b21, 0xb1, 0x19, 0xb4, 0xf8, 0xda, 0x8f, 0xd2, 0xc3)] 777 interface ISpeechResourceLoader(ISpeechResourceLoaderVtbl): IDispatch(IDispatchVtbl) { 778 fn LoadResource( 779 bstrResourceUri: BSTR, 780 fAlwaysReload: VARIANT_BOOL, 781 pStream: *mut *mut IUnknown, 782 pbstrMIMEType: *mut BSTR, 783 pfModified: *mut VARIANT_BOOL, 784 pbstrRedirectUrl: *mut BSTR, 785 ) -> HRESULT, 786 fn GetLocalCopy( 787 bstrResourceUri: BSTR, 788 pbstrLocalPath: *mut BSTR, 789 pbstrMIMEType: *mut BSTR, 790 pbstrRedirectUrl: *mut BSTR, 791 ) -> HRESULT, 792 fn ReleaseLocalCopy( 793 pbstrLocalPath: BSTR, 794 ) -> HRESULT, 795 }} 796 pub use um::sapi51::{ 797 SPRECOCONTEXTSTATUS, 798 SPBOOKMARKOPTIONS, 799 SPBO_NONE, 800 SPBO_PAUSE, 801 }; 802 pub const SPBO_AHEAD: SPBOOKMARKOPTIONS = 1 << 1; 803 pub const SPBO_TIME_UNITS: SPBOOKMARKOPTIONS = 1 << 2; 804 pub use um::sapi51::{ 805 SPAUDIOOPTIONS, 806 SPAO_NONE, 807 SPAO_RETAIN_AUDIO, 808 ISpRecoContext, ISpRecoContextVtbl, 809 }; 810 ENUM!{enum SPGRAMMAROPTIONS { 811 SPGO_SAPI = 0x1, 812 SPGO_SRGS = 0x2, 813 SPGO_UPS = 0x4, 814 SPGO_SRGS_MS_SCRIPT = 0x8, 815 SPGO_SRGS_W3C_SCRIPT = 0x100, 816 SPGO_SRGS_STG_SCRIPT = 0x200, 817 SPGO_SRGS_SCRIPT = SPGO_SRGS | SPGO_SRGS_MS_SCRIPT 818 | SPGO_SRGS_W3C_SCRIPT | SPGO_SRGS_STG_SCRIPT, 819 SPGO_FILE = 0x10, 820 SPGO_HTTP = 0x20, 821 SPGO_RES = 0x40, 822 SPGO_OBJECT = 0x80, 823 SPGO_DEFAULT = 0x3fb, 824 SPGO_ALL = 0x3ff, 825 }} 826 ENUM!{enum SPADAPTATIONSETTINGS { 827 SPADS_Default = 0, 828 SPADS_CurrentRecognizer = 0x1, 829 SPADS_RecoProfile = 0x2, 830 SPADS_Immediate = 0x4, 831 SPADS_Reset = 0x8, 832 SPADS_HighVolumeDataSource = 0x10, 833 }} 834 ENUM!{enum SPADAPTATIONRELEVANCE { 835 SPAR_Unknown = 0, 836 SPAR_Low = 1, 837 SPAR_Medium = 2, 838 SPAR_High = 3, 839 }} 840 RIDL!{#[uuid(0xbead311c, 0x52ff, 0x437f, 0x94, 0x64, 0x6b, 0x21, 0x05, 0x4c, 0xa7, 0x3d)] 841 interface ISpRecoContext2(ISpRecoContext2Vtbl): IUnknown(IUnknownVtbl) { 842 fn SetGrammarOptions( 843 eGrammarOptions: DWORD, 844 ) -> HRESULT, 845 fn GetGrammarOptions( 846 peGrammarOptions: *mut DWORD, 847 ) -> HRESULT, 848 fn SetAdaptationData2( 849 pAdaptationData: LPCWSTR, 850 cch: ULONG, 851 pTopicName: LPCWSTR, 852 eAdaptationSettings: DWORD, 853 eRelevance: SPADAPTATIONRELEVANCE, 854 ) -> HRESULT, 855 }} 856 pub use um::sapi51::{ 857 ISpProperties, ISpPropertiesVtbl, 858 SP_MAX_LANGIDS, 859 SPRECOGNIZERSTATUS, 860 SPWAVEFORMATTYPE, 861 SPWF_INPUT, 862 SPWF_SRENGINE, 863 SPSTREAMFORMATTYPE, 864 SPRECOSTATE, 865 SPRST_INACTIVE, 866 SPRST_ACTIVE, 867 SPRST_ACTIVE_ALWAYS, 868 SPRST_INACTIVE_WITH_PURGE, 869 SPRST_NUM_STATES, 870 ISpRecognizer, ISpRecognizerVtbl, 871 }; 872 RIDL!{#[uuid(0x21b501a0, 0x0ec7, 0x46c9, 0x92, 0xc3, 0xa2, 0xbc, 0x78, 0x4c, 0x54, 0xb9)] 873 interface ISpSerializeState(ISpSerializeStateVtbl): IUnknown(IUnknownVtbl) { 874 fn GetSerializedState( 875 ppbData: *mut *mut BYTE, 876 pulSize: *mut ULONG, 877 dwReserved: DWORD, 878 ) -> HRESULT, 879 fn SetSerializedState( 880 pbData: *mut BYTE, 881 ulSize: ULONG, 882 dwReserved: DWORD, 883 ) -> HRESULT, 884 }} 885 RIDL!{#[uuid(0x8fc6d974, 0xc81e, 0x4098, 0x93, 0xc5, 0x01, 0x47, 0xf6, 0x1e, 0xd4, 0xd3)] 886 interface ISpRecognizer2(ISpRecognizer2Vtbl): IUnknown(IUnknownVtbl) { 887 fn EmulateRecognitionEx( 888 pPhrase: *mut ISpPhrase, 889 dwCompareFlags: DWORD, 890 ) -> HRESULT, 891 fn SetTrainingState( 892 fDoingTraining: BOOL, 893 fAdaptFromTrainingData: BOOL, 894 ) -> HRESULT, 895 fn ResetAcousticModelAdaptation() -> HRESULT, 896 }} 897 STRUCT!{struct SPNORMALIZATIONLIST { 898 ulSize: ULONG, 899 ppszzNormalizedList: *mut *mut WCHAR, 900 }} 901 RIDL!{#[uuid(0xc360ce4b, 0x76d1, 0x4214, 0xad, 0x68, 0x52, 0x65, 0x7d, 0x50, 0x83, 0xda)] 902 interface ISpEnginePronunciation(ISpEnginePronunciationVtbl): IUnknown(IUnknownVtbl) { 903 fn Normalize( 904 pszWord: LPCWSTR, 905 pszLeftContext: LPCWSTR, 906 pszRightContext: LPCWSTR, 907 LangID: WORD, 908 pNormalizationList: *mut SPNORMALIZATIONLIST, 909 ) -> HRESULT, 910 fn GetPronunciations( 911 pszWord: LPCWSTR, 912 pszLeftContext: LPCWSTR, 913 pszRightContext: LPCWSTR, 914 LangID: WORD, 915 pEnginePronunciationList: *mut SPWORDPRONUNCIATIONLIST, 916 ) -> HRESULT, 917 }} 918 STRUCT!{struct SPDISPLAYTOKEN { 919 pszLexical: *const WCHAR, 920 pszDisplay: *const WCHAR, 921 bDisplayAttributes: BYTE, 922 }} 923 STRUCT!{struct SPDISPLAYPHRASE { 924 ulNumTokens: ULONG, 925 pTokens: *mut SPDISPLAYTOKEN, 926 }} 927 RIDL!{#[uuid(0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf, 0xe3, 0xb0, 0xc9, 0x91, 0xfb, 0xeb, 0x5e)] 928 interface ISpDisplayAlternates(ISpDisplayAlternatesVtbl): IUnknown(IUnknownVtbl) { 929 fn GetDisplayAlternates( 930 pPhrase: *const SPDISPLAYPHRASE, 931 cRequestCount: ULONG, 932 ppCoMemPhrases: *mut *mut SPDISPLAYPHRASE, 933 pcPhrasesReturned: *mut ULONG, 934 ) -> HRESULT, 935 fn SetFullStopTrailSpace( 936 ulTrailSpace: ULONG, 937 ) -> HRESULT, 938 }} 939 pub use um::sapi51::{ 940 SpeechLanguageId, 941 DISPID_SpeechDataKey, 942 DISPID_SDKSetBinaryValue, 943 DISPID_SDKGetBinaryValue, 944 DISPID_SDKSetStringValue, 945 DISPID_SDKGetStringValue, 946 DISPID_SDKSetLongValue, 947 DISPID_SDKGetlongValue, 948 DISPID_SDKOpenKey, 949 DISPID_SDKCreateKey, 950 DISPID_SDKDeleteKey, 951 DISPID_SDKDeleteValue, 952 DISPID_SDKEnumKeys, 953 DISPID_SDKEnumValues, 954 DISPID_SpeechObjectToken, 955 DISPID_SOTId, 956 DISPID_SOTDataKey, 957 DISPID_SOTCategory, 958 DISPID_SOTGetDescription, 959 DISPID_SOTSetId, 960 DISPID_SOTGetAttribute, 961 DISPID_SOTCreateInstance, 962 DISPID_SOTRemove, 963 DISPID_SOTGetStorageFileName, 964 DISPID_SOTRemoveStorageFileName, 965 DISPID_SOTIsUISupported, 966 DISPID_SOTDisplayUI, 967 DISPID_SOTMatchesAttributes, 968 SpeechDataKeyLocation, 969 SDKLDefaultLocation, 970 SDKLCurrentUser, 971 SDKLLocalMachine, 972 SDKLCurrentConfig, 973 SpeechTokenContext, 974 STCInprocServer, 975 STCInprocHandler , 976 STCLocalServer, 977 STCRemoteServer, 978 STCAll, 979 SpeechTokenShellFolder, 980 STSF_AppData, 981 STSF_LocalAppData, 982 STSF_CommonAppData, 983 STSF_FlagCreate, 984 DISPID_SpeechObjectTokens, 985 DISPID_SOTsCount, 986 DISPID_SOTsItem, 987 DISPID_SOTs_NewEnum, 988 DISPID_SpeechObjectTokenCategory, 989 DISPID_SOTCId, 990 DISPID_SOTCDefault, 991 DISPID_SOTCSetId, 992 DISPID_SOTCGetDataKey, 993 DISPID_SOTCEnumerateTokens, 994 SpeechAudioFormatType, 995 SAFTDefault, 996 SAFTNoAssignedFormat, 997 SAFTText, 998 SAFTNonStandardFormat, 999 SAFTExtendedAudioFormat, 1000 SAFT8kHz8BitMono, 1001 SAFT8kHz8BitStereo, 1002 SAFT8kHz16BitMono, 1003 SAFT8kHz16BitStereo, 1004 SAFT11kHz8BitMono, 1005 SAFT11kHz8BitStereo, 1006 SAFT11kHz16BitMono, 1007 SAFT11kHz16BitStereo, 1008 SAFT12kHz8BitMono, 1009 SAFT12kHz8BitStereo, 1010 SAFT12kHz16BitMono, 1011 SAFT12kHz16BitStereo, 1012 SAFT16kHz8BitMono, 1013 SAFT16kHz8BitStereo, 1014 SAFT16kHz16BitMono, 1015 SAFT16kHz16BitStereo, 1016 SAFT22kHz8BitMono, 1017 SAFT22kHz8BitStereo, 1018 SAFT22kHz16BitMono, 1019 SAFT22kHz16BitStereo, 1020 SAFT24kHz8BitMono, 1021 SAFT24kHz8BitStereo, 1022 SAFT24kHz16BitMono, 1023 SAFT24kHz16BitStereo, 1024 SAFT32kHz8BitMono, 1025 SAFT32kHz8BitStereo, 1026 SAFT32kHz16BitMono, 1027 SAFT32kHz16BitStereo, 1028 SAFT44kHz8BitMono, 1029 SAFT44kHz8BitStereo, 1030 SAFT44kHz16BitMono, 1031 SAFT44kHz16BitStereo, 1032 SAFT48kHz8BitMono, 1033 SAFT48kHz8BitStereo, 1034 SAFT48kHz16BitMono, 1035 SAFT48kHz16BitStereo, 1036 SAFTTrueSpeech_8kHz1BitMono, 1037 SAFTCCITT_ALaw_8kHzMono, 1038 SAFTCCITT_ALaw_8kHzStereo, 1039 SAFTCCITT_ALaw_11kHzMono, 1040 SAFTCCITT_ALaw_11kHzStereo, 1041 SAFTCCITT_ALaw_22kHzMono, 1042 SAFTCCITT_ALaw_22kHzStereo, 1043 SAFTCCITT_ALaw_44kHzMono, 1044 SAFTCCITT_ALaw_44kHzStereo, 1045 SAFTCCITT_uLaw_8kHzMono, 1046 SAFTCCITT_uLaw_8kHzStereo, 1047 SAFTCCITT_uLaw_11kHzMono, 1048 SAFTCCITT_uLaw_11kHzStereo, 1049 SAFTCCITT_uLaw_22kHzMono, 1050 SAFTCCITT_uLaw_22kHzStereo, 1051 SAFTCCITT_uLaw_44kHzMono, 1052 SAFTCCITT_uLaw_44kHzStereo, 1053 SAFTADPCM_8kHzMono, 1054 SAFTADPCM_8kHzStereo, 1055 SAFTADPCM_11kHzMono, 1056 SAFTADPCM_11kHzStereo, 1057 SAFTADPCM_22kHzMono, 1058 SAFTADPCM_22kHzStereo, 1059 SAFTADPCM_44kHzMono, 1060 SAFTADPCM_44kHzStereo, 1061 SAFTGSM610_8kHzMono, 1062 SAFTGSM610_11kHzMono, 1063 SAFTGSM610_22kHzMono, 1064 SAFTGSM610_44kHzMono, 1065 DISPID_SpeechAudioFormat, 1066 DISPID_SAFType, 1067 DISPID_SAFGuid, 1068 DISPID_SAFGetWaveFormatEx, 1069 DISPID_SAFSetWaveFormatEx, 1070 DISPID_SpeechBaseStream, 1071 DISPID_SBSFormat, 1072 DISPID_SBSRead, 1073 DISPID_SBSWrite, 1074 DISPID_SBSSeek, 1075 SpeechStreamSeekPositionType, 1076 SSSPTRelativeToStart, 1077 SSSPTRelativeToCurrentPosition, 1078 SSSPTRelativeToEnd, 1079 DISPID_SpeechAudio, 1080 DISPID_SAStatus, 1081 DISPID_SABufferInfo, 1082 DISPID_SADefaultFormat, 1083 DISPID_SAVolume, 1084 DISPID_SABufferNotifySize, 1085 DISPID_SAEventHandle, 1086 DISPID_SASetState, 1087 SpeechAudioState, 1088 SASClosed, 1089 SASStop, 1090 SASPause, 1091 SASRun, 1092 DISPID_SpeechMMSysAudio, 1093 DISPID_SMSADeviceId, 1094 DISPID_SMSALineId, 1095 DISPID_SMSAMMHandle, 1096 DISPID_SpeechFileStream, 1097 DISPID_SFSOpen, 1098 DISPID_SFSClose, 1099 SpeechStreamFileMode, 1100 SSFMOpenForRead, 1101 SSFMOpenReadWrite, 1102 SSFMCreate, 1103 SSFMCreateForWrite, 1104 DISPID_SpeechCustomStream, 1105 DISPID_SCSBaseStream, 1106 DISPID_SpeechMemoryStream, 1107 DISPID_SMSSetData, 1108 DISPID_SMSGetData, 1109 DISPID_SpeechAudioStatus, 1110 DISPID_SASFreeBufferSpace, 1111 DISPID_SASNonBlockingIO, 1112 DISPID_SASState, 1113 DISPID_SASCurrentSeekPosition, 1114 DISPID_SASCurrentDevicePosition, 1115 DISPID_SpeechAudioBufferInfo, 1116 DISPID_SABIMinNotification, 1117 DISPID_SABIBufferSize, 1118 DISPID_SABIEventBias, 1119 DISPID_SpeechWaveFormatEx, 1120 DISPID_SWFEFormatTag, 1121 DISPID_SWFEChannels, 1122 DISPID_SWFESamplesPerSec, 1123 DISPID_SWFEAvgBytesPerSec, 1124 DISPID_SWFEBlockAlign, 1125 DISPID_SWFEBitsPerSample, 1126 DISPID_SWFEExtraData, 1127 DISPID_SpeechVoice, 1128 DISPID_SVStatus, 1129 DISPID_SVVoice, 1130 DISPID_SVAudioOutput, 1131 DISPID_SVAudioOutputStream, 1132 DISPID_SVRate, 1133 DISPID_SVVolume, 1134 DISPID_SVAllowAudioOuputFormatChangesOnNextSet, 1135 DISPID_SVEventInterests, 1136 DISPID_SVPriority, 1137 DISPID_SVAlertBoundary, 1138 DISPID_SVSyncronousSpeakTimeout, 1139 DISPID_SVSpeak, 1140 DISPID_SVSpeakStream, 1141 DISPID_SVPause, 1142 DISPID_SVResume, 1143 DISPID_SVSkip, 1144 DISPID_SVGetVoices, 1145 DISPID_SVGetAudioOutputs, 1146 DISPID_SVWaitUntilDone, 1147 DISPID_SVSpeakCompleteEvent, 1148 DISPID_SVIsUISupported, 1149 DISPID_SVDisplayUI, 1150 SpeechVoicePriority, 1151 SVPNormal, 1152 SVPAlert, 1153 SVPOver, 1154 SpeechVoiceSpeakFlags, 1155 SVSFDefault, 1156 SVSFlagsAsync, 1157 SVSFPurgeBeforeSpeak, 1158 SVSFIsFilename, 1159 SVSFIsXML, 1160 SVSFIsNotXML, 1161 SVSFPersistXML, 1162 SVSFNLPSpeakPunc, 1163 }; 1164 pub const SVSFParseSapi: SpeechVoiceSpeakFlags = SPF_PARSE_SAPI; 1165 pub const SVSFParseSsml: SpeechVoiceSpeakFlags = SPF_PARSE_SSML; 1166 pub const SVSFParseAutodetect: SpeechVoiceSpeakFlags = SPF_PARSE_AUTODETECT; 1167 pub use um::sapi51::SVSFNLPMask; 1168 pub const SVSFParseMask: SpeechVoiceSpeakFlags = SPF_PARSE_MASK as u32; 1169 pub use um::sapi51::{ 1170 SVSFVoiceMask, 1171 SVSFUnusedFlags, 1172 SpeechVoiceEvents, 1173 SVEStartInputStream, 1174 SVEEndInputStream, 1175 SVEVoiceChange, 1176 SVEBookmark, 1177 SVEWordBoundary, 1178 SVEPhoneme, 1179 SVESentenceBoundary, 1180 SVEViseme, 1181 SVEAudioLevel, 1182 SVEPrivate, 1183 SVEAllEvents, 1184 DISPID_SpeechVoiceStatus, 1185 DISPID_SVSCurrentStreamNumber, 1186 DISPID_SVSLastStreamNumberQueued, 1187 DISPID_SVSLastResult, 1188 DISPID_SVSRunningState, 1189 DISPID_SVSInputWordPosition, 1190 DISPID_SVSInputWordLength, 1191 DISPID_SVSInputSentencePosition, 1192 DISPID_SVSInputSentenceLength, 1193 DISPID_SVSLastBookmark, 1194 DISPID_SVSLastBookmarkId, 1195 DISPID_SVSPhonemeId, 1196 DISPID_SVSVisemeId, 1197 SpeechRunState, 1198 SRSEDone, 1199 SRSEIsSpeaking, 1200 SpeechVisemeType, 1201 SVP_0, 1202 SVP_1, 1203 SVP_2, 1204 SVP_3, 1205 SVP_4, 1206 SVP_5, 1207 SVP_6, 1208 SVP_7, 1209 SVP_8, 1210 SVP_9, 1211 SVP_10, 1212 SVP_11, 1213 SVP_12, 1214 SVP_13, 1215 SVP_14, 1216 SVP_15, 1217 SVP_16, 1218 SVP_17, 1219 SVP_18, 1220 SVP_19, 1221 SVP_20, 1222 SVP_21, 1223 SpeechVisemeFeature, 1224 SVF_None, 1225 SVF_Stressed, 1226 SVF_Emphasis, 1227 DISPID_SpeechVoiceEvent, 1228 DISPID_SVEStreamStart, 1229 DISPID_SVEStreamEnd, 1230 DISPID_SVEVoiceChange, 1231 DISPID_SVEBookmark, 1232 DISPID_SVEWord, 1233 DISPID_SVEPhoneme, 1234 DISPID_SVESentenceBoundary, 1235 DISPID_SVEViseme, 1236 DISPID_SVEAudioLevel, 1237 DISPID_SVEEnginePrivate, 1238 DISPID_SpeechRecognizer, 1239 DISPID_SRRecognizer, 1240 DISPID_SRAllowAudioInputFormatChangesOnNextSet, 1241 DISPID_SRAudioInput, 1242 DISPID_SRAudioInputStream, 1243 DISPID_SRIsShared, 1244 DISPID_SRState, 1245 DISPID_SRStatus, 1246 DISPID_SRProfile, 1247 DISPID_SREmulateRecognition, 1248 DISPID_SRCreateRecoContext, 1249 DISPID_SRGetFormat, 1250 DISPID_SRSetPropertyNumber, 1251 DISPID_SRGetPropertyNumber, 1252 DISPID_SRSetPropertyString, 1253 DISPID_SRGetPropertyString, 1254 DISPID_SRIsUISupported, 1255 DISPID_SRDisplayUI, 1256 DISPID_SRGetRecognizers, 1257 DISPID_SVGetAudioInputs, 1258 DISPID_SVGetProfiles, 1259 SpeechRecognizerState, 1260 SRSInactive, 1261 SRSActive, 1262 SRSActiveAlways, 1263 SRSInactiveWithPurge, 1264 SpeechDisplayAttributes, 1265 SDA_No_Trailing_Space, 1266 SDA_One_Trailing_Space, 1267 SDA_Two_Trailing_Spaces, 1268 SDA_Consume_Leading_Spaces, 1269 SpeechFormatType, 1270 SFTInput, 1271 SFTSREngine, 1272 }; 1273 ENUM!{enum SpeechEmulationCompareFlags { 1274 SECFIgnoreCase = 0x1, 1275 SECFIgnoreKanaType = 0x10000, 1276 SECFIgnoreWidth = 0x20000, 1277 SECFNoSpecialChars = 0x20000000, 1278 SECFEmulateResult = 0x40000000, 1279 SECFDefault = SECFIgnoreCase | SECFIgnoreKanaType | SECFIgnoreWidth, 1280 }} 1281 pub use um::sapi51::{ 1282 DISPID_SpeechRecognizerStatus, 1283 DISPID_SRSAudioStatus, 1284 DISPID_SRSCurrentStreamPosition, 1285 DISPID_SRSCurrentStreamNumber, 1286 DISPID_SRSNumberOfActiveRules, 1287 DISPID_SRSClsidEngine, 1288 DISPID_SRSSupportedLanguages, 1289 DISPID_SpeechRecoContext, 1290 DISPID_SRCRecognizer, 1291 DISPID_SRCAudioInInterferenceStatus, 1292 DISPID_SRCRequestedUIType, 1293 DISPID_SRCVoice, 1294 DISPID_SRAllowVoiceFormatMatchingOnNextSet, 1295 DISPID_SRCVoicePurgeEvent, 1296 DISPID_SRCEventInterests, 1297 DISPID_SRCCmdMaxAlternates, 1298 DISPID_SRCState, 1299 DISPID_SRCRetainedAudio, 1300 DISPID_SRCRetainedAudioFormat, 1301 DISPID_SRCPause, 1302 DISPID_SRCResume, 1303 DISPID_SRCCreateGrammar, 1304 DISPID_SRCCreateResultFromMemory, 1305 DISPID_SRCBookmark, 1306 DISPID_SRCSetAdaptationData, 1307 SpeechRetainedAudioOptions, 1308 SRAONone, 1309 SRAORetainAudio, 1310 SpeechBookmarkOptions, 1311 SBONone, 1312 SBOPause, 1313 SpeechInterference, 1314 SINone, 1315 SINoise, 1316 SINoSignal, 1317 SITooLoud, 1318 SITooQuiet, 1319 SITooFast, 1320 SITooSlow, 1321 SpeechRecoEvents, 1322 SREStreamEnd, 1323 SRESoundStart, 1324 SRESoundEnd, 1325 SREPhraseStart, 1326 SRERecognition, 1327 SREHypothesis, 1328 SREBookmark, 1329 SREPropertyNumChange, 1330 SREPropertyStringChange, 1331 SREFalseRecognition, 1332 SREInterference, 1333 SRERequestUI, 1334 SREStateChange, 1335 SREAdaptation, 1336 SREStreamStart, 1337 SRERecoOtherContext, 1338 SREAudioLevel, 1339 SREPrivate, 1340 SREAllEvents, 1341 SpeechRecoContextState, 1342 SRCS_Disabled, 1343 SRCS_Enabled, 1344 DISPIDSPRG, 1345 DISPID_SRGId, 1346 DISPID_SRGRecoContext, 1347 DISPID_SRGState, 1348 DISPID_SRGRules, 1349 DISPID_SRGReset, 1350 DISPID_SRGCommit, 1351 DISPID_SRGCmdLoadFromFile, 1352 DISPID_SRGCmdLoadFromObject, 1353 DISPID_SRGCmdLoadFromResource, 1354 DISPID_SRGCmdLoadFromMemory, 1355 DISPID_SRGCmdLoadFromProprietaryGrammar, 1356 DISPID_SRGCmdSetRuleState, 1357 DISPID_SRGCmdSetRuleIdState, 1358 DISPID_SRGDictationLoad, 1359 DISPID_SRGDictationUnload, 1360 DISPID_SRGDictationSetState, 1361 DISPID_SRGSetWordSequenceData, 1362 DISPID_SRGSetTextSelection, 1363 DISPID_SRGIsPronounceable, 1364 SpeechLoadOption, 1365 SLOStatic, 1366 SLODynamic, 1367 SpeechWordPronounceable, 1368 SWPUnknownWordUnpronounceable, 1369 SWPUnknownWordPronounceable, 1370 SWPKnownWordPronounceable, 1371 SpeechGrammarState, 1372 SGSEnabled, 1373 SGSDisabled, 1374 SGSExclusive, 1375 SpeechRuleState, 1376 SGDSInactive, 1377 SGDSActive, 1378 SGDSActiveWithAutoPause, 1379 }; 1380 pub const SGDSActiveUserDelimited: SpeechRuleState = SPRS_ACTIVE_USER_DELIMITED; 1381 pub use um::sapi51::{ 1382 SpeechRuleAttributes, 1383 SRATopLevel, 1384 SRADefaultToActive, 1385 SRAExport, 1386 SRAImport, 1387 SRAInterpreter, 1388 SRADynamic, 1389 }; 1390 pub const SRARoot: SpeechRuleAttributes = SPRAF_Root; 1391 pub use um::sapi51::{ 1392 SpeechGrammarWordType, 1393 SGDisplay, 1394 SGLexical, 1395 SGPronounciation, 1396 }; 1397 pub const SGLexicalNoSpecialChars: SpeechGrammarWordType = SPWT_LEXICAL_NO_SPECIAL_CHARS; 1398 pub use um::sapi51::{ 1399 DISPID_SpeechRecoContextEvents, 1400 DISPID_SRCEStartStream, 1401 DISPID_SRCEEndStream, 1402 DISPID_SRCEBookmark, 1403 DISPID_SRCESoundStart, 1404 DISPID_SRCESoundEnd, 1405 DISPID_SRCEPhraseStart, 1406 DISPID_SRCERecognition, 1407 DISPID_SRCEHypothesis, 1408 DISPID_SRCEPropertyNumberChange, 1409 DISPID_SRCEPropertyStringChange, 1410 DISPID_SRCEFalseRecognition, 1411 DISPID_SRCEInterference, 1412 DISPID_SRCERequestUI, 1413 DISPID_SRCERecognizerStateChange, 1414 DISPID_SRCEAdaptation, 1415 DISPID_SRCERecognitionForOtherContext, 1416 DISPID_SRCEAudioLevel, 1417 DISPID_SRCEEnginePrivate, 1418 SpeechRecognitionType, 1419 SRTStandard, 1420 SRTAutopause, 1421 SRTEmulated, 1422 }; 1423 pub const SRTSMLTimeout: SpeechRecognitionType = SPREF_SMLTimeout; 1424 pub const SRTExtendableParse: SpeechRecognitionType = SPREF_ExtendableParse; 1425 pub const SRTReSent: SpeechRecognitionType = SPREF_ReSent; 1426 pub use um::sapi51::{ 1427 DISPID_SpeechGrammarRule, 1428 DISPID_SGRAttributes, 1429 DISPID_SGRInitialState, 1430 DISPID_SGRName, 1431 DISPID_SGRId, 1432 DISPID_SGRClear, 1433 DISPID_SGRAddResource, 1434 DISPID_SGRAddState, 1435 DISPID_SpeechGrammarRules, 1436 DISPID_SGRsCount, 1437 DISPID_SGRsDynamic, 1438 DISPID_SGRsAdd, 1439 DISPID_SGRsCommit, 1440 DISPID_SGRsCommitAndSave, 1441 DISPID_SGRsFindRule, 1442 DISPID_SGRsItem, 1443 DISPID_SGRs_NewEnum, 1444 DISPID_SpeechGrammarRuleState, 1445 DISPID_SGRSRule, 1446 DISPID_SGRSTransitions, 1447 DISPID_SGRSAddWordTransition, 1448 DISPID_SGRSAddRuleTransition, 1449 DISPID_SGRSAddSpecialTransition, 1450 SpeechSpecialTransitionType, 1451 SSTTWildcard, 1452 SSTTDictation, 1453 SSTTTextBuffer, 1454 DISPID_SpeechGrammarRuleStateTransitions, 1455 DISPID_SGRSTsCount, 1456 DISPID_SGRSTsItem, 1457 DISPID_SGRSTs_NewEnum, 1458 DISPID_SpeechGrammarRuleStateTransition, 1459 DISPID_SGRSTType, 1460 DISPID_SGRSTText, 1461 DISPID_SGRSTRule, 1462 DISPID_SGRSTWeight, 1463 DISPID_SGRSTPropertyName, 1464 DISPID_SGRSTPropertyId, 1465 DISPID_SGRSTPropertyValue, 1466 DISPID_SGRSTNextState, 1467 SpeechGrammarRuleStateTransitionType, 1468 SGRSTTEpsilon, 1469 SGRSTTWord, 1470 SGRSTTRule, 1471 SGRSTTDictation, 1472 SGRSTTWildcard, 1473 SGRSTTTextBuffer, 1474 DISPIDSPTSI, 1475 DISPIDSPTSI_ActiveOffset, 1476 DISPIDSPTSI_ActiveLength, 1477 DISPIDSPTSI_SelectionOffset, 1478 DISPIDSPTSI_SelectionLength, 1479 DISPID_SpeechRecoResult, 1480 DISPID_SRRRecoContext, 1481 DISPID_SRRTimes, 1482 DISPID_SRRAudioFormat, 1483 DISPID_SRRPhraseInfo, 1484 DISPID_SRRAlternates, 1485 DISPID_SRRAudio, 1486 DISPID_SRRSpeakAudio, 1487 DISPID_SRRSaveToMemory, 1488 DISPID_SRRDiscardResultInfo, 1489 SpeechDiscardType, 1490 SDTProperty, 1491 SDTReplacement, 1492 SDTRule, 1493 SDTDisplayText, 1494 SDTLexicalForm, 1495 SDTPronunciation, 1496 SDTAudio, 1497 SDTAlternates, 1498 SDTAll, 1499 }; 1500 ENUM!{enum DISPID_SpeechXMLRecoResult { 1501 DISPID_SRRGetXMLResult, 1502 DISPID_SRRGetXMLErrorInfo, 1503 }} 1504 ENUM!{enum DISPID_SpeechRecoResult2 { 1505 DISPID_SRRSetTextFeedback, 1506 }} 1507 pub use um::sapi51::{ 1508 DISPID_SpeechPhraseBuilder, 1509 DISPID_SPPBRestorePhraseFromMemory, 1510 DISPID_SpeechRecoResultTimes, 1511 DISPID_SRRTStreamTime, 1512 DISPID_SRRTLength, 1513 DISPID_SRRTTickCount, 1514 DISPID_SRRTOffsetFromStart, 1515 DISPID_SpeechPhraseAlternate, 1516 DISPID_SPARecoResult, 1517 DISPID_SPAStartElementInResult, 1518 DISPID_SPANumberOfElementsInResult, 1519 DISPID_SPAPhraseInfo, 1520 DISPID_SPACommit, 1521 DISPID_SpeechPhraseAlternates, 1522 DISPID_SPAsCount, 1523 DISPID_SPAsItem, 1524 DISPID_SPAs_NewEnum, 1525 DISPID_SpeechPhraseInfo, 1526 DISPID_SPILanguageId, 1527 DISPID_SPIGrammarId, 1528 DISPID_SPIStartTime, 1529 DISPID_SPIAudioStreamPosition, 1530 DISPID_SPIAudioSizeBytes, 1531 DISPID_SPIRetainedSizeBytes, 1532 DISPID_SPIAudioSizeTime, 1533 DISPID_SPIRule, 1534 DISPID_SPIProperties, 1535 DISPID_SPIElements, 1536 DISPID_SPIReplacements, 1537 DISPID_SPIEngineId, 1538 DISPID_SPIEnginePrivateData, 1539 DISPID_SPISaveToMemory, 1540 DISPID_SPIGetText, 1541 DISPID_SPIGetDisplayAttributes, 1542 DISPID_SpeechPhraseElement, 1543 DISPID_SPEAudioTimeOffset, 1544 DISPID_SPEAudioSizeTime, 1545 DISPID_SPEAudioStreamOffset, 1546 DISPID_SPEAudioSizeBytes, 1547 DISPID_SPERetainedStreamOffset, 1548 DISPID_SPERetainedSizeBytes, 1549 DISPID_SPEDisplayText, 1550 DISPID_SPELexicalForm, 1551 DISPID_SPEPronunciation, 1552 DISPID_SPEDisplayAttributes, 1553 DISPID_SPERequiredConfidence, 1554 DISPID_SPEActualConfidence, 1555 DISPID_SPEEngineConfidence, 1556 SpeechEngineConfidence, 1557 SECLowConfidence, 1558 SECNormalConfidence, 1559 SECHighConfidence, 1560 DISPID_SpeechPhraseElements, 1561 DISPID_SPEsCount, 1562 DISPID_SPEsItem, 1563 DISPID_SPEs_NewEnum, 1564 DISPID_SpeechPhraseReplacement, 1565 DISPID_SPRDisplayAttributes, 1566 DISPID_SPRText, 1567 DISPID_SPRFirstElement, 1568 DISPID_SPRNumberOfElements, 1569 DISPID_SpeechPhraseReplacements, 1570 DISPID_SPRsCount, 1571 DISPID_SPRsItem, 1572 DISPID_SPRs_NewEnum, 1573 DISPID_SpeechPhraseProperty, 1574 DISPID_SPPName, 1575 DISPID_SPPId, 1576 DISPID_SPPValue, 1577 DISPID_SPPFirstElement, 1578 DISPID_SPPNumberOfElements, 1579 DISPID_SPPEngineConfidence, 1580 DISPID_SPPConfidence, 1581 DISPID_SPPParent, 1582 DISPID_SPPChildren, 1583 DISPID_SpeechPhraseProperties, 1584 DISPID_SPPsCount, 1585 DISPID_SPPsItem, 1586 DISPID_SPPs_NewEnum, 1587 DISPID_SpeechPhraseRule, 1588 DISPID_SPRuleName, 1589 DISPID_SPRuleId, 1590 DISPID_SPRuleFirstElement, 1591 DISPID_SPRuleNumberOfElements, 1592 DISPID_SPRuleParent, 1593 DISPID_SPRuleChildren, 1594 DISPID_SPRuleConfidence, 1595 DISPID_SPRuleEngineConfidence, 1596 DISPID_SpeechPhraseRules, 1597 DISPID_SPRulesCount, 1598 DISPID_SPRulesItem, 1599 DISPID_SPRules_NewEnum, 1600 DISPID_SpeechLexicon, 1601 DISPID_SLGenerationId, 1602 DISPID_SLGetWords, 1603 DISPID_SLAddPronunciation, 1604 DISPID_SLAddPronunciationByPhoneIds, 1605 DISPID_SLRemovePronunciation, 1606 DISPID_SLRemovePronunciationByPhoneIds, 1607 DISPID_SLGetPronunciations, 1608 DISPID_SLGetGenerationChange, 1609 SpeechLexiconType, 1610 SLTUser, 1611 SLTApp, 1612 SpeechPartOfSpeech, 1613 SPSNotOverriden, 1614 SPSUnknown, 1615 SPSNoun, 1616 SPSVerb, 1617 SPSModifier, 1618 SPSFunction, 1619 SPSInterjection, 1620 }; 1621 pub const SPSLMA: SpeechPartOfSpeech = SPPS_LMA; 1622 pub const SPSSuppressWord: SpeechPartOfSpeech = SPPS_SuppressWord; 1623 pub use um::sapi51::{ 1624 DISPID_SpeechLexiconWords, 1625 DISPID_SLWsCount, 1626 DISPID_SLWsItem, 1627 DISPID_SLWs_NewEnum, 1628 SpeechWordType, 1629 SWTAdded, 1630 SWTDeleted, 1631 DISPID_SpeechLexiconWord, 1632 DISPID_SLWLangId, 1633 DISPID_SLWType, 1634 DISPID_SLWWord, 1635 DISPID_SLWPronunciations, 1636 DISPID_SpeechLexiconProns, 1637 DISPID_SLPsCount, 1638 DISPID_SLPsItem, 1639 DISPID_SLPs_NewEnum, 1640 DISPID_SpeechLexiconPronunciation, 1641 DISPID_SLPType, 1642 DISPID_SLPLangId, 1643 DISPID_SLPPartOfSpeech, 1644 DISPID_SLPPhoneIds, 1645 DISPID_SLPSymbolic, 1646 DISPID_SpeechPhoneConverter, 1647 DISPID_SPCLangId, 1648 DISPID_SPCPhoneToId, 1649 DISPID_SPCIdToPhone, 1650 LIBID_SpeechLib, 1651 ISpeechDataKey, ISpeechDataKeyVtbl, 1652 ISpeechObjectToken, ISpeechObjectTokenVtbl, 1653 ISpeechObjectTokens, ISpeechObjectTokensVtbl, 1654 ISpeechObjectTokenCategory, ISpeechObjectTokenCategoryVtbl, 1655 ISpeechAudioBufferInfo, ISpeechAudioBufferInfoVtbl, 1656 ISpeechAudioStatus, ISpeechAudioStatusVtbl, 1657 ISpeechAudioFormat, ISpeechAudioFormatVtbl, 1658 ISpeechWaveFormatEx, ISpeechWaveFormatExVtbl, 1659 ISpeechBaseStream, ISpeechBaseStreamVtbl, 1660 ISpeechFileStream, ISpeechFileStreamVtbl, 1661 ISpeechMemoryStream, ISpeechMemoryStreamVtbl, 1662 ISpeechCustomStream, ISpeechCustomStreamVtbl, 1663 ISpeechAudio, ISpeechAudioVtbl, 1664 ISpeechMMSysAudio, ISpeechMMSysAudioVtbl, 1665 ISpeechVoice, ISpeechVoiceVtbl, 1666 ISpeechVoiceStatus, ISpeechVoiceStatusVtbl, 1667 _ISpeechVoiceEvents, _ISpeechVoiceEventsVtbl, 1668 ISpeechRecognizer, ISpeechRecognizerVtbl, 1669 ISpeechRecognizerStatus, ISpeechRecognizerStatusVtbl, 1670 ISpeechRecoContext, ISpeechRecoContextVtbl, 1671 ISpeechRecoGrammar, ISpeechRecoGrammarVtbl, 1672 _ISpeechRecoContextEvents, _ISpeechRecoContextEventsVtbl, 1673 ISpeechGrammarRule, ISpeechGrammarRuleVtbl, 1674 ISpeechGrammarRules, ISpeechGrammarRulesVtbl, 1675 ISpeechGrammarRuleState, ISpeechGrammarRuleStateVtbl, 1676 ISpeechGrammarRuleStateTransition, ISpeechGrammarRuleStateTransitionVtbl, 1677 ISpeechGrammarRuleStateTransitions, ISpeechGrammarRuleStateTransitionsVtbl, 1678 ISpeechTextSelectionInformation, ISpeechTextSelectionInformationVtbl, 1679 ISpeechRecoResult, ISpeechRecoResultVtbl, 1680 }; 1681 RIDL!{#[uuid(0x8e0a246d, 0xd3c8, 0x45de, 0x86, 0x57, 0x04, 0x29, 0x0c, 0x45, 0x8c, 0x3c)] 1682 interface ISpeechRecoResult2(ISpeechRecoResult2Vtbl): ISpeechRecoResult(ISpeechRecoResultVtbl) { 1683 fn SetTextFeedback( 1684 Feedback: BSTR, 1685 WasSuccessful: VARIANT_BOOL, 1686 ) -> HRESULT, 1687 }} 1688 pub use um::sapi51::{ 1689 ISpeechRecoResultTimes, ISpeechRecoResultTimesVtbl, 1690 ISpeechPhraseAlternate, ISpeechPhraseAlternateVtbl, 1691 ISpeechPhraseAlternates, ISpeechPhraseAlternatesVtbl, 1692 ISpeechPhraseInfo, ISpeechPhraseInfoVtbl, 1693 ISpeechPhraseElement, ISpeechPhraseElementVtbl, 1694 ISpeechPhraseElements, ISpeechPhraseElementsVtbl, 1695 ISpeechPhraseReplacement, ISpeechPhraseReplacementVtbl, 1696 ISpeechPhraseReplacements, ISpeechPhraseReplacementsVtbl, 1697 ISpeechPhraseProperty, ISpeechPhrasePropertyVtbl, 1698 ISpeechPhraseProperties, ISpeechPhrasePropertiesVtbl, 1699 ISpeechPhraseRule, ISpeechPhraseRuleVtbl, 1700 ISpeechPhraseRules, ISpeechPhraseRulesVtbl, 1701 ISpeechLexicon, ISpeechLexiconVtbl, 1702 ISpeechLexiconWords, ISpeechLexiconWordsVtbl, 1703 ISpeechLexiconWord, ISpeechLexiconWordVtbl, 1704 ISpeechLexiconPronunciations, ISpeechLexiconPronunciationsVtbl, 1705 ISpeechLexiconPronunciation, ISpeechLexiconPronunciationVtbl, 1706 Speech_Default_Weight, 1707 Speech_Max_Word_Length, 1708 Speech_Max_Pron_Length, 1709 Speech_StreamPos_Asap, 1710 Speech_StreamPos_RealTime, 1711 SpeechAllElements, 1712 }; 1713 RIDL!{#[uuid(0xaaec54af, 0x8f85, 0x4924, 0x94, 0x4d, 0xb7, 0x9d, 0x39, 0xd7, 0x2e, 0x19)] 1714 interface ISpeechXMLRecoResult(ISpeechXMLRecoResultVtbl): 1715 ISpeechRecoResult(ISpeechRecoResultVtbl) { 1716 fn GetXMLResult( 1717 Options: SPXMLRESULTOPTIONS, 1718 pResult: *mut BSTR, 1719 ) -> HRESULT, 1720 fn GetXMLErrorInfo( 1721 LineNumber: *mut c_long, 1722 ScriptLine: *mut BSTR, 1723 Source: *mut BSTR, 1724 Description: *mut BSTR, 1725 ResultCode: *mut c_long, 1726 IsError: *mut VARIANT_BOOL, 1727 ) -> HRESULT, 1728 }} 1729 RIDL!{#[uuid(0x6d60eb64, 0xaced, 0x40a6, 0xbb, 0xf3, 0x4e, 0x55, 0x7f, 0x71, 0xde, 0xe2)] 1730 interface ISpeechRecoResultDispatch(ISpeechRecoResultDispatchVtbl): IDispatch(IDispatchVtbl) { 1731 fn get_RecoContext( 1732 RecoContext: *mut ISpeechRecoContext, 1733 ) -> HRESULT, 1734 fn get_Times( 1735 Times: *mut ISpeechRecoResultTimes, 1736 ) -> HRESULT, 1737 fn putref_AudioFormat( 1738 Format: *mut ISpeechAudioFormat, 1739 ) -> HRESULT, 1740 fn get_AudioFormat( 1741 Format: *mut *mut ISpeechAudioFormat, 1742 ) -> HRESULT, 1743 fn get_PhraseInfo( 1744 PhraseInfo: *mut *mut ISpeechPhraseInfo, 1745 ) -> HRESULT, 1746 fn Alternates( 1747 RequestCount: c_long, 1748 StartElement: c_long, 1749 Elements: c_long, 1750 Alternates: *mut *mut ISpeechPhraseAlternates, 1751 ) -> HRESULT, 1752 fn Audio( 1753 StartElement: c_long, 1754 Elements: c_long, 1755 Stream: *mut *mut ISpeechMemoryStream, 1756 ) -> HRESULT, 1757 fn SpeakAudio( 1758 StartElement: c_long, 1759 Elements: c_long, 1760 Flags: SpeechVoiceSpeakFlags, 1761 StreamNumber: *mut c_long, 1762 ) -> HRESULT, 1763 fn SaveToMemory( 1764 ResultBlock: *mut VARIANT, 1765 ) -> HRESULT, 1766 fn DiscardResultInfo( 1767 ValueTypes: SpeechDiscardType, 1768 ) -> HRESULT, 1769 fn GetXMLResult( 1770 Options: SPXMLRESULTOPTIONS, 1771 pResult: *mut BSTR, 1772 ) -> HRESULT, 1773 fn GetXMLErrorInfo( 1774 LineNumber: *mut c_long, 1775 ScriptLine: *mut BSTR, 1776 Source: *mut BSTR, 1777 Description: *mut BSTR, 1778 ResultCode: *mut HRESULT, 1779 IsError: *mut VARIANT_BOOL, 1780 ) -> HRESULT, 1781 fn SetTextFeedback( 1782 Feedback: BSTR, 1783 WasSuccessful: VARIANT_BOOL, 1784 ) -> HRESULT, 1785 }} 1786 pub use um::sapi51::{ 1787 ISpeechPhraseInfoBuilder, ISpeechPhraseInfoBuilderVtbl, 1788 ISpeechPhoneConverter, ISpeechPhoneConverterVtbl, 1789 CLSID_SpNotifyTranslator, 1790 CLSID_SpObjectTokenCategory, 1791 CLSID_SpObjectToken, 1792 CLSID_SpResourceManager, 1793 CLSID_SpStreamFormatConverter, 1794 CLSID_SpMMAudioEnum, 1795 CLSID_SpMMAudioIn, 1796 CLSID_SpMMAudioOut, 1797 CLSID_SpStream, 1798 CLSID_SpVoice, 1799 CLSID_SpSharedRecoContext, 1800 CLSID_SpInprocRecognizer, 1801 CLSID_SpSharedRecognizer, 1802 CLSID_SpLexicon, 1803 CLSID_SpUnCompressedLexicon, 1804 CLSID_SpCompressedLexicon, 1805 }; 1806 extern { 1807 pub static CLSID_SpShortcut: CLSID; 1808 } 1809 pub use um::sapi51::CLSID_SpPhoneConverter; 1810 extern { 1811 pub static CLSID_SpPhoneticAlphabetConverter: CLSID; 1812 } 1813 pub use um::sapi51::{ 1814 CLSID_SpNullPhoneConverter, 1815 CLSID_SpTextSelectionInformation, 1816 CLSID_SpPhraseInfoBuilder, 1817 CLSID_SpAudioFormat, 1818 CLSID_SpWaveFormatEx, 1819 CLSID_SpInProcRecoContext, 1820 CLSID_SpCustomStream, 1821 CLSID_SpFileStream, 1822 CLSID_SpMemoryStream, 1823 }; 1824