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