1 /*** Autogenerated by WIDL 6.4 from include/sapi54.idl - Do not edit ***/
2 
3 #ifdef _WIN32
4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
6 #endif
7 #include <rpc.h>
8 #include <rpcndr.h>
9 #endif
10 
11 #ifndef COM_NO_WINDOWS_H
12 #include <windows.h>
13 #include <ole2.h>
14 #endif
15 
16 #ifndef __sapi54_h__
17 #define __sapi54_h__
18 
19 /* Forward declarations */
20 
21 #ifndef __ISpNotifySource_FWD_DEFINED__
22 #define __ISpNotifySource_FWD_DEFINED__
23 typedef interface ISpNotifySource ISpNotifySource;
24 #ifdef __cplusplus
25 interface ISpNotifySource;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __ISpNotifySink_FWD_DEFINED__
30 #define __ISpNotifySink_FWD_DEFINED__
31 typedef interface ISpNotifySink ISpNotifySink;
32 #ifdef __cplusplus
33 interface ISpNotifySink;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
38 #define __ISpNotifyTranslator_FWD_DEFINED__
39 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
40 #ifdef __cplusplus
41 interface ISpNotifyTranslator;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __ISpDataKey_FWD_DEFINED__
46 #define __ISpDataKey_FWD_DEFINED__
47 typedef interface ISpDataKey ISpDataKey;
48 #ifdef __cplusplus
49 interface ISpDataKey;
50 #endif /* __cplusplus */
51 #endif
52 
53 #ifndef __ISpObjectWithToken_FWD_DEFINED__
54 #define __ISpObjectWithToken_FWD_DEFINED__
55 typedef interface ISpObjectWithToken ISpObjectWithToken;
56 #ifdef __cplusplus
57 interface ISpObjectWithToken;
58 #endif /* __cplusplus */
59 #endif
60 
61 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
62 #define __IEnumSpObjectTokens_FWD_DEFINED__
63 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
64 #ifdef __cplusplus
65 interface IEnumSpObjectTokens;
66 #endif /* __cplusplus */
67 #endif
68 
69 #ifndef __ISpRegDataKey_FWD_DEFINED__
70 #define __ISpRegDataKey_FWD_DEFINED__
71 typedef interface ISpRegDataKey ISpRegDataKey;
72 #ifdef __cplusplus
73 interface ISpRegDataKey;
74 #endif /* __cplusplus */
75 #endif
76 
77 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
78 #define __ISpObjectTokenCategory_FWD_DEFINED__
79 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
80 #ifdef __cplusplus
81 interface ISpObjectTokenCategory;
82 #endif /* __cplusplus */
83 #endif
84 
85 #ifndef __ISpObjectToken_FWD_DEFINED__
86 #define __ISpObjectToken_FWD_DEFINED__
87 typedef interface ISpObjectToken ISpObjectToken;
88 #ifdef __cplusplus
89 interface ISpObjectToken;
90 #endif /* __cplusplus */
91 #endif
92 
93 #ifndef __ISpObjectTokenInit_FWD_DEFINED__
94 #define __ISpObjectTokenInit_FWD_DEFINED__
95 typedef interface ISpObjectTokenInit ISpObjectTokenInit;
96 #ifdef __cplusplus
97 interface ISpObjectTokenInit;
98 #endif /* __cplusplus */
99 #endif
100 
101 #ifndef __ISpResourceManager_FWD_DEFINED__
102 #define __ISpResourceManager_FWD_DEFINED__
103 typedef interface ISpResourceManager ISpResourceManager;
104 #ifdef __cplusplus
105 interface ISpResourceManager;
106 #endif /* __cplusplus */
107 #endif
108 
109 #ifndef __ISpEventSource_FWD_DEFINED__
110 #define __ISpEventSource_FWD_DEFINED__
111 typedef interface ISpEventSource ISpEventSource;
112 #ifdef __cplusplus
113 interface ISpEventSource;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __ISpEventSource2_FWD_DEFINED__
118 #define __ISpEventSource2_FWD_DEFINED__
119 typedef interface ISpEventSource2 ISpEventSource2;
120 #ifdef __cplusplus
121 interface ISpEventSource2;
122 #endif /* __cplusplus */
123 #endif
124 
125 #ifndef __ISpEventSink_FWD_DEFINED__
126 #define __ISpEventSink_FWD_DEFINED__
127 typedef interface ISpEventSink ISpEventSink;
128 #ifdef __cplusplus
129 interface ISpEventSink;
130 #endif /* __cplusplus */
131 #endif
132 
133 #ifndef __ISpStreamFormat_FWD_DEFINED__
134 #define __ISpStreamFormat_FWD_DEFINED__
135 typedef interface ISpStreamFormat ISpStreamFormat;
136 #ifdef __cplusplus
137 interface ISpStreamFormat;
138 #endif /* __cplusplus */
139 #endif
140 
141 #ifndef __ISpStream_FWD_DEFINED__
142 #define __ISpStream_FWD_DEFINED__
143 typedef interface ISpStream ISpStream;
144 #ifdef __cplusplus
145 interface ISpStream;
146 #endif /* __cplusplus */
147 #endif
148 
149 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
150 #define __ISpStreamFormatConverter_FWD_DEFINED__
151 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
152 #ifdef __cplusplus
153 interface ISpStreamFormatConverter;
154 #endif /* __cplusplus */
155 #endif
156 
157 #ifndef __ISpAudio_FWD_DEFINED__
158 #define __ISpAudio_FWD_DEFINED__
159 typedef interface ISpAudio ISpAudio;
160 #ifdef __cplusplus
161 interface ISpAudio;
162 #endif /* __cplusplus */
163 #endif
164 
165 #ifndef __ISpMMSysAudio_FWD_DEFINED__
166 #define __ISpMMSysAudio_FWD_DEFINED__
167 typedef interface ISpMMSysAudio ISpMMSysAudio;
168 #ifdef __cplusplus
169 interface ISpMMSysAudio;
170 #endif /* __cplusplus */
171 #endif
172 
173 #ifndef __ISpTranscript_FWD_DEFINED__
174 #define __ISpTranscript_FWD_DEFINED__
175 typedef interface ISpTranscript ISpTranscript;
176 #ifdef __cplusplus
177 interface ISpTranscript;
178 #endif /* __cplusplus */
179 #endif
180 
181 #ifndef __ISpLexicon_FWD_DEFINED__
182 #define __ISpLexicon_FWD_DEFINED__
183 typedef interface ISpLexicon ISpLexicon;
184 #ifdef __cplusplus
185 interface ISpLexicon;
186 #endif /* __cplusplus */
187 #endif
188 
189 #ifndef __ISpContainerLexicon_FWD_DEFINED__
190 #define __ISpContainerLexicon_FWD_DEFINED__
191 typedef interface ISpContainerLexicon ISpContainerLexicon;
192 #ifdef __cplusplus
193 interface ISpContainerLexicon;
194 #endif /* __cplusplus */
195 #endif
196 
197 #ifndef __ISpShortcut_FWD_DEFINED__
198 #define __ISpShortcut_FWD_DEFINED__
199 typedef interface ISpShortcut ISpShortcut;
200 #ifdef __cplusplus
201 interface ISpShortcut;
202 #endif /* __cplusplus */
203 #endif
204 
205 #ifndef __ISpPhoneConverter_FWD_DEFINED__
206 #define __ISpPhoneConverter_FWD_DEFINED__
207 typedef interface ISpPhoneConverter ISpPhoneConverter;
208 #ifdef __cplusplus
209 interface ISpPhoneConverter;
210 #endif /* __cplusplus */
211 #endif
212 
213 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
214 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
215 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
216 #ifdef __cplusplus
217 interface ISpPhoneticAlphabetConverter;
218 #endif /* __cplusplus */
219 #endif
220 
221 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
222 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
223 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
224 #ifdef __cplusplus
225 interface ISpPhoneticAlphabetSelection;
226 #endif /* __cplusplus */
227 #endif
228 
229 #ifndef __ISpVoice_FWD_DEFINED__
230 #define __ISpVoice_FWD_DEFINED__
231 typedef interface ISpVoice ISpVoice;
232 #ifdef __cplusplus
233 interface ISpVoice;
234 #endif /* __cplusplus */
235 #endif
236 
237 #ifndef __ISpPhrase_FWD_DEFINED__
238 #define __ISpPhrase_FWD_DEFINED__
239 typedef interface ISpPhrase ISpPhrase;
240 #ifdef __cplusplus
241 interface ISpPhrase;
242 #endif /* __cplusplus */
243 #endif
244 
245 #ifndef __ISpPhraseAlt_FWD_DEFINED__
246 #define __ISpPhraseAlt_FWD_DEFINED__
247 typedef interface ISpPhraseAlt ISpPhraseAlt;
248 #ifdef __cplusplus
249 interface ISpPhraseAlt;
250 #endif /* __cplusplus */
251 #endif
252 
253 #ifndef __ISpPhrase2_FWD_DEFINED__
254 #define __ISpPhrase2_FWD_DEFINED__
255 typedef interface ISpPhrase2 ISpPhrase2;
256 #ifdef __cplusplus
257 interface ISpPhrase2;
258 #endif /* __cplusplus */
259 #endif
260 
261 #ifndef __ISpRecoResult_FWD_DEFINED__
262 #define __ISpRecoResult_FWD_DEFINED__
263 typedef interface ISpRecoResult ISpRecoResult;
264 #ifdef __cplusplus
265 interface ISpRecoResult;
266 #endif /* __cplusplus */
267 #endif
268 
269 #ifndef __ISpRecoResult2_FWD_DEFINED__
270 #define __ISpRecoResult2_FWD_DEFINED__
271 typedef interface ISpRecoResult2 ISpRecoResult2;
272 #ifdef __cplusplus
273 interface ISpRecoResult2;
274 #endif /* __cplusplus */
275 #endif
276 
277 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
278 #define __ISpXMLRecoResult_FWD_DEFINED__
279 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
280 #ifdef __cplusplus
281 interface ISpXMLRecoResult;
282 #endif /* __cplusplus */
283 #endif
284 
285 #ifndef __ISpGrammarBuilder_FWD_DEFINED__
286 #define __ISpGrammarBuilder_FWD_DEFINED__
287 typedef interface ISpGrammarBuilder ISpGrammarBuilder;
288 #ifdef __cplusplus
289 interface ISpGrammarBuilder;
290 #endif /* __cplusplus */
291 #endif
292 
293 #ifndef __ISpRecoGrammar_FWD_DEFINED__
294 #define __ISpRecoGrammar_FWD_DEFINED__
295 typedef interface ISpRecoGrammar ISpRecoGrammar;
296 #ifdef __cplusplus
297 interface ISpRecoGrammar;
298 #endif /* __cplusplus */
299 #endif
300 
301 #ifndef __ISpGrammarBuilder2_FWD_DEFINED__
302 #define __ISpGrammarBuilder2_FWD_DEFINED__
303 typedef interface ISpGrammarBuilder2 ISpGrammarBuilder2;
304 #ifdef __cplusplus
305 interface ISpGrammarBuilder2;
306 #endif /* __cplusplus */
307 #endif
308 
309 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
310 #define __ISpRecoGrammar2_FWD_DEFINED__
311 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
312 #ifdef __cplusplus
313 interface ISpRecoGrammar2;
314 #endif /* __cplusplus */
315 #endif
316 
317 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
318 #define __ISpeechResourceLoader_FWD_DEFINED__
319 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
320 #ifdef __cplusplus
321 interface ISpeechResourceLoader;
322 #endif /* __cplusplus */
323 #endif
324 
325 #ifndef __ISpRecoContext_FWD_DEFINED__
326 #define __ISpRecoContext_FWD_DEFINED__
327 typedef interface ISpRecoContext ISpRecoContext;
328 #ifdef __cplusplus
329 interface ISpRecoContext;
330 #endif /* __cplusplus */
331 #endif
332 
333 #ifndef __ISpRecoContext2_FWD_DEFINED__
334 #define __ISpRecoContext2_FWD_DEFINED__
335 typedef interface ISpRecoContext2 ISpRecoContext2;
336 #ifdef __cplusplus
337 interface ISpRecoContext2;
338 #endif /* __cplusplus */
339 #endif
340 
341 #ifndef __ISpProperties_FWD_DEFINED__
342 #define __ISpProperties_FWD_DEFINED__
343 typedef interface ISpProperties ISpProperties;
344 #ifdef __cplusplus
345 interface ISpProperties;
346 #endif /* __cplusplus */
347 #endif
348 
349 #ifndef __ISpRecognizer_FWD_DEFINED__
350 #define __ISpRecognizer_FWD_DEFINED__
351 typedef interface ISpRecognizer ISpRecognizer;
352 #ifdef __cplusplus
353 interface ISpRecognizer;
354 #endif /* __cplusplus */
355 #endif
356 
357 #ifndef __ISpSerializeState_FWD_DEFINED__
358 #define __ISpSerializeState_FWD_DEFINED__
359 typedef interface ISpSerializeState ISpSerializeState;
360 #ifdef __cplusplus
361 interface ISpSerializeState;
362 #endif /* __cplusplus */
363 #endif
364 
365 #ifndef __ISpRecognizer2_FWD_DEFINED__
366 #define __ISpRecognizer2_FWD_DEFINED__
367 typedef interface ISpRecognizer2 ISpRecognizer2;
368 #ifdef __cplusplus
369 interface ISpRecognizer2;
370 #endif /* __cplusplus */
371 #endif
372 
373 #ifndef __ISpRecoCategory_FWD_DEFINED__
374 #define __ISpRecoCategory_FWD_DEFINED__
375 typedef interface ISpRecoCategory ISpRecoCategory;
376 #ifdef __cplusplus
377 interface ISpRecoCategory;
378 #endif /* __cplusplus */
379 #endif
380 
381 #ifndef __ISpRecognizer3_FWD_DEFINED__
382 #define __ISpRecognizer3_FWD_DEFINED__
383 typedef interface ISpRecognizer3 ISpRecognizer3;
384 #ifdef __cplusplus
385 interface ISpRecognizer3;
386 #endif /* __cplusplus */
387 #endif
388 
389 #ifndef __ISpEnginePronunciation_FWD_DEFINED__
390 #define __ISpEnginePronunciation_FWD_DEFINED__
391 typedef interface ISpEnginePronunciation ISpEnginePronunciation;
392 #ifdef __cplusplus
393 interface ISpEnginePronunciation;
394 #endif /* __cplusplus */
395 #endif
396 
397 #ifndef __ISpDisplayAlternates_FWD_DEFINED__
398 #define __ISpDisplayAlternates_FWD_DEFINED__
399 typedef interface ISpDisplayAlternates ISpDisplayAlternates;
400 #ifdef __cplusplus
401 interface ISpDisplayAlternates;
402 #endif /* __cplusplus */
403 #endif
404 
405 #ifndef __ISpeechDataKey_FWD_DEFINED__
406 #define __ISpeechDataKey_FWD_DEFINED__
407 typedef interface ISpeechDataKey ISpeechDataKey;
408 #ifdef __cplusplus
409 interface ISpeechDataKey;
410 #endif /* __cplusplus */
411 #endif
412 
413 #ifndef __ISpeechObjectToken_FWD_DEFINED__
414 #define __ISpeechObjectToken_FWD_DEFINED__
415 typedef interface ISpeechObjectToken ISpeechObjectToken;
416 #ifdef __cplusplus
417 interface ISpeechObjectToken;
418 #endif /* __cplusplus */
419 #endif
420 
421 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
422 #define __ISpeechObjectTokens_FWD_DEFINED__
423 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
424 #ifdef __cplusplus
425 interface ISpeechObjectTokens;
426 #endif /* __cplusplus */
427 #endif
428 
429 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
430 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
431 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
432 #ifdef __cplusplus
433 interface ISpeechObjectTokenCategory;
434 #endif /* __cplusplus */
435 #endif
436 
437 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
438 #define __ISpeechAudioFormat_FWD_DEFINED__
439 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
440 #ifdef __cplusplus
441 interface ISpeechAudioFormat;
442 #endif /* __cplusplus */
443 #endif
444 
445 #ifndef __ISpeechBaseStream_FWD_DEFINED__
446 #define __ISpeechBaseStream_FWD_DEFINED__
447 typedef interface ISpeechBaseStream ISpeechBaseStream;
448 #ifdef __cplusplus
449 interface ISpeechBaseStream;
450 #endif /* __cplusplus */
451 #endif
452 
453 #ifndef __ISpeechAudio_FWD_DEFINED__
454 #define __ISpeechAudio_FWD_DEFINED__
455 typedef interface ISpeechAudio ISpeechAudio;
456 #ifdef __cplusplus
457 interface ISpeechAudio;
458 #endif /* __cplusplus */
459 #endif
460 
461 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
462 #define __ISpeechMMSysAudio_FWD_DEFINED__
463 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
464 #ifdef __cplusplus
465 interface ISpeechMMSysAudio;
466 #endif /* __cplusplus */
467 #endif
468 
469 #ifndef __ISpeechFileStream_FWD_DEFINED__
470 #define __ISpeechFileStream_FWD_DEFINED__
471 typedef interface ISpeechFileStream ISpeechFileStream;
472 #ifdef __cplusplus
473 interface ISpeechFileStream;
474 #endif /* __cplusplus */
475 #endif
476 
477 #ifndef __ISpeechCustomStream_FWD_DEFINED__
478 #define __ISpeechCustomStream_FWD_DEFINED__
479 typedef interface ISpeechCustomStream ISpeechCustomStream;
480 #ifdef __cplusplus
481 interface ISpeechCustomStream;
482 #endif /* __cplusplus */
483 #endif
484 
485 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
486 #define __ISpeechMemoryStream_FWD_DEFINED__
487 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
488 #ifdef __cplusplus
489 interface ISpeechMemoryStream;
490 #endif /* __cplusplus */
491 #endif
492 
493 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
494 #define __ISpeechAudioStatus_FWD_DEFINED__
495 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
496 #ifdef __cplusplus
497 interface ISpeechAudioStatus;
498 #endif /* __cplusplus */
499 #endif
500 
501 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
502 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
503 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
504 #ifdef __cplusplus
505 interface ISpeechAudioBufferInfo;
506 #endif /* __cplusplus */
507 #endif
508 
509 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
510 #define __ISpeechWaveFormatEx_FWD_DEFINED__
511 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
512 #ifdef __cplusplus
513 interface ISpeechWaveFormatEx;
514 #endif /* __cplusplus */
515 #endif
516 
517 #ifndef __ISpeechVoice_FWD_DEFINED__
518 #define __ISpeechVoice_FWD_DEFINED__
519 typedef interface ISpeechVoice ISpeechVoice;
520 #ifdef __cplusplus
521 interface ISpeechVoice;
522 #endif /* __cplusplus */
523 #endif
524 
525 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
526 #define __ISpeechVoiceStatus_FWD_DEFINED__
527 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
528 #ifdef __cplusplus
529 interface ISpeechVoiceStatus;
530 #endif /* __cplusplus */
531 #endif
532 
533 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
534 #define ___ISpeechVoiceEvents_FWD_DEFINED__
535 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
536 #ifdef __cplusplus
537 interface _ISpeechVoiceEvents;
538 #endif /* __cplusplus */
539 #endif
540 
541 #ifndef __ISpeechRecognizer_FWD_DEFINED__
542 #define __ISpeechRecognizer_FWD_DEFINED__
543 typedef interface ISpeechRecognizer ISpeechRecognizer;
544 #ifdef __cplusplus
545 interface ISpeechRecognizer;
546 #endif /* __cplusplus */
547 #endif
548 
549 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
550 #define __ISpeechRecognizerStatus_FWD_DEFINED__
551 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
552 #ifdef __cplusplus
553 interface ISpeechRecognizerStatus;
554 #endif /* __cplusplus */
555 #endif
556 
557 #ifndef __ISpeechRecoContext_FWD_DEFINED__
558 #define __ISpeechRecoContext_FWD_DEFINED__
559 typedef interface ISpeechRecoContext ISpeechRecoContext;
560 #ifdef __cplusplus
561 interface ISpeechRecoContext;
562 #endif /* __cplusplus */
563 #endif
564 
565 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
566 #define __ISpeechRecoGrammar_FWD_DEFINED__
567 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
568 #ifdef __cplusplus
569 interface ISpeechRecoGrammar;
570 #endif /* __cplusplus */
571 #endif
572 
573 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
574 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
575 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
576 #ifdef __cplusplus
577 interface _ISpeechRecoContextEvents;
578 #endif /* __cplusplus */
579 #endif
580 
581 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
582 #define __ISpeechGrammarRule_FWD_DEFINED__
583 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
584 #ifdef __cplusplus
585 interface ISpeechGrammarRule;
586 #endif /* __cplusplus */
587 #endif
588 
589 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
590 #define __ISpeechGrammarRules_FWD_DEFINED__
591 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
592 #ifdef __cplusplus
593 interface ISpeechGrammarRules;
594 #endif /* __cplusplus */
595 #endif
596 
597 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
598 #define __ISpeechGrammarRuleState_FWD_DEFINED__
599 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
600 #ifdef __cplusplus
601 interface ISpeechGrammarRuleState;
602 #endif /* __cplusplus */
603 #endif
604 
605 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
606 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
607 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
608 #ifdef __cplusplus
609 interface ISpeechGrammarRuleStateTransitions;
610 #endif /* __cplusplus */
611 #endif
612 
613 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
614 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
615 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
616 #ifdef __cplusplus
617 interface ISpeechGrammarRuleStateTransition;
618 #endif /* __cplusplus */
619 #endif
620 
621 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
622 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
623 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
624 #ifdef __cplusplus
625 interface ISpeechTextSelectionInformation;
626 #endif /* __cplusplus */
627 #endif
628 
629 #ifndef __ISpeechRecoResult_FWD_DEFINED__
630 #define __ISpeechRecoResult_FWD_DEFINED__
631 typedef interface ISpeechRecoResult ISpeechRecoResult;
632 #ifdef __cplusplus
633 interface ISpeechRecoResult;
634 #endif /* __cplusplus */
635 #endif
636 
637 #ifndef __ISpeechXMLRecoResult_FWD_DEFINED__
638 #define __ISpeechXMLRecoResult_FWD_DEFINED__
639 typedef interface ISpeechXMLRecoResult ISpeechXMLRecoResult;
640 #ifdef __cplusplus
641 interface ISpeechXMLRecoResult;
642 #endif /* __cplusplus */
643 #endif
644 
645 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
646 #define __ISpeechRecoResult2_FWD_DEFINED__
647 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
648 #ifdef __cplusplus
649 interface ISpeechRecoResult2;
650 #endif /* __cplusplus */
651 #endif
652 
653 #ifndef __ISpeechRecoResultDispatch_FWD_DEFINED__
654 #define __ISpeechRecoResultDispatch_FWD_DEFINED__
655 typedef interface ISpeechRecoResultDispatch ISpeechRecoResultDispatch;
656 #ifdef __cplusplus
657 interface ISpeechRecoResultDispatch;
658 #endif /* __cplusplus */
659 #endif
660 
661 #ifndef __ISpeechPhraseInfoBuilder_FWD_DEFINED__
662 #define __ISpeechPhraseInfoBuilder_FWD_DEFINED__
663 typedef interface ISpeechPhraseInfoBuilder ISpeechPhraseInfoBuilder;
664 #ifdef __cplusplus
665 interface ISpeechPhraseInfoBuilder;
666 #endif /* __cplusplus */
667 #endif
668 
669 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
670 #define __ISpeechRecoResultTimes_FWD_DEFINED__
671 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
672 #ifdef __cplusplus
673 interface ISpeechRecoResultTimes;
674 #endif /* __cplusplus */
675 #endif
676 
677 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
678 #define __ISpeechPhraseAlternate_FWD_DEFINED__
679 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
680 #ifdef __cplusplus
681 interface ISpeechPhraseAlternate;
682 #endif /* __cplusplus */
683 #endif
684 
685 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
686 #define __ISpeechPhraseAlternates_FWD_DEFINED__
687 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
688 #ifdef __cplusplus
689 interface ISpeechPhraseAlternates;
690 #endif /* __cplusplus */
691 #endif
692 
693 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
694 #define __ISpeechPhraseInfo_FWD_DEFINED__
695 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
696 #ifdef __cplusplus
697 interface ISpeechPhraseInfo;
698 #endif /* __cplusplus */
699 #endif
700 
701 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
702 #define __ISpeechPhraseElement_FWD_DEFINED__
703 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
704 #ifdef __cplusplus
705 interface ISpeechPhraseElement;
706 #endif /* __cplusplus */
707 #endif
708 
709 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
710 #define __ISpeechPhraseElements_FWD_DEFINED__
711 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
712 #ifdef __cplusplus
713 interface ISpeechPhraseElements;
714 #endif /* __cplusplus */
715 #endif
716 
717 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
718 #define __ISpeechPhraseReplacement_FWD_DEFINED__
719 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
720 #ifdef __cplusplus
721 interface ISpeechPhraseReplacement;
722 #endif /* __cplusplus */
723 #endif
724 
725 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
726 #define __ISpeechPhraseReplacements_FWD_DEFINED__
727 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
728 #ifdef __cplusplus
729 interface ISpeechPhraseReplacements;
730 #endif /* __cplusplus */
731 #endif
732 
733 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
734 #define __ISpeechPhraseProperty_FWD_DEFINED__
735 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
736 #ifdef __cplusplus
737 interface ISpeechPhraseProperty;
738 #endif /* __cplusplus */
739 #endif
740 
741 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
742 #define __ISpeechPhraseProperties_FWD_DEFINED__
743 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
744 #ifdef __cplusplus
745 interface ISpeechPhraseProperties;
746 #endif /* __cplusplus */
747 #endif
748 
749 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
750 #define __ISpeechPhraseRule_FWD_DEFINED__
751 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
752 #ifdef __cplusplus
753 interface ISpeechPhraseRule;
754 #endif /* __cplusplus */
755 #endif
756 
757 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
758 #define __ISpeechPhraseRules_FWD_DEFINED__
759 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
760 #ifdef __cplusplus
761 interface ISpeechPhraseRules;
762 #endif /* __cplusplus */
763 #endif
764 
765 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
766 #define __ISpeechLexiconWords_FWD_DEFINED__
767 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
768 #ifdef __cplusplus
769 interface ISpeechLexiconWords;
770 #endif /* __cplusplus */
771 #endif
772 
773 #ifndef __ISpeechLexicon_FWD_DEFINED__
774 #define __ISpeechLexicon_FWD_DEFINED__
775 typedef interface ISpeechLexicon ISpeechLexicon;
776 #ifdef __cplusplus
777 interface ISpeechLexicon;
778 #endif /* __cplusplus */
779 #endif
780 
781 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
782 #define __ISpeechLexiconWord_FWD_DEFINED__
783 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
784 #ifdef __cplusplus
785 interface ISpeechLexiconWord;
786 #endif /* __cplusplus */
787 #endif
788 
789 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
790 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
791 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
792 #ifdef __cplusplus
793 interface ISpeechLexiconPronunciations;
794 #endif /* __cplusplus */
795 #endif
796 
797 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
798 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
799 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
800 #ifdef __cplusplus
801 interface ISpeechLexiconPronunciation;
802 #endif /* __cplusplus */
803 #endif
804 
805 #ifndef __ISpeechPhoneConverter_FWD_DEFINED__
806 #define __ISpeechPhoneConverter_FWD_DEFINED__
807 typedef interface ISpeechPhoneConverter ISpeechPhoneConverter;
808 #ifdef __cplusplus
809 interface ISpeechPhoneConverter;
810 #endif /* __cplusplus */
811 #endif
812 
813 #ifndef __SpNotifyTranslator_FWD_DEFINED__
814 #define __SpNotifyTranslator_FWD_DEFINED__
815 #ifdef __cplusplus
816 typedef class SpNotifyTranslator SpNotifyTranslator;
817 #else
818 typedef struct SpNotifyTranslator SpNotifyTranslator;
819 #endif /* defined __cplusplus */
820 #endif /* defined __SpNotifyTranslator_FWD_DEFINED__ */
821 
822 #ifndef __SpObjectTokenCategory_FWD_DEFINED__
823 #define __SpObjectTokenCategory_FWD_DEFINED__
824 #ifdef __cplusplus
825 typedef class SpObjectTokenCategory SpObjectTokenCategory;
826 #else
827 typedef struct SpObjectTokenCategory SpObjectTokenCategory;
828 #endif /* defined __cplusplus */
829 #endif /* defined __SpObjectTokenCategory_FWD_DEFINED__ */
830 
831 #ifndef __SpObjectToken_FWD_DEFINED__
832 #define __SpObjectToken_FWD_DEFINED__
833 #ifdef __cplusplus
834 typedef class SpObjectToken SpObjectToken;
835 #else
836 typedef struct SpObjectToken SpObjectToken;
837 #endif /* defined __cplusplus */
838 #endif /* defined __SpObjectToken_FWD_DEFINED__ */
839 
840 #ifndef __SpResourceManager_FWD_DEFINED__
841 #define __SpResourceManager_FWD_DEFINED__
842 #ifdef __cplusplus
843 typedef class SpResourceManager SpResourceManager;
844 #else
845 typedef struct SpResourceManager SpResourceManager;
846 #endif /* defined __cplusplus */
847 #endif /* defined __SpResourceManager_FWD_DEFINED__ */
848 
849 #ifndef __SpStreamFormatConverter_FWD_DEFINED__
850 #define __SpStreamFormatConverter_FWD_DEFINED__
851 #ifdef __cplusplus
852 typedef class SpStreamFormatConverter SpStreamFormatConverter;
853 #else
854 typedef struct SpStreamFormatConverter SpStreamFormatConverter;
855 #endif /* defined __cplusplus */
856 #endif /* defined __SpStreamFormatConverter_FWD_DEFINED__ */
857 
858 #ifndef __SpMMAudioEnum_FWD_DEFINED__
859 #define __SpMMAudioEnum_FWD_DEFINED__
860 #ifdef __cplusplus
861 typedef class SpMMAudioEnum SpMMAudioEnum;
862 #else
863 typedef struct SpMMAudioEnum SpMMAudioEnum;
864 #endif /* defined __cplusplus */
865 #endif /* defined __SpMMAudioEnum_FWD_DEFINED__ */
866 
867 #ifndef __SpMMAudioIn_FWD_DEFINED__
868 #define __SpMMAudioIn_FWD_DEFINED__
869 #ifdef __cplusplus
870 typedef class SpMMAudioIn SpMMAudioIn;
871 #else
872 typedef struct SpMMAudioIn SpMMAudioIn;
873 #endif /* defined __cplusplus */
874 #endif /* defined __SpMMAudioIn_FWD_DEFINED__ */
875 
876 #ifndef __SpMMAudioOut_FWD_DEFINED__
877 #define __SpMMAudioOut_FWD_DEFINED__
878 #ifdef __cplusplus
879 typedef class SpMMAudioOut SpMMAudioOut;
880 #else
881 typedef struct SpMMAudioOut SpMMAudioOut;
882 #endif /* defined __cplusplus */
883 #endif /* defined __SpMMAudioOut_FWD_DEFINED__ */
884 
885 #ifndef __SpStream_FWD_DEFINED__
886 #define __SpStream_FWD_DEFINED__
887 #ifdef __cplusplus
888 typedef class SpStream SpStream;
889 #else
890 typedef struct SpStream SpStream;
891 #endif /* defined __cplusplus */
892 #endif /* defined __SpStream_FWD_DEFINED__ */
893 
894 #ifndef __SpVoice_FWD_DEFINED__
895 #define __SpVoice_FWD_DEFINED__
896 #ifdef __cplusplus
897 typedef class SpVoice SpVoice;
898 #else
899 typedef struct SpVoice SpVoice;
900 #endif /* defined __cplusplus */
901 #endif /* defined __SpVoice_FWD_DEFINED__ */
902 
903 #ifndef __SpSharedRecoContext_FWD_DEFINED__
904 #define __SpSharedRecoContext_FWD_DEFINED__
905 #ifdef __cplusplus
906 typedef class SpSharedRecoContext SpSharedRecoContext;
907 #else
908 typedef struct SpSharedRecoContext SpSharedRecoContext;
909 #endif /* defined __cplusplus */
910 #endif /* defined __SpSharedRecoContext_FWD_DEFINED__ */
911 
912 #ifndef __SpInprocRecognizer_FWD_DEFINED__
913 #define __SpInprocRecognizer_FWD_DEFINED__
914 #ifdef __cplusplus
915 typedef class SpInprocRecognizer SpInprocRecognizer;
916 #else
917 typedef struct SpInprocRecognizer SpInprocRecognizer;
918 #endif /* defined __cplusplus */
919 #endif /* defined __SpInprocRecognizer_FWD_DEFINED__ */
920 
921 #ifndef __SpSharedRecognizer_FWD_DEFINED__
922 #define __SpSharedRecognizer_FWD_DEFINED__
923 #ifdef __cplusplus
924 typedef class SpSharedRecognizer SpSharedRecognizer;
925 #else
926 typedef struct SpSharedRecognizer SpSharedRecognizer;
927 #endif /* defined __cplusplus */
928 #endif /* defined __SpSharedRecognizer_FWD_DEFINED__ */
929 
930 #ifndef __SpLexicon_FWD_DEFINED__
931 #define __SpLexicon_FWD_DEFINED__
932 #ifdef __cplusplus
933 typedef class SpLexicon SpLexicon;
934 #else
935 typedef struct SpLexicon SpLexicon;
936 #endif /* defined __cplusplus */
937 #endif /* defined __SpLexicon_FWD_DEFINED__ */
938 
939 #ifndef __SpUnCompressedLexicon_FWD_DEFINED__
940 #define __SpUnCompressedLexicon_FWD_DEFINED__
941 #ifdef __cplusplus
942 typedef class SpUnCompressedLexicon SpUnCompressedLexicon;
943 #else
944 typedef struct SpUnCompressedLexicon SpUnCompressedLexicon;
945 #endif /* defined __cplusplus */
946 #endif /* defined __SpUnCompressedLexicon_FWD_DEFINED__ */
947 
948 #ifndef __SpCompressedLexicon_FWD_DEFINED__
949 #define __SpCompressedLexicon_FWD_DEFINED__
950 #ifdef __cplusplus
951 typedef class SpCompressedLexicon SpCompressedLexicon;
952 #else
953 typedef struct SpCompressedLexicon SpCompressedLexicon;
954 #endif /* defined __cplusplus */
955 #endif /* defined __SpCompressedLexicon_FWD_DEFINED__ */
956 
957 #ifndef __SpShortcut_FWD_DEFINED__
958 #define __SpShortcut_FWD_DEFINED__
959 #ifdef __cplusplus
960 typedef class SpShortcut SpShortcut;
961 #else
962 typedef struct SpShortcut SpShortcut;
963 #endif /* defined __cplusplus */
964 #endif /* defined __SpShortcut_FWD_DEFINED__ */
965 
966 #ifndef __SpPhoneConverter_FWD_DEFINED__
967 #define __SpPhoneConverter_FWD_DEFINED__
968 #ifdef __cplusplus
969 typedef class SpPhoneConverter SpPhoneConverter;
970 #else
971 typedef struct SpPhoneConverter SpPhoneConverter;
972 #endif /* defined __cplusplus */
973 #endif /* defined __SpPhoneConverter_FWD_DEFINED__ */
974 
975 #ifndef __SpPhoneticAlphabetConverter_FWD_DEFINED__
976 #define __SpPhoneticAlphabetConverter_FWD_DEFINED__
977 #ifdef __cplusplus
978 typedef class SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
979 #else
980 typedef struct SpPhoneticAlphabetConverter SpPhoneticAlphabetConverter;
981 #endif /* defined __cplusplus */
982 #endif /* defined __SpPhoneticAlphabetConverter_FWD_DEFINED__ */
983 
984 #ifndef __SpNullPhoneConverter_FWD_DEFINED__
985 #define __SpNullPhoneConverter_FWD_DEFINED__
986 #ifdef __cplusplus
987 typedef class SpNullPhoneConverter SpNullPhoneConverter;
988 #else
989 typedef struct SpNullPhoneConverter SpNullPhoneConverter;
990 #endif /* defined __cplusplus */
991 #endif /* defined __SpNullPhoneConverter_FWD_DEFINED__ */
992 
993 #ifndef __SpTextSelectionInformation_FWD_DEFINED__
994 #define __SpTextSelectionInformation_FWD_DEFINED__
995 #ifdef __cplusplus
996 typedef class SpTextSelectionInformation SpTextSelectionInformation;
997 #else
998 typedef struct SpTextSelectionInformation SpTextSelectionInformation;
999 #endif /* defined __cplusplus */
1000 #endif /* defined __SpTextSelectionInformation_FWD_DEFINED__ */
1001 
1002 #ifndef __SpPhraseInfoBuilder_FWD_DEFINED__
1003 #define __SpPhraseInfoBuilder_FWD_DEFINED__
1004 #ifdef __cplusplus
1005 typedef class SpPhraseInfoBuilder SpPhraseInfoBuilder;
1006 #else
1007 typedef struct SpPhraseInfoBuilder SpPhraseInfoBuilder;
1008 #endif /* defined __cplusplus */
1009 #endif /* defined __SpPhraseInfoBuilder_FWD_DEFINED__ */
1010 
1011 #ifndef __SpAudioFormat_FWD_DEFINED__
1012 #define __SpAudioFormat_FWD_DEFINED__
1013 #ifdef __cplusplus
1014 typedef class SpAudioFormat SpAudioFormat;
1015 #else
1016 typedef struct SpAudioFormat SpAudioFormat;
1017 #endif /* defined __cplusplus */
1018 #endif /* defined __SpAudioFormat_FWD_DEFINED__ */
1019 
1020 #ifndef __SpWaveFormatEx_FWD_DEFINED__
1021 #define __SpWaveFormatEx_FWD_DEFINED__
1022 #ifdef __cplusplus
1023 typedef class SpWaveFormatEx SpWaveFormatEx;
1024 #else
1025 typedef struct SpWaveFormatEx SpWaveFormatEx;
1026 #endif /* defined __cplusplus */
1027 #endif /* defined __SpWaveFormatEx_FWD_DEFINED__ */
1028 
1029 #ifndef __SpInProcRecoContext_FWD_DEFINED__
1030 #define __SpInProcRecoContext_FWD_DEFINED__
1031 #ifdef __cplusplus
1032 typedef class SpInProcRecoContext SpInProcRecoContext;
1033 #else
1034 typedef struct SpInProcRecoContext SpInProcRecoContext;
1035 #endif /* defined __cplusplus */
1036 #endif /* defined __SpInProcRecoContext_FWD_DEFINED__ */
1037 
1038 #ifndef __SpCustomStream_FWD_DEFINED__
1039 #define __SpCustomStream_FWD_DEFINED__
1040 #ifdef __cplusplus
1041 typedef class SpCustomStream SpCustomStream;
1042 #else
1043 typedef struct SpCustomStream SpCustomStream;
1044 #endif /* defined __cplusplus */
1045 #endif /* defined __SpCustomStream_FWD_DEFINED__ */
1046 
1047 #ifndef __SpFileStream_FWD_DEFINED__
1048 #define __SpFileStream_FWD_DEFINED__
1049 #ifdef __cplusplus
1050 typedef class SpFileStream SpFileStream;
1051 #else
1052 typedef struct SpFileStream SpFileStream;
1053 #endif /* defined __cplusplus */
1054 #endif /* defined __SpFileStream_FWD_DEFINED__ */
1055 
1056 #ifndef __SpMemoryStream_FWD_DEFINED__
1057 #define __SpMemoryStream_FWD_DEFINED__
1058 #ifdef __cplusplus
1059 typedef class SpMemoryStream SpMemoryStream;
1060 #else
1061 typedef struct SpMemoryStream SpMemoryStream;
1062 #endif /* defined __cplusplus */
1063 #endif /* defined __SpMemoryStream_FWD_DEFINED__ */
1064 
1065 /* Headers for imported files */
1066 
1067 #include <oaidl.h>
1068 #include <ocidl.h>
1069 
1070 #ifdef __cplusplus
1071 extern "C" {
1072 #endif
1073 
1074 #ifndef _SAPI_VER
1075 #error "you have to include <sapi.h> header before this."
1076 #endif
1077 #if 0
1078 typedef struct WAVEFORMATEX {
1079     WORD wFormatTag;
1080     WORD nChannels;
1081     DWORD nSamplesPerSec;
1082     DWORD nAvgBytesPerSec;
1083     WORD nBlockAlign;
1084     WORD wBitsPerSample;
1085     WORD cbSize;
1086 } WAVEFORMATEX;
1087 #endif
1088 #ifndef __ISpNotifySource_FWD_DEFINED__
1089 #define __ISpNotifySource_FWD_DEFINED__
1090 typedef interface ISpNotifySource ISpNotifySource;
1091 #ifdef __cplusplus
1092 interface ISpNotifySource;
1093 #endif /* __cplusplus */
1094 #endif
1095 
1096 #ifndef __ISpNotifySink_FWD_DEFINED__
1097 #define __ISpNotifySink_FWD_DEFINED__
1098 typedef interface ISpNotifySink ISpNotifySink;
1099 #ifdef __cplusplus
1100 interface ISpNotifySink;
1101 #endif /* __cplusplus */
1102 #endif
1103 
1104 #ifndef __ISpNotifyTranslator_FWD_DEFINED__
1105 #define __ISpNotifyTranslator_FWD_DEFINED__
1106 typedef interface ISpNotifyTranslator ISpNotifyTranslator;
1107 #ifdef __cplusplus
1108 interface ISpNotifyTranslator;
1109 #endif /* __cplusplus */
1110 #endif
1111 
1112 #ifndef __ISpDataKey_FWD_DEFINED__
1113 #define __ISpDataKey_FWD_DEFINED__
1114 typedef interface ISpDataKey ISpDataKey;
1115 #ifdef __cplusplus
1116 interface ISpDataKey;
1117 #endif /* __cplusplus */
1118 #endif
1119 
1120 #ifndef __ISpObjectTokenCategory_FWD_DEFINED__
1121 #define __ISpObjectTokenCategory_FWD_DEFINED__
1122 typedef interface ISpObjectTokenCategory ISpObjectTokenCategory;
1123 #ifdef __cplusplus
1124 interface ISpObjectTokenCategory;
1125 #endif /* __cplusplus */
1126 #endif
1127 
1128 #ifndef __ISpObjectToken_FWD_DEFINED__
1129 #define __ISpObjectToken_FWD_DEFINED__
1130 typedef interface ISpObjectToken ISpObjectToken;
1131 #ifdef __cplusplus
1132 interface ISpObjectToken;
1133 #endif /* __cplusplus */
1134 #endif
1135 
1136 #ifndef __IEnumSpObjectTokens_FWD_DEFINED__
1137 #define __IEnumSpObjectTokens_FWD_DEFINED__
1138 typedef interface IEnumSpObjectTokens IEnumSpObjectTokens;
1139 #ifdef __cplusplus
1140 interface IEnumSpObjectTokens;
1141 #endif /* __cplusplus */
1142 #endif
1143 
1144 #ifndef __ISpObjectWithToken_FWD_DEFINED__
1145 #define __ISpObjectWithToken_FWD_DEFINED__
1146 typedef interface ISpObjectWithToken ISpObjectWithToken;
1147 #ifdef __cplusplus
1148 interface ISpObjectWithToken;
1149 #endif /* __cplusplus */
1150 #endif
1151 
1152 #ifndef __ISpResourceManager_FWD_DEFINED__
1153 #define __ISpResourceManager_FWD_DEFINED__
1154 typedef interface ISpResourceManager ISpResourceManager;
1155 #ifdef __cplusplus
1156 interface ISpResourceManager;
1157 #endif /* __cplusplus */
1158 #endif
1159 
1160 #ifndef __ISpEventSource_FWD_DEFINED__
1161 #define __ISpEventSource_FWD_DEFINED__
1162 typedef interface ISpEventSource ISpEventSource;
1163 #ifdef __cplusplus
1164 interface ISpEventSource;
1165 #endif /* __cplusplus */
1166 #endif
1167 
1168 #ifndef __ISpEventSink_FWD_DEFINED__
1169 #define __ISpEventSink_FWD_DEFINED__
1170 typedef interface ISpEventSink ISpEventSink;
1171 #ifdef __cplusplus
1172 interface ISpEventSink;
1173 #endif /* __cplusplus */
1174 #endif
1175 
1176 #ifndef __ISpStreamFormat_FWD_DEFINED__
1177 #define __ISpStreamFormat_FWD_DEFINED__
1178 typedef interface ISpStreamFormat ISpStreamFormat;
1179 #ifdef __cplusplus
1180 interface ISpStreamFormat;
1181 #endif /* __cplusplus */
1182 #endif
1183 
1184 #ifndef __ISpStream_FWD_DEFINED__
1185 #define __ISpStream_FWD_DEFINED__
1186 typedef interface ISpStream ISpStream;
1187 #ifdef __cplusplus
1188 interface ISpStream;
1189 #endif /* __cplusplus */
1190 #endif
1191 
1192 #ifndef __ISpStreamFormatConverter_FWD_DEFINED__
1193 #define __ISpStreamFormatConverter_FWD_DEFINED__
1194 typedef interface ISpStreamFormatConverter ISpStreamFormatConverter;
1195 #ifdef __cplusplus
1196 interface ISpStreamFormatConverter;
1197 #endif /* __cplusplus */
1198 #endif
1199 
1200 #ifndef __ISpAudio_FWD_DEFINED__
1201 #define __ISpAudio_FWD_DEFINED__
1202 typedef interface ISpAudio ISpAudio;
1203 #ifdef __cplusplus
1204 interface ISpAudio;
1205 #endif /* __cplusplus */
1206 #endif
1207 
1208 #ifndef __ISpMMSysAudio_FWD_DEFINED__
1209 #define __ISpMMSysAudio_FWD_DEFINED__
1210 typedef interface ISpMMSysAudio ISpMMSysAudio;
1211 #ifdef __cplusplus
1212 interface ISpMMSysAudio;
1213 #endif /* __cplusplus */
1214 #endif
1215 
1216 #ifndef __ISpTranscript_FWD_DEFINED__
1217 #define __ISpTranscript_FWD_DEFINED__
1218 typedef interface ISpTranscript ISpTranscript;
1219 #ifdef __cplusplus
1220 interface ISpTranscript;
1221 #endif /* __cplusplus */
1222 #endif
1223 
1224 #ifndef __ISpVoice_FWD_DEFINED__
1225 #define __ISpVoice_FWD_DEFINED__
1226 typedef interface ISpVoice ISpVoice;
1227 #ifdef __cplusplus
1228 interface ISpVoice;
1229 #endif /* __cplusplus */
1230 #endif
1231 
1232 #ifndef __ISpRecoResult_FWD_DEFINED__
1233 #define __ISpRecoResult_FWD_DEFINED__
1234 typedef interface ISpRecoResult ISpRecoResult;
1235 #ifdef __cplusplus
1236 interface ISpRecoResult;
1237 #endif /* __cplusplus */
1238 #endif
1239 
1240 #ifndef __ISpRecoContext_FWD_DEFINED__
1241 #define __ISpRecoContext_FWD_DEFINED__
1242 typedef interface ISpRecoContext ISpRecoContext;
1243 #ifdef __cplusplus
1244 interface ISpRecoContext;
1245 #endif /* __cplusplus */
1246 #endif
1247 
1248 #ifndef __ISpRecognizer_FWD_DEFINED__
1249 #define __ISpRecognizer_FWD_DEFINED__
1250 typedef interface ISpRecognizer ISpRecognizer;
1251 #ifdef __cplusplus
1252 interface ISpRecognizer;
1253 #endif /* __cplusplus */
1254 #endif
1255 
1256 #ifndef __ISpProperties_FWD_DEFINED__
1257 #define __ISpProperties_FWD_DEFINED__
1258 typedef interface ISpProperties ISpProperties;
1259 #ifdef __cplusplus
1260 interface ISpProperties;
1261 #endif /* __cplusplus */
1262 #endif
1263 
1264 #ifndef __ISpLexicon_FWD_DEFINED__
1265 #define __ISpLexicon_FWD_DEFINED__
1266 typedef interface ISpLexicon ISpLexicon;
1267 #ifdef __cplusplus
1268 interface ISpLexicon;
1269 #endif /* __cplusplus */
1270 #endif
1271 
1272 #ifndef __ISpPhoneConverter_FWD_DEFINED__
1273 #define __ISpPhoneConverter_FWD_DEFINED__
1274 typedef interface ISpPhoneConverter ISpPhoneConverter;
1275 #ifdef __cplusplus
1276 interface ISpPhoneConverter;
1277 #endif /* __cplusplus */
1278 #endif
1279 
1280 #ifndef __ISpPhrase_FWD_DEFINED__
1281 #define __ISpPhrase_FWD_DEFINED__
1282 typedef interface ISpPhrase ISpPhrase;
1283 #ifdef __cplusplus
1284 interface ISpPhrase;
1285 #endif /* __cplusplus */
1286 #endif
1287 
1288 #ifndef __ISpRecoContext2_FWD_DEFINED__
1289 #define __ISpRecoContext2_FWD_DEFINED__
1290 typedef interface ISpRecoContext2 ISpRecoContext2;
1291 #ifdef __cplusplus
1292 interface ISpRecoContext2;
1293 #endif /* __cplusplus */
1294 #endif
1295 
1296 #ifndef __ISpRecognizer2_FWD_DEFINED__
1297 #define __ISpRecognizer2_FWD_DEFINED__
1298 typedef interface ISpRecognizer2 ISpRecognizer2;
1299 #ifdef __cplusplus
1300 interface ISpRecognizer2;
1301 #endif /* __cplusplus */
1302 #endif
1303 
1304 #ifndef __ISpShortcut_FWD_DEFINED__
1305 #define __ISpShortcut_FWD_DEFINED__
1306 typedef interface ISpShortcut ISpShortcut;
1307 #ifdef __cplusplus
1308 interface ISpShortcut;
1309 #endif /* __cplusplus */
1310 #endif
1311 
1312 #ifndef __ISpPhoneticAlphabetConverter_FWD_DEFINED__
1313 #define __ISpPhoneticAlphabetConverter_FWD_DEFINED__
1314 typedef interface ISpPhoneticAlphabetConverter ISpPhoneticAlphabetConverter;
1315 #ifdef __cplusplus
1316 interface ISpPhoneticAlphabetConverter;
1317 #endif /* __cplusplus */
1318 #endif
1319 
1320 #ifndef __ISpPhoneticAlphabetSelection_FWD_DEFINED__
1321 #define __ISpPhoneticAlphabetSelection_FWD_DEFINED__
1322 typedef interface ISpPhoneticAlphabetSelection ISpPhoneticAlphabetSelection;
1323 #ifdef __cplusplus
1324 interface ISpPhoneticAlphabetSelection;
1325 #endif /* __cplusplus */
1326 #endif
1327 
1328 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
1329 #define __ISpRecoGrammar2_FWD_DEFINED__
1330 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
1331 #ifdef __cplusplus
1332 interface ISpRecoGrammar2;
1333 #endif /* __cplusplus */
1334 #endif
1335 
1336 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
1337 #define __ISpeechResourceLoader_FWD_DEFINED__
1338 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
1339 #ifdef __cplusplus
1340 interface ISpeechResourceLoader;
1341 #endif /* __cplusplus */
1342 #endif
1343 
1344 #ifndef __ISpRecognizer3_FWD_DEFINED__
1345 #define __ISpRecognizer3_FWD_DEFINED__
1346 typedef interface ISpRecognizer3 ISpRecognizer3;
1347 #ifdef __cplusplus
1348 interface ISpRecognizer3;
1349 #endif /* __cplusplus */
1350 #endif
1351 
1352 typedef enum SPDATAKEYLOCATION {
1353     SPDKL_DefaultLocation = 0,
1354     SPDKL_CurrentUser = 1,
1355     SPDKL_LocalMachine = 2,
1356     SPDKL_CurrentConfig = 5
1357 } SPDATAKEYLOCATION;
1358 typedef enum SPSTREAMFORMAT {
1359     SPSF_Default = -1,
1360     SPSF_NoAssignedFormat = 0,
1361     SPSF_Text = 1,
1362     SPSF_NonStandardFormat = 2,
1363     SPSF_ExtendedAudioFormat = 3,
1364     SPSF_8kHz8BitMono = 4,
1365     SPSF_8kHz8BitStereo = 5,
1366     SPSF_8kHz16BitMono = 6,
1367     SPSF_8kHz16BitStereo = 7,
1368     SPSF_11kHz8BitMono = 8,
1369     SPSF_11kHz8BitStereo = 9,
1370     SPSF_11kHz16BitMono = 10,
1371     SPSF_11kHz16BitStereo = 11,
1372     SPSF_12kHz8BitMono = 12,
1373     SPSF_12kHz8BitStereo = 13,
1374     SPSF_12kHz16BitMono = 14,
1375     SPSF_12kHz16BitStereo = 15,
1376     SPSF_16kHz8BitMono = 16,
1377     SPSF_16kHz8BitStereo = 17,
1378     SPSF_16kHz16BitMono = 18,
1379     SPSF_16kHz16BitStereo = 19,
1380     SPSF_22kHz8BitMono = 20,
1381     SPSF_22kHz8BitStereo = 21,
1382     SPSF_22kHz16BitMono = 22,
1383     SPSF_22kHz16BitStereo = 23,
1384     SPSF_24kHz8BitMono = 24,
1385     SPSF_24kHz8BitStereo = 25,
1386     SPSF_24kHz16BitMono = 26,
1387     SPSF_24kHz16BitStereo = 27,
1388     SPSF_32kHz8BitMono = 28,
1389     SPSF_32kHz8BitStereo = 29,
1390     SPSF_32kHz16BitMono = 30,
1391     SPSF_32kHz16BitStereo = 31,
1392     SPSF_44kHz8BitMono = 32,
1393     SPSF_44kHz8BitStereo = 33,
1394     SPSF_44kHz16BitMono = 34,
1395     SPSF_44kHz16BitStereo = 35,
1396     SPSF_48kHz8BitMono = 36,
1397     SPSF_48kHz8BitStereo = 37,
1398     SPSF_48kHz16BitMono = 38,
1399     SPSF_48kHz16BitStereo = 39,
1400     SPSF_TrueSpeech_8kHz1BitMono = 40,
1401     SPSF_CCITT_ALaw_8kHzMono = 41,
1402     SPSF_CCITT_ALaw_8kHzStereo = 42,
1403     SPSF_CCITT_ALaw_11kHzMono = 43,
1404     SPSF_CCITT_ALaw_11kHzStereo = 44,
1405     SPSF_CCITT_ALaw_22kHzMono = 45,
1406     SPSF_CCITT_ALaw_22kHzStereo = 46,
1407     SPSF_CCITT_ALaw_44kHzMono = 47,
1408     SPSF_CCITT_ALaw_44kHzStereo = 48,
1409     SPSF_CCITT_uLaw_8kHzMono = 49,
1410     SPSF_CCITT_uLaw_8kHzStereo = 50,
1411     SPSF_CCITT_uLaw_11kHzMono = 51,
1412     SPSF_CCITT_uLaw_11kHzStereo = 52,
1413     SPSF_CCITT_uLaw_22kHzMono = 53,
1414     SPSF_CCITT_uLaw_22kHzStereo = 54,
1415     SPSF_CCITT_uLaw_44kHzMono = 55,
1416     SPSF_CCITT_uLaw_44kHzStereo = 56,
1417     SPSF_ADPCM_8kHzMono = 57,
1418     SPSF_ADPCM_8kHzStereo = 58,
1419     SPSF_ADPCM_11kHzMono = 59,
1420     SPSF_ADPCM_11kHzStereo = 60,
1421     SPSF_ADPCM_22kHzMono = 61,
1422     SPSF_ADPCM_22kHzStereo = 62,
1423     SPSF_ADPCM_44kHzMono = 63,
1424     SPSF_ADPCM_44kHzStereo = 64,
1425     SPSF_GSM610_8kHzMono = 65,
1426     SPSF_GSM610_11kHzMono = 66,
1427     SPSF_GSM610_22kHzMono = 67,
1428     SPSF_GSM610_44kHzMono = 68,
1429     SPSF_NUM_FORMATS = 69
1430 } SPSTREAMFORMAT;
1431 typedef enum SPEVENTLPARAMTYPE {
1432     SPET_LPARAM_IS_UNDEFINED = 0,
1433     SPET_LPARAM_IS_TOKEN = 1,
1434     SPET_LPARAM_IS_OBJECT = 2,
1435     SPET_LPARAM_IS_POINTER = 3,
1436     SPET_LPARAM_IS_STRING = 4
1437 } SPEVENTLPARAMTYPE;
1438 typedef enum SPEVENTENUM {
1439     SPEI_UNDEFINED = 0,
1440     SPEI_START_INPUT_STREAM = 1,
1441     SPEI_END_INPUT_STREAM = 2,
1442     SPEI_VOICE_CHANGE = 3,
1443     SPEI_TTS_BOOKMARK = 4,
1444     SPEI_WORD_BOUNDARY = 5,
1445     SPEI_PHONEME = 6,
1446     SPEI_SENTENCE_BOUNDARY = 7,
1447     SPEI_VISEME = 8,
1448     SPEI_TTS_AUDIO_LEVEL = 9,
1449     SPEI_TTS_PRIVATE = 15,
1450     SPEI_MIN_TTS = 1,
1451     SPEI_MAX_TTS = 15,
1452     SPEI_END_SR_STREAM = 34,
1453     SPEI_SOUND_START = 35,
1454     SPEI_SOUND_END = 36,
1455     SPEI_PHRASE_START = 37,
1456     SPEI_RECOGNITION = 38,
1457     SPEI_HYPOTHESIS = 39,
1458     SPEI_SR_BOOKMARK = 40,
1459     SPEI_PROPERTY_NUM_CHANGE = 41,
1460     SPEI_PROPERTY_STRING_CHANGE = 42,
1461     SPEI_FALSE_RECOGNITION = 43,
1462     SPEI_INTERFERENCE = 44,
1463     SPEI_REQUEST_UI = 45,
1464     SPEI_RECO_STATE_CHANGE = 46,
1465     SPEI_ADAPTATION = 47,
1466     SPEI_START_SR_STREAM = 48,
1467     SPEI_RECO_OTHER_CONTEXT = 49,
1468     SPEI_SR_AUDIO_LEVEL = 50,
1469     SPEI_SR_RETAINEDAUDIO = 51,
1470     SPEI_SR_PRIVATE = 52,
1471     SPEI_ACTIVE_CATEGORY_CHANGED = 53,
1472     SPEI_RESERVED5 = 54,
1473     SPEI_RESERVED6 = 55,
1474     SPEI_MIN_SR = 34,
1475     SPEI_MAX_SR = 55,
1476     SPEI_RESERVED1 = 30,
1477     SPEI_RESERVED2 = 33,
1478     SPEI_RESERVED3 = 63
1479 } SPEVENTENUM;
1480 typedef enum SPINTERFERENCE {
1481     SPINTERFERENCE_NONE = 0,
1482     SPINTERFERENCE_NOISE = 1,
1483     SPINTERFERENCE_NOSIGNAL = 2,
1484     SPINTERFERENCE_TOOLOUD = 3,
1485     SPINTERFERENCE_TOOQUIET = 4,
1486     SPINTERFERENCE_TOOFAST = 5,
1487     SPINTERFERENCE_TOOSLOW = 6,
1488     SPINTERFERENCE_LATENCY_WARNING = 7,
1489     SPINTERFERENCE_LATENCY_TRUNCATE_BEGIN = 8,
1490     SPINTERFERENCE_LATENCY_TRUNCATE_END = 9
1491 } SPINTERFERENCE;
1492 typedef enum SPENDSRSTREAMFLAGS {
1493     SPESF_NONE = 0,
1494     SPESF_STREAM_RELEASED = 1,
1495     SPESF_EMULATED = 2
1496 } SPENDSRSTREAMFLAGS;
1497 typedef enum SPVFEATURE {
1498     SPVFEATURE_STRESSED = 1,
1499     SPVFEATURE_EMPHASIS = 2
1500 } SPVFEATURE;
1501 typedef enum SPVISEMES {
1502     SP_VISEME_0 = 0,
1503     SP_VISEME_1 = 1,
1504     SP_VISEME_2 = 2,
1505     SP_VISEME_3 = 3,
1506     SP_VISEME_4 = 4,
1507     SP_VISEME_5 = 5,
1508     SP_VISEME_6 = 6,
1509     SP_VISEME_7 = 7,
1510     SP_VISEME_8 = 8,
1511     SP_VISEME_9 = 9,
1512     SP_VISEME_10 = 10,
1513     SP_VISEME_11 = 11,
1514     SP_VISEME_12 = 12,
1515     SP_VISEME_13 = 13,
1516     SP_VISEME_14 = 14,
1517     SP_VISEME_15 = 15,
1518     SP_VISEME_16 = 16,
1519     SP_VISEME_17 = 17,
1520     SP_VISEME_18 = 18,
1521     SP_VISEME_19 = 19,
1522     SP_VISEME_20 = 20,
1523     SP_VISEME_21 = 21
1524 } SPVISEMES;
1525 typedef enum SPFILEMODE {
1526     SPFM_OPEN_READONLY = 0,
1527     SPFM_OPEN_READWRITE = 1,
1528     SPFM_CREATE = 2,
1529     SPFM_CREATE_ALWAYS = 3,
1530     SPFM_NUM_MODES = 4
1531 } SPFILEMODE;
1532 typedef enum _SPAUDIOSTATE {
1533     SPAS_CLOSED = 0,
1534     SPAS_STOP = 1,
1535     SPAS_PAUSE = 2,
1536     SPAS_RUN = 3
1537 } SPAUDIOSTATE;
1538 typedef enum SPDISPLYATTRIBUTES {
1539     SPAF_ONE_TRAILING_SPACE = 0x2,
1540     SPAF_TWO_TRAILING_SPACES = 0x4,
1541     SPAF_CONSUME_LEADING_SPACES = 0x8,
1542     SPAF_BUFFER_POSITION = 0x10,
1543     SPAF_ALL = 0x1f,
1544     SPAF_USER_SPECIFIED = 0x80
1545 } SPDISPLAYATTRIBUTES;
1546 typedef enum SPPHRASEPROPERTYUNIONTYPE {
1547     SPPPUT_UNUSED = 0,
1548     SPPPUT_ARRAY_INDEX = 1
1549 } SPPHRASEPROPERTYUNIONTYPE;
1550 typedef enum SPSEMANTICFORMAT {
1551     SPSMF_SAPI_PROPERTIES = 0,
1552     SPSMF_SRGS_SEMANTICINTERPRETATION_MS = 1,
1553     SPSMF_SRGS_SAPIPROPERTIES = 2,
1554     SPSMF_UPS = 4,
1555     SPSMF_SRGS_SEMANTICINTERPRETATION_W3C = 8
1556 } SPSEMANTICFORMAT;
1557 typedef enum SPRECOEVENTFLAGS {
1558     SPREF_AutoPause = 0x1,
1559     SPREF_Emulated = 0x2,
1560     SPREF_SMLTimeout = 0x4,
1561     SPREF_ExtendableParse = 0x8,
1562     SPREF_ReSent = 0x10,
1563     SPREF_Hypothesis = 0x20,
1564     SPREF_FalseRecognition = 0x40
1565 } SPRECOEVENTFLAGS;
1566 typedef enum SPPARTOFSPEECH {
1567     SPPS_NotOverriden = -1,
1568     SPPS_Unknown = 0,
1569     SPPS_Noun = 0x1000,
1570     SPPS_Verb = 0x2000,
1571     SPPS_Modifier = 0x3000,
1572     SPPS_Function = 0x4000,
1573     SPPS_Interjection = 0x5000,
1574     SPPS_Noncontent = 0x6000,
1575     SPPS_LMA = 0x7000,
1576     SPPS_SuppressWord = 0xf000
1577 } SPPARTOFSPEECH;
1578 typedef enum SPLEXICONTYPE {
1579     eLEXTYPE_USER = 0x1,
1580     eLEXTYPE_APP = 0x2,
1581     eLEXTYPE_VENDORLEXICON = 0x4,
1582     eLEXTYPE_LETTERTOSOUND = 0x8,
1583     eLEXTYPE_MORPHOLOGY = 0x10,
1584     eLEXTYPE_RESERVED4 = 0x20,
1585     eLEXTYPE_USER_SHORTCUT = 0x40,
1586     eLEXTYPE_RESERVED6 = 0x80,
1587     eLEXTYPE_RESERVED7 = 0x100,
1588     eLEXTYPE_RESERVED8 = 0x200,
1589     eLEXTYPE_RESERVED9 = 0x400,
1590     eLEXTYPE_RESERVED10 = 0x800,
1591     eLEXTYPE_PRIVATE1 = 0x1000,
1592     eLEXTYPE_PRIVATE2 = 0x2000,
1593     eLEXTYPE_PRIVATE3 = 0x4000,
1594     eLEXTYPE_PRIVATE4 = 0x8000,
1595     eLEXTYPE_PRIVATE5 = 0x10000,
1596     eLEXTYPE_PRIVATE6 = 0x20000,
1597     eLEXTYPE_PRIVATE7 = 0x40000,
1598     eLEXTYPE_PRIVATE8 = 0x80000,
1599     eLEXTYPE_PRIVATE9 = 0x100000,
1600     eLEXTYPE_PRIVATE10 = 0x200000,
1601     eLEXTYPE_PRIVATE11 = 0x400000,
1602     eLEXTYPE_PRIVATE12 = 0x800000,
1603     eLEXTYPE_PRIVATE13 = 0x1000000,
1604     eLEXTYPE_PRIVATE14 = 0x2000000,
1605     eLEXTYPE_PRIVATE15 = 0x4000000,
1606     eLEXTYPE_PRIVATE16 = 0x8000000,
1607     eLEXTYPE_PRIVATE17 = 0x10000000,
1608     eLEXTYPE_PRIVATE18 = 0x20000000,
1609     eLEXTYPE_PRIVATE19 = 0x40000000,
1610     eLEXTYPE_PRIVATE20 = 0x80000000
1611 } SPLEXICONTYPE;
1612 typedef enum SPWORDTYPE {
1613     eWORDTYPE_ADDED = 1,
1614     eWORDTYPE_DELETED = 2
1615 } SPWORDTYPE;
1616 typedef enum SPPRONUNCIATIONFLAGS {
1617     ePRONFLAG_USED = 1
1618 } SPPRONUNCIATIONFLAGS;
1619 typedef enum SPSHORTCUTTYPE {
1620     SPSHT_NotOverriden = -1,
1621     SPSHT_Unknown = 0,
1622     SPSHT_EMAIL = 0x1000,
1623     SPSHT_OTHER = 0x2000,
1624     SPPS_RESERVED1 = 0x3000,
1625     SPPS_RESERVED2 = 0x4000,
1626     SPPS_RESERVED3 = 0x5000,
1627     SPPS_RESERVED4 = 0xf000
1628 } SPSHORTCUTTYPE;
1629 typedef enum SPVALUETYPE {
1630     SPDF_PROPERTY = 0x1,
1631     SPDF_REPLACEMENT = 0x2,
1632     SPDF_RULE = 0x4,
1633     SPDF_DISPLAYTEXT = 0x8,
1634     SPDF_LEXICALFORM = 0x10,
1635     SPDF_PRONUNCIATION = 0x20,
1636     SPDF_AUDIO = 0x40,
1637     SPDF_ALTERNATES = 0x80,
1638     SPDF_ALL = 0xff
1639 } SPVALUETYPE;
1640 typedef enum SPPHRASERNG {
1641     SPPR_ALL_ELEMENTS = -1
1642 } SPPHRASERNG;
1643 typedef enum SPVACTIONS {
1644     SPVA_Speak = 0,
1645     SPVA_Silence = 1,
1646     SPVA_Pronounce = 2,
1647     SPVA_Bookmark = 3,
1648     SPVA_SpellOut = 4,
1649     SPVA_Section = 5,
1650     SPVA_ParseUnknownTag = 6
1651 } SPVACTIONS;
1652 typedef enum SPRUNSTATE {
1653     SPRS_DONE = 1,
1654     SPRS_IS_SPEAKING = 2
1655 } SPRUNSTATE;
1656 typedef enum SPVLIMITS {
1657     SPMIN_VOLUME = 0,
1658     SPMAX_VOLUME = 100,
1659     SPMIN_RATE = -10,
1660     SPMAX_RATE = 10
1661 } SPVLIMITS;
1662 typedef enum SPVPRIORITY {
1663     SPVPRI_NORMAL = 0,
1664     SPVPRI_ALERT = 1,
1665     SPVPRI_OVER = 2
1666 } SPVPRIORITY;
1667 EXTERN_C const GUID SPDFID_Text;
1668 EXTERN_C const GUID SPDFID_WaveFormatEx;
1669 
1670 #define SP_LOW_CONFIDENCE (-1)
1671 
1672 #define SP_NORMAL_CONFIDENCE (0)
1673 
1674 #define SP_HIGH_CONFIDENCE (+1)
1675 
1676 #define DEFAULT_WEIGHT (1)
1677 
1678 #define SP_MAX_WORD_LENGTH (128)
1679 
1680 #define SP_MAX_PRON_LENGTH (384)
1681 
1682 #define SP_EMULATE_RESULT (0x40000000)
1683 
1684 
1685 #ifdef __cplusplus
1686 interface ISpNotifyCallback {
1687   virtual HRESULT STDMETHODCALLTYPE NotifyCallback(WPARAM wParam, LPARAM lParam) = 0;
1688 };
1689 #else
1690 typedef void *ISpNotifyCallback;
1691 #endif
1692 #if 0
1693 typedef void *SPNOTIFYCALLBACK;
1694 #else
1695 typedef void __stdcall SPNOTIFYCALLBACK(WPARAM wParam, LPARAM lParam);
1696 #endif
1697 /*****************************************************************************
1698  * ISpNotifySource interface
1699  */
1700 #ifndef __ISpNotifySource_INTERFACE_DEFINED__
1701 #define __ISpNotifySource_INTERFACE_DEFINED__
1702 
1703 DEFINE_GUID(IID_ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1704 #if defined(__cplusplus) && !defined(CINTERFACE)
1705 MIDL_INTERFACE("5eff4aef-8487-11d2-961c-00c04f8ee628")
1706 ISpNotifySource : public IUnknown
1707 {
1708     virtual HRESULT STDMETHODCALLTYPE SetNotifySink(
1709         ISpNotifySink *pNotifySink) = 0;
1710 
1711     virtual HRESULT STDMETHODCALLTYPE SetNotifyWindowMessage(
1712         HWND hWnd,
1713         UINT Msg,
1714         WPARAM wParam,
1715         LPARAM lParam) = 0;
1716 
1717     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackFunction(
1718         SPNOTIFYCALLBACK *pfnCallback,
1719         WPARAM wParam,
1720         LPARAM lParam) = 0;
1721 
1722     virtual HRESULT STDMETHODCALLTYPE SetNotifyCallbackInterface(
1723         ISpNotifyCallback *pSpCallback,
1724         WPARAM wParam,
1725         LPARAM lParam) = 0;
1726 
1727     virtual HRESULT STDMETHODCALLTYPE SetNotifyWin32Event(
1728         ) = 0;
1729 
1730     virtual HRESULT STDMETHODCALLTYPE WaitForNotifyEvent(
1731         DWORD dwMilliseconds) = 0;
1732 
1733     virtual HANDLE STDMETHODCALLTYPE GetNotifyEventHandle(
1734         ) = 0;
1735 
1736 };
1737 #ifdef __CRT_UUID_DECL
1738 __CRT_UUID_DECL(ISpNotifySource, 0x5eff4aef, 0x8487, 0x11d2, 0x96,0x1c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1739 #endif
1740 #else
1741 typedef struct ISpNotifySourceVtbl {
1742     BEGIN_INTERFACE
1743 
1744     /*** IUnknown methods ***/
1745     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1746         ISpNotifySource *This,
1747         REFIID riid,
1748         void **ppvObject);
1749 
1750     ULONG (STDMETHODCALLTYPE *AddRef)(
1751         ISpNotifySource *This);
1752 
1753     ULONG (STDMETHODCALLTYPE *Release)(
1754         ISpNotifySource *This);
1755 
1756     /*** ISpNotifySource methods ***/
1757     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
1758         ISpNotifySource *This,
1759         ISpNotifySink *pNotifySink);
1760 
1761     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
1762         ISpNotifySource *This,
1763         HWND hWnd,
1764         UINT Msg,
1765         WPARAM wParam,
1766         LPARAM lParam);
1767 
1768     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
1769         ISpNotifySource *This,
1770         SPNOTIFYCALLBACK *pfnCallback,
1771         WPARAM wParam,
1772         LPARAM lParam);
1773 
1774     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
1775         ISpNotifySource *This,
1776         ISpNotifyCallback *pSpCallback,
1777         WPARAM wParam,
1778         LPARAM lParam);
1779 
1780     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
1781         ISpNotifySource *This);
1782 
1783     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
1784         ISpNotifySource *This,
1785         DWORD dwMilliseconds);
1786 
1787     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
1788         ISpNotifySource *This);
1789 
1790     END_INTERFACE
1791 } ISpNotifySourceVtbl;
1792 
1793 interface ISpNotifySource {
1794     CONST_VTBL ISpNotifySourceVtbl* lpVtbl;
1795 };
1796 
1797 #ifdef COBJMACROS
1798 #ifndef WIDL_C_INLINE_WRAPPERS
1799 /*** IUnknown methods ***/
1800 #define ISpNotifySource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1801 #define ISpNotifySource_AddRef(This) (This)->lpVtbl->AddRef(This)
1802 #define ISpNotifySource_Release(This) (This)->lpVtbl->Release(This)
1803 /*** ISpNotifySource methods ***/
1804 #define ISpNotifySource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
1805 #define ISpNotifySource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
1806 #define ISpNotifySource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
1807 #define ISpNotifySource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
1808 #define ISpNotifySource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
1809 #define ISpNotifySource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
1810 #define ISpNotifySource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
1811 #else
1812 /*** IUnknown methods ***/
1813 static FORCEINLINE HRESULT ISpNotifySource_QueryInterface(ISpNotifySource* This,REFIID riid,void **ppvObject) {
1814     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1815 }
1816 static FORCEINLINE ULONG ISpNotifySource_AddRef(ISpNotifySource* This) {
1817     return This->lpVtbl->AddRef(This);
1818 }
1819 static FORCEINLINE ULONG ISpNotifySource_Release(ISpNotifySource* This) {
1820     return This->lpVtbl->Release(This);
1821 }
1822 /*** ISpNotifySource methods ***/
1823 static FORCEINLINE HRESULT ISpNotifySource_SetNotifySink(ISpNotifySource* This,ISpNotifySink *pNotifySink) {
1824     return This->lpVtbl->SetNotifySink(This,pNotifySink);
1825 }
1826 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWindowMessage(ISpNotifySource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
1827     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
1828 }
1829 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackFunction(ISpNotifySource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
1830     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
1831 }
1832 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyCallbackInterface(ISpNotifySource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
1833     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
1834 }
1835 static FORCEINLINE HRESULT ISpNotifySource_SetNotifyWin32Event(ISpNotifySource* This) {
1836     return This->lpVtbl->SetNotifyWin32Event(This);
1837 }
1838 static FORCEINLINE HRESULT ISpNotifySource_WaitForNotifyEvent(ISpNotifySource* This,DWORD dwMilliseconds) {
1839     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
1840 }
1841 static FORCEINLINE HANDLE ISpNotifySource_GetNotifyEventHandle(ISpNotifySource* This) {
1842     return This->lpVtbl->GetNotifyEventHandle(This);
1843 }
1844 #endif
1845 #endif
1846 
1847 #endif
1848 
1849 
1850 #endif  /* __ISpNotifySource_INTERFACE_DEFINED__ */
1851 
1852 /*****************************************************************************
1853  * ISpNotifySink interface
1854  */
1855 #ifndef __ISpNotifySink_INTERFACE_DEFINED__
1856 #define __ISpNotifySink_INTERFACE_DEFINED__
1857 
1858 DEFINE_GUID(IID_ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1859 #if defined(__cplusplus) && !defined(CINTERFACE)
1860 MIDL_INTERFACE("259684dc-37c3-11d2-9603-00c04f8ee628")
1861 ISpNotifySink : public IUnknown
1862 {
1863     virtual HRESULT STDMETHODCALLTYPE Notify(
1864         ) = 0;
1865 
1866 };
1867 #ifdef __CRT_UUID_DECL
1868 __CRT_UUID_DECL(ISpNotifySink, 0x259684dc, 0x37c3, 0x11d2, 0x96,0x03, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1869 #endif
1870 #else
1871 typedef struct ISpNotifySinkVtbl {
1872     BEGIN_INTERFACE
1873 
1874     /*** IUnknown methods ***/
1875     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1876         ISpNotifySink *This,
1877         REFIID riid,
1878         void **ppvObject);
1879 
1880     ULONG (STDMETHODCALLTYPE *AddRef)(
1881         ISpNotifySink *This);
1882 
1883     ULONG (STDMETHODCALLTYPE *Release)(
1884         ISpNotifySink *This);
1885 
1886     /*** ISpNotifySink methods ***/
1887     HRESULT (STDMETHODCALLTYPE *Notify)(
1888         ISpNotifySink *This);
1889 
1890     END_INTERFACE
1891 } ISpNotifySinkVtbl;
1892 
1893 interface ISpNotifySink {
1894     CONST_VTBL ISpNotifySinkVtbl* lpVtbl;
1895 };
1896 
1897 #ifdef COBJMACROS
1898 #ifndef WIDL_C_INLINE_WRAPPERS
1899 /*** IUnknown methods ***/
1900 #define ISpNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1901 #define ISpNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
1902 #define ISpNotifySink_Release(This) (This)->lpVtbl->Release(This)
1903 /*** ISpNotifySink methods ***/
1904 #define ISpNotifySink_Notify(This) (This)->lpVtbl->Notify(This)
1905 #else
1906 /*** IUnknown methods ***/
1907 static FORCEINLINE HRESULT ISpNotifySink_QueryInterface(ISpNotifySink* This,REFIID riid,void **ppvObject) {
1908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1909 }
1910 static FORCEINLINE ULONG ISpNotifySink_AddRef(ISpNotifySink* This) {
1911     return This->lpVtbl->AddRef(This);
1912 }
1913 static FORCEINLINE ULONG ISpNotifySink_Release(ISpNotifySink* This) {
1914     return This->lpVtbl->Release(This);
1915 }
1916 /*** ISpNotifySink methods ***/
1917 static FORCEINLINE HRESULT ISpNotifySink_Notify(ISpNotifySink* This) {
1918     return This->lpVtbl->Notify(This);
1919 }
1920 #endif
1921 #endif
1922 
1923 #endif
1924 
1925 
1926 #endif  /* __ISpNotifySink_INTERFACE_DEFINED__ */
1927 
1928 /*****************************************************************************
1929  * ISpNotifyTranslator interface
1930  */
1931 #ifndef __ISpNotifyTranslator_INTERFACE_DEFINED__
1932 #define __ISpNotifyTranslator_INTERFACE_DEFINED__
1933 
1934 DEFINE_GUID(IID_ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
1935 #if defined(__cplusplus) && !defined(CINTERFACE)
1936 MIDL_INTERFACE("aca16614-5d3d-11d2-960e-00c04f8ee628")
1937 ISpNotifyTranslator : public ISpNotifySink
1938 {
1939     virtual HRESULT STDMETHODCALLTYPE InitWindowMessage(
1940         HWND hWnd,
1941         UINT Msg,
1942         WPARAM wParam,
1943         LPARAM lParam) = 0;
1944 
1945     virtual HRESULT STDMETHODCALLTYPE InitCallback(
1946         SPNOTIFYCALLBACK *pfnCallback,
1947         WPARAM wParam,
1948         LPARAM lParam) = 0;
1949 
1950     virtual HRESULT STDMETHODCALLTYPE InitSpNotifyCallback(
1951         ISpNotifyCallback *pSpCallback,
1952         WPARAM wParam,
1953         LPARAM lParam) = 0;
1954 
1955     virtual HRESULT STDMETHODCALLTYPE InitWin32Event(
1956         HANDLE hEvent,
1957         WINBOOL fCloseHandleOnRelease) = 0;
1958 
1959     virtual HRESULT STDMETHODCALLTYPE Wait(
1960         DWORD dwMilliseconds) = 0;
1961 
1962     virtual HANDLE STDMETHODCALLTYPE GetEventHandle(
1963         ) = 0;
1964 
1965 };
1966 #ifdef __CRT_UUID_DECL
1967 __CRT_UUID_DECL(ISpNotifyTranslator, 0xaca16614, 0x5d3d, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
1968 #endif
1969 #else
1970 typedef struct ISpNotifyTranslatorVtbl {
1971     BEGIN_INTERFACE
1972 
1973     /*** IUnknown methods ***/
1974     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1975         ISpNotifyTranslator *This,
1976         REFIID riid,
1977         void **ppvObject);
1978 
1979     ULONG (STDMETHODCALLTYPE *AddRef)(
1980         ISpNotifyTranslator *This);
1981 
1982     ULONG (STDMETHODCALLTYPE *Release)(
1983         ISpNotifyTranslator *This);
1984 
1985     /*** ISpNotifySink methods ***/
1986     HRESULT (STDMETHODCALLTYPE *Notify)(
1987         ISpNotifyTranslator *This);
1988 
1989     /*** ISpNotifyTranslator methods ***/
1990     HRESULT (STDMETHODCALLTYPE *InitWindowMessage)(
1991         ISpNotifyTranslator *This,
1992         HWND hWnd,
1993         UINT Msg,
1994         WPARAM wParam,
1995         LPARAM lParam);
1996 
1997     HRESULT (STDMETHODCALLTYPE *InitCallback)(
1998         ISpNotifyTranslator *This,
1999         SPNOTIFYCALLBACK *pfnCallback,
2000         WPARAM wParam,
2001         LPARAM lParam);
2002 
2003     HRESULT (STDMETHODCALLTYPE *InitSpNotifyCallback)(
2004         ISpNotifyTranslator *This,
2005         ISpNotifyCallback *pSpCallback,
2006         WPARAM wParam,
2007         LPARAM lParam);
2008 
2009     HRESULT (STDMETHODCALLTYPE *InitWin32Event)(
2010         ISpNotifyTranslator *This,
2011         HANDLE hEvent,
2012         WINBOOL fCloseHandleOnRelease);
2013 
2014     HRESULT (STDMETHODCALLTYPE *Wait)(
2015         ISpNotifyTranslator *This,
2016         DWORD dwMilliseconds);
2017 
2018     HANDLE (STDMETHODCALLTYPE *GetEventHandle)(
2019         ISpNotifyTranslator *This);
2020 
2021     END_INTERFACE
2022 } ISpNotifyTranslatorVtbl;
2023 
2024 interface ISpNotifyTranslator {
2025     CONST_VTBL ISpNotifyTranslatorVtbl* lpVtbl;
2026 };
2027 
2028 #ifdef COBJMACROS
2029 #ifndef WIDL_C_INLINE_WRAPPERS
2030 /*** IUnknown methods ***/
2031 #define ISpNotifyTranslator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2032 #define ISpNotifyTranslator_AddRef(This) (This)->lpVtbl->AddRef(This)
2033 #define ISpNotifyTranslator_Release(This) (This)->lpVtbl->Release(This)
2034 /*** ISpNotifySink methods ***/
2035 #define ISpNotifyTranslator_Notify(This) (This)->lpVtbl->Notify(This)
2036 /*** ISpNotifyTranslator methods ***/
2037 #define ISpNotifyTranslator_InitWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam)
2038 #define ISpNotifyTranslator_InitCallback(This,pfnCallback,wParam,lParam) (This)->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam)
2039 #define ISpNotifyTranslator_InitSpNotifyCallback(This,pSpCallback,wParam,lParam) (This)->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam)
2040 #define ISpNotifyTranslator_InitWin32Event(This,hEvent,fCloseHandleOnRelease) (This)->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease)
2041 #define ISpNotifyTranslator_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
2042 #define ISpNotifyTranslator_GetEventHandle(This) (This)->lpVtbl->GetEventHandle(This)
2043 #else
2044 /*** IUnknown methods ***/
2045 static FORCEINLINE HRESULT ISpNotifyTranslator_QueryInterface(ISpNotifyTranslator* This,REFIID riid,void **ppvObject) {
2046     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2047 }
2048 static FORCEINLINE ULONG ISpNotifyTranslator_AddRef(ISpNotifyTranslator* This) {
2049     return This->lpVtbl->AddRef(This);
2050 }
2051 static FORCEINLINE ULONG ISpNotifyTranslator_Release(ISpNotifyTranslator* This) {
2052     return This->lpVtbl->Release(This);
2053 }
2054 /*** ISpNotifySink methods ***/
2055 static FORCEINLINE HRESULT ISpNotifyTranslator_Notify(ISpNotifyTranslator* This) {
2056     return This->lpVtbl->Notify(This);
2057 }
2058 /*** ISpNotifyTranslator methods ***/
2059 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWindowMessage(ISpNotifyTranslator* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
2060     return This->lpVtbl->InitWindowMessage(This,hWnd,Msg,wParam,lParam);
2061 }
2062 static FORCEINLINE HRESULT ISpNotifyTranslator_InitCallback(ISpNotifyTranslator* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
2063     return This->lpVtbl->InitCallback(This,pfnCallback,wParam,lParam);
2064 }
2065 static FORCEINLINE HRESULT ISpNotifyTranslator_InitSpNotifyCallback(ISpNotifyTranslator* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
2066     return This->lpVtbl->InitSpNotifyCallback(This,pSpCallback,wParam,lParam);
2067 }
2068 static FORCEINLINE HRESULT ISpNotifyTranslator_InitWin32Event(ISpNotifyTranslator* This,HANDLE hEvent,WINBOOL fCloseHandleOnRelease) {
2069     return This->lpVtbl->InitWin32Event(This,hEvent,fCloseHandleOnRelease);
2070 }
2071 static FORCEINLINE HRESULT ISpNotifyTranslator_Wait(ISpNotifyTranslator* This,DWORD dwMilliseconds) {
2072     return This->lpVtbl->Wait(This,dwMilliseconds);
2073 }
2074 static FORCEINLINE HANDLE ISpNotifyTranslator_GetEventHandle(ISpNotifyTranslator* This) {
2075     return This->lpVtbl->GetEventHandle(This);
2076 }
2077 #endif
2078 #endif
2079 
2080 #endif
2081 
2082 
2083 #endif  /* __ISpNotifyTranslator_INTERFACE_DEFINED__ */
2084 
2085 /*****************************************************************************
2086  * ISpDataKey interface
2087  */
2088 #ifndef __ISpDataKey_INTERFACE_DEFINED__
2089 #define __ISpDataKey_INTERFACE_DEFINED__
2090 
2091 DEFINE_GUID(IID_ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2092 #if defined(__cplusplus) && !defined(CINTERFACE)
2093 MIDL_INTERFACE("14056581-e16c-11d2-bb90-00c04f8ee6c0")
2094 ISpDataKey : public IUnknown
2095 {
2096     virtual HRESULT STDMETHODCALLTYPE SetData(
2097         LPCWSTR pszValueName,
2098         ULONG cbData,
2099         const BYTE *pData) = 0;
2100 
2101     virtual HRESULT STDMETHODCALLTYPE GetData(
2102         LPCWSTR pszValueName,
2103         ULONG *pcbData,
2104         BYTE *pData) = 0;
2105 
2106     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
2107         LPCWSTR pszValueName,
2108         LPCWSTR pszValue) = 0;
2109 
2110     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
2111         LPCWSTR pszValueName,
2112         LPWSTR *ppszValue) = 0;
2113 
2114     virtual HRESULT STDMETHODCALLTYPE SetDWORD(
2115         LPCWSTR pszValueName,
2116         DWORD dwValue) = 0;
2117 
2118     virtual HRESULT STDMETHODCALLTYPE GetDWORD(
2119         LPCWSTR pszValueName,
2120         DWORD *pdwValue) = 0;
2121 
2122     virtual HRESULT STDMETHODCALLTYPE OpenKey(
2123         LPCWSTR pszSubKeyName,
2124         ISpDataKey **ppSubKey) = 0;
2125 
2126     virtual HRESULT STDMETHODCALLTYPE CreateKey(
2127         LPCWSTR pszSubKey,
2128         ISpDataKey **ppSubKey) = 0;
2129 
2130     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
2131         LPCWSTR pszSubKey) = 0;
2132 
2133     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
2134         LPCWSTR pszValueName) = 0;
2135 
2136     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
2137         ULONG Index,
2138         LPWSTR *ppszSubKeyName) = 0;
2139 
2140     virtual HRESULT STDMETHODCALLTYPE EnumValues(
2141         ULONG Index,
2142         LPWSTR *ppszValueName) = 0;
2143 
2144 };
2145 #ifdef __CRT_UUID_DECL
2146 __CRT_UUID_DECL(ISpDataKey, 0x14056581, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2147 #endif
2148 #else
2149 typedef struct ISpDataKeyVtbl {
2150     BEGIN_INTERFACE
2151 
2152     /*** IUnknown methods ***/
2153     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2154         ISpDataKey *This,
2155         REFIID riid,
2156         void **ppvObject);
2157 
2158     ULONG (STDMETHODCALLTYPE *AddRef)(
2159         ISpDataKey *This);
2160 
2161     ULONG (STDMETHODCALLTYPE *Release)(
2162         ISpDataKey *This);
2163 
2164     /*** ISpDataKey methods ***/
2165     HRESULT (STDMETHODCALLTYPE *SetData)(
2166         ISpDataKey *This,
2167         LPCWSTR pszValueName,
2168         ULONG cbData,
2169         const BYTE *pData);
2170 
2171     HRESULT (STDMETHODCALLTYPE *GetData)(
2172         ISpDataKey *This,
2173         LPCWSTR pszValueName,
2174         ULONG *pcbData,
2175         BYTE *pData);
2176 
2177     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2178         ISpDataKey *This,
2179         LPCWSTR pszValueName,
2180         LPCWSTR pszValue);
2181 
2182     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2183         ISpDataKey *This,
2184         LPCWSTR pszValueName,
2185         LPWSTR *ppszValue);
2186 
2187     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2188         ISpDataKey *This,
2189         LPCWSTR pszValueName,
2190         DWORD dwValue);
2191 
2192     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2193         ISpDataKey *This,
2194         LPCWSTR pszValueName,
2195         DWORD *pdwValue);
2196 
2197     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2198         ISpDataKey *This,
2199         LPCWSTR pszSubKeyName,
2200         ISpDataKey **ppSubKey);
2201 
2202     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2203         ISpDataKey *This,
2204         LPCWSTR pszSubKey,
2205         ISpDataKey **ppSubKey);
2206 
2207     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2208         ISpDataKey *This,
2209         LPCWSTR pszSubKey);
2210 
2211     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2212         ISpDataKey *This,
2213         LPCWSTR pszValueName);
2214 
2215     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2216         ISpDataKey *This,
2217         ULONG Index,
2218         LPWSTR *ppszSubKeyName);
2219 
2220     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2221         ISpDataKey *This,
2222         ULONG Index,
2223         LPWSTR *ppszValueName);
2224 
2225     END_INTERFACE
2226 } ISpDataKeyVtbl;
2227 
2228 interface ISpDataKey {
2229     CONST_VTBL ISpDataKeyVtbl* lpVtbl;
2230 };
2231 
2232 #ifdef COBJMACROS
2233 #ifndef WIDL_C_INLINE_WRAPPERS
2234 /*** IUnknown methods ***/
2235 #define ISpDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2236 #define ISpDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
2237 #define ISpDataKey_Release(This) (This)->lpVtbl->Release(This)
2238 /*** ISpDataKey methods ***/
2239 #define ISpDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2240 #define ISpDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2241 #define ISpDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2242 #define ISpDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2243 #define ISpDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2244 #define ISpDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2245 #define ISpDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2246 #define ISpDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2247 #define ISpDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2248 #define ISpDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2249 #define ISpDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2250 #define ISpDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2251 #else
2252 /*** IUnknown methods ***/
2253 static FORCEINLINE HRESULT ISpDataKey_QueryInterface(ISpDataKey* This,REFIID riid,void **ppvObject) {
2254     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2255 }
2256 static FORCEINLINE ULONG ISpDataKey_AddRef(ISpDataKey* This) {
2257     return This->lpVtbl->AddRef(This);
2258 }
2259 static FORCEINLINE ULONG ISpDataKey_Release(ISpDataKey* This) {
2260     return This->lpVtbl->Release(This);
2261 }
2262 /*** ISpDataKey methods ***/
2263 static FORCEINLINE HRESULT ISpDataKey_SetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2264     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2265 }
2266 static FORCEINLINE HRESULT ISpDataKey_GetData(ISpDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2267     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2268 }
2269 static FORCEINLINE HRESULT ISpDataKey_SetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2270     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2271 }
2272 static FORCEINLINE HRESULT ISpDataKey_GetStringValue(ISpDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2273     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2274 }
2275 static FORCEINLINE HRESULT ISpDataKey_SetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
2276     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2277 }
2278 static FORCEINLINE HRESULT ISpDataKey_GetDWORD(ISpDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2279     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2280 }
2281 static FORCEINLINE HRESULT ISpDataKey_OpenKey(ISpDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2282     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2283 }
2284 static FORCEINLINE HRESULT ISpDataKey_CreateKey(ISpDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2285     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2286 }
2287 static FORCEINLINE HRESULT ISpDataKey_DeleteKey(ISpDataKey* This,LPCWSTR pszSubKey) {
2288     return This->lpVtbl->DeleteKey(This,pszSubKey);
2289 }
2290 static FORCEINLINE HRESULT ISpDataKey_DeleteValue(ISpDataKey* This,LPCWSTR pszValueName) {
2291     return This->lpVtbl->DeleteValue(This,pszValueName);
2292 }
2293 static FORCEINLINE HRESULT ISpDataKey_EnumKeys(ISpDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2294     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2295 }
2296 static FORCEINLINE HRESULT ISpDataKey_EnumValues(ISpDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2297     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2298 }
2299 #endif
2300 #endif
2301 
2302 #endif
2303 
2304 
2305 #endif  /* __ISpDataKey_INTERFACE_DEFINED__ */
2306 
2307 /*****************************************************************************
2308  * ISpObjectWithToken interface
2309  */
2310 #ifndef __ISpObjectWithToken_INTERFACE_DEFINED__
2311 #define __ISpObjectWithToken_INTERFACE_DEFINED__
2312 
2313 DEFINE_GUID(IID_ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2314 #if defined(__cplusplus) && !defined(CINTERFACE)
2315 MIDL_INTERFACE("5b559f40-e952-11d2-bb91-00c04f8ee6c0")
2316 ISpObjectWithToken : public IUnknown
2317 {
2318     virtual HRESULT STDMETHODCALLTYPE SetObjectToken(
2319         ISpObjectToken *pToken) = 0;
2320 
2321     virtual HRESULT STDMETHODCALLTYPE GetObjectToken(
2322         ISpObjectToken **ppToken) = 0;
2323 
2324 };
2325 #ifdef __CRT_UUID_DECL
2326 __CRT_UUID_DECL(ISpObjectWithToken, 0x5b559f40, 0xe952, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
2327 #endif
2328 #else
2329 typedef struct ISpObjectWithTokenVtbl {
2330     BEGIN_INTERFACE
2331 
2332     /*** IUnknown methods ***/
2333     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2334         ISpObjectWithToken *This,
2335         REFIID riid,
2336         void **ppvObject);
2337 
2338     ULONG (STDMETHODCALLTYPE *AddRef)(
2339         ISpObjectWithToken *This);
2340 
2341     ULONG (STDMETHODCALLTYPE *Release)(
2342         ISpObjectWithToken *This);
2343 
2344     /*** ISpObjectWithToken methods ***/
2345     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
2346         ISpObjectWithToken *This,
2347         ISpObjectToken *pToken);
2348 
2349     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
2350         ISpObjectWithToken *This,
2351         ISpObjectToken **ppToken);
2352 
2353     END_INTERFACE
2354 } ISpObjectWithTokenVtbl;
2355 
2356 interface ISpObjectWithToken {
2357     CONST_VTBL ISpObjectWithTokenVtbl* lpVtbl;
2358 };
2359 
2360 #ifdef COBJMACROS
2361 #ifndef WIDL_C_INLINE_WRAPPERS
2362 /*** IUnknown methods ***/
2363 #define ISpObjectWithToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2364 #define ISpObjectWithToken_AddRef(This) (This)->lpVtbl->AddRef(This)
2365 #define ISpObjectWithToken_Release(This) (This)->lpVtbl->Release(This)
2366 /*** ISpObjectWithToken methods ***/
2367 #define ISpObjectWithToken_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
2368 #define ISpObjectWithToken_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
2369 #else
2370 /*** IUnknown methods ***/
2371 static FORCEINLINE HRESULT ISpObjectWithToken_QueryInterface(ISpObjectWithToken* This,REFIID riid,void **ppvObject) {
2372     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2373 }
2374 static FORCEINLINE ULONG ISpObjectWithToken_AddRef(ISpObjectWithToken* This) {
2375     return This->lpVtbl->AddRef(This);
2376 }
2377 static FORCEINLINE ULONG ISpObjectWithToken_Release(ISpObjectWithToken* This) {
2378     return This->lpVtbl->Release(This);
2379 }
2380 /*** ISpObjectWithToken methods ***/
2381 static FORCEINLINE HRESULT ISpObjectWithToken_SetObjectToken(ISpObjectWithToken* This,ISpObjectToken *pToken) {
2382     return This->lpVtbl->SetObjectToken(This,pToken);
2383 }
2384 static FORCEINLINE HRESULT ISpObjectWithToken_GetObjectToken(ISpObjectWithToken* This,ISpObjectToken **ppToken) {
2385     return This->lpVtbl->GetObjectToken(This,ppToken);
2386 }
2387 #endif
2388 #endif
2389 
2390 #endif
2391 
2392 
2393 #endif  /* __ISpObjectWithToken_INTERFACE_DEFINED__ */
2394 
2395 /*****************************************************************************
2396  * IEnumSpObjectTokens interface
2397  */
2398 #ifndef __IEnumSpObjectTokens_INTERFACE_DEFINED__
2399 #define __IEnumSpObjectTokens_INTERFACE_DEFINED__
2400 
2401 DEFINE_GUID(IID_IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96);
2402 #if defined(__cplusplus) && !defined(CINTERFACE)
2403 MIDL_INTERFACE("06b64f9e-7fda-11d2-b4f2-00c04f797396")
2404 IEnumSpObjectTokens : public IUnknown
2405 {
2406     virtual HRESULT STDMETHODCALLTYPE Next(
2407         ULONG celt,
2408         ISpObjectToken **pelt,
2409         ULONG *pceltFetched) = 0;
2410 
2411     virtual HRESULT STDMETHODCALLTYPE Skip(
2412         ULONG celt) = 0;
2413 
2414     virtual HRESULT STDMETHODCALLTYPE Reset(
2415         ) = 0;
2416 
2417     virtual HRESULT STDMETHODCALLTYPE Clone(
2418         IEnumSpObjectTokens **ppEnum) = 0;
2419 
2420     virtual HRESULT STDMETHODCALLTYPE Item(
2421         ULONG Index,
2422         ISpObjectToken **ppToken) = 0;
2423 
2424     virtual HRESULT STDMETHODCALLTYPE GetCount(
2425         ULONG *pCount) = 0;
2426 
2427 };
2428 #ifdef __CRT_UUID_DECL
2429 __CRT_UUID_DECL(IEnumSpObjectTokens, 0x06b64f9e, 0x7fda, 0x11d2, 0xb4,0xf2, 0x00,0xc0,0x4f,0x79,0x73,0x96)
2430 #endif
2431 #else
2432 typedef struct IEnumSpObjectTokensVtbl {
2433     BEGIN_INTERFACE
2434 
2435     /*** IUnknown methods ***/
2436     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2437         IEnumSpObjectTokens *This,
2438         REFIID riid,
2439         void **ppvObject);
2440 
2441     ULONG (STDMETHODCALLTYPE *AddRef)(
2442         IEnumSpObjectTokens *This);
2443 
2444     ULONG (STDMETHODCALLTYPE *Release)(
2445         IEnumSpObjectTokens *This);
2446 
2447     /*** IEnumSpObjectTokens methods ***/
2448     HRESULT (STDMETHODCALLTYPE *Next)(
2449         IEnumSpObjectTokens *This,
2450         ULONG celt,
2451         ISpObjectToken **pelt,
2452         ULONG *pceltFetched);
2453 
2454     HRESULT (STDMETHODCALLTYPE *Skip)(
2455         IEnumSpObjectTokens *This,
2456         ULONG celt);
2457 
2458     HRESULT (STDMETHODCALLTYPE *Reset)(
2459         IEnumSpObjectTokens *This);
2460 
2461     HRESULT (STDMETHODCALLTYPE *Clone)(
2462         IEnumSpObjectTokens *This,
2463         IEnumSpObjectTokens **ppEnum);
2464 
2465     HRESULT (STDMETHODCALLTYPE *Item)(
2466         IEnumSpObjectTokens *This,
2467         ULONG Index,
2468         ISpObjectToken **ppToken);
2469 
2470     HRESULT (STDMETHODCALLTYPE *GetCount)(
2471         IEnumSpObjectTokens *This,
2472         ULONG *pCount);
2473 
2474     END_INTERFACE
2475 } IEnumSpObjectTokensVtbl;
2476 
2477 interface IEnumSpObjectTokens {
2478     CONST_VTBL IEnumSpObjectTokensVtbl* lpVtbl;
2479 };
2480 
2481 #ifdef COBJMACROS
2482 #ifndef WIDL_C_INLINE_WRAPPERS
2483 /*** IUnknown methods ***/
2484 #define IEnumSpObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2485 #define IEnumSpObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
2486 #define IEnumSpObjectTokens_Release(This) (This)->lpVtbl->Release(This)
2487 /*** IEnumSpObjectTokens methods ***/
2488 #define IEnumSpObjectTokens_Next(This,celt,pelt,pceltFetched) (This)->lpVtbl->Next(This,celt,pelt,pceltFetched)
2489 #define IEnumSpObjectTokens_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
2490 #define IEnumSpObjectTokens_Reset(This) (This)->lpVtbl->Reset(This)
2491 #define IEnumSpObjectTokens_Clone(This,ppEnum) (This)->lpVtbl->Clone(This,ppEnum)
2492 #define IEnumSpObjectTokens_Item(This,Index,ppToken) (This)->lpVtbl->Item(This,Index,ppToken)
2493 #define IEnumSpObjectTokens_GetCount(This,pCount) (This)->lpVtbl->GetCount(This,pCount)
2494 #else
2495 /*** IUnknown methods ***/
2496 static FORCEINLINE HRESULT IEnumSpObjectTokens_QueryInterface(IEnumSpObjectTokens* This,REFIID riid,void **ppvObject) {
2497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2498 }
2499 static FORCEINLINE ULONG IEnumSpObjectTokens_AddRef(IEnumSpObjectTokens* This) {
2500     return This->lpVtbl->AddRef(This);
2501 }
2502 static FORCEINLINE ULONG IEnumSpObjectTokens_Release(IEnumSpObjectTokens* This) {
2503     return This->lpVtbl->Release(This);
2504 }
2505 /*** IEnumSpObjectTokens methods ***/
2506 static FORCEINLINE HRESULT IEnumSpObjectTokens_Next(IEnumSpObjectTokens* This,ULONG celt,ISpObjectToken **pelt,ULONG *pceltFetched) {
2507     return This->lpVtbl->Next(This,celt,pelt,pceltFetched);
2508 }
2509 static FORCEINLINE HRESULT IEnumSpObjectTokens_Skip(IEnumSpObjectTokens* This,ULONG celt) {
2510     return This->lpVtbl->Skip(This,celt);
2511 }
2512 static FORCEINLINE HRESULT IEnumSpObjectTokens_Reset(IEnumSpObjectTokens* This) {
2513     return This->lpVtbl->Reset(This);
2514 }
2515 static FORCEINLINE HRESULT IEnumSpObjectTokens_Clone(IEnumSpObjectTokens* This,IEnumSpObjectTokens **ppEnum) {
2516     return This->lpVtbl->Clone(This,ppEnum);
2517 }
2518 static FORCEINLINE HRESULT IEnumSpObjectTokens_Item(IEnumSpObjectTokens* This,ULONG Index,ISpObjectToken **ppToken) {
2519     return This->lpVtbl->Item(This,Index,ppToken);
2520 }
2521 static FORCEINLINE HRESULT IEnumSpObjectTokens_GetCount(IEnumSpObjectTokens* This,ULONG *pCount) {
2522     return This->lpVtbl->GetCount(This,pCount);
2523 }
2524 #endif
2525 #endif
2526 
2527 #endif
2528 
2529 
2530 #endif  /* __IEnumSpObjectTokens_INTERFACE_DEFINED__ */
2531 
2532 /*****************************************************************************
2533  * ISpRegDataKey interface
2534  */
2535 #ifndef __ISpRegDataKey_INTERFACE_DEFINED__
2536 #define __ISpRegDataKey_INTERFACE_DEFINED__
2537 
2538 DEFINE_GUID(IID_ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b);
2539 #if defined(__cplusplus) && !defined(CINTERFACE)
2540 MIDL_INTERFACE("92a66e2b-c830-4149-83df-6fc2ba1e7a5b")
2541 ISpRegDataKey : public ISpDataKey
2542 {
2543     virtual HRESULT STDMETHODCALLTYPE SetKey(
2544         HKEY hkey,
2545         WINBOOL fReadOnly) = 0;
2546 
2547 };
2548 #ifdef __CRT_UUID_DECL
2549 __CRT_UUID_DECL(ISpRegDataKey, 0x92a66e2b, 0xc830, 0x4149, 0x83,0xdf, 0x6f,0xc2,0xba,0x1e,0x7a,0x5b)
2550 #endif
2551 #else
2552 typedef struct ISpRegDataKeyVtbl {
2553     BEGIN_INTERFACE
2554 
2555     /*** IUnknown methods ***/
2556     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2557         ISpRegDataKey *This,
2558         REFIID riid,
2559         void **ppvObject);
2560 
2561     ULONG (STDMETHODCALLTYPE *AddRef)(
2562         ISpRegDataKey *This);
2563 
2564     ULONG (STDMETHODCALLTYPE *Release)(
2565         ISpRegDataKey *This);
2566 
2567     /*** ISpDataKey methods ***/
2568     HRESULT (STDMETHODCALLTYPE *SetData)(
2569         ISpRegDataKey *This,
2570         LPCWSTR pszValueName,
2571         ULONG cbData,
2572         const BYTE *pData);
2573 
2574     HRESULT (STDMETHODCALLTYPE *GetData)(
2575         ISpRegDataKey *This,
2576         LPCWSTR pszValueName,
2577         ULONG *pcbData,
2578         BYTE *pData);
2579 
2580     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2581         ISpRegDataKey *This,
2582         LPCWSTR pszValueName,
2583         LPCWSTR pszValue);
2584 
2585     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2586         ISpRegDataKey *This,
2587         LPCWSTR pszValueName,
2588         LPWSTR *ppszValue);
2589 
2590     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2591         ISpRegDataKey *This,
2592         LPCWSTR pszValueName,
2593         DWORD dwValue);
2594 
2595     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2596         ISpRegDataKey *This,
2597         LPCWSTR pszValueName,
2598         DWORD *pdwValue);
2599 
2600     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2601         ISpRegDataKey *This,
2602         LPCWSTR pszSubKeyName,
2603         ISpDataKey **ppSubKey);
2604 
2605     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2606         ISpRegDataKey *This,
2607         LPCWSTR pszSubKey,
2608         ISpDataKey **ppSubKey);
2609 
2610     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2611         ISpRegDataKey *This,
2612         LPCWSTR pszSubKey);
2613 
2614     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2615         ISpRegDataKey *This,
2616         LPCWSTR pszValueName);
2617 
2618     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2619         ISpRegDataKey *This,
2620         ULONG Index,
2621         LPWSTR *ppszSubKeyName);
2622 
2623     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2624         ISpRegDataKey *This,
2625         ULONG Index,
2626         LPWSTR *ppszValueName);
2627 
2628     /*** ISpRegDataKey methods ***/
2629     HRESULT (STDMETHODCALLTYPE *SetKey)(
2630         ISpRegDataKey *This,
2631         HKEY hkey,
2632         WINBOOL fReadOnly);
2633 
2634     END_INTERFACE
2635 } ISpRegDataKeyVtbl;
2636 
2637 interface ISpRegDataKey {
2638     CONST_VTBL ISpRegDataKeyVtbl* lpVtbl;
2639 };
2640 
2641 #ifdef COBJMACROS
2642 #ifndef WIDL_C_INLINE_WRAPPERS
2643 /*** IUnknown methods ***/
2644 #define ISpRegDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2645 #define ISpRegDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
2646 #define ISpRegDataKey_Release(This) (This)->lpVtbl->Release(This)
2647 /*** ISpDataKey methods ***/
2648 #define ISpRegDataKey_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2649 #define ISpRegDataKey_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2650 #define ISpRegDataKey_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2651 #define ISpRegDataKey_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2652 #define ISpRegDataKey_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2653 #define ISpRegDataKey_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2654 #define ISpRegDataKey_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2655 #define ISpRegDataKey_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2656 #define ISpRegDataKey_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2657 #define ISpRegDataKey_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2658 #define ISpRegDataKey_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2659 #define ISpRegDataKey_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2660 /*** ISpRegDataKey methods ***/
2661 #define ISpRegDataKey_SetKey(This,hkey,fReadOnly) (This)->lpVtbl->SetKey(This,hkey,fReadOnly)
2662 #else
2663 /*** IUnknown methods ***/
2664 static FORCEINLINE HRESULT ISpRegDataKey_QueryInterface(ISpRegDataKey* This,REFIID riid,void **ppvObject) {
2665     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2666 }
2667 static FORCEINLINE ULONG ISpRegDataKey_AddRef(ISpRegDataKey* This) {
2668     return This->lpVtbl->AddRef(This);
2669 }
2670 static FORCEINLINE ULONG ISpRegDataKey_Release(ISpRegDataKey* This) {
2671     return This->lpVtbl->Release(This);
2672 }
2673 /*** ISpDataKey methods ***/
2674 static FORCEINLINE HRESULT ISpRegDataKey_SetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2675     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2676 }
2677 static FORCEINLINE HRESULT ISpRegDataKey_GetData(ISpRegDataKey* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2678     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2679 }
2680 static FORCEINLINE HRESULT ISpRegDataKey_SetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2681     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2682 }
2683 static FORCEINLINE HRESULT ISpRegDataKey_GetStringValue(ISpRegDataKey* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2684     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2685 }
2686 static FORCEINLINE HRESULT ISpRegDataKey_SetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD dwValue) {
2687     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2688 }
2689 static FORCEINLINE HRESULT ISpRegDataKey_GetDWORD(ISpRegDataKey* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2690     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2691 }
2692 static FORCEINLINE HRESULT ISpRegDataKey_OpenKey(ISpRegDataKey* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2693     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2694 }
2695 static FORCEINLINE HRESULT ISpRegDataKey_CreateKey(ISpRegDataKey* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2696     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2697 }
2698 static FORCEINLINE HRESULT ISpRegDataKey_DeleteKey(ISpRegDataKey* This,LPCWSTR pszSubKey) {
2699     return This->lpVtbl->DeleteKey(This,pszSubKey);
2700 }
2701 static FORCEINLINE HRESULT ISpRegDataKey_DeleteValue(ISpRegDataKey* This,LPCWSTR pszValueName) {
2702     return This->lpVtbl->DeleteValue(This,pszValueName);
2703 }
2704 static FORCEINLINE HRESULT ISpRegDataKey_EnumKeys(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2705     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2706 }
2707 static FORCEINLINE HRESULT ISpRegDataKey_EnumValues(ISpRegDataKey* This,ULONG Index,LPWSTR *ppszValueName) {
2708     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2709 }
2710 /*** ISpRegDataKey methods ***/
2711 static FORCEINLINE HRESULT ISpRegDataKey_SetKey(ISpRegDataKey* This,HKEY hkey,WINBOOL fReadOnly) {
2712     return This->lpVtbl->SetKey(This,hkey,fReadOnly);
2713 }
2714 #endif
2715 #endif
2716 
2717 #endif
2718 
2719 
2720 #endif  /* __ISpRegDataKey_INTERFACE_DEFINED__ */
2721 
2722 /*****************************************************************************
2723  * ISpObjectTokenCategory interface
2724  */
2725 #ifndef __ISpObjectTokenCategory_INTERFACE_DEFINED__
2726 #define __ISpObjectTokenCategory_INTERFACE_DEFINED__
2727 
2728 DEFINE_GUID(IID_ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d);
2729 #if defined(__cplusplus) && !defined(CINTERFACE)
2730 MIDL_INTERFACE("2d3d3845-39af-4850-bbf9-40b49780011d")
2731 ISpObjectTokenCategory : public ISpDataKey
2732 {
2733     virtual HRESULT STDMETHODCALLTYPE SetId(
2734         LPCWSTR pszCategoryId,
2735         WINBOOL fCreateIfNotExist) = 0;
2736 
2737     virtual HRESULT STDMETHODCALLTYPE GetId(
2738         LPWSTR *ppszCoMemCategoryId) = 0;
2739 
2740     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
2741         SPDATAKEYLOCATION spdkl,
2742         ISpDataKey **ppDataKey) = 0;
2743 
2744     virtual HRESULT STDMETHODCALLTYPE EnumTokens(
2745         LPCWSTR pzsReqAttribs,
2746         LPCWSTR pszOptAttribs,
2747         IEnumSpObjectTokens **ppEnum) = 0;
2748 
2749     virtual HRESULT STDMETHODCALLTYPE SetDefaultTokenId(
2750         LPCWSTR pszTokenId) = 0;
2751 
2752     virtual HRESULT STDMETHODCALLTYPE GetDefaultTokenId(
2753         LPWSTR *ppszCoMemTokenId) = 0;
2754 
2755 };
2756 #ifdef __CRT_UUID_DECL
2757 __CRT_UUID_DECL(ISpObjectTokenCategory, 0x2d3d3845, 0x39af, 0x4850, 0xbb,0xf9, 0x40,0xb4,0x97,0x80,0x01,0x1d)
2758 #endif
2759 #else
2760 typedef struct ISpObjectTokenCategoryVtbl {
2761     BEGIN_INTERFACE
2762 
2763     /*** IUnknown methods ***/
2764     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2765         ISpObjectTokenCategory *This,
2766         REFIID riid,
2767         void **ppvObject);
2768 
2769     ULONG (STDMETHODCALLTYPE *AddRef)(
2770         ISpObjectTokenCategory *This);
2771 
2772     ULONG (STDMETHODCALLTYPE *Release)(
2773         ISpObjectTokenCategory *This);
2774 
2775     /*** ISpDataKey methods ***/
2776     HRESULT (STDMETHODCALLTYPE *SetData)(
2777         ISpObjectTokenCategory *This,
2778         LPCWSTR pszValueName,
2779         ULONG cbData,
2780         const BYTE *pData);
2781 
2782     HRESULT (STDMETHODCALLTYPE *GetData)(
2783         ISpObjectTokenCategory *This,
2784         LPCWSTR pszValueName,
2785         ULONG *pcbData,
2786         BYTE *pData);
2787 
2788     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
2789         ISpObjectTokenCategory *This,
2790         LPCWSTR pszValueName,
2791         LPCWSTR pszValue);
2792 
2793     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
2794         ISpObjectTokenCategory *This,
2795         LPCWSTR pszValueName,
2796         LPWSTR *ppszValue);
2797 
2798     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
2799         ISpObjectTokenCategory *This,
2800         LPCWSTR pszValueName,
2801         DWORD dwValue);
2802 
2803     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
2804         ISpObjectTokenCategory *This,
2805         LPCWSTR pszValueName,
2806         DWORD *pdwValue);
2807 
2808     HRESULT (STDMETHODCALLTYPE *OpenKey)(
2809         ISpObjectTokenCategory *This,
2810         LPCWSTR pszSubKeyName,
2811         ISpDataKey **ppSubKey);
2812 
2813     HRESULT (STDMETHODCALLTYPE *CreateKey)(
2814         ISpObjectTokenCategory *This,
2815         LPCWSTR pszSubKey,
2816         ISpDataKey **ppSubKey);
2817 
2818     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
2819         ISpObjectTokenCategory *This,
2820         LPCWSTR pszSubKey);
2821 
2822     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
2823         ISpObjectTokenCategory *This,
2824         LPCWSTR pszValueName);
2825 
2826     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
2827         ISpObjectTokenCategory *This,
2828         ULONG Index,
2829         LPWSTR *ppszSubKeyName);
2830 
2831     HRESULT (STDMETHODCALLTYPE *EnumValues)(
2832         ISpObjectTokenCategory *This,
2833         ULONG Index,
2834         LPWSTR *ppszValueName);
2835 
2836     /*** ISpObjectTokenCategory methods ***/
2837     HRESULT (STDMETHODCALLTYPE *SetId)(
2838         ISpObjectTokenCategory *This,
2839         LPCWSTR pszCategoryId,
2840         WINBOOL fCreateIfNotExist);
2841 
2842     HRESULT (STDMETHODCALLTYPE *GetId)(
2843         ISpObjectTokenCategory *This,
2844         LPWSTR *ppszCoMemCategoryId);
2845 
2846     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
2847         ISpObjectTokenCategory *This,
2848         SPDATAKEYLOCATION spdkl,
2849         ISpDataKey **ppDataKey);
2850 
2851     HRESULT (STDMETHODCALLTYPE *EnumTokens)(
2852         ISpObjectTokenCategory *This,
2853         LPCWSTR pzsReqAttribs,
2854         LPCWSTR pszOptAttribs,
2855         IEnumSpObjectTokens **ppEnum);
2856 
2857     HRESULT (STDMETHODCALLTYPE *SetDefaultTokenId)(
2858         ISpObjectTokenCategory *This,
2859         LPCWSTR pszTokenId);
2860 
2861     HRESULT (STDMETHODCALLTYPE *GetDefaultTokenId)(
2862         ISpObjectTokenCategory *This,
2863         LPWSTR *ppszCoMemTokenId);
2864 
2865     END_INTERFACE
2866 } ISpObjectTokenCategoryVtbl;
2867 
2868 interface ISpObjectTokenCategory {
2869     CONST_VTBL ISpObjectTokenCategoryVtbl* lpVtbl;
2870 };
2871 
2872 #ifdef COBJMACROS
2873 #ifndef WIDL_C_INLINE_WRAPPERS
2874 /*** IUnknown methods ***/
2875 #define ISpObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
2876 #define ISpObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
2877 #define ISpObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
2878 /*** ISpDataKey methods ***/
2879 #define ISpObjectTokenCategory_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
2880 #define ISpObjectTokenCategory_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
2881 #define ISpObjectTokenCategory_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
2882 #define ISpObjectTokenCategory_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
2883 #define ISpObjectTokenCategory_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
2884 #define ISpObjectTokenCategory_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
2885 #define ISpObjectTokenCategory_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
2886 #define ISpObjectTokenCategory_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
2887 #define ISpObjectTokenCategory_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
2888 #define ISpObjectTokenCategory_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
2889 #define ISpObjectTokenCategory_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
2890 #define ISpObjectTokenCategory_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
2891 /*** ISpObjectTokenCategory methods ***/
2892 #define ISpObjectTokenCategory_SetId(This,pszCategoryId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist)
2893 #define ISpObjectTokenCategory_GetId(This,ppszCoMemCategoryId) (This)->lpVtbl->GetId(This,ppszCoMemCategoryId)
2894 #define ISpObjectTokenCategory_GetDataKey(This,spdkl,ppDataKey) (This)->lpVtbl->GetDataKey(This,spdkl,ppDataKey)
2895 #define ISpObjectTokenCategory_EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum) (This)->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum)
2896 #define ISpObjectTokenCategory_SetDefaultTokenId(This,pszTokenId) (This)->lpVtbl->SetDefaultTokenId(This,pszTokenId)
2897 #define ISpObjectTokenCategory_GetDefaultTokenId(This,ppszCoMemTokenId) (This)->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId)
2898 #else
2899 /*** IUnknown methods ***/
2900 static FORCEINLINE HRESULT ISpObjectTokenCategory_QueryInterface(ISpObjectTokenCategory* This,REFIID riid,void **ppvObject) {
2901     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
2902 }
2903 static FORCEINLINE ULONG ISpObjectTokenCategory_AddRef(ISpObjectTokenCategory* This) {
2904     return This->lpVtbl->AddRef(This);
2905 }
2906 static FORCEINLINE ULONG ISpObjectTokenCategory_Release(ISpObjectTokenCategory* This) {
2907     return This->lpVtbl->Release(This);
2908 }
2909 /*** ISpDataKey methods ***/
2910 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
2911     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
2912 }
2913 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetData(ISpObjectTokenCategory* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
2914     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
2915 }
2916 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
2917     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
2918 }
2919 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetStringValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
2920     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
2921 }
2922 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD dwValue) {
2923     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
2924 }
2925 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDWORD(ISpObjectTokenCategory* This,LPCWSTR pszValueName,DWORD *pdwValue) {
2926     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
2927 }
2928 static FORCEINLINE HRESULT ISpObjectTokenCategory_OpenKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
2929     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
2930 }
2931 static FORCEINLINE HRESULT ISpObjectTokenCategory_CreateKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
2932     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
2933 }
2934 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteKey(ISpObjectTokenCategory* This,LPCWSTR pszSubKey) {
2935     return This->lpVtbl->DeleteKey(This,pszSubKey);
2936 }
2937 static FORCEINLINE HRESULT ISpObjectTokenCategory_DeleteValue(ISpObjectTokenCategory* This,LPCWSTR pszValueName) {
2938     return This->lpVtbl->DeleteValue(This,pszValueName);
2939 }
2940 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumKeys(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszSubKeyName) {
2941     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
2942 }
2943 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumValues(ISpObjectTokenCategory* This,ULONG Index,LPWSTR *ppszValueName) {
2944     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
2945 }
2946 /*** ISpObjectTokenCategory methods ***/
2947 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetId(ISpObjectTokenCategory* This,LPCWSTR pszCategoryId,WINBOOL fCreateIfNotExist) {
2948     return This->lpVtbl->SetId(This,pszCategoryId,fCreateIfNotExist);
2949 }
2950 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemCategoryId) {
2951     return This->lpVtbl->GetId(This,ppszCoMemCategoryId);
2952 }
2953 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDataKey(ISpObjectTokenCategory* This,SPDATAKEYLOCATION spdkl,ISpDataKey **ppDataKey) {
2954     return This->lpVtbl->GetDataKey(This,spdkl,ppDataKey);
2955 }
2956 static FORCEINLINE HRESULT ISpObjectTokenCategory_EnumTokens(ISpObjectTokenCategory* This,LPCWSTR pzsReqAttribs,LPCWSTR pszOptAttribs,IEnumSpObjectTokens **ppEnum) {
2957     return This->lpVtbl->EnumTokens(This,pzsReqAttribs,pszOptAttribs,ppEnum);
2958 }
2959 static FORCEINLINE HRESULT ISpObjectTokenCategory_SetDefaultTokenId(ISpObjectTokenCategory* This,LPCWSTR pszTokenId) {
2960     return This->lpVtbl->SetDefaultTokenId(This,pszTokenId);
2961 }
2962 static FORCEINLINE HRESULT ISpObjectTokenCategory_GetDefaultTokenId(ISpObjectTokenCategory* This,LPWSTR *ppszCoMemTokenId) {
2963     return This->lpVtbl->GetDefaultTokenId(This,ppszCoMemTokenId);
2964 }
2965 #endif
2966 #endif
2967 
2968 #endif
2969 
2970 
2971 #endif  /* __ISpObjectTokenCategory_INTERFACE_DEFINED__ */
2972 
2973 /*****************************************************************************
2974  * ISpObjectToken interface
2975  */
2976 #ifndef __ISpObjectToken_INTERFACE_DEFINED__
2977 #define __ISpObjectToken_INTERFACE_DEFINED__
2978 
2979 DEFINE_GUID(IID_ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
2980 #if defined(__cplusplus) && !defined(CINTERFACE)
2981 MIDL_INTERFACE("14056589-e16c-11d2-bb90-00c04f8ee6c0")
2982 ISpObjectToken : public ISpDataKey
2983 {
2984     virtual HRESULT STDMETHODCALLTYPE SetId(
2985         LPCWSTR pszCategoryId,
2986         LPCWSTR pszTokenId,
2987         WINBOOL fCreateIfNotExist) = 0;
2988 
2989     virtual HRESULT STDMETHODCALLTYPE GetId(
2990         LPWSTR *ppszCoMemTokenId) = 0;
2991 
2992     virtual HRESULT STDMETHODCALLTYPE GetCategory(
2993         ISpObjectTokenCategory **ppTokenCategory) = 0;
2994 
2995     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
2996         IUnknown *pUnkOuter,
2997         DWORD dwClsContext,
2998         REFIID riid,
2999         void **ppvObject) = 0;
3000 
3001     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
3002         REFCLSID clsidCaller,
3003         LPCWSTR pszValueName,
3004         LPCWSTR pszFileNameSpecifier,
3005         ULONG nFolder,
3006         LPWSTR *ppszFilePath) = 0;
3007 
3008     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
3009         REFCLSID clsidCaller,
3010         LPCWSTR pszKeyName,
3011         WINBOOL fDeleteFile) = 0;
3012 
3013     virtual HRESULT STDMETHODCALLTYPE Remove(
3014         const CLSID *pclsidCaller) = 0;
3015 
3016     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
3017         LPCWSTR pszTypeOfUI,
3018         void *pvExtraData,
3019         ULONG cbExtraData,
3020         IUnknown *punkObject,
3021         WINBOOL *pfSupported) = 0;
3022 
3023     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
3024         HWND hwndParent,
3025         LPCWSTR pszTitle,
3026         LPCWSTR pszTypeOfUI,
3027         void *pvExtraData,
3028         ULONG cbExtraData,
3029         IUnknown *punkObject) = 0;
3030 
3031     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
3032         LPCWSTR pszAttributes,
3033         WINBOOL *pfMatches) = 0;
3034 
3035 };
3036 #ifdef __CRT_UUID_DECL
3037 __CRT_UUID_DECL(ISpObjectToken, 0x14056589, 0xe16c, 0x11d2, 0xbb,0x90, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
3038 #endif
3039 #else
3040 typedef struct ISpObjectTokenVtbl {
3041     BEGIN_INTERFACE
3042 
3043     /*** IUnknown methods ***/
3044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3045         ISpObjectToken *This,
3046         REFIID riid,
3047         void **ppvObject);
3048 
3049     ULONG (STDMETHODCALLTYPE *AddRef)(
3050         ISpObjectToken *This);
3051 
3052     ULONG (STDMETHODCALLTYPE *Release)(
3053         ISpObjectToken *This);
3054 
3055     /*** ISpDataKey methods ***/
3056     HRESULT (STDMETHODCALLTYPE *SetData)(
3057         ISpObjectToken *This,
3058         LPCWSTR pszValueName,
3059         ULONG cbData,
3060         const BYTE *pData);
3061 
3062     HRESULT (STDMETHODCALLTYPE *GetData)(
3063         ISpObjectToken *This,
3064         LPCWSTR pszValueName,
3065         ULONG *pcbData,
3066         BYTE *pData);
3067 
3068     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
3069         ISpObjectToken *This,
3070         LPCWSTR pszValueName,
3071         LPCWSTR pszValue);
3072 
3073     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
3074         ISpObjectToken *This,
3075         LPCWSTR pszValueName,
3076         LPWSTR *ppszValue);
3077 
3078     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
3079         ISpObjectToken *This,
3080         LPCWSTR pszValueName,
3081         DWORD dwValue);
3082 
3083     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
3084         ISpObjectToken *This,
3085         LPCWSTR pszValueName,
3086         DWORD *pdwValue);
3087 
3088     HRESULT (STDMETHODCALLTYPE *OpenKey)(
3089         ISpObjectToken *This,
3090         LPCWSTR pszSubKeyName,
3091         ISpDataKey **ppSubKey);
3092 
3093     HRESULT (STDMETHODCALLTYPE *CreateKey)(
3094         ISpObjectToken *This,
3095         LPCWSTR pszSubKey,
3096         ISpDataKey **ppSubKey);
3097 
3098     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
3099         ISpObjectToken *This,
3100         LPCWSTR pszSubKey);
3101 
3102     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
3103         ISpObjectToken *This,
3104         LPCWSTR pszValueName);
3105 
3106     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
3107         ISpObjectToken *This,
3108         ULONG Index,
3109         LPWSTR *ppszSubKeyName);
3110 
3111     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3112         ISpObjectToken *This,
3113         ULONG Index,
3114         LPWSTR *ppszValueName);
3115 
3116     /*** ISpObjectToken methods ***/
3117     HRESULT (STDMETHODCALLTYPE *SetId)(
3118         ISpObjectToken *This,
3119         LPCWSTR pszCategoryId,
3120         LPCWSTR pszTokenId,
3121         WINBOOL fCreateIfNotExist);
3122 
3123     HRESULT (STDMETHODCALLTYPE *GetId)(
3124         ISpObjectToken *This,
3125         LPWSTR *ppszCoMemTokenId);
3126 
3127     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3128         ISpObjectToken *This,
3129         ISpObjectTokenCategory **ppTokenCategory);
3130 
3131     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3132         ISpObjectToken *This,
3133         IUnknown *pUnkOuter,
3134         DWORD dwClsContext,
3135         REFIID riid,
3136         void **ppvObject);
3137 
3138     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3139         ISpObjectToken *This,
3140         REFCLSID clsidCaller,
3141         LPCWSTR pszValueName,
3142         LPCWSTR pszFileNameSpecifier,
3143         ULONG nFolder,
3144         LPWSTR *ppszFilePath);
3145 
3146     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3147         ISpObjectToken *This,
3148         REFCLSID clsidCaller,
3149         LPCWSTR pszKeyName,
3150         WINBOOL fDeleteFile);
3151 
3152     HRESULT (STDMETHODCALLTYPE *Remove)(
3153         ISpObjectToken *This,
3154         const CLSID *pclsidCaller);
3155 
3156     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3157         ISpObjectToken *This,
3158         LPCWSTR pszTypeOfUI,
3159         void *pvExtraData,
3160         ULONG cbExtraData,
3161         IUnknown *punkObject,
3162         WINBOOL *pfSupported);
3163 
3164     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3165         ISpObjectToken *This,
3166         HWND hwndParent,
3167         LPCWSTR pszTitle,
3168         LPCWSTR pszTypeOfUI,
3169         void *pvExtraData,
3170         ULONG cbExtraData,
3171         IUnknown *punkObject);
3172 
3173     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3174         ISpObjectToken *This,
3175         LPCWSTR pszAttributes,
3176         WINBOOL *pfMatches);
3177 
3178     END_INTERFACE
3179 } ISpObjectTokenVtbl;
3180 
3181 interface ISpObjectToken {
3182     CONST_VTBL ISpObjectTokenVtbl* lpVtbl;
3183 };
3184 
3185 #ifdef COBJMACROS
3186 #ifndef WIDL_C_INLINE_WRAPPERS
3187 /*** IUnknown methods ***/
3188 #define ISpObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3189 #define ISpObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
3190 #define ISpObjectToken_Release(This) (This)->lpVtbl->Release(This)
3191 /*** ISpDataKey methods ***/
3192 #define ISpObjectToken_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3193 #define ISpObjectToken_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3194 #define ISpObjectToken_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3195 #define ISpObjectToken_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3196 #define ISpObjectToken_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3197 #define ISpObjectToken_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3198 #define ISpObjectToken_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3199 #define ISpObjectToken_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3200 #define ISpObjectToken_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3201 #define ISpObjectToken_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3202 #define ISpObjectToken_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3203 #define ISpObjectToken_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3204 /*** ISpObjectToken methods ***/
3205 #define ISpObjectToken_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3206 #define ISpObjectToken_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3207 #define ISpObjectToken_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3208 #define ISpObjectToken_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3209 #define ISpObjectToken_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3210 #define ISpObjectToken_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3211 #define ISpObjectToken_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3212 #define ISpObjectToken_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3213 #define ISpObjectToken_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3214 #define ISpObjectToken_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3215 #else
3216 /*** IUnknown methods ***/
3217 static FORCEINLINE HRESULT ISpObjectToken_QueryInterface(ISpObjectToken* This,REFIID riid,void **ppvObject) {
3218     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3219 }
3220 static FORCEINLINE ULONG ISpObjectToken_AddRef(ISpObjectToken* This) {
3221     return This->lpVtbl->AddRef(This);
3222 }
3223 static FORCEINLINE ULONG ISpObjectToken_Release(ISpObjectToken* This) {
3224     return This->lpVtbl->Release(This);
3225 }
3226 /*** ISpDataKey methods ***/
3227 static FORCEINLINE HRESULT ISpObjectToken_SetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3228     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3229 }
3230 static FORCEINLINE HRESULT ISpObjectToken_GetData(ISpObjectToken* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3231     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3232 }
3233 static FORCEINLINE HRESULT ISpObjectToken_SetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3234     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3235 }
3236 static FORCEINLINE HRESULT ISpObjectToken_GetStringValue(ISpObjectToken* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3237     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3238 }
3239 static FORCEINLINE HRESULT ISpObjectToken_SetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD dwValue) {
3240     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3241 }
3242 static FORCEINLINE HRESULT ISpObjectToken_GetDWORD(ISpObjectToken* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3243     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3244 }
3245 static FORCEINLINE HRESULT ISpObjectToken_OpenKey(ISpObjectToken* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3246     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3247 }
3248 static FORCEINLINE HRESULT ISpObjectToken_CreateKey(ISpObjectToken* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3249     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3250 }
3251 static FORCEINLINE HRESULT ISpObjectToken_DeleteKey(ISpObjectToken* This,LPCWSTR pszSubKey) {
3252     return This->lpVtbl->DeleteKey(This,pszSubKey);
3253 }
3254 static FORCEINLINE HRESULT ISpObjectToken_DeleteValue(ISpObjectToken* This,LPCWSTR pszValueName) {
3255     return This->lpVtbl->DeleteValue(This,pszValueName);
3256 }
3257 static FORCEINLINE HRESULT ISpObjectToken_EnumKeys(ISpObjectToken* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3258     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3259 }
3260 static FORCEINLINE HRESULT ISpObjectToken_EnumValues(ISpObjectToken* This,ULONG Index,LPWSTR *ppszValueName) {
3261     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3262 }
3263 /*** ISpObjectToken methods ***/
3264 static FORCEINLINE HRESULT ISpObjectToken_SetId(ISpObjectToken* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3265     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3266 }
3267 static FORCEINLINE HRESULT ISpObjectToken_GetId(ISpObjectToken* This,LPWSTR *ppszCoMemTokenId) {
3268     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3269 }
3270 static FORCEINLINE HRESULT ISpObjectToken_GetCategory(ISpObjectToken* This,ISpObjectTokenCategory **ppTokenCategory) {
3271     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3272 }
3273 static FORCEINLINE HRESULT ISpObjectToken_CreateInstance(ISpObjectToken* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3274     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3275 }
3276 static FORCEINLINE HRESULT ISpObjectToken_GetStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3277     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3278 }
3279 static FORCEINLINE HRESULT ISpObjectToken_RemoveStorageFileName(ISpObjectToken* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3280     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3281 }
3282 static FORCEINLINE HRESULT ISpObjectToken_Remove(ISpObjectToken* This,const CLSID *pclsidCaller) {
3283     return This->lpVtbl->Remove(This,pclsidCaller);
3284 }
3285 static FORCEINLINE HRESULT ISpObjectToken_IsUISupported(ISpObjectToken* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3286     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3287 }
3288 static FORCEINLINE HRESULT ISpObjectToken_DisplayUI(ISpObjectToken* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3289     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3290 }
3291 static FORCEINLINE HRESULT ISpObjectToken_MatchesAttributes(ISpObjectToken* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3292     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3293 }
3294 #endif
3295 #endif
3296 
3297 #endif
3298 
3299 
3300 #endif  /* __ISpObjectToken_INTERFACE_DEFINED__ */
3301 
3302 /*****************************************************************************
3303  * ISpObjectTokenInit interface
3304  */
3305 #ifndef __ISpObjectTokenInit_INTERFACE_DEFINED__
3306 #define __ISpObjectTokenInit_INTERFACE_DEFINED__
3307 
3308 DEFINE_GUID(IID_ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51);
3309 #if defined(__cplusplus) && !defined(CINTERFACE)
3310 MIDL_INTERFACE("b8aab0cf-346f-49d8-9499-c8b03f161d51")
3311 ISpObjectTokenInit : public ISpObjectToken
3312 {
3313     virtual HRESULT STDMETHODCALLTYPE InitFromDataKey(
3314         LPCWSTR pszCategoryId,
3315         LPCWSTR pszTokenId,
3316         ISpDataKey *pDataKey) = 0;
3317 
3318 };
3319 #ifdef __CRT_UUID_DECL
3320 __CRT_UUID_DECL(ISpObjectTokenInit, 0xb8aab0cf, 0x346f, 0x49d8, 0x94,0x99, 0xc8,0xb0,0x3f,0x16,0x1d,0x51)
3321 #endif
3322 #else
3323 typedef struct ISpObjectTokenInitVtbl {
3324     BEGIN_INTERFACE
3325 
3326     /*** IUnknown methods ***/
3327     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3328         ISpObjectTokenInit *This,
3329         REFIID riid,
3330         void **ppvObject);
3331 
3332     ULONG (STDMETHODCALLTYPE *AddRef)(
3333         ISpObjectTokenInit *This);
3334 
3335     ULONG (STDMETHODCALLTYPE *Release)(
3336         ISpObjectTokenInit *This);
3337 
3338     /*** ISpDataKey methods ***/
3339     HRESULT (STDMETHODCALLTYPE *SetData)(
3340         ISpObjectTokenInit *This,
3341         LPCWSTR pszValueName,
3342         ULONG cbData,
3343         const BYTE *pData);
3344 
3345     HRESULT (STDMETHODCALLTYPE *GetData)(
3346         ISpObjectTokenInit *This,
3347         LPCWSTR pszValueName,
3348         ULONG *pcbData,
3349         BYTE *pData);
3350 
3351     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
3352         ISpObjectTokenInit *This,
3353         LPCWSTR pszValueName,
3354         LPCWSTR pszValue);
3355 
3356     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
3357         ISpObjectTokenInit *This,
3358         LPCWSTR pszValueName,
3359         LPWSTR *ppszValue);
3360 
3361     HRESULT (STDMETHODCALLTYPE *SetDWORD)(
3362         ISpObjectTokenInit *This,
3363         LPCWSTR pszValueName,
3364         DWORD dwValue);
3365 
3366     HRESULT (STDMETHODCALLTYPE *GetDWORD)(
3367         ISpObjectTokenInit *This,
3368         LPCWSTR pszValueName,
3369         DWORD *pdwValue);
3370 
3371     HRESULT (STDMETHODCALLTYPE *OpenKey)(
3372         ISpObjectTokenInit *This,
3373         LPCWSTR pszSubKeyName,
3374         ISpDataKey **ppSubKey);
3375 
3376     HRESULT (STDMETHODCALLTYPE *CreateKey)(
3377         ISpObjectTokenInit *This,
3378         LPCWSTR pszSubKey,
3379         ISpDataKey **ppSubKey);
3380 
3381     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
3382         ISpObjectTokenInit *This,
3383         LPCWSTR pszSubKey);
3384 
3385     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
3386         ISpObjectTokenInit *This,
3387         LPCWSTR pszValueName);
3388 
3389     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
3390         ISpObjectTokenInit *This,
3391         ULONG Index,
3392         LPWSTR *ppszSubKeyName);
3393 
3394     HRESULT (STDMETHODCALLTYPE *EnumValues)(
3395         ISpObjectTokenInit *This,
3396         ULONG Index,
3397         LPWSTR *ppszValueName);
3398 
3399     /*** ISpObjectToken methods ***/
3400     HRESULT (STDMETHODCALLTYPE *SetId)(
3401         ISpObjectTokenInit *This,
3402         LPCWSTR pszCategoryId,
3403         LPCWSTR pszTokenId,
3404         WINBOOL fCreateIfNotExist);
3405 
3406     HRESULT (STDMETHODCALLTYPE *GetId)(
3407         ISpObjectTokenInit *This,
3408         LPWSTR *ppszCoMemTokenId);
3409 
3410     HRESULT (STDMETHODCALLTYPE *GetCategory)(
3411         ISpObjectTokenInit *This,
3412         ISpObjectTokenCategory **ppTokenCategory);
3413 
3414     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
3415         ISpObjectTokenInit *This,
3416         IUnknown *pUnkOuter,
3417         DWORD dwClsContext,
3418         REFIID riid,
3419         void **ppvObject);
3420 
3421     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
3422         ISpObjectTokenInit *This,
3423         REFCLSID clsidCaller,
3424         LPCWSTR pszValueName,
3425         LPCWSTR pszFileNameSpecifier,
3426         ULONG nFolder,
3427         LPWSTR *ppszFilePath);
3428 
3429     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
3430         ISpObjectTokenInit *This,
3431         REFCLSID clsidCaller,
3432         LPCWSTR pszKeyName,
3433         WINBOOL fDeleteFile);
3434 
3435     HRESULT (STDMETHODCALLTYPE *Remove)(
3436         ISpObjectTokenInit *This,
3437         const CLSID *pclsidCaller);
3438 
3439     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
3440         ISpObjectTokenInit *This,
3441         LPCWSTR pszTypeOfUI,
3442         void *pvExtraData,
3443         ULONG cbExtraData,
3444         IUnknown *punkObject,
3445         WINBOOL *pfSupported);
3446 
3447     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
3448         ISpObjectTokenInit *This,
3449         HWND hwndParent,
3450         LPCWSTR pszTitle,
3451         LPCWSTR pszTypeOfUI,
3452         void *pvExtraData,
3453         ULONG cbExtraData,
3454         IUnknown *punkObject);
3455 
3456     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
3457         ISpObjectTokenInit *This,
3458         LPCWSTR pszAttributes,
3459         WINBOOL *pfMatches);
3460 
3461     /*** ISpObjectTokenInit methods ***/
3462     HRESULT (STDMETHODCALLTYPE *InitFromDataKey)(
3463         ISpObjectTokenInit *This,
3464         LPCWSTR pszCategoryId,
3465         LPCWSTR pszTokenId,
3466         ISpDataKey *pDataKey);
3467 
3468     END_INTERFACE
3469 } ISpObjectTokenInitVtbl;
3470 
3471 interface ISpObjectTokenInit {
3472     CONST_VTBL ISpObjectTokenInitVtbl* lpVtbl;
3473 };
3474 
3475 #ifdef COBJMACROS
3476 #ifndef WIDL_C_INLINE_WRAPPERS
3477 /*** IUnknown methods ***/
3478 #define ISpObjectTokenInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3479 #define ISpObjectTokenInit_AddRef(This) (This)->lpVtbl->AddRef(This)
3480 #define ISpObjectTokenInit_Release(This) (This)->lpVtbl->Release(This)
3481 /*** ISpDataKey methods ***/
3482 #define ISpObjectTokenInit_SetData(This,pszValueName,cbData,pData) (This)->lpVtbl->SetData(This,pszValueName,cbData,pData)
3483 #define ISpObjectTokenInit_GetData(This,pszValueName,pcbData,pData) (This)->lpVtbl->GetData(This,pszValueName,pcbData,pData)
3484 #define ISpObjectTokenInit_SetStringValue(This,pszValueName,pszValue) (This)->lpVtbl->SetStringValue(This,pszValueName,pszValue)
3485 #define ISpObjectTokenInit_GetStringValue(This,pszValueName,ppszValue) (This)->lpVtbl->GetStringValue(This,pszValueName,ppszValue)
3486 #define ISpObjectTokenInit_SetDWORD(This,pszValueName,dwValue) (This)->lpVtbl->SetDWORD(This,pszValueName,dwValue)
3487 #define ISpObjectTokenInit_GetDWORD(This,pszValueName,pdwValue) (This)->lpVtbl->GetDWORD(This,pszValueName,pdwValue)
3488 #define ISpObjectTokenInit_OpenKey(This,pszSubKeyName,ppSubKey) (This)->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey)
3489 #define ISpObjectTokenInit_CreateKey(This,pszSubKey,ppSubKey) (This)->lpVtbl->CreateKey(This,pszSubKey,ppSubKey)
3490 #define ISpObjectTokenInit_DeleteKey(This,pszSubKey) (This)->lpVtbl->DeleteKey(This,pszSubKey)
3491 #define ISpObjectTokenInit_DeleteValue(This,pszValueName) (This)->lpVtbl->DeleteValue(This,pszValueName)
3492 #define ISpObjectTokenInit_EnumKeys(This,Index,ppszSubKeyName) (This)->lpVtbl->EnumKeys(This,Index,ppszSubKeyName)
3493 #define ISpObjectTokenInit_EnumValues(This,Index,ppszValueName) (This)->lpVtbl->EnumValues(This,Index,ppszValueName)
3494 /*** ISpObjectToken methods ***/
3495 #define ISpObjectTokenInit_SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist) (This)->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist)
3496 #define ISpObjectTokenInit_GetId(This,ppszCoMemTokenId) (This)->lpVtbl->GetId(This,ppszCoMemTokenId)
3497 #define ISpObjectTokenInit_GetCategory(This,ppTokenCategory) (This)->lpVtbl->GetCategory(This,ppTokenCategory)
3498 #define ISpObjectTokenInit_CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject) (This)->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject)
3499 #define ISpObjectTokenInit_GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath) (This)->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath)
3500 #define ISpObjectTokenInit_RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile)
3501 #define ISpObjectTokenInit_Remove(This,pclsidCaller) (This)->lpVtbl->Remove(This,pclsidCaller)
3502 #define ISpObjectTokenInit_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported)
3503 #define ISpObjectTokenInit_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject)
3504 #define ISpObjectTokenInit_MatchesAttributes(This,pszAttributes,pfMatches) (This)->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches)
3505 /*** ISpObjectTokenInit methods ***/
3506 #define ISpObjectTokenInit_InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey) (This)->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey)
3507 #else
3508 /*** IUnknown methods ***/
3509 static FORCEINLINE HRESULT ISpObjectTokenInit_QueryInterface(ISpObjectTokenInit* This,REFIID riid,void **ppvObject) {
3510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3511 }
3512 static FORCEINLINE ULONG ISpObjectTokenInit_AddRef(ISpObjectTokenInit* This) {
3513     return This->lpVtbl->AddRef(This);
3514 }
3515 static FORCEINLINE ULONG ISpObjectTokenInit_Release(ISpObjectTokenInit* This) {
3516     return This->lpVtbl->Release(This);
3517 }
3518 /*** ISpDataKey methods ***/
3519 static FORCEINLINE HRESULT ISpObjectTokenInit_SetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG cbData,const BYTE *pData) {
3520     return This->lpVtbl->SetData(This,pszValueName,cbData,pData);
3521 }
3522 static FORCEINLINE HRESULT ISpObjectTokenInit_GetData(ISpObjectTokenInit* This,LPCWSTR pszValueName,ULONG *pcbData,BYTE *pData) {
3523     return This->lpVtbl->GetData(This,pszValueName,pcbData,pData);
3524 }
3525 static FORCEINLINE HRESULT ISpObjectTokenInit_SetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPCWSTR pszValue) {
3526     return This->lpVtbl->SetStringValue(This,pszValueName,pszValue);
3527 }
3528 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStringValue(ISpObjectTokenInit* This,LPCWSTR pszValueName,LPWSTR *ppszValue) {
3529     return This->lpVtbl->GetStringValue(This,pszValueName,ppszValue);
3530 }
3531 static FORCEINLINE HRESULT ISpObjectTokenInit_SetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD dwValue) {
3532     return This->lpVtbl->SetDWORD(This,pszValueName,dwValue);
3533 }
3534 static FORCEINLINE HRESULT ISpObjectTokenInit_GetDWORD(ISpObjectTokenInit* This,LPCWSTR pszValueName,DWORD *pdwValue) {
3535     return This->lpVtbl->GetDWORD(This,pszValueName,pdwValue);
3536 }
3537 static FORCEINLINE HRESULT ISpObjectTokenInit_OpenKey(ISpObjectTokenInit* This,LPCWSTR pszSubKeyName,ISpDataKey **ppSubKey) {
3538     return This->lpVtbl->OpenKey(This,pszSubKeyName,ppSubKey);
3539 }
3540 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey,ISpDataKey **ppSubKey) {
3541     return This->lpVtbl->CreateKey(This,pszSubKey,ppSubKey);
3542 }
3543 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteKey(ISpObjectTokenInit* This,LPCWSTR pszSubKey) {
3544     return This->lpVtbl->DeleteKey(This,pszSubKey);
3545 }
3546 static FORCEINLINE HRESULT ISpObjectTokenInit_DeleteValue(ISpObjectTokenInit* This,LPCWSTR pszValueName) {
3547     return This->lpVtbl->DeleteValue(This,pszValueName);
3548 }
3549 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumKeys(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszSubKeyName) {
3550     return This->lpVtbl->EnumKeys(This,Index,ppszSubKeyName);
3551 }
3552 static FORCEINLINE HRESULT ISpObjectTokenInit_EnumValues(ISpObjectTokenInit* This,ULONG Index,LPWSTR *ppszValueName) {
3553     return This->lpVtbl->EnumValues(This,Index,ppszValueName);
3554 }
3555 /*** ISpObjectToken methods ***/
3556 static FORCEINLINE HRESULT ISpObjectTokenInit_SetId(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,WINBOOL fCreateIfNotExist) {
3557     return This->lpVtbl->SetId(This,pszCategoryId,pszTokenId,fCreateIfNotExist);
3558 }
3559 static FORCEINLINE HRESULT ISpObjectTokenInit_GetId(ISpObjectTokenInit* This,LPWSTR *ppszCoMemTokenId) {
3560     return This->lpVtbl->GetId(This,ppszCoMemTokenId);
3561 }
3562 static FORCEINLINE HRESULT ISpObjectTokenInit_GetCategory(ISpObjectTokenInit* This,ISpObjectTokenCategory **ppTokenCategory) {
3563     return This->lpVtbl->GetCategory(This,ppTokenCategory);
3564 }
3565 static FORCEINLINE HRESULT ISpObjectTokenInit_CreateInstance(ISpObjectTokenInit* This,IUnknown *pUnkOuter,DWORD dwClsContext,REFIID riid,void **ppvObject) {
3566     return This->lpVtbl->CreateInstance(This,pUnkOuter,dwClsContext,riid,ppvObject);
3567 }
3568 static FORCEINLINE HRESULT ISpObjectTokenInit_GetStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszValueName,LPCWSTR pszFileNameSpecifier,ULONG nFolder,LPWSTR *ppszFilePath) {
3569     return This->lpVtbl->GetStorageFileName(This,clsidCaller,pszValueName,pszFileNameSpecifier,nFolder,ppszFilePath);
3570 }
3571 static FORCEINLINE HRESULT ISpObjectTokenInit_RemoveStorageFileName(ISpObjectTokenInit* This,REFCLSID clsidCaller,LPCWSTR pszKeyName,WINBOOL fDeleteFile) {
3572     return This->lpVtbl->RemoveStorageFileName(This,clsidCaller,pszKeyName,fDeleteFile);
3573 }
3574 static FORCEINLINE HRESULT ISpObjectTokenInit_Remove(ISpObjectTokenInit* This,const CLSID *pclsidCaller) {
3575     return This->lpVtbl->Remove(This,pclsidCaller);
3576 }
3577 static FORCEINLINE HRESULT ISpObjectTokenInit_IsUISupported(ISpObjectTokenInit* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject,WINBOOL *pfSupported) {
3578     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,punkObject,pfSupported);
3579 }
3580 static FORCEINLINE HRESULT ISpObjectTokenInit_DisplayUI(ISpObjectTokenInit* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,IUnknown *punkObject) {
3581     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData,punkObject);
3582 }
3583 static FORCEINLINE HRESULT ISpObjectTokenInit_MatchesAttributes(ISpObjectTokenInit* This,LPCWSTR pszAttributes,WINBOOL *pfMatches) {
3584     return This->lpVtbl->MatchesAttributes(This,pszAttributes,pfMatches);
3585 }
3586 /*** ISpObjectTokenInit methods ***/
3587 static FORCEINLINE HRESULT ISpObjectTokenInit_InitFromDataKey(ISpObjectTokenInit* This,LPCWSTR pszCategoryId,LPCWSTR pszTokenId,ISpDataKey *pDataKey) {
3588     return This->lpVtbl->InitFromDataKey(This,pszCategoryId,pszTokenId,pDataKey);
3589 }
3590 #endif
3591 #endif
3592 
3593 #endif
3594 
3595 
3596 #endif  /* __ISpObjectTokenInit_INTERFACE_DEFINED__ */
3597 
3598 /*****************************************************************************
3599  * ISpResourceManager interface
3600  */
3601 #ifndef __ISpResourceManager_INTERFACE_DEFINED__
3602 #define __ISpResourceManager_INTERFACE_DEFINED__
3603 
3604 DEFINE_GUID(IID_ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd);
3605 #if defined(__cplusplus) && !defined(CINTERFACE)
3606 MIDL_INTERFACE("93384e18-5014-43d5-adbb-a78e055926bd")
3607 ISpResourceManager : public IServiceProvider
3608 {
3609     virtual HRESULT STDMETHODCALLTYPE SetObject(
3610         REFGUID guidServiceId,
3611         IUnknown *pUnkObject) = 0;
3612 
3613     virtual HRESULT STDMETHODCALLTYPE GetObject(
3614         REFGUID guidServiceId,
3615         REFCLSID ObjectCLSID,
3616         REFIID ObjectIID,
3617         WINBOOL fReleaseWhenLastExternalRefReleased,
3618         void **ppObject) = 0;
3619 
3620 };
3621 #ifdef __CRT_UUID_DECL
3622 __CRT_UUID_DECL(ISpResourceManager, 0x93384e18, 0x5014, 0x43d5, 0xad,0xbb, 0xa7,0x8e,0x05,0x59,0x26,0xbd)
3623 #endif
3624 #else
3625 typedef struct ISpResourceManagerVtbl {
3626     BEGIN_INTERFACE
3627 
3628     /*** IUnknown methods ***/
3629     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3630         ISpResourceManager *This,
3631         REFIID riid,
3632         void **ppvObject);
3633 
3634     ULONG (STDMETHODCALLTYPE *AddRef)(
3635         ISpResourceManager *This);
3636 
3637     ULONG (STDMETHODCALLTYPE *Release)(
3638         ISpResourceManager *This);
3639 
3640     /*** IServiceProvider methods ***/
3641     HRESULT (STDMETHODCALLTYPE *QueryService)(
3642         ISpResourceManager *This,
3643         REFGUID guidService,
3644         REFIID riid,
3645         void **ppvObject);
3646 
3647     /*** ISpResourceManager methods ***/
3648     HRESULT (STDMETHODCALLTYPE *SetObject)(
3649         ISpResourceManager *This,
3650         REFGUID guidServiceId,
3651         IUnknown *pUnkObject);
3652 
3653     HRESULT (STDMETHODCALLTYPE *GetObject)(
3654         ISpResourceManager *This,
3655         REFGUID guidServiceId,
3656         REFCLSID ObjectCLSID,
3657         REFIID ObjectIID,
3658         WINBOOL fReleaseWhenLastExternalRefReleased,
3659         void **ppObject);
3660 
3661     END_INTERFACE
3662 } ISpResourceManagerVtbl;
3663 
3664 interface ISpResourceManager {
3665     CONST_VTBL ISpResourceManagerVtbl* lpVtbl;
3666 };
3667 
3668 #ifdef COBJMACROS
3669 #ifndef WIDL_C_INLINE_WRAPPERS
3670 /*** IUnknown methods ***/
3671 #define ISpResourceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3672 #define ISpResourceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
3673 #define ISpResourceManager_Release(This) (This)->lpVtbl->Release(This)
3674 /*** IServiceProvider methods ***/
3675 #define ISpResourceManager_QueryService(This,guidService,riid,ppvObject) (This)->lpVtbl->QueryService(This,guidService,riid,ppvObject)
3676 /*** ISpResourceManager methods ***/
3677 #define ISpResourceManager_SetObject(This,guidServiceId,pUnkObject) (This)->lpVtbl->SetObject(This,guidServiceId,pUnkObject)
3678 #define ISpResourceManager_GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject) (This)->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject)
3679 #else
3680 /*** IUnknown methods ***/
3681 static FORCEINLINE HRESULT ISpResourceManager_QueryInterface(ISpResourceManager* This,REFIID riid,void **ppvObject) {
3682     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3683 }
3684 static FORCEINLINE ULONG ISpResourceManager_AddRef(ISpResourceManager* This) {
3685     return This->lpVtbl->AddRef(This);
3686 }
3687 static FORCEINLINE ULONG ISpResourceManager_Release(ISpResourceManager* This) {
3688     return This->lpVtbl->Release(This);
3689 }
3690 /*** IServiceProvider methods ***/
3691 static FORCEINLINE HRESULT ISpResourceManager_QueryService(ISpResourceManager* This,REFGUID guidService,REFIID riid,void **ppvObject) {
3692     return This->lpVtbl->QueryService(This,guidService,riid,ppvObject);
3693 }
3694 /*** ISpResourceManager methods ***/
3695 static FORCEINLINE HRESULT ISpResourceManager_SetObject(ISpResourceManager* This,REFGUID guidServiceId,IUnknown *pUnkObject) {
3696     return This->lpVtbl->SetObject(This,guidServiceId,pUnkObject);
3697 }
3698 static FORCEINLINE HRESULT ISpResourceManager_GetObject(ISpResourceManager* This,REFGUID guidServiceId,REFCLSID ObjectCLSID,REFIID ObjectIID,WINBOOL fReleaseWhenLastExternalRefReleased,void **ppObject) {
3699     return This->lpVtbl->GetObject(This,guidServiceId,ObjectCLSID,ObjectIID,fReleaseWhenLastExternalRefReleased,ppObject);
3700 }
3701 #endif
3702 #endif
3703 
3704 #endif
3705 
3706 
3707 #endif  /* __ISpResourceManager_INTERFACE_DEFINED__ */
3708 
3709 #if 0
3710 typedef struct SPEVENT {
3711     WORD eEventId;
3712     WORD elParamType;
3713     ULONG ulStreamNum;
3714     ULONGLONG ullAudioStreamOffset;
3715     WPARAM wParam;
3716     LPARAM lParam;
3717 } SPEVENT;
3718 typedef struct SPSERIALIZEDEVENT {
3719     WORD eEventId;
3720     WORD elParamType;
3721     ULONG ulStreamNum;
3722     ULONGLONG ullAudioStreamOffset;
3723     ULONG SerializedwParam;
3724     LONG SerializedlParam;
3725 } SPSERIALIZEDEVENT;
3726 typedef struct SPSERIALIZEDEVENT64 {
3727     WORD eEventId;
3728     WORD elParamType;
3729     ULONG ulStreamNum;
3730     ULONGLONG ullAudioStreamOffset;
3731     ULONGLONG SerializedwParam;
3732     LONGLONG SerializedlParam;
3733 } SPSERIALIZEDEVENT64;
3734 #else
3735 typedef struct SPEVENT {
3736   SPEVENTENUM eEventId : 16;
3737   SPEVENTLPARAMTYPE elParamType : 16;
3738   ULONG ulStreamNum;
3739   ULONGLONG ullAudioStreamOffset;
3740   WPARAM      wParam;
3741   LPARAM      lParam;
3742 } SPEVENT;
3743 
3744 typedef struct SPSERIALIZEDEVENT {
3745   SPEVENTENUM eEventId : 16;
3746   SPEVENTLPARAMTYPE elParamType : 16;
3747   ULONG ulStreamNum;
3748   ULONGLONG ullAudioStreamOffset;
3749   ULONG SerializedwParam;
3750   LONG SerializedlParam;
3751 } SPSERIALIZEDEVENT;
3752 
3753 typedef struct SPSERIALIZEDEVENT64 {
3754   SPEVENTENUM eEventId : 16;
3755   SPEVENTLPARAMTYPE elParamType : 16;
3756   ULONG ulStreamNum;
3757   ULONGLONG ullAudioStreamOffset;
3758   ULONGLONG SerializedwParam;
3759   LONGLONG SerializedlParam;
3760 } SPSERIALIZEDEVENT64;
3761 #endif
3762 #if 0
3763 typedef struct SPEVENTEX {
3764     WORD eEventId;
3765     WORD elParamType;
3766     ULONG ulStreamNum;
3767     ULONGLONG ullAudioStreamOffset;
3768     WPARAM wParam;
3769     LPARAM lParam;
3770     ULONGLONG ullAudioTimeOffset;
3771 } SPEVENTEX;
3772 #else
3773 typedef struct SPEVENTEX {
3774   SPEVENTENUM eEventId : 16;
3775   SPEVENTLPARAMTYPE elParamType : 16;
3776   ULONG ulStreamNum;
3777   ULONGLONG ullAudioStreamOffset;
3778   WPARAM wParam;
3779   LPARAM lParam;
3780   ULONGLONG ullAudioTimeOffset;
3781 } SPEVENTEX;
3782 #endif
3783 typedef struct SPEVENTSOURCEINFO {
3784     ULONGLONG ullEventInterest;
3785     ULONGLONG ullQueuedInterest;
3786     ULONG ulCount;
3787 } SPEVENTSOURCEINFO;
3788 /*****************************************************************************
3789  * ISpEventSource interface
3790  */
3791 #ifndef __ISpEventSource_INTERFACE_DEFINED__
3792 #define __ISpEventSource_INTERFACE_DEFINED__
3793 
3794 DEFINE_GUID(IID_ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
3795 #if defined(__cplusplus) && !defined(CINTERFACE)
3796 MIDL_INTERFACE("be7a9cce-5f9e-11d2-960f-00c04f8ee628")
3797 ISpEventSource : public ISpNotifySource
3798 {
3799     virtual HRESULT STDMETHODCALLTYPE SetInterest(
3800         ULONGLONG ullEventInterest,
3801         ULONGLONG ullQueuedInterest) = 0;
3802 
3803     virtual HRESULT STDMETHODCALLTYPE GetEvents(
3804         ULONG ulCount,
3805         SPEVENT *pEventArray,
3806         ULONG *pulFetched) = 0;
3807 
3808     virtual HRESULT STDMETHODCALLTYPE GetInfo(
3809         SPEVENTSOURCEINFO *pInfo) = 0;
3810 
3811 };
3812 #ifdef __CRT_UUID_DECL
3813 __CRT_UUID_DECL(ISpEventSource, 0xbe7a9cce, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
3814 #endif
3815 #else
3816 typedef struct ISpEventSourceVtbl {
3817     BEGIN_INTERFACE
3818 
3819     /*** IUnknown methods ***/
3820     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3821         ISpEventSource *This,
3822         REFIID riid,
3823         void **ppvObject);
3824 
3825     ULONG (STDMETHODCALLTYPE *AddRef)(
3826         ISpEventSource *This);
3827 
3828     ULONG (STDMETHODCALLTYPE *Release)(
3829         ISpEventSource *This);
3830 
3831     /*** ISpNotifySource methods ***/
3832     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
3833         ISpEventSource *This,
3834         ISpNotifySink *pNotifySink);
3835 
3836     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
3837         ISpEventSource *This,
3838         HWND hWnd,
3839         UINT Msg,
3840         WPARAM wParam,
3841         LPARAM lParam);
3842 
3843     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
3844         ISpEventSource *This,
3845         SPNOTIFYCALLBACK *pfnCallback,
3846         WPARAM wParam,
3847         LPARAM lParam);
3848 
3849     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
3850         ISpEventSource *This,
3851         ISpNotifyCallback *pSpCallback,
3852         WPARAM wParam,
3853         LPARAM lParam);
3854 
3855     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
3856         ISpEventSource *This);
3857 
3858     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
3859         ISpEventSource *This,
3860         DWORD dwMilliseconds);
3861 
3862     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
3863         ISpEventSource *This);
3864 
3865     /*** ISpEventSource methods ***/
3866     HRESULT (STDMETHODCALLTYPE *SetInterest)(
3867         ISpEventSource *This,
3868         ULONGLONG ullEventInterest,
3869         ULONGLONG ullQueuedInterest);
3870 
3871     HRESULT (STDMETHODCALLTYPE *GetEvents)(
3872         ISpEventSource *This,
3873         ULONG ulCount,
3874         SPEVENT *pEventArray,
3875         ULONG *pulFetched);
3876 
3877     HRESULT (STDMETHODCALLTYPE *GetInfo)(
3878         ISpEventSource *This,
3879         SPEVENTSOURCEINFO *pInfo);
3880 
3881     END_INTERFACE
3882 } ISpEventSourceVtbl;
3883 
3884 interface ISpEventSource {
3885     CONST_VTBL ISpEventSourceVtbl* lpVtbl;
3886 };
3887 
3888 #ifdef COBJMACROS
3889 #ifndef WIDL_C_INLINE_WRAPPERS
3890 /*** IUnknown methods ***/
3891 #define ISpEventSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
3892 #define ISpEventSource_AddRef(This) (This)->lpVtbl->AddRef(This)
3893 #define ISpEventSource_Release(This) (This)->lpVtbl->Release(This)
3894 /*** ISpNotifySource methods ***/
3895 #define ISpEventSource_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
3896 #define ISpEventSource_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
3897 #define ISpEventSource_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
3898 #define ISpEventSource_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
3899 #define ISpEventSource_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
3900 #define ISpEventSource_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
3901 #define ISpEventSource_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
3902 /*** ISpEventSource methods ***/
3903 #define ISpEventSource_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
3904 #define ISpEventSource_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
3905 #define ISpEventSource_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
3906 #else
3907 /*** IUnknown methods ***/
3908 static FORCEINLINE HRESULT ISpEventSource_QueryInterface(ISpEventSource* This,REFIID riid,void **ppvObject) {
3909     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
3910 }
3911 static FORCEINLINE ULONG ISpEventSource_AddRef(ISpEventSource* This) {
3912     return This->lpVtbl->AddRef(This);
3913 }
3914 static FORCEINLINE ULONG ISpEventSource_Release(ISpEventSource* This) {
3915     return This->lpVtbl->Release(This);
3916 }
3917 /*** ISpNotifySource methods ***/
3918 static FORCEINLINE HRESULT ISpEventSource_SetNotifySink(ISpEventSource* This,ISpNotifySink *pNotifySink) {
3919     return This->lpVtbl->SetNotifySink(This,pNotifySink);
3920 }
3921 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWindowMessage(ISpEventSource* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
3922     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
3923 }
3924 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackFunction(ISpEventSource* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
3925     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
3926 }
3927 static FORCEINLINE HRESULT ISpEventSource_SetNotifyCallbackInterface(ISpEventSource* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
3928     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
3929 }
3930 static FORCEINLINE HRESULT ISpEventSource_SetNotifyWin32Event(ISpEventSource* This) {
3931     return This->lpVtbl->SetNotifyWin32Event(This);
3932 }
3933 static FORCEINLINE HRESULT ISpEventSource_WaitForNotifyEvent(ISpEventSource* This,DWORD dwMilliseconds) {
3934     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
3935 }
3936 static FORCEINLINE HANDLE ISpEventSource_GetNotifyEventHandle(ISpEventSource* This) {
3937     return This->lpVtbl->GetNotifyEventHandle(This);
3938 }
3939 /*** ISpEventSource methods ***/
3940 static FORCEINLINE HRESULT ISpEventSource_SetInterest(ISpEventSource* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
3941     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
3942 }
3943 static FORCEINLINE HRESULT ISpEventSource_GetEvents(ISpEventSource* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
3944     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
3945 }
3946 static FORCEINLINE HRESULT ISpEventSource_GetInfo(ISpEventSource* This,SPEVENTSOURCEINFO *pInfo) {
3947     return This->lpVtbl->GetInfo(This,pInfo);
3948 }
3949 #endif
3950 #endif
3951 
3952 #endif
3953 
3954 
3955 #endif  /* __ISpEventSource_INTERFACE_DEFINED__ */
3956 
3957 /*****************************************************************************
3958  * ISpEventSource2 interface
3959  */
3960 #ifndef __ISpEventSource2_INTERFACE_DEFINED__
3961 #define __ISpEventSource2_INTERFACE_DEFINED__
3962 
3963 DEFINE_GUID(IID_ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b);
3964 #if defined(__cplusplus) && !defined(CINTERFACE)
3965 MIDL_INTERFACE("2373a435-6a4b-429e-a6ac-d4231a61975b")
3966 ISpEventSource2 : public ISpEventSource
3967 {
3968     virtual HRESULT STDMETHODCALLTYPE GetEventsEx(
3969         ULONG ulCount,
3970         SPEVENTEX *pEventArray,
3971         ULONG *pulFetched) = 0;
3972 
3973 };
3974 #ifdef __CRT_UUID_DECL
3975 __CRT_UUID_DECL(ISpEventSource2, 0x2373a435, 0x6a4b, 0x429e, 0xa6,0xac, 0xd4,0x23,0x1a,0x61,0x97,0x5b)
3976 #endif
3977 #else
3978 typedef struct ISpEventSource2Vtbl {
3979     BEGIN_INTERFACE
3980 
3981     /*** IUnknown methods ***/
3982     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3983         ISpEventSource2 *This,
3984         REFIID riid,
3985         void **ppvObject);
3986 
3987     ULONG (STDMETHODCALLTYPE *AddRef)(
3988         ISpEventSource2 *This);
3989 
3990     ULONG (STDMETHODCALLTYPE *Release)(
3991         ISpEventSource2 *This);
3992 
3993     /*** ISpNotifySource methods ***/
3994     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
3995         ISpEventSource2 *This,
3996         ISpNotifySink *pNotifySink);
3997 
3998     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
3999         ISpEventSource2 *This,
4000         HWND hWnd,
4001         UINT Msg,
4002         WPARAM wParam,
4003         LPARAM lParam);
4004 
4005     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
4006         ISpEventSource2 *This,
4007         SPNOTIFYCALLBACK *pfnCallback,
4008         WPARAM wParam,
4009         LPARAM lParam);
4010 
4011     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
4012         ISpEventSource2 *This,
4013         ISpNotifyCallback *pSpCallback,
4014         WPARAM wParam,
4015         LPARAM lParam);
4016 
4017     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
4018         ISpEventSource2 *This);
4019 
4020     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
4021         ISpEventSource2 *This,
4022         DWORD dwMilliseconds);
4023 
4024     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
4025         ISpEventSource2 *This);
4026 
4027     /*** ISpEventSource methods ***/
4028     HRESULT (STDMETHODCALLTYPE *SetInterest)(
4029         ISpEventSource2 *This,
4030         ULONGLONG ullEventInterest,
4031         ULONGLONG ullQueuedInterest);
4032 
4033     HRESULT (STDMETHODCALLTYPE *GetEvents)(
4034         ISpEventSource2 *This,
4035         ULONG ulCount,
4036         SPEVENT *pEventArray,
4037         ULONG *pulFetched);
4038 
4039     HRESULT (STDMETHODCALLTYPE *GetInfo)(
4040         ISpEventSource2 *This,
4041         SPEVENTSOURCEINFO *pInfo);
4042 
4043     /*** ISpEventSource2 methods ***/
4044     HRESULT (STDMETHODCALLTYPE *GetEventsEx)(
4045         ISpEventSource2 *This,
4046         ULONG ulCount,
4047         SPEVENTEX *pEventArray,
4048         ULONG *pulFetched);
4049 
4050     END_INTERFACE
4051 } ISpEventSource2Vtbl;
4052 
4053 interface ISpEventSource2 {
4054     CONST_VTBL ISpEventSource2Vtbl* lpVtbl;
4055 };
4056 
4057 #ifdef COBJMACROS
4058 #ifndef WIDL_C_INLINE_WRAPPERS
4059 /*** IUnknown methods ***/
4060 #define ISpEventSource2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4061 #define ISpEventSource2_AddRef(This) (This)->lpVtbl->AddRef(This)
4062 #define ISpEventSource2_Release(This) (This)->lpVtbl->Release(This)
4063 /*** ISpNotifySource methods ***/
4064 #define ISpEventSource2_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
4065 #define ISpEventSource2_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
4066 #define ISpEventSource2_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
4067 #define ISpEventSource2_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
4068 #define ISpEventSource2_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
4069 #define ISpEventSource2_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
4070 #define ISpEventSource2_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
4071 /*** ISpEventSource methods ***/
4072 #define ISpEventSource2_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
4073 #define ISpEventSource2_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
4074 #define ISpEventSource2_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
4075 /*** ISpEventSource2 methods ***/
4076 #define ISpEventSource2_GetEventsEx(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched)
4077 #else
4078 /*** IUnknown methods ***/
4079 static FORCEINLINE HRESULT ISpEventSource2_QueryInterface(ISpEventSource2* This,REFIID riid,void **ppvObject) {
4080     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4081 }
4082 static FORCEINLINE ULONG ISpEventSource2_AddRef(ISpEventSource2* This) {
4083     return This->lpVtbl->AddRef(This);
4084 }
4085 static FORCEINLINE ULONG ISpEventSource2_Release(ISpEventSource2* This) {
4086     return This->lpVtbl->Release(This);
4087 }
4088 /*** ISpNotifySource methods ***/
4089 static FORCEINLINE HRESULT ISpEventSource2_SetNotifySink(ISpEventSource2* This,ISpNotifySink *pNotifySink) {
4090     return This->lpVtbl->SetNotifySink(This,pNotifySink);
4091 }
4092 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyWindowMessage(ISpEventSource2* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
4093     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
4094 }
4095 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyCallbackFunction(ISpEventSource2* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
4096     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
4097 }
4098 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyCallbackInterface(ISpEventSource2* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
4099     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
4100 }
4101 static FORCEINLINE HRESULT ISpEventSource2_SetNotifyWin32Event(ISpEventSource2* This) {
4102     return This->lpVtbl->SetNotifyWin32Event(This);
4103 }
4104 static FORCEINLINE HRESULT ISpEventSource2_WaitForNotifyEvent(ISpEventSource2* This,DWORD dwMilliseconds) {
4105     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
4106 }
4107 static FORCEINLINE HANDLE ISpEventSource2_GetNotifyEventHandle(ISpEventSource2* This) {
4108     return This->lpVtbl->GetNotifyEventHandle(This);
4109 }
4110 /*** ISpEventSource methods ***/
4111 static FORCEINLINE HRESULT ISpEventSource2_SetInterest(ISpEventSource2* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
4112     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
4113 }
4114 static FORCEINLINE HRESULT ISpEventSource2_GetEvents(ISpEventSource2* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
4115     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
4116 }
4117 static FORCEINLINE HRESULT ISpEventSource2_GetInfo(ISpEventSource2* This,SPEVENTSOURCEINFO *pInfo) {
4118     return This->lpVtbl->GetInfo(This,pInfo);
4119 }
4120 /*** ISpEventSource2 methods ***/
4121 static FORCEINLINE HRESULT ISpEventSource2_GetEventsEx(ISpEventSource2* This,ULONG ulCount,SPEVENTEX *pEventArray,ULONG *pulFetched) {
4122     return This->lpVtbl->GetEventsEx(This,ulCount,pEventArray,pulFetched);
4123 }
4124 #endif
4125 #endif
4126 
4127 #endif
4128 
4129 
4130 #endif  /* __ISpEventSource2_INTERFACE_DEFINED__ */
4131 
4132 /*****************************************************************************
4133  * ISpEventSink interface
4134  */
4135 #ifndef __ISpEventSink_INTERFACE_DEFINED__
4136 #define __ISpEventSink_INTERFACE_DEFINED__
4137 
4138 DEFINE_GUID(IID_ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
4139 #if defined(__cplusplus) && !defined(CINTERFACE)
4140 MIDL_INTERFACE("be7a9cc9-5f9e-11d2-960f-00c04f8ee628")
4141 ISpEventSink : public IUnknown
4142 {
4143     virtual HRESULT STDMETHODCALLTYPE AddEvents(
4144         const SPEVENT *pEventArray,
4145         ULONG ulCount) = 0;
4146 
4147     virtual HRESULT STDMETHODCALLTYPE GetEventInterest(
4148         ULONGLONG *pullEventInterest) = 0;
4149 
4150 };
4151 #ifdef __CRT_UUID_DECL
4152 __CRT_UUID_DECL(ISpEventSink, 0xbe7a9cc9, 0x5f9e, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
4153 #endif
4154 #else
4155 typedef struct ISpEventSinkVtbl {
4156     BEGIN_INTERFACE
4157 
4158     /*** IUnknown methods ***/
4159     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4160         ISpEventSink *This,
4161         REFIID riid,
4162         void **ppvObject);
4163 
4164     ULONG (STDMETHODCALLTYPE *AddRef)(
4165         ISpEventSink *This);
4166 
4167     ULONG (STDMETHODCALLTYPE *Release)(
4168         ISpEventSink *This);
4169 
4170     /*** ISpEventSink methods ***/
4171     HRESULT (STDMETHODCALLTYPE *AddEvents)(
4172         ISpEventSink *This,
4173         const SPEVENT *pEventArray,
4174         ULONG ulCount);
4175 
4176     HRESULT (STDMETHODCALLTYPE *GetEventInterest)(
4177         ISpEventSink *This,
4178         ULONGLONG *pullEventInterest);
4179 
4180     END_INTERFACE
4181 } ISpEventSinkVtbl;
4182 
4183 interface ISpEventSink {
4184     CONST_VTBL ISpEventSinkVtbl* lpVtbl;
4185 };
4186 
4187 #ifdef COBJMACROS
4188 #ifndef WIDL_C_INLINE_WRAPPERS
4189 /*** IUnknown methods ***/
4190 #define ISpEventSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4191 #define ISpEventSink_AddRef(This) (This)->lpVtbl->AddRef(This)
4192 #define ISpEventSink_Release(This) (This)->lpVtbl->Release(This)
4193 /*** ISpEventSink methods ***/
4194 #define ISpEventSink_AddEvents(This,pEventArray,ulCount) (This)->lpVtbl->AddEvents(This,pEventArray,ulCount)
4195 #define ISpEventSink_GetEventInterest(This,pullEventInterest) (This)->lpVtbl->GetEventInterest(This,pullEventInterest)
4196 #else
4197 /*** IUnknown methods ***/
4198 static FORCEINLINE HRESULT ISpEventSink_QueryInterface(ISpEventSink* This,REFIID riid,void **ppvObject) {
4199     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4200 }
4201 static FORCEINLINE ULONG ISpEventSink_AddRef(ISpEventSink* This) {
4202     return This->lpVtbl->AddRef(This);
4203 }
4204 static FORCEINLINE ULONG ISpEventSink_Release(ISpEventSink* This) {
4205     return This->lpVtbl->Release(This);
4206 }
4207 /*** ISpEventSink methods ***/
4208 static FORCEINLINE HRESULT ISpEventSink_AddEvents(ISpEventSink* This,const SPEVENT *pEventArray,ULONG ulCount) {
4209     return This->lpVtbl->AddEvents(This,pEventArray,ulCount);
4210 }
4211 static FORCEINLINE HRESULT ISpEventSink_GetEventInterest(ISpEventSink* This,ULONGLONG *pullEventInterest) {
4212     return This->lpVtbl->GetEventInterest(This,pullEventInterest);
4213 }
4214 #endif
4215 #endif
4216 
4217 #endif
4218 
4219 
4220 #endif  /* __ISpEventSink_INTERFACE_DEFINED__ */
4221 
4222 /*****************************************************************************
4223  * ISpStreamFormat interface
4224  */
4225 #ifndef __ISpStreamFormat_INTERFACE_DEFINED__
4226 #define __ISpStreamFormat_INTERFACE_DEFINED__
4227 
4228 DEFINE_GUID(IID_ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f);
4229 #if defined(__cplusplus) && !defined(CINTERFACE)
4230 MIDL_INTERFACE("bed530be-2606-4f4d-a1c0-54c5cda5566f")
4231 ISpStreamFormat : public IStream
4232 {
4233     virtual HRESULT STDMETHODCALLTYPE GetFormat(
4234         GUID *pguidFormatId,
4235         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
4236 
4237 };
4238 #ifdef __CRT_UUID_DECL
4239 __CRT_UUID_DECL(ISpStreamFormat, 0xbed530be, 0x2606, 0x4f4d, 0xa1,0xc0, 0x54,0xc5,0xcd,0xa5,0x56,0x6f)
4240 #endif
4241 #else
4242 typedef struct ISpStreamFormatVtbl {
4243     BEGIN_INTERFACE
4244 
4245     /*** IUnknown methods ***/
4246     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4247         ISpStreamFormat *This,
4248         REFIID riid,
4249         void **ppvObject);
4250 
4251     ULONG (STDMETHODCALLTYPE *AddRef)(
4252         ISpStreamFormat *This);
4253 
4254     ULONG (STDMETHODCALLTYPE *Release)(
4255         ISpStreamFormat *This);
4256 
4257     /*** ISequentialStream methods ***/
4258     HRESULT (STDMETHODCALLTYPE *Read)(
4259         ISpStreamFormat *This,
4260         void *pv,
4261         ULONG cb,
4262         ULONG *pcbRead);
4263 
4264     HRESULT (STDMETHODCALLTYPE *Write)(
4265         ISpStreamFormat *This,
4266         const void *pv,
4267         ULONG cb,
4268         ULONG *pcbWritten);
4269 
4270     /*** IStream methods ***/
4271     HRESULT (STDMETHODCALLTYPE *Seek)(
4272         ISpStreamFormat *This,
4273         LARGE_INTEGER dlibMove,
4274         DWORD dwOrigin,
4275         ULARGE_INTEGER *plibNewPosition);
4276 
4277     HRESULT (STDMETHODCALLTYPE *SetSize)(
4278         ISpStreamFormat *This,
4279         ULARGE_INTEGER libNewSize);
4280 
4281     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4282         ISpStreamFormat *This,
4283         IStream *pstm,
4284         ULARGE_INTEGER cb,
4285         ULARGE_INTEGER *pcbRead,
4286         ULARGE_INTEGER *pcbWritten);
4287 
4288     HRESULT (STDMETHODCALLTYPE *Commit)(
4289         ISpStreamFormat *This,
4290         DWORD grfCommitFlags);
4291 
4292     HRESULT (STDMETHODCALLTYPE *Revert)(
4293         ISpStreamFormat *This);
4294 
4295     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4296         ISpStreamFormat *This,
4297         ULARGE_INTEGER libOffset,
4298         ULARGE_INTEGER cb,
4299         DWORD dwLockType);
4300 
4301     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4302         ISpStreamFormat *This,
4303         ULARGE_INTEGER libOffset,
4304         ULARGE_INTEGER cb,
4305         DWORD dwLockType);
4306 
4307     HRESULT (STDMETHODCALLTYPE *Stat)(
4308         ISpStreamFormat *This,
4309         STATSTG *pstatstg,
4310         DWORD grfStatFlag);
4311 
4312     HRESULT (STDMETHODCALLTYPE *Clone)(
4313         ISpStreamFormat *This,
4314         IStream **ppstm);
4315 
4316     /*** ISpStreamFormat methods ***/
4317     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4318         ISpStreamFormat *This,
4319         GUID *pguidFormatId,
4320         WAVEFORMATEX **ppCoMemWaveFormatEx);
4321 
4322     END_INTERFACE
4323 } ISpStreamFormatVtbl;
4324 
4325 interface ISpStreamFormat {
4326     CONST_VTBL ISpStreamFormatVtbl* lpVtbl;
4327 };
4328 
4329 #ifdef COBJMACROS
4330 #ifndef WIDL_C_INLINE_WRAPPERS
4331 /*** IUnknown methods ***/
4332 #define ISpStreamFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4333 #define ISpStreamFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
4334 #define ISpStreamFormat_Release(This) (This)->lpVtbl->Release(This)
4335 /*** ISequentialStream methods ***/
4336 #define ISpStreamFormat_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4337 #define ISpStreamFormat_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4338 /*** IStream methods ***/
4339 #define ISpStreamFormat_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4340 #define ISpStreamFormat_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4341 #define ISpStreamFormat_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4342 #define ISpStreamFormat_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4343 #define ISpStreamFormat_Revert(This) (This)->lpVtbl->Revert(This)
4344 #define ISpStreamFormat_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4345 #define ISpStreamFormat_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4346 #define ISpStreamFormat_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4347 #define ISpStreamFormat_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4348 /*** ISpStreamFormat methods ***/
4349 #define ISpStreamFormat_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4350 #else
4351 /*** IUnknown methods ***/
4352 static FORCEINLINE HRESULT ISpStreamFormat_QueryInterface(ISpStreamFormat* This,REFIID riid,void **ppvObject) {
4353     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4354 }
4355 static FORCEINLINE ULONG ISpStreamFormat_AddRef(ISpStreamFormat* This) {
4356     return This->lpVtbl->AddRef(This);
4357 }
4358 static FORCEINLINE ULONG ISpStreamFormat_Release(ISpStreamFormat* This) {
4359     return This->lpVtbl->Release(This);
4360 }
4361 /*** ISequentialStream methods ***/
4362 static FORCEINLINE HRESULT ISpStreamFormat_Read(ISpStreamFormat* This,void *pv,ULONG cb,ULONG *pcbRead) {
4363     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4364 }
4365 static FORCEINLINE HRESULT ISpStreamFormat_Write(ISpStreamFormat* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4366     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4367 }
4368 /*** IStream methods ***/
4369 static FORCEINLINE HRESULT ISpStreamFormat_Seek(ISpStreamFormat* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4370     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4371 }
4372 static FORCEINLINE HRESULT ISpStreamFormat_SetSize(ISpStreamFormat* This,ULARGE_INTEGER libNewSize) {
4373     return This->lpVtbl->SetSize(This,libNewSize);
4374 }
4375 static FORCEINLINE HRESULT ISpStreamFormat_CopyTo(ISpStreamFormat* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4376     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4377 }
4378 static FORCEINLINE HRESULT ISpStreamFormat_Commit(ISpStreamFormat* This,DWORD grfCommitFlags) {
4379     return This->lpVtbl->Commit(This,grfCommitFlags);
4380 }
4381 static FORCEINLINE HRESULT ISpStreamFormat_Revert(ISpStreamFormat* This) {
4382     return This->lpVtbl->Revert(This);
4383 }
4384 static FORCEINLINE HRESULT ISpStreamFormat_LockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4385     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4386 }
4387 static FORCEINLINE HRESULT ISpStreamFormat_UnlockRegion(ISpStreamFormat* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4388     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4389 }
4390 static FORCEINLINE HRESULT ISpStreamFormat_Stat(ISpStreamFormat* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4391     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4392 }
4393 static FORCEINLINE HRESULT ISpStreamFormat_Clone(ISpStreamFormat* This,IStream **ppstm) {
4394     return This->lpVtbl->Clone(This,ppstm);
4395 }
4396 /*** ISpStreamFormat methods ***/
4397 static FORCEINLINE HRESULT ISpStreamFormat_GetFormat(ISpStreamFormat* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4398     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4399 }
4400 #endif
4401 #endif
4402 
4403 #endif
4404 
4405 
4406 #endif  /* __ISpStreamFormat_INTERFACE_DEFINED__ */
4407 
4408 /*****************************************************************************
4409  * ISpStream interface
4410  */
4411 #ifndef __ISpStream_INTERFACE_DEFINED__
4412 #define __ISpStream_INTERFACE_DEFINED__
4413 
4414 DEFINE_GUID(IID_ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e);
4415 #if defined(__cplusplus) && !defined(CINTERFACE)
4416 MIDL_INTERFACE("12e3cca9-7518-44c5-a5e7-ba5a79cb929e")
4417 ISpStream : public ISpStreamFormat
4418 {
4419     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4420         IStream *pStream,
4421         REFGUID rguidFormat,
4422         const WAVEFORMATEX *pWaveFormatEx) = 0;
4423 
4424     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4425         IStream **ppStream) = 0;
4426 
4427     virtual HRESULT STDMETHODCALLTYPE BindToFile(
4428         LPCWSTR pszFileName,
4429         SPFILEMODE eMode,
4430         const GUID *pFormatId,
4431         const WAVEFORMATEX *pWaveFormatEx,
4432         ULONGLONG ullEventInterest) = 0;
4433 
4434     virtual HRESULT STDMETHODCALLTYPE Close(
4435         ) = 0;
4436 
4437 };
4438 #ifdef __CRT_UUID_DECL
4439 __CRT_UUID_DECL(ISpStream, 0x12e3cca9, 0x7518, 0x44c5, 0xa5,0xe7, 0xba,0x5a,0x79,0xcb,0x92,0x9e)
4440 #endif
4441 #else
4442 typedef struct ISpStreamVtbl {
4443     BEGIN_INTERFACE
4444 
4445     /*** IUnknown methods ***/
4446     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4447         ISpStream *This,
4448         REFIID riid,
4449         void **ppvObject);
4450 
4451     ULONG (STDMETHODCALLTYPE *AddRef)(
4452         ISpStream *This);
4453 
4454     ULONG (STDMETHODCALLTYPE *Release)(
4455         ISpStream *This);
4456 
4457     /*** ISequentialStream methods ***/
4458     HRESULT (STDMETHODCALLTYPE *Read)(
4459         ISpStream *This,
4460         void *pv,
4461         ULONG cb,
4462         ULONG *pcbRead);
4463 
4464     HRESULT (STDMETHODCALLTYPE *Write)(
4465         ISpStream *This,
4466         const void *pv,
4467         ULONG cb,
4468         ULONG *pcbWritten);
4469 
4470     /*** IStream methods ***/
4471     HRESULT (STDMETHODCALLTYPE *Seek)(
4472         ISpStream *This,
4473         LARGE_INTEGER dlibMove,
4474         DWORD dwOrigin,
4475         ULARGE_INTEGER *plibNewPosition);
4476 
4477     HRESULT (STDMETHODCALLTYPE *SetSize)(
4478         ISpStream *This,
4479         ULARGE_INTEGER libNewSize);
4480 
4481     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4482         ISpStream *This,
4483         IStream *pstm,
4484         ULARGE_INTEGER cb,
4485         ULARGE_INTEGER *pcbRead,
4486         ULARGE_INTEGER *pcbWritten);
4487 
4488     HRESULT (STDMETHODCALLTYPE *Commit)(
4489         ISpStream *This,
4490         DWORD grfCommitFlags);
4491 
4492     HRESULT (STDMETHODCALLTYPE *Revert)(
4493         ISpStream *This);
4494 
4495     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4496         ISpStream *This,
4497         ULARGE_INTEGER libOffset,
4498         ULARGE_INTEGER cb,
4499         DWORD dwLockType);
4500 
4501     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4502         ISpStream *This,
4503         ULARGE_INTEGER libOffset,
4504         ULARGE_INTEGER cb,
4505         DWORD dwLockType);
4506 
4507     HRESULT (STDMETHODCALLTYPE *Stat)(
4508         ISpStream *This,
4509         STATSTG *pstatstg,
4510         DWORD grfStatFlag);
4511 
4512     HRESULT (STDMETHODCALLTYPE *Clone)(
4513         ISpStream *This,
4514         IStream **ppstm);
4515 
4516     /*** ISpStreamFormat methods ***/
4517     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4518         ISpStream *This,
4519         GUID *pguidFormatId,
4520         WAVEFORMATEX **ppCoMemWaveFormatEx);
4521 
4522     /*** ISpStream methods ***/
4523     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4524         ISpStream *This,
4525         IStream *pStream,
4526         REFGUID rguidFormat,
4527         const WAVEFORMATEX *pWaveFormatEx);
4528 
4529     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4530         ISpStream *This,
4531         IStream **ppStream);
4532 
4533     HRESULT (STDMETHODCALLTYPE *BindToFile)(
4534         ISpStream *This,
4535         LPCWSTR pszFileName,
4536         SPFILEMODE eMode,
4537         const GUID *pFormatId,
4538         const WAVEFORMATEX *pWaveFormatEx,
4539         ULONGLONG ullEventInterest);
4540 
4541     HRESULT (STDMETHODCALLTYPE *Close)(
4542         ISpStream *This);
4543 
4544     END_INTERFACE
4545 } ISpStreamVtbl;
4546 
4547 interface ISpStream {
4548     CONST_VTBL ISpStreamVtbl* lpVtbl;
4549 };
4550 
4551 #ifdef COBJMACROS
4552 #ifndef WIDL_C_INLINE_WRAPPERS
4553 /*** IUnknown methods ***/
4554 #define ISpStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4555 #define ISpStream_AddRef(This) (This)->lpVtbl->AddRef(This)
4556 #define ISpStream_Release(This) (This)->lpVtbl->Release(This)
4557 /*** ISequentialStream methods ***/
4558 #define ISpStream_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4559 #define ISpStream_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4560 /*** IStream methods ***/
4561 #define ISpStream_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4562 #define ISpStream_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4563 #define ISpStream_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4564 #define ISpStream_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4565 #define ISpStream_Revert(This) (This)->lpVtbl->Revert(This)
4566 #define ISpStream_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4567 #define ISpStream_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4568 #define ISpStream_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4569 #define ISpStream_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4570 /*** ISpStreamFormat methods ***/
4571 #define ISpStream_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4572 /*** ISpStream methods ***/
4573 #define ISpStream_SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx) (This)->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx)
4574 #define ISpStream_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4575 #define ISpStream_BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest) (This)->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest)
4576 #define ISpStream_Close(This) (This)->lpVtbl->Close(This)
4577 #else
4578 /*** IUnknown methods ***/
4579 static FORCEINLINE HRESULT ISpStream_QueryInterface(ISpStream* This,REFIID riid,void **ppvObject) {
4580     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4581 }
4582 static FORCEINLINE ULONG ISpStream_AddRef(ISpStream* This) {
4583     return This->lpVtbl->AddRef(This);
4584 }
4585 static FORCEINLINE ULONG ISpStream_Release(ISpStream* This) {
4586     return This->lpVtbl->Release(This);
4587 }
4588 /*** ISequentialStream methods ***/
4589 static FORCEINLINE HRESULT ISpStream_Read(ISpStream* This,void *pv,ULONG cb,ULONG *pcbRead) {
4590     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4591 }
4592 static FORCEINLINE HRESULT ISpStream_Write(ISpStream* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4593     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4594 }
4595 /*** IStream methods ***/
4596 static FORCEINLINE HRESULT ISpStream_Seek(ISpStream* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4597     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4598 }
4599 static FORCEINLINE HRESULT ISpStream_SetSize(ISpStream* This,ULARGE_INTEGER libNewSize) {
4600     return This->lpVtbl->SetSize(This,libNewSize);
4601 }
4602 static FORCEINLINE HRESULT ISpStream_CopyTo(ISpStream* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4603     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4604 }
4605 static FORCEINLINE HRESULT ISpStream_Commit(ISpStream* This,DWORD grfCommitFlags) {
4606     return This->lpVtbl->Commit(This,grfCommitFlags);
4607 }
4608 static FORCEINLINE HRESULT ISpStream_Revert(ISpStream* This) {
4609     return This->lpVtbl->Revert(This);
4610 }
4611 static FORCEINLINE HRESULT ISpStream_LockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4612     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4613 }
4614 static FORCEINLINE HRESULT ISpStream_UnlockRegion(ISpStream* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4615     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4616 }
4617 static FORCEINLINE HRESULT ISpStream_Stat(ISpStream* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4618     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4619 }
4620 static FORCEINLINE HRESULT ISpStream_Clone(ISpStream* This,IStream **ppstm) {
4621     return This->lpVtbl->Clone(This,ppstm);
4622 }
4623 /*** ISpStreamFormat methods ***/
4624 static FORCEINLINE HRESULT ISpStream_GetFormat(ISpStream* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4625     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4626 }
4627 /*** ISpStream methods ***/
4628 static FORCEINLINE HRESULT ISpStream_SetBaseStream(ISpStream* This,IStream *pStream,REFGUID rguidFormat,const WAVEFORMATEX *pWaveFormatEx) {
4629     return This->lpVtbl->SetBaseStream(This,pStream,rguidFormat,pWaveFormatEx);
4630 }
4631 static FORCEINLINE HRESULT ISpStream_GetBaseStream(ISpStream* This,IStream **ppStream) {
4632     return This->lpVtbl->GetBaseStream(This,ppStream);
4633 }
4634 static FORCEINLINE HRESULT ISpStream_BindToFile(ISpStream* This,LPCWSTR pszFileName,SPFILEMODE eMode,const GUID *pFormatId,const WAVEFORMATEX *pWaveFormatEx,ULONGLONG ullEventInterest) {
4635     return This->lpVtbl->BindToFile(This,pszFileName,eMode,pFormatId,pWaveFormatEx,ullEventInterest);
4636 }
4637 static FORCEINLINE HRESULT ISpStream_Close(ISpStream* This) {
4638     return This->lpVtbl->Close(This);
4639 }
4640 #endif
4641 #endif
4642 
4643 #endif
4644 
4645 
4646 #endif  /* __ISpStream_INTERFACE_DEFINED__ */
4647 
4648 /*****************************************************************************
4649  * ISpStreamFormatConverter interface
4650  */
4651 #ifndef __ISpStreamFormatConverter_INTERFACE_DEFINED__
4652 #define __ISpStreamFormatConverter_INTERFACE_DEFINED__
4653 
4654 DEFINE_GUID(IID_ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29);
4655 #if defined(__cplusplus) && !defined(CINTERFACE)
4656 MIDL_INTERFACE("678a932c-ea71-4446-9b41-78fda6280a29")
4657 ISpStreamFormatConverter : public ISpStreamFormat
4658 {
4659     virtual HRESULT STDMETHODCALLTYPE SetBaseStream(
4660         ISpStreamFormat *pStream,
4661         WINBOOL fSetFormatToBaseStreamFormat,
4662         WINBOOL fWriteToBaseStream) = 0;
4663 
4664     virtual HRESULT STDMETHODCALLTYPE GetBaseStream(
4665         ISpStreamFormat **ppStream) = 0;
4666 
4667     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4668         REFGUID rguidFormatIdOfConvertedStream,
4669         const WAVEFORMATEX *pWaveFormatExOfConvertedStream) = 0;
4670 
4671     virtual HRESULT STDMETHODCALLTYPE ResetSeekPosition(
4672         ) = 0;
4673 
4674     virtual HRESULT STDMETHODCALLTYPE ScaleConvertedToBaseOffset(
4675         ULONGLONG ullOffsetConvertedStream,
4676         ULONGLONG *pullOffsetBaseStream) = 0;
4677 
4678     virtual HRESULT STDMETHODCALLTYPE ScaleBaseToConvertedOffset(
4679         ULONGLONG ullOffsetBaseStream,
4680         ULONGLONG *pullOffsetConvertedStream) = 0;
4681 
4682 };
4683 #ifdef __CRT_UUID_DECL
4684 __CRT_UUID_DECL(ISpStreamFormatConverter, 0x678a932c, 0xea71, 0x4446, 0x9b,0x41, 0x78,0xfd,0xa6,0x28,0x0a,0x29)
4685 #endif
4686 #else
4687 typedef struct ISpStreamFormatConverterVtbl {
4688     BEGIN_INTERFACE
4689 
4690     /*** IUnknown methods ***/
4691     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4692         ISpStreamFormatConverter *This,
4693         REFIID riid,
4694         void **ppvObject);
4695 
4696     ULONG (STDMETHODCALLTYPE *AddRef)(
4697         ISpStreamFormatConverter *This);
4698 
4699     ULONG (STDMETHODCALLTYPE *Release)(
4700         ISpStreamFormatConverter *This);
4701 
4702     /*** ISequentialStream methods ***/
4703     HRESULT (STDMETHODCALLTYPE *Read)(
4704         ISpStreamFormatConverter *This,
4705         void *pv,
4706         ULONG cb,
4707         ULONG *pcbRead);
4708 
4709     HRESULT (STDMETHODCALLTYPE *Write)(
4710         ISpStreamFormatConverter *This,
4711         const void *pv,
4712         ULONG cb,
4713         ULONG *pcbWritten);
4714 
4715     /*** IStream methods ***/
4716     HRESULT (STDMETHODCALLTYPE *Seek)(
4717         ISpStreamFormatConverter *This,
4718         LARGE_INTEGER dlibMove,
4719         DWORD dwOrigin,
4720         ULARGE_INTEGER *plibNewPosition);
4721 
4722     HRESULT (STDMETHODCALLTYPE *SetSize)(
4723         ISpStreamFormatConverter *This,
4724         ULARGE_INTEGER libNewSize);
4725 
4726     HRESULT (STDMETHODCALLTYPE *CopyTo)(
4727         ISpStreamFormatConverter *This,
4728         IStream *pstm,
4729         ULARGE_INTEGER cb,
4730         ULARGE_INTEGER *pcbRead,
4731         ULARGE_INTEGER *pcbWritten);
4732 
4733     HRESULT (STDMETHODCALLTYPE *Commit)(
4734         ISpStreamFormatConverter *This,
4735         DWORD grfCommitFlags);
4736 
4737     HRESULT (STDMETHODCALLTYPE *Revert)(
4738         ISpStreamFormatConverter *This);
4739 
4740     HRESULT (STDMETHODCALLTYPE *LockRegion)(
4741         ISpStreamFormatConverter *This,
4742         ULARGE_INTEGER libOffset,
4743         ULARGE_INTEGER cb,
4744         DWORD dwLockType);
4745 
4746     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
4747         ISpStreamFormatConverter *This,
4748         ULARGE_INTEGER libOffset,
4749         ULARGE_INTEGER cb,
4750         DWORD dwLockType);
4751 
4752     HRESULT (STDMETHODCALLTYPE *Stat)(
4753         ISpStreamFormatConverter *This,
4754         STATSTG *pstatstg,
4755         DWORD grfStatFlag);
4756 
4757     HRESULT (STDMETHODCALLTYPE *Clone)(
4758         ISpStreamFormatConverter *This,
4759         IStream **ppstm);
4760 
4761     /*** ISpStreamFormat methods ***/
4762     HRESULT (STDMETHODCALLTYPE *GetFormat)(
4763         ISpStreamFormatConverter *This,
4764         GUID *pguidFormatId,
4765         WAVEFORMATEX **ppCoMemWaveFormatEx);
4766 
4767     /*** ISpStreamFormatConverter methods ***/
4768     HRESULT (STDMETHODCALLTYPE *SetBaseStream)(
4769         ISpStreamFormatConverter *This,
4770         ISpStreamFormat *pStream,
4771         WINBOOL fSetFormatToBaseStreamFormat,
4772         WINBOOL fWriteToBaseStream);
4773 
4774     HRESULT (STDMETHODCALLTYPE *GetBaseStream)(
4775         ISpStreamFormatConverter *This,
4776         ISpStreamFormat **ppStream);
4777 
4778     HRESULT (STDMETHODCALLTYPE *SetFormat)(
4779         ISpStreamFormatConverter *This,
4780         REFGUID rguidFormatIdOfConvertedStream,
4781         const WAVEFORMATEX *pWaveFormatExOfConvertedStream);
4782 
4783     HRESULT (STDMETHODCALLTYPE *ResetSeekPosition)(
4784         ISpStreamFormatConverter *This);
4785 
4786     HRESULT (STDMETHODCALLTYPE *ScaleConvertedToBaseOffset)(
4787         ISpStreamFormatConverter *This,
4788         ULONGLONG ullOffsetConvertedStream,
4789         ULONGLONG *pullOffsetBaseStream);
4790 
4791     HRESULT (STDMETHODCALLTYPE *ScaleBaseToConvertedOffset)(
4792         ISpStreamFormatConverter *This,
4793         ULONGLONG ullOffsetBaseStream,
4794         ULONGLONG *pullOffsetConvertedStream);
4795 
4796     END_INTERFACE
4797 } ISpStreamFormatConverterVtbl;
4798 
4799 interface ISpStreamFormatConverter {
4800     CONST_VTBL ISpStreamFormatConverterVtbl* lpVtbl;
4801 };
4802 
4803 #ifdef COBJMACROS
4804 #ifndef WIDL_C_INLINE_WRAPPERS
4805 /*** IUnknown methods ***/
4806 #define ISpStreamFormatConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
4807 #define ISpStreamFormatConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
4808 #define ISpStreamFormatConverter_Release(This) (This)->lpVtbl->Release(This)
4809 /*** ISequentialStream methods ***/
4810 #define ISpStreamFormatConverter_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
4811 #define ISpStreamFormatConverter_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
4812 /*** IStream methods ***/
4813 #define ISpStreamFormatConverter_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
4814 #define ISpStreamFormatConverter_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
4815 #define ISpStreamFormatConverter_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
4816 #define ISpStreamFormatConverter_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
4817 #define ISpStreamFormatConverter_Revert(This) (This)->lpVtbl->Revert(This)
4818 #define ISpStreamFormatConverter_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
4819 #define ISpStreamFormatConverter_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
4820 #define ISpStreamFormatConverter_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
4821 #define ISpStreamFormatConverter_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
4822 /*** ISpStreamFormat methods ***/
4823 #define ISpStreamFormatConverter_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
4824 /*** ISpStreamFormatConverter methods ***/
4825 #define ISpStreamFormatConverter_SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream) (This)->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream)
4826 #define ISpStreamFormatConverter_GetBaseStream(This,ppStream) (This)->lpVtbl->GetBaseStream(This,ppStream)
4827 #define ISpStreamFormatConverter_SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream) (This)->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream)
4828 #define ISpStreamFormatConverter_ResetSeekPosition(This) (This)->lpVtbl->ResetSeekPosition(This)
4829 #define ISpStreamFormatConverter_ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream) (This)->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream)
4830 #define ISpStreamFormatConverter_ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream) (This)->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream)
4831 #else
4832 /*** IUnknown methods ***/
4833 static FORCEINLINE HRESULT ISpStreamFormatConverter_QueryInterface(ISpStreamFormatConverter* This,REFIID riid,void **ppvObject) {
4834     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
4835 }
4836 static FORCEINLINE ULONG ISpStreamFormatConverter_AddRef(ISpStreamFormatConverter* This) {
4837     return This->lpVtbl->AddRef(This);
4838 }
4839 static FORCEINLINE ULONG ISpStreamFormatConverter_Release(ISpStreamFormatConverter* This) {
4840     return This->lpVtbl->Release(This);
4841 }
4842 /*** ISequentialStream methods ***/
4843 static FORCEINLINE HRESULT ISpStreamFormatConverter_Read(ISpStreamFormatConverter* This,void *pv,ULONG cb,ULONG *pcbRead) {
4844     return This->lpVtbl->Read(This,pv,cb,pcbRead);
4845 }
4846 static FORCEINLINE HRESULT ISpStreamFormatConverter_Write(ISpStreamFormatConverter* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
4847     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
4848 }
4849 /*** IStream methods ***/
4850 static FORCEINLINE HRESULT ISpStreamFormatConverter_Seek(ISpStreamFormatConverter* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
4851     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
4852 }
4853 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetSize(ISpStreamFormatConverter* This,ULARGE_INTEGER libNewSize) {
4854     return This->lpVtbl->SetSize(This,libNewSize);
4855 }
4856 static FORCEINLINE HRESULT ISpStreamFormatConverter_CopyTo(ISpStreamFormatConverter* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
4857     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
4858 }
4859 static FORCEINLINE HRESULT ISpStreamFormatConverter_Commit(ISpStreamFormatConverter* This,DWORD grfCommitFlags) {
4860     return This->lpVtbl->Commit(This,grfCommitFlags);
4861 }
4862 static FORCEINLINE HRESULT ISpStreamFormatConverter_Revert(ISpStreamFormatConverter* This) {
4863     return This->lpVtbl->Revert(This);
4864 }
4865 static FORCEINLINE HRESULT ISpStreamFormatConverter_LockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4866     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
4867 }
4868 static FORCEINLINE HRESULT ISpStreamFormatConverter_UnlockRegion(ISpStreamFormatConverter* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
4869     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
4870 }
4871 static FORCEINLINE HRESULT ISpStreamFormatConverter_Stat(ISpStreamFormatConverter* This,STATSTG *pstatstg,DWORD grfStatFlag) {
4872     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
4873 }
4874 static FORCEINLINE HRESULT ISpStreamFormatConverter_Clone(ISpStreamFormatConverter* This,IStream **ppstm) {
4875     return This->lpVtbl->Clone(This,ppstm);
4876 }
4877 /*** ISpStreamFormat methods ***/
4878 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetFormat(ISpStreamFormatConverter* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
4879     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
4880 }
4881 /*** ISpStreamFormatConverter methods ***/
4882 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat *pStream,WINBOOL fSetFormatToBaseStreamFormat,WINBOOL fWriteToBaseStream) {
4883     return This->lpVtbl->SetBaseStream(This,pStream,fSetFormatToBaseStreamFormat,fWriteToBaseStream);
4884 }
4885 static FORCEINLINE HRESULT ISpStreamFormatConverter_GetBaseStream(ISpStreamFormatConverter* This,ISpStreamFormat **ppStream) {
4886     return This->lpVtbl->GetBaseStream(This,ppStream);
4887 }
4888 static FORCEINLINE HRESULT ISpStreamFormatConverter_SetFormat(ISpStreamFormatConverter* This,REFGUID rguidFormatIdOfConvertedStream,const WAVEFORMATEX *pWaveFormatExOfConvertedStream) {
4889     return This->lpVtbl->SetFormat(This,rguidFormatIdOfConvertedStream,pWaveFormatExOfConvertedStream);
4890 }
4891 static FORCEINLINE HRESULT ISpStreamFormatConverter_ResetSeekPosition(ISpStreamFormatConverter* This) {
4892     return This->lpVtbl->ResetSeekPosition(This);
4893 }
4894 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleConvertedToBaseOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetConvertedStream,ULONGLONG *pullOffsetBaseStream) {
4895     return This->lpVtbl->ScaleConvertedToBaseOffset(This,ullOffsetConvertedStream,pullOffsetBaseStream);
4896 }
4897 static FORCEINLINE HRESULT ISpStreamFormatConverter_ScaleBaseToConvertedOffset(ISpStreamFormatConverter* This,ULONGLONG ullOffsetBaseStream,ULONGLONG *pullOffsetConvertedStream) {
4898     return This->lpVtbl->ScaleBaseToConvertedOffset(This,ullOffsetBaseStream,pullOffsetConvertedStream);
4899 }
4900 #endif
4901 #endif
4902 
4903 #endif
4904 
4905 
4906 #endif  /* __ISpStreamFormatConverter_INTERFACE_DEFINED__ */
4907 
4908 typedef struct SPAUDIOSTATUS {
4909     LONG cbFreeBuffSpace;
4910     ULONG cbNonBlockingIO;
4911     SPAUDIOSTATE State;
4912     ULONGLONG CurSeekPos;
4913     ULONGLONG CurDevicePos;
4914     DWORD dwAudioLevel;
4915     DWORD dwReserved2;
4916 } SPAUDIOSTATUS;
4917 typedef struct SPAUDIOBUFFERINFO {
4918     ULONG ulMsMinNotification;
4919     ULONG ulMsBufferSize;
4920     ULONG ulMsEventBias;
4921 } SPAUDIOBUFFERINFO;
4922 /*****************************************************************************
4923  * ISpAudio interface
4924  */
4925 #ifndef __ISpAudio_INTERFACE_DEFINED__
4926 #define __ISpAudio_INTERFACE_DEFINED__
4927 
4928 DEFINE_GUID(IID_ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52);
4929 #if defined(__cplusplus) && !defined(CINTERFACE)
4930 MIDL_INTERFACE("c05c768f-fae8-4ec2-8e07-338321c12452")
4931 ISpAudio : public ISpStreamFormat
4932 {
4933     virtual HRESULT STDMETHODCALLTYPE SetState(
4934         SPAUDIOSTATE NewState,
4935         ULONGLONG ullReserved) = 0;
4936 
4937     virtual HRESULT STDMETHODCALLTYPE SetFormat(
4938         REFGUID rguidFmtId,
4939         const WAVEFORMATEX *pWaveFormatEx) = 0;
4940 
4941     virtual HRESULT STDMETHODCALLTYPE GetStatus(
4942         SPAUDIOSTATUS *pStatus) = 0;
4943 
4944     virtual HRESULT STDMETHODCALLTYPE SetBufferInfo(
4945         const SPAUDIOBUFFERINFO *pBuffInfo) = 0;
4946 
4947     virtual HRESULT STDMETHODCALLTYPE GetBufferInfo(
4948         SPAUDIOBUFFERINFO *pBuffInfo) = 0;
4949 
4950     virtual HRESULT STDMETHODCALLTYPE GetDefaultFormat(
4951         GUID *pFormatId,
4952         WAVEFORMATEX **ppCoMemWaveFormatEx) = 0;
4953 
4954     virtual HANDLE STDMETHODCALLTYPE EventHandle(
4955         ) = 0;
4956 
4957     virtual HRESULT STDMETHODCALLTYPE GetVolumeLevel(
4958         ULONG *pLevel) = 0;
4959 
4960     virtual HRESULT STDMETHODCALLTYPE SetVolumeLevel(
4961         ULONG Level) = 0;
4962 
4963     virtual HRESULT STDMETHODCALLTYPE GetBufferNotifySize(
4964         ULONG *pcbSize) = 0;
4965 
4966     virtual HRESULT STDMETHODCALLTYPE SetBufferNotifySize(
4967         ULONG cbSize) = 0;
4968 
4969 };
4970 #ifdef __CRT_UUID_DECL
4971 __CRT_UUID_DECL(ISpAudio, 0xc05c768f, 0xfae8, 0x4ec2, 0x8e,0x07, 0x33,0x83,0x21,0xc1,0x24,0x52)
4972 #endif
4973 #else
4974 typedef struct ISpAudioVtbl {
4975     BEGIN_INTERFACE
4976 
4977     /*** IUnknown methods ***/
4978     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
4979         ISpAudio *This,
4980         REFIID riid,
4981         void **ppvObject);
4982 
4983     ULONG (STDMETHODCALLTYPE *AddRef)(
4984         ISpAudio *This);
4985 
4986     ULONG (STDMETHODCALLTYPE *Release)(
4987         ISpAudio *This);
4988 
4989     /*** ISequentialStream methods ***/
4990     HRESULT (STDMETHODCALLTYPE *Read)(
4991         ISpAudio *This,
4992         void *pv,
4993         ULONG cb,
4994         ULONG *pcbRead);
4995 
4996     HRESULT (STDMETHODCALLTYPE *Write)(
4997         ISpAudio *This,
4998         const void *pv,
4999         ULONG cb,
5000         ULONG *pcbWritten);
5001 
5002     /*** IStream methods ***/
5003     HRESULT (STDMETHODCALLTYPE *Seek)(
5004         ISpAudio *This,
5005         LARGE_INTEGER dlibMove,
5006         DWORD dwOrigin,
5007         ULARGE_INTEGER *plibNewPosition);
5008 
5009     HRESULT (STDMETHODCALLTYPE *SetSize)(
5010         ISpAudio *This,
5011         ULARGE_INTEGER libNewSize);
5012 
5013     HRESULT (STDMETHODCALLTYPE *CopyTo)(
5014         ISpAudio *This,
5015         IStream *pstm,
5016         ULARGE_INTEGER cb,
5017         ULARGE_INTEGER *pcbRead,
5018         ULARGE_INTEGER *pcbWritten);
5019 
5020     HRESULT (STDMETHODCALLTYPE *Commit)(
5021         ISpAudio *This,
5022         DWORD grfCommitFlags);
5023 
5024     HRESULT (STDMETHODCALLTYPE *Revert)(
5025         ISpAudio *This);
5026 
5027     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5028         ISpAudio *This,
5029         ULARGE_INTEGER libOffset,
5030         ULARGE_INTEGER cb,
5031         DWORD dwLockType);
5032 
5033     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5034         ISpAudio *This,
5035         ULARGE_INTEGER libOffset,
5036         ULARGE_INTEGER cb,
5037         DWORD dwLockType);
5038 
5039     HRESULT (STDMETHODCALLTYPE *Stat)(
5040         ISpAudio *This,
5041         STATSTG *pstatstg,
5042         DWORD grfStatFlag);
5043 
5044     HRESULT (STDMETHODCALLTYPE *Clone)(
5045         ISpAudio *This,
5046         IStream **ppstm);
5047 
5048     /*** ISpStreamFormat methods ***/
5049     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5050         ISpAudio *This,
5051         GUID *pguidFormatId,
5052         WAVEFORMATEX **ppCoMemWaveFormatEx);
5053 
5054     /*** ISpAudio methods ***/
5055     HRESULT (STDMETHODCALLTYPE *SetState)(
5056         ISpAudio *This,
5057         SPAUDIOSTATE NewState,
5058         ULONGLONG ullReserved);
5059 
5060     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5061         ISpAudio *This,
5062         REFGUID rguidFmtId,
5063         const WAVEFORMATEX *pWaveFormatEx);
5064 
5065     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5066         ISpAudio *This,
5067         SPAUDIOSTATUS *pStatus);
5068 
5069     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5070         ISpAudio *This,
5071         const SPAUDIOBUFFERINFO *pBuffInfo);
5072 
5073     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5074         ISpAudio *This,
5075         SPAUDIOBUFFERINFO *pBuffInfo);
5076 
5077     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5078         ISpAudio *This,
5079         GUID *pFormatId,
5080         WAVEFORMATEX **ppCoMemWaveFormatEx);
5081 
5082     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5083         ISpAudio *This);
5084 
5085     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5086         ISpAudio *This,
5087         ULONG *pLevel);
5088 
5089     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5090         ISpAudio *This,
5091         ULONG Level);
5092 
5093     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5094         ISpAudio *This,
5095         ULONG *pcbSize);
5096 
5097     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5098         ISpAudio *This,
5099         ULONG cbSize);
5100 
5101     END_INTERFACE
5102 } ISpAudioVtbl;
5103 
5104 interface ISpAudio {
5105     CONST_VTBL ISpAudioVtbl* lpVtbl;
5106 };
5107 
5108 #ifdef COBJMACROS
5109 #ifndef WIDL_C_INLINE_WRAPPERS
5110 /*** IUnknown methods ***/
5111 #define ISpAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5112 #define ISpAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5113 #define ISpAudio_Release(This) (This)->lpVtbl->Release(This)
5114 /*** ISequentialStream methods ***/
5115 #define ISpAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5116 #define ISpAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5117 /*** IStream methods ***/
5118 #define ISpAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5119 #define ISpAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5120 #define ISpAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5121 #define ISpAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5122 #define ISpAudio_Revert(This) (This)->lpVtbl->Revert(This)
5123 #define ISpAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5124 #define ISpAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5125 #define ISpAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5126 #define ISpAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5127 /*** ISpStreamFormat methods ***/
5128 #define ISpAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5129 /*** ISpAudio methods ***/
5130 #define ISpAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5131 #define ISpAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5132 #define ISpAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5133 #define ISpAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5134 #define ISpAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5135 #define ISpAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5136 #define ISpAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5137 #define ISpAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5138 #define ISpAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5139 #define ISpAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5140 #define ISpAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5141 #else
5142 /*** IUnknown methods ***/
5143 static FORCEINLINE HRESULT ISpAudio_QueryInterface(ISpAudio* This,REFIID riid,void **ppvObject) {
5144     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5145 }
5146 static FORCEINLINE ULONG ISpAudio_AddRef(ISpAudio* This) {
5147     return This->lpVtbl->AddRef(This);
5148 }
5149 static FORCEINLINE ULONG ISpAudio_Release(ISpAudio* This) {
5150     return This->lpVtbl->Release(This);
5151 }
5152 /*** ISequentialStream methods ***/
5153 static FORCEINLINE HRESULT ISpAudio_Read(ISpAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5154     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5155 }
5156 static FORCEINLINE HRESULT ISpAudio_Write(ISpAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5157     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5158 }
5159 /*** IStream methods ***/
5160 static FORCEINLINE HRESULT ISpAudio_Seek(ISpAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5161     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5162 }
5163 static FORCEINLINE HRESULT ISpAudio_SetSize(ISpAudio* This,ULARGE_INTEGER libNewSize) {
5164     return This->lpVtbl->SetSize(This,libNewSize);
5165 }
5166 static FORCEINLINE HRESULT ISpAudio_CopyTo(ISpAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5167     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5168 }
5169 static FORCEINLINE HRESULT ISpAudio_Commit(ISpAudio* This,DWORD grfCommitFlags) {
5170     return This->lpVtbl->Commit(This,grfCommitFlags);
5171 }
5172 static FORCEINLINE HRESULT ISpAudio_Revert(ISpAudio* This) {
5173     return This->lpVtbl->Revert(This);
5174 }
5175 static FORCEINLINE HRESULT ISpAudio_LockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5176     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5177 }
5178 static FORCEINLINE HRESULT ISpAudio_UnlockRegion(ISpAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5179     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5180 }
5181 static FORCEINLINE HRESULT ISpAudio_Stat(ISpAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5182     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5183 }
5184 static FORCEINLINE HRESULT ISpAudio_Clone(ISpAudio* This,IStream **ppstm) {
5185     return This->lpVtbl->Clone(This,ppstm);
5186 }
5187 /*** ISpStreamFormat methods ***/
5188 static FORCEINLINE HRESULT ISpAudio_GetFormat(ISpAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5189     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5190 }
5191 /*** ISpAudio methods ***/
5192 static FORCEINLINE HRESULT ISpAudio_SetState(ISpAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5193     return This->lpVtbl->SetState(This,NewState,ullReserved);
5194 }
5195 static FORCEINLINE HRESULT ISpAudio_SetFormat(ISpAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5196     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5197 }
5198 static FORCEINLINE HRESULT ISpAudio_GetStatus(ISpAudio* This,SPAUDIOSTATUS *pStatus) {
5199     return This->lpVtbl->GetStatus(This,pStatus);
5200 }
5201 static FORCEINLINE HRESULT ISpAudio_SetBufferInfo(ISpAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5202     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5203 }
5204 static FORCEINLINE HRESULT ISpAudio_GetBufferInfo(ISpAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5205     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5206 }
5207 static FORCEINLINE HRESULT ISpAudio_GetDefaultFormat(ISpAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5208     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5209 }
5210 static FORCEINLINE HANDLE ISpAudio_EventHandle(ISpAudio* This) {
5211     return This->lpVtbl->EventHandle(This);
5212 }
5213 static FORCEINLINE HRESULT ISpAudio_GetVolumeLevel(ISpAudio* This,ULONG *pLevel) {
5214     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5215 }
5216 static FORCEINLINE HRESULT ISpAudio_SetVolumeLevel(ISpAudio* This,ULONG Level) {
5217     return This->lpVtbl->SetVolumeLevel(This,Level);
5218 }
5219 static FORCEINLINE HRESULT ISpAudio_GetBufferNotifySize(ISpAudio* This,ULONG *pcbSize) {
5220     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5221 }
5222 static FORCEINLINE HRESULT ISpAudio_SetBufferNotifySize(ISpAudio* This,ULONG cbSize) {
5223     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5224 }
5225 #endif
5226 #endif
5227 
5228 #endif
5229 
5230 
5231 #endif  /* __ISpAudio_INTERFACE_DEFINED__ */
5232 
5233 /*****************************************************************************
5234  * ISpMMSysAudio interface
5235  */
5236 #ifndef __ISpMMSysAudio_INTERFACE_DEFINED__
5237 #define __ISpMMSysAudio_INTERFACE_DEFINED__
5238 
5239 DEFINE_GUID(IID_ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab);
5240 #if defined(__cplusplus) && !defined(CINTERFACE)
5241 MIDL_INTERFACE("15806f6e-1d70-4b48-98e6-3b1a007509ab")
5242 ISpMMSysAudio : public ISpAudio
5243 {
5244     virtual HRESULT STDMETHODCALLTYPE GetDeviceId(
5245         UINT *puDeviceId) = 0;
5246 
5247     virtual HRESULT STDMETHODCALLTYPE SetDeviceId(
5248         UINT uDeviceId) = 0;
5249 
5250     virtual HRESULT STDMETHODCALLTYPE GetMMHandle(
5251         void **pHandle) = 0;
5252 
5253     virtual HRESULT STDMETHODCALLTYPE GetLineId(
5254         UINT *puLineId) = 0;
5255 
5256     virtual HRESULT STDMETHODCALLTYPE SetLineId(
5257         UINT uLineId) = 0;
5258 
5259 };
5260 #ifdef __CRT_UUID_DECL
5261 __CRT_UUID_DECL(ISpMMSysAudio, 0x15806f6e, 0x1d70, 0x4b48, 0x98,0xe6, 0x3b,0x1a,0x00,0x75,0x09,0xab)
5262 #endif
5263 #else
5264 typedef struct ISpMMSysAudioVtbl {
5265     BEGIN_INTERFACE
5266 
5267     /*** IUnknown methods ***/
5268     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5269         ISpMMSysAudio *This,
5270         REFIID riid,
5271         void **ppvObject);
5272 
5273     ULONG (STDMETHODCALLTYPE *AddRef)(
5274         ISpMMSysAudio *This);
5275 
5276     ULONG (STDMETHODCALLTYPE *Release)(
5277         ISpMMSysAudio *This);
5278 
5279     /*** ISequentialStream methods ***/
5280     HRESULT (STDMETHODCALLTYPE *Read)(
5281         ISpMMSysAudio *This,
5282         void *pv,
5283         ULONG cb,
5284         ULONG *pcbRead);
5285 
5286     HRESULT (STDMETHODCALLTYPE *Write)(
5287         ISpMMSysAudio *This,
5288         const void *pv,
5289         ULONG cb,
5290         ULONG *pcbWritten);
5291 
5292     /*** IStream methods ***/
5293     HRESULT (STDMETHODCALLTYPE *Seek)(
5294         ISpMMSysAudio *This,
5295         LARGE_INTEGER dlibMove,
5296         DWORD dwOrigin,
5297         ULARGE_INTEGER *plibNewPosition);
5298 
5299     HRESULT (STDMETHODCALLTYPE *SetSize)(
5300         ISpMMSysAudio *This,
5301         ULARGE_INTEGER libNewSize);
5302 
5303     HRESULT (STDMETHODCALLTYPE *CopyTo)(
5304         ISpMMSysAudio *This,
5305         IStream *pstm,
5306         ULARGE_INTEGER cb,
5307         ULARGE_INTEGER *pcbRead,
5308         ULARGE_INTEGER *pcbWritten);
5309 
5310     HRESULT (STDMETHODCALLTYPE *Commit)(
5311         ISpMMSysAudio *This,
5312         DWORD grfCommitFlags);
5313 
5314     HRESULT (STDMETHODCALLTYPE *Revert)(
5315         ISpMMSysAudio *This);
5316 
5317     HRESULT (STDMETHODCALLTYPE *LockRegion)(
5318         ISpMMSysAudio *This,
5319         ULARGE_INTEGER libOffset,
5320         ULARGE_INTEGER cb,
5321         DWORD dwLockType);
5322 
5323     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
5324         ISpMMSysAudio *This,
5325         ULARGE_INTEGER libOffset,
5326         ULARGE_INTEGER cb,
5327         DWORD dwLockType);
5328 
5329     HRESULT (STDMETHODCALLTYPE *Stat)(
5330         ISpMMSysAudio *This,
5331         STATSTG *pstatstg,
5332         DWORD grfStatFlag);
5333 
5334     HRESULT (STDMETHODCALLTYPE *Clone)(
5335         ISpMMSysAudio *This,
5336         IStream **ppstm);
5337 
5338     /*** ISpStreamFormat methods ***/
5339     HRESULT (STDMETHODCALLTYPE *GetFormat)(
5340         ISpMMSysAudio *This,
5341         GUID *pguidFormatId,
5342         WAVEFORMATEX **ppCoMemWaveFormatEx);
5343 
5344     /*** ISpAudio methods ***/
5345     HRESULT (STDMETHODCALLTYPE *SetState)(
5346         ISpMMSysAudio *This,
5347         SPAUDIOSTATE NewState,
5348         ULONGLONG ullReserved);
5349 
5350     HRESULT (STDMETHODCALLTYPE *SetFormat)(
5351         ISpMMSysAudio *This,
5352         REFGUID rguidFmtId,
5353         const WAVEFORMATEX *pWaveFormatEx);
5354 
5355     HRESULT (STDMETHODCALLTYPE *GetStatus)(
5356         ISpMMSysAudio *This,
5357         SPAUDIOSTATUS *pStatus);
5358 
5359     HRESULT (STDMETHODCALLTYPE *SetBufferInfo)(
5360         ISpMMSysAudio *This,
5361         const SPAUDIOBUFFERINFO *pBuffInfo);
5362 
5363     HRESULT (STDMETHODCALLTYPE *GetBufferInfo)(
5364         ISpMMSysAudio *This,
5365         SPAUDIOBUFFERINFO *pBuffInfo);
5366 
5367     HRESULT (STDMETHODCALLTYPE *GetDefaultFormat)(
5368         ISpMMSysAudio *This,
5369         GUID *pFormatId,
5370         WAVEFORMATEX **ppCoMemWaveFormatEx);
5371 
5372     HANDLE (STDMETHODCALLTYPE *EventHandle)(
5373         ISpMMSysAudio *This);
5374 
5375     HRESULT (STDMETHODCALLTYPE *GetVolumeLevel)(
5376         ISpMMSysAudio *This,
5377         ULONG *pLevel);
5378 
5379     HRESULT (STDMETHODCALLTYPE *SetVolumeLevel)(
5380         ISpMMSysAudio *This,
5381         ULONG Level);
5382 
5383     HRESULT (STDMETHODCALLTYPE *GetBufferNotifySize)(
5384         ISpMMSysAudio *This,
5385         ULONG *pcbSize);
5386 
5387     HRESULT (STDMETHODCALLTYPE *SetBufferNotifySize)(
5388         ISpMMSysAudio *This,
5389         ULONG cbSize);
5390 
5391     /*** ISpMMSysAudio methods ***/
5392     HRESULT (STDMETHODCALLTYPE *GetDeviceId)(
5393         ISpMMSysAudio *This,
5394         UINT *puDeviceId);
5395 
5396     HRESULT (STDMETHODCALLTYPE *SetDeviceId)(
5397         ISpMMSysAudio *This,
5398         UINT uDeviceId);
5399 
5400     HRESULT (STDMETHODCALLTYPE *GetMMHandle)(
5401         ISpMMSysAudio *This,
5402         void **pHandle);
5403 
5404     HRESULT (STDMETHODCALLTYPE *GetLineId)(
5405         ISpMMSysAudio *This,
5406         UINT *puLineId);
5407 
5408     HRESULT (STDMETHODCALLTYPE *SetLineId)(
5409         ISpMMSysAudio *This,
5410         UINT uLineId);
5411 
5412     END_INTERFACE
5413 } ISpMMSysAudioVtbl;
5414 
5415 interface ISpMMSysAudio {
5416     CONST_VTBL ISpMMSysAudioVtbl* lpVtbl;
5417 };
5418 
5419 #ifdef COBJMACROS
5420 #ifndef WIDL_C_INLINE_WRAPPERS
5421 /*** IUnknown methods ***/
5422 #define ISpMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5423 #define ISpMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
5424 #define ISpMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
5425 /*** ISequentialStream methods ***/
5426 #define ISpMMSysAudio_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
5427 #define ISpMMSysAudio_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
5428 /*** IStream methods ***/
5429 #define ISpMMSysAudio_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
5430 #define ISpMMSysAudio_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
5431 #define ISpMMSysAudio_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
5432 #define ISpMMSysAudio_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
5433 #define ISpMMSysAudio_Revert(This) (This)->lpVtbl->Revert(This)
5434 #define ISpMMSysAudio_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
5435 #define ISpMMSysAudio_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
5436 #define ISpMMSysAudio_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
5437 #define ISpMMSysAudio_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
5438 /*** ISpStreamFormat methods ***/
5439 #define ISpMMSysAudio_GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx)
5440 /*** ISpAudio methods ***/
5441 #define ISpMMSysAudio_SetState(This,NewState,ullReserved) (This)->lpVtbl->SetState(This,NewState,ullReserved)
5442 #define ISpMMSysAudio_SetFormat(This,rguidFmtId,pWaveFormatEx) (This)->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx)
5443 #define ISpMMSysAudio_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
5444 #define ISpMMSysAudio_SetBufferInfo(This,pBuffInfo) (This)->lpVtbl->SetBufferInfo(This,pBuffInfo)
5445 #define ISpMMSysAudio_GetBufferInfo(This,pBuffInfo) (This)->lpVtbl->GetBufferInfo(This,pBuffInfo)
5446 #define ISpMMSysAudio_GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx) (This)->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx)
5447 #define ISpMMSysAudio_EventHandle(This) (This)->lpVtbl->EventHandle(This)
5448 #define ISpMMSysAudio_GetVolumeLevel(This,pLevel) (This)->lpVtbl->GetVolumeLevel(This,pLevel)
5449 #define ISpMMSysAudio_SetVolumeLevel(This,Level) (This)->lpVtbl->SetVolumeLevel(This,Level)
5450 #define ISpMMSysAudio_GetBufferNotifySize(This,pcbSize) (This)->lpVtbl->GetBufferNotifySize(This,pcbSize)
5451 #define ISpMMSysAudio_SetBufferNotifySize(This,cbSize) (This)->lpVtbl->SetBufferNotifySize(This,cbSize)
5452 /*** ISpMMSysAudio methods ***/
5453 #define ISpMMSysAudio_GetDeviceId(This,puDeviceId) (This)->lpVtbl->GetDeviceId(This,puDeviceId)
5454 #define ISpMMSysAudio_SetDeviceId(This,uDeviceId) (This)->lpVtbl->SetDeviceId(This,uDeviceId)
5455 #define ISpMMSysAudio_GetMMHandle(This,pHandle) (This)->lpVtbl->GetMMHandle(This,pHandle)
5456 #define ISpMMSysAudio_GetLineId(This,puLineId) (This)->lpVtbl->GetLineId(This,puLineId)
5457 #define ISpMMSysAudio_SetLineId(This,uLineId) (This)->lpVtbl->SetLineId(This,uLineId)
5458 #else
5459 /*** IUnknown methods ***/
5460 static FORCEINLINE HRESULT ISpMMSysAudio_QueryInterface(ISpMMSysAudio* This,REFIID riid,void **ppvObject) {
5461     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5462 }
5463 static FORCEINLINE ULONG ISpMMSysAudio_AddRef(ISpMMSysAudio* This) {
5464     return This->lpVtbl->AddRef(This);
5465 }
5466 static FORCEINLINE ULONG ISpMMSysAudio_Release(ISpMMSysAudio* This) {
5467     return This->lpVtbl->Release(This);
5468 }
5469 /*** ISequentialStream methods ***/
5470 static FORCEINLINE HRESULT ISpMMSysAudio_Read(ISpMMSysAudio* This,void *pv,ULONG cb,ULONG *pcbRead) {
5471     return This->lpVtbl->Read(This,pv,cb,pcbRead);
5472 }
5473 static FORCEINLINE HRESULT ISpMMSysAudio_Write(ISpMMSysAudio* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
5474     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
5475 }
5476 /*** IStream methods ***/
5477 static FORCEINLINE HRESULT ISpMMSysAudio_Seek(ISpMMSysAudio* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
5478     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
5479 }
5480 static FORCEINLINE HRESULT ISpMMSysAudio_SetSize(ISpMMSysAudio* This,ULARGE_INTEGER libNewSize) {
5481     return This->lpVtbl->SetSize(This,libNewSize);
5482 }
5483 static FORCEINLINE HRESULT ISpMMSysAudio_CopyTo(ISpMMSysAudio* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
5484     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
5485 }
5486 static FORCEINLINE HRESULT ISpMMSysAudio_Commit(ISpMMSysAudio* This,DWORD grfCommitFlags) {
5487     return This->lpVtbl->Commit(This,grfCommitFlags);
5488 }
5489 static FORCEINLINE HRESULT ISpMMSysAudio_Revert(ISpMMSysAudio* This) {
5490     return This->lpVtbl->Revert(This);
5491 }
5492 static FORCEINLINE HRESULT ISpMMSysAudio_LockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5493     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
5494 }
5495 static FORCEINLINE HRESULT ISpMMSysAudio_UnlockRegion(ISpMMSysAudio* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
5496     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
5497 }
5498 static FORCEINLINE HRESULT ISpMMSysAudio_Stat(ISpMMSysAudio* This,STATSTG *pstatstg,DWORD grfStatFlag) {
5499     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
5500 }
5501 static FORCEINLINE HRESULT ISpMMSysAudio_Clone(ISpMMSysAudio* This,IStream **ppstm) {
5502     return This->lpVtbl->Clone(This,ppstm);
5503 }
5504 /*** ISpStreamFormat methods ***/
5505 static FORCEINLINE HRESULT ISpMMSysAudio_GetFormat(ISpMMSysAudio* This,GUID *pguidFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5506     return This->lpVtbl->GetFormat(This,pguidFormatId,ppCoMemWaveFormatEx);
5507 }
5508 /*** ISpAudio methods ***/
5509 static FORCEINLINE HRESULT ISpMMSysAudio_SetState(ISpMMSysAudio* This,SPAUDIOSTATE NewState,ULONGLONG ullReserved) {
5510     return This->lpVtbl->SetState(This,NewState,ullReserved);
5511 }
5512 static FORCEINLINE HRESULT ISpMMSysAudio_SetFormat(ISpMMSysAudio* This,REFGUID rguidFmtId,const WAVEFORMATEX *pWaveFormatEx) {
5513     return This->lpVtbl->SetFormat(This,rguidFmtId,pWaveFormatEx);
5514 }
5515 static FORCEINLINE HRESULT ISpMMSysAudio_GetStatus(ISpMMSysAudio* This,SPAUDIOSTATUS *pStatus) {
5516     return This->lpVtbl->GetStatus(This,pStatus);
5517 }
5518 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferInfo(ISpMMSysAudio* This,const SPAUDIOBUFFERINFO *pBuffInfo) {
5519     return This->lpVtbl->SetBufferInfo(This,pBuffInfo);
5520 }
5521 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferInfo(ISpMMSysAudio* This,SPAUDIOBUFFERINFO *pBuffInfo) {
5522     return This->lpVtbl->GetBufferInfo(This,pBuffInfo);
5523 }
5524 static FORCEINLINE HRESULT ISpMMSysAudio_GetDefaultFormat(ISpMMSysAudio* This,GUID *pFormatId,WAVEFORMATEX **ppCoMemWaveFormatEx) {
5525     return This->lpVtbl->GetDefaultFormat(This,pFormatId,ppCoMemWaveFormatEx);
5526 }
5527 static FORCEINLINE HANDLE ISpMMSysAudio_EventHandle(ISpMMSysAudio* This) {
5528     return This->lpVtbl->EventHandle(This);
5529 }
5530 static FORCEINLINE HRESULT ISpMMSysAudio_GetVolumeLevel(ISpMMSysAudio* This,ULONG *pLevel) {
5531     return This->lpVtbl->GetVolumeLevel(This,pLevel);
5532 }
5533 static FORCEINLINE HRESULT ISpMMSysAudio_SetVolumeLevel(ISpMMSysAudio* This,ULONG Level) {
5534     return This->lpVtbl->SetVolumeLevel(This,Level);
5535 }
5536 static FORCEINLINE HRESULT ISpMMSysAudio_GetBufferNotifySize(ISpMMSysAudio* This,ULONG *pcbSize) {
5537     return This->lpVtbl->GetBufferNotifySize(This,pcbSize);
5538 }
5539 static FORCEINLINE HRESULT ISpMMSysAudio_SetBufferNotifySize(ISpMMSysAudio* This,ULONG cbSize) {
5540     return This->lpVtbl->SetBufferNotifySize(This,cbSize);
5541 }
5542 /*** ISpMMSysAudio methods ***/
5543 static FORCEINLINE HRESULT ISpMMSysAudio_GetDeviceId(ISpMMSysAudio* This,UINT *puDeviceId) {
5544     return This->lpVtbl->GetDeviceId(This,puDeviceId);
5545 }
5546 static FORCEINLINE HRESULT ISpMMSysAudio_SetDeviceId(ISpMMSysAudio* This,UINT uDeviceId) {
5547     return This->lpVtbl->SetDeviceId(This,uDeviceId);
5548 }
5549 static FORCEINLINE HRESULT ISpMMSysAudio_GetMMHandle(ISpMMSysAudio* This,void **pHandle) {
5550     return This->lpVtbl->GetMMHandle(This,pHandle);
5551 }
5552 static FORCEINLINE HRESULT ISpMMSysAudio_GetLineId(ISpMMSysAudio* This,UINT *puLineId) {
5553     return This->lpVtbl->GetLineId(This,puLineId);
5554 }
5555 static FORCEINLINE HRESULT ISpMMSysAudio_SetLineId(ISpMMSysAudio* This,UINT uLineId) {
5556     return This->lpVtbl->SetLineId(This,uLineId);
5557 }
5558 #endif
5559 #endif
5560 
5561 #endif
5562 
5563 
5564 #endif  /* __ISpMMSysAudio_INTERFACE_DEFINED__ */
5565 
5566 /*****************************************************************************
5567  * ISpTranscript interface
5568  */
5569 #ifndef __ISpTranscript_INTERFACE_DEFINED__
5570 #define __ISpTranscript_INTERFACE_DEFINED__
5571 
5572 DEFINE_GUID(IID_ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
5573 #if defined(__cplusplus) && !defined(CINTERFACE)
5574 MIDL_INTERFACE("10f63bce-201a-11d3-ac70-00c04f8ee6c0")
5575 ISpTranscript : public IUnknown
5576 {
5577     virtual HRESULT STDMETHODCALLTYPE GetTranscript(
5578         LPWSTR *ppszTranscript) = 0;
5579 
5580     virtual HRESULT STDMETHODCALLTYPE AppendTranscript(
5581         LPCWSTR pszTranscript) = 0;
5582 
5583 };
5584 #ifdef __CRT_UUID_DECL
5585 __CRT_UUID_DECL(ISpTranscript, 0x10f63bce, 0x201a, 0x11d3, 0xac,0x70, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
5586 #endif
5587 #else
5588 typedef struct ISpTranscriptVtbl {
5589     BEGIN_INTERFACE
5590 
5591     /*** IUnknown methods ***/
5592     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5593         ISpTranscript *This,
5594         REFIID riid,
5595         void **ppvObject);
5596 
5597     ULONG (STDMETHODCALLTYPE *AddRef)(
5598         ISpTranscript *This);
5599 
5600     ULONG (STDMETHODCALLTYPE *Release)(
5601         ISpTranscript *This);
5602 
5603     /*** ISpTranscript methods ***/
5604     HRESULT (STDMETHODCALLTYPE *GetTranscript)(
5605         ISpTranscript *This,
5606         LPWSTR *ppszTranscript);
5607 
5608     HRESULT (STDMETHODCALLTYPE *AppendTranscript)(
5609         ISpTranscript *This,
5610         LPCWSTR pszTranscript);
5611 
5612     END_INTERFACE
5613 } ISpTranscriptVtbl;
5614 
5615 interface ISpTranscript {
5616     CONST_VTBL ISpTranscriptVtbl* lpVtbl;
5617 };
5618 
5619 #ifdef COBJMACROS
5620 #ifndef WIDL_C_INLINE_WRAPPERS
5621 /*** IUnknown methods ***/
5622 #define ISpTranscript_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5623 #define ISpTranscript_AddRef(This) (This)->lpVtbl->AddRef(This)
5624 #define ISpTranscript_Release(This) (This)->lpVtbl->Release(This)
5625 /*** ISpTranscript methods ***/
5626 #define ISpTranscript_GetTranscript(This,ppszTranscript) (This)->lpVtbl->GetTranscript(This,ppszTranscript)
5627 #define ISpTranscript_AppendTranscript(This,pszTranscript) (This)->lpVtbl->AppendTranscript(This,pszTranscript)
5628 #else
5629 /*** IUnknown methods ***/
5630 static FORCEINLINE HRESULT ISpTranscript_QueryInterface(ISpTranscript* This,REFIID riid,void **ppvObject) {
5631     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5632 }
5633 static FORCEINLINE ULONG ISpTranscript_AddRef(ISpTranscript* This) {
5634     return This->lpVtbl->AddRef(This);
5635 }
5636 static FORCEINLINE ULONG ISpTranscript_Release(ISpTranscript* This) {
5637     return This->lpVtbl->Release(This);
5638 }
5639 /*** ISpTranscript methods ***/
5640 static FORCEINLINE HRESULT ISpTranscript_GetTranscript(ISpTranscript* This,LPWSTR *ppszTranscript) {
5641     return This->lpVtbl->GetTranscript(This,ppszTranscript);
5642 }
5643 static FORCEINLINE HRESULT ISpTranscript_AppendTranscript(ISpTranscript* This,LPCWSTR pszTranscript) {
5644     return This->lpVtbl->AppendTranscript(This,pszTranscript);
5645 }
5646 #endif
5647 #endif
5648 
5649 #endif
5650 
5651 
5652 #endif  /* __ISpTranscript_INTERFACE_DEFINED__ */
5653 
5654 typedef WCHAR SPPHONEID;
5655 typedef LPWSTR PSPPHONEID;
5656 typedef LPCWSTR PCSPPHONEID;
5657 typedef struct SPPHRASEELEMENT {
5658     ULONG ulAudioTimeOffset;
5659     ULONG ulAudioSizeTime;
5660     ULONG ulAudioStreamOffset;
5661     ULONG ulAudioSizeBytes;
5662     ULONG ulRetainedStreamOffset;
5663     ULONG ulRetainedSizeBytes;
5664     LPCWSTR pszDisplayText;
5665     LPCWSTR pszLexicalForm;
5666     const SPPHONEID *pszPronunciation;
5667     BYTE bDisplayAttributes;
5668     signed char RequiredConfidence;
5669     signed char ActualConfidence;
5670     BYTE Reserved;
5671     float SREngineConfidence;
5672 } SPPHRASEELEMENT;
5673 typedef struct SPPHRASERULE SPPHRASERULE;
5674 typedef struct SPPHRASEPROPERTY SPPHRASEPROPERTY;
5675 struct SPPHRASERULE {
5676     LPCWSTR pszName;
5677     ULONG ulId;
5678     ULONG ulFirstElement;
5679     ULONG ulCountOfElements;
5680     const SPPHRASERULE *pNextSibling;
5681     const SPPHRASERULE *pFirstChild;
5682     float SREngineConfidence;
5683     signed char Confidence;
5684 };
5685 struct SPPHRASEPROPERTY {
5686     LPCWSTR pszName;
5687     __C89_NAMELESS union {
5688         ULONG ulId;
5689         __C89_NAMELESS struct {
5690             byte bType;
5691             byte bReserved;
5692             unsigned short usArrayIndex;
5693         } __C89_NAMELESSSTRUCTNAME;
5694     } __C89_NAMELESSUNIONNAME;
5695     LPCWSTR pszValue;
5696     VARIANT vValue;
5697     ULONG ulFirstElement;
5698     ULONG ulCountOfElements;
5699     const SPPHRASEPROPERTY *pNextSibling;
5700     const SPPHRASEPROPERTY *pFirstChild;
5701     float SREngineConfidence;
5702     signed char Confidence;
5703 };
5704 typedef struct SPPHRASEREPLACEMENT {
5705     BYTE bDisplayAttributes;
5706     LPCWSTR pszReplacementText;
5707     ULONG ulFirstElement;
5708     ULONG ulCountOfElements;
5709 } SPPHRASEREPLACEMENT;
5710 typedef struct SPSEMANTICERRORINFO {
5711     ULONG ulLineNumber;
5712     LPWSTR pszScriptLine;
5713     LPWSTR pszSource;
5714     LPWSTR pszDescription;
5715     HRESULT hrResultCode;
5716 } SPSEMANTICERRORINFO;
5717 typedef struct SPPHRASE_50 {
5718     ULONG cbSize;
5719     WORD LangID;
5720     WORD wHomophoneGroupId;
5721     ULONGLONG ullGrammarID;
5722     ULONGLONG ftStartTime;
5723     ULONGLONG ullAudioStreamPosition;
5724     ULONG ulAudioSizeBytes;
5725     ULONG ulRetainedSizeBytes;
5726     ULONG ulAudioSizeTime;
5727     SPPHRASERULE Rule;
5728     const SPPHRASEPROPERTY *pProperties;
5729     const SPPHRASEELEMENT *pElements;
5730     ULONG cReplacements;
5731     const SPPHRASEREPLACEMENT *pReplacements;
5732     GUID SREngineID;
5733     ULONG ulSREnginePrivateDataSize;
5734     const BYTE *pSREnginePrivateData;
5735 } SPPHRASE_50;
5736 #define SP_SPPHRASESIZE_500 sizeof (SPPHRASE_50)
5737 #ifdef __cplusplus
5738 typedef struct SPPHRASE_53 : public SPPHRASE_50 {
5739   LPWSTR pSML;
5740   SPSEMANTICERRORINFO* pSemanticErrorInfo;
5741 } SPPHRASE_53;
5742 #else
5743 typedef struct SPPHRASE_53 {
5744     ULONG cbSize;
5745     WORD LangID;
5746     WORD wHomophoneGroupId;
5747     ULONGLONG ullGrammarID;
5748     ULONGLONG ftStartTime;
5749     ULONGLONG ullAudioStreamPosition;
5750     ULONG ulAudioSizeBytes;
5751     ULONG ulRetainedSizeBytes;
5752     ULONG ulAudioSizeTime;
5753     SPPHRASERULE Rule;
5754     const SPPHRASEPROPERTY *pProperties;
5755     const SPPHRASEELEMENT *pElements;
5756     ULONG cReplacements;
5757     const SPPHRASEREPLACEMENT *pReplacements;
5758     GUID SREngineID;
5759     ULONG ulSREnginePrivateDataSize;
5760     const BYTE *pSREnginePrivateData;
5761     LPWSTR pSML;
5762     SPSEMANTICERRORINFO *pSemanticErrorInfo;
5763 } SPPHRASE_53;
5764 #endif
5765 #define SP_SPPHRASESIZE_530 sizeof (SPPHRASE_53)
5766 #ifdef __cplusplus
5767 typedef struct SPPHRASE : public SPPHRASE_53 {
5768   SPSEMANTICFORMAT SemanticTagFormat;
5769 } SPPHRASE;
5770 #else
5771 typedef struct SPPHRASE {
5772     ULONG cbSize;
5773     WORD LangID;
5774     WORD wHomophoneGroupId;
5775     ULONGLONG ullGrammarID;
5776     ULONGLONG ftStartTime;
5777     ULONGLONG ullAudioStreamPosition;
5778     ULONG ulAudioSizeBytes;
5779     ULONG ulRetainedSizeBytes;
5780     ULONG ulAudioSizeTime;
5781     SPPHRASERULE Rule;
5782     const SPPHRASEPROPERTY *pProperties;
5783     const SPPHRASEELEMENT *pElements;
5784     ULONG cReplacements;
5785     const SPPHRASEREPLACEMENT *pReplacements;
5786     GUID SREngineID;
5787     ULONG ulSREnginePrivateDataSize;
5788     const BYTE *pSREnginePrivateData;
5789     LPWSTR pSML;
5790     SPSEMANTICERRORINFO *pSemanticErrorInfo;
5791     SPSEMANTICFORMAT SemanticTagFormat;
5792 } SPPHRASE;
5793 #endif
5794 typedef struct SPSERIALIZEDPHRASE {
5795     ULONG ulSerializedSize;
5796 } SPSERIALIZEDPHRASE;
5797 typedef struct SPRULE {
5798     LPCWSTR pszRuleName;
5799     ULONG ulRuleId;
5800     DWORD dwAttributes;
5801 } SPRULE;
5802 typedef struct SPBINARYGRAMMAR {
5803     ULONG ulTotalSerializedSize;
5804 } SPBINARYGRAMMAR;
5805 #if 0
5806 typedef void *SPSTATEHANDLE;
5807 #else
5808 DECLARE_HANDLE(SPSTATEHANDLE);
5809 #endif
5810 typedef struct SPWORDPRONUNCIATION {
5811     struct SPWORDPRONUNCIATION *pNextWordPronunciation;
5812     SPLEXICONTYPE eLexiconType;
5813     WORD LangID;
5814     WORD wPronunciationFlags;
5815     SPPARTOFSPEECH ePartOfSpeech;
5816     SPPHONEID szPronunciation[1];
5817 } SPWORDPRONUNCIATION;
5818 typedef struct SPWORDPRONUNCIATIONLIST {
5819     ULONG ulSize;
5820     BYTE *pvBuffer;
5821     SPWORDPRONUNCIATION *pFirstWordPronunciation;
5822 } SPWORDPRONUNCIATIONLIST;
5823 typedef struct SPWORD {
5824     struct SPWORD *pNextWord;
5825     WORD LangID;
5826     WORD wReserved;
5827     SPWORDTYPE eWordType;
5828     LPWSTR pszWord;
5829     SPWORDPRONUNCIATION *pFirstWordPronunciation;
5830 } SPWORD;
5831 typedef struct SPWORDLIST {
5832     ULONG ulSize;
5833     BYTE *pvBuffer;
5834     SPWORD *pFirstWord;
5835 } SPWORDLIST;
5836 /*****************************************************************************
5837  * ISpLexicon interface
5838  */
5839 #ifndef __ISpLexicon_INTERFACE_DEFINED__
5840 #define __ISpLexicon_INTERFACE_DEFINED__
5841 
5842 DEFINE_GUID(IID_ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58);
5843 #if defined(__cplusplus) && !defined(CINTERFACE)
5844 MIDL_INTERFACE("da41a7c2-5383-4db2-916b-6c1719e3db58")
5845 ISpLexicon : public IUnknown
5846 {
5847     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
5848         LPCWSTR pszWord,
5849         WORD LangID,
5850         DWORD dwFlags,
5851         SPWORDPRONUNCIATIONLIST *pWordPronunciationList) = 0;
5852 
5853     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
5854         LPCWSTR pszWord,
5855         WORD LangID,
5856         SPPARTOFSPEECH ePartOfSpeech,
5857         PCSPPHONEID pszPronunciation) = 0;
5858 
5859     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
5860         LPCWSTR pszWord,
5861         WORD LangID,
5862         SPPARTOFSPEECH ePartOfSpeech,
5863         PCSPPHONEID pszPronunciation) = 0;
5864 
5865     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
5866         DWORD *pdwGeneration) = 0;
5867 
5868     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
5869         DWORD dwFlags,
5870         DWORD *pdwGeneration,
5871         SPWORDLIST *pWordList) = 0;
5872 
5873     virtual HRESULT STDMETHODCALLTYPE GetWords(
5874         DWORD dwFlags,
5875         DWORD *pdwGeneration,
5876         DWORD *pdwCookie,
5877         SPWORDLIST *pWordList) = 0;
5878 
5879 };
5880 #ifdef __CRT_UUID_DECL
5881 __CRT_UUID_DECL(ISpLexicon, 0xda41a7c2, 0x5383, 0x4db2, 0x91,0x6b, 0x6c,0x17,0x19,0xe3,0xdb,0x58)
5882 #endif
5883 #else
5884 typedef struct ISpLexiconVtbl {
5885     BEGIN_INTERFACE
5886 
5887     /*** IUnknown methods ***/
5888     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
5889         ISpLexicon *This,
5890         REFIID riid,
5891         void **ppvObject);
5892 
5893     ULONG (STDMETHODCALLTYPE *AddRef)(
5894         ISpLexicon *This);
5895 
5896     ULONG (STDMETHODCALLTYPE *Release)(
5897         ISpLexicon *This);
5898 
5899     /*** ISpLexicon methods ***/
5900     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
5901         ISpLexicon *This,
5902         LPCWSTR pszWord,
5903         WORD LangID,
5904         DWORD dwFlags,
5905         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
5906 
5907     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
5908         ISpLexicon *This,
5909         LPCWSTR pszWord,
5910         WORD LangID,
5911         SPPARTOFSPEECH ePartOfSpeech,
5912         PCSPPHONEID pszPronunciation);
5913 
5914     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
5915         ISpLexicon *This,
5916         LPCWSTR pszWord,
5917         WORD LangID,
5918         SPPARTOFSPEECH ePartOfSpeech,
5919         PCSPPHONEID pszPronunciation);
5920 
5921     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
5922         ISpLexicon *This,
5923         DWORD *pdwGeneration);
5924 
5925     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
5926         ISpLexicon *This,
5927         DWORD dwFlags,
5928         DWORD *pdwGeneration,
5929         SPWORDLIST *pWordList);
5930 
5931     HRESULT (STDMETHODCALLTYPE *GetWords)(
5932         ISpLexicon *This,
5933         DWORD dwFlags,
5934         DWORD *pdwGeneration,
5935         DWORD *pdwCookie,
5936         SPWORDLIST *pWordList);
5937 
5938     END_INTERFACE
5939 } ISpLexiconVtbl;
5940 
5941 interface ISpLexicon {
5942     CONST_VTBL ISpLexiconVtbl* lpVtbl;
5943 };
5944 
5945 #ifdef COBJMACROS
5946 #ifndef WIDL_C_INLINE_WRAPPERS
5947 /*** IUnknown methods ***/
5948 #define ISpLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
5949 #define ISpLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
5950 #define ISpLexicon_Release(This) (This)->lpVtbl->Release(This)
5951 /*** ISpLexicon methods ***/
5952 #define ISpLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
5953 #define ISpLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5954 #define ISpLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
5955 #define ISpLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
5956 #define ISpLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
5957 #define ISpLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
5958 #else
5959 /*** IUnknown methods ***/
5960 static FORCEINLINE HRESULT ISpLexicon_QueryInterface(ISpLexicon* This,REFIID riid,void **ppvObject) {
5961     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
5962 }
5963 static FORCEINLINE ULONG ISpLexicon_AddRef(ISpLexicon* This) {
5964     return This->lpVtbl->AddRef(This);
5965 }
5966 static FORCEINLINE ULONG ISpLexicon_Release(ISpLexicon* This) {
5967     return This->lpVtbl->Release(This);
5968 }
5969 /*** ISpLexicon methods ***/
5970 static FORCEINLINE HRESULT ISpLexicon_GetPronunciations(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
5971     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
5972 }
5973 static FORCEINLINE HRESULT ISpLexicon_AddPronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5974     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5975 }
5976 static FORCEINLINE HRESULT ISpLexicon_RemovePronunciation(ISpLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
5977     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
5978 }
5979 static FORCEINLINE HRESULT ISpLexicon_GetGeneration(ISpLexicon* This,DWORD *pdwGeneration) {
5980     return This->lpVtbl->GetGeneration(This,pdwGeneration);
5981 }
5982 static FORCEINLINE HRESULT ISpLexicon_GetGenerationChange(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
5983     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
5984 }
5985 static FORCEINLINE HRESULT ISpLexicon_GetWords(ISpLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
5986     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
5987 }
5988 #endif
5989 #endif
5990 
5991 #endif
5992 
5993 
5994 #endif  /* __ISpLexicon_INTERFACE_DEFINED__ */
5995 
5996 /*****************************************************************************
5997  * ISpContainerLexicon interface
5998  */
5999 #ifndef __ISpContainerLexicon_INTERFACE_DEFINED__
6000 #define __ISpContainerLexicon_INTERFACE_DEFINED__
6001 
6002 DEFINE_GUID(IID_ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44);
6003 #if defined(__cplusplus) && !defined(CINTERFACE)
6004 MIDL_INTERFACE("8565572f-c094-41cc-b56e-10bd9c3ff044")
6005 ISpContainerLexicon : public ISpLexicon
6006 {
6007     virtual HRESULT STDMETHODCALLTYPE AddLexicon(
6008         ISpLexicon *pAddLexicon,
6009         DWORD dwFlags) = 0;
6010 
6011 };
6012 #ifdef __CRT_UUID_DECL
6013 __CRT_UUID_DECL(ISpContainerLexicon, 0x8565572f, 0xc094, 0x41cc, 0xb5,0x6e, 0x10,0xbd,0x9c,0x3f,0xf0,0x44)
6014 #endif
6015 #else
6016 typedef struct ISpContainerLexiconVtbl {
6017     BEGIN_INTERFACE
6018 
6019     /*** IUnknown methods ***/
6020     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6021         ISpContainerLexicon *This,
6022         REFIID riid,
6023         void **ppvObject);
6024 
6025     ULONG (STDMETHODCALLTYPE *AddRef)(
6026         ISpContainerLexicon *This);
6027 
6028     ULONG (STDMETHODCALLTYPE *Release)(
6029         ISpContainerLexicon *This);
6030 
6031     /*** ISpLexicon methods ***/
6032     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
6033         ISpContainerLexicon *This,
6034         LPCWSTR pszWord,
6035         WORD LangID,
6036         DWORD dwFlags,
6037         SPWORDPRONUNCIATIONLIST *pWordPronunciationList);
6038 
6039     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
6040         ISpContainerLexicon *This,
6041         LPCWSTR pszWord,
6042         WORD LangID,
6043         SPPARTOFSPEECH ePartOfSpeech,
6044         PCSPPHONEID pszPronunciation);
6045 
6046     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
6047         ISpContainerLexicon *This,
6048         LPCWSTR pszWord,
6049         WORD LangID,
6050         SPPARTOFSPEECH ePartOfSpeech,
6051         PCSPPHONEID pszPronunciation);
6052 
6053     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6054         ISpContainerLexicon *This,
6055         DWORD *pdwGeneration);
6056 
6057     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6058         ISpContainerLexicon *This,
6059         DWORD dwFlags,
6060         DWORD *pdwGeneration,
6061         SPWORDLIST *pWordList);
6062 
6063     HRESULT (STDMETHODCALLTYPE *GetWords)(
6064         ISpContainerLexicon *This,
6065         DWORD dwFlags,
6066         DWORD *pdwGeneration,
6067         DWORD *pdwCookie,
6068         SPWORDLIST *pWordList);
6069 
6070     /*** ISpContainerLexicon methods ***/
6071     HRESULT (STDMETHODCALLTYPE *AddLexicon)(
6072         ISpContainerLexicon *This,
6073         ISpLexicon *pAddLexicon,
6074         DWORD dwFlags);
6075 
6076     END_INTERFACE
6077 } ISpContainerLexiconVtbl;
6078 
6079 interface ISpContainerLexicon {
6080     CONST_VTBL ISpContainerLexiconVtbl* lpVtbl;
6081 };
6082 
6083 #ifdef COBJMACROS
6084 #ifndef WIDL_C_INLINE_WRAPPERS
6085 /*** IUnknown methods ***/
6086 #define ISpContainerLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6087 #define ISpContainerLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
6088 #define ISpContainerLexicon_Release(This) (This)->lpVtbl->Release(This)
6089 /*** ISpLexicon methods ***/
6090 #define ISpContainerLexicon_GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList)
6091 #define ISpContainerLexicon_AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6092 #define ISpContainerLexicon_RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation) (This)->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation)
6093 #define ISpContainerLexicon_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6094 #define ISpContainerLexicon_GetGenerationChange(This,dwFlags,pdwGeneration,pWordList) (This)->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList)
6095 #define ISpContainerLexicon_GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList)
6096 /*** ISpContainerLexicon methods ***/
6097 #define ISpContainerLexicon_AddLexicon(This,pAddLexicon,dwFlags) (This)->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags)
6098 #else
6099 /*** IUnknown methods ***/
6100 static FORCEINLINE HRESULT ISpContainerLexicon_QueryInterface(ISpContainerLexicon* This,REFIID riid,void **ppvObject) {
6101     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6102 }
6103 static FORCEINLINE ULONG ISpContainerLexicon_AddRef(ISpContainerLexicon* This) {
6104     return This->lpVtbl->AddRef(This);
6105 }
6106 static FORCEINLINE ULONG ISpContainerLexicon_Release(ISpContainerLexicon* This) {
6107     return This->lpVtbl->Release(This);
6108 }
6109 /*** ISpLexicon methods ***/
6110 static FORCEINLINE HRESULT ISpContainerLexicon_GetPronunciations(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,DWORD dwFlags,SPWORDPRONUNCIATIONLIST *pWordPronunciationList) {
6111     return This->lpVtbl->GetPronunciations(This,pszWord,LangID,dwFlags,pWordPronunciationList);
6112 }
6113 static FORCEINLINE HRESULT ISpContainerLexicon_AddPronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6114     return This->lpVtbl->AddPronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6115 }
6116 static FORCEINLINE HRESULT ISpContainerLexicon_RemovePronunciation(ISpContainerLexicon* This,LPCWSTR pszWord,WORD LangID,SPPARTOFSPEECH ePartOfSpeech,PCSPPHONEID pszPronunciation) {
6117     return This->lpVtbl->RemovePronunciation(This,pszWord,LangID,ePartOfSpeech,pszPronunciation);
6118 }
6119 static FORCEINLINE HRESULT ISpContainerLexicon_GetGeneration(ISpContainerLexicon* This,DWORD *pdwGeneration) {
6120     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6121 }
6122 static FORCEINLINE HRESULT ISpContainerLexicon_GetGenerationChange(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6123     return This->lpVtbl->GetGenerationChange(This,dwFlags,pdwGeneration,pWordList);
6124 }
6125 static FORCEINLINE HRESULT ISpContainerLexicon_GetWords(ISpContainerLexicon* This,DWORD dwFlags,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6126     return This->lpVtbl->GetWords(This,dwFlags,pdwGeneration,pdwCookie,pWordList);
6127 }
6128 /*** ISpContainerLexicon methods ***/
6129 static FORCEINLINE HRESULT ISpContainerLexicon_AddLexicon(ISpContainerLexicon* This,ISpLexicon *pAddLexicon,DWORD dwFlags) {
6130     return This->lpVtbl->AddLexicon(This,pAddLexicon,dwFlags);
6131 }
6132 #endif
6133 #endif
6134 
6135 #endif
6136 
6137 
6138 #endif  /* __ISpContainerLexicon_INTERFACE_DEFINED__ */
6139 
6140 typedef struct SPSHORTCUTPAIR {
6141     struct SPSHORTCUTPAIR *pNextSHORTCUTPAIR;
6142     WORD LangID;
6143     SPSHORTCUTTYPE shType;
6144     LPWSTR pszDisplay;
6145     LPWSTR pszSpoken;
6146 } SPSHORTCUTPAIR;
6147 typedef struct SPSHORTCUTPAIRLIST {
6148     ULONG ulSize;
6149     BYTE *pvBuffer;
6150     SPSHORTCUTPAIR *pFirstShortcutPair;
6151 } SPSHORTCUTPAIRLIST;
6152 /*****************************************************************************
6153  * ISpShortcut interface
6154  */
6155 #ifndef __ISpShortcut_INTERFACE_DEFINED__
6156 #define __ISpShortcut_INTERFACE_DEFINED__
6157 
6158 DEFINE_GUID(IID_ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a);
6159 #if defined(__cplusplus) && !defined(CINTERFACE)
6160 MIDL_INTERFACE("3df681e2-ea56-11d9-8bde-f66bad1e3f3a")
6161 ISpShortcut : public IUnknown
6162 {
6163     virtual HRESULT STDMETHODCALLTYPE AddShortcut(
6164         LPCWSTR pszDisplay,
6165         WORD LangID,
6166         LPCWSTR pszSpoken,
6167         SPSHORTCUTTYPE shType) = 0;
6168 
6169     virtual HRESULT STDMETHODCALLTYPE RemoveShortcut(
6170         LPCWSTR pszDisplay,
6171         WORD LangID,
6172         LPCWSTR pszSpoken,
6173         SPSHORTCUTTYPE shType) = 0;
6174 
6175     virtual HRESULT STDMETHODCALLTYPE GetShortcuts(
6176         WORD LangID,
6177         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6178 
6179     virtual HRESULT STDMETHODCALLTYPE GetGeneration(
6180         DWORD *pdwGeneration) = 0;
6181 
6182     virtual HRESULT STDMETHODCALLTYPE GetWordsFromGenerationChange(
6183         DWORD *pdwGeneration,
6184         SPWORDLIST *pWordList) = 0;
6185 
6186     virtual HRESULT STDMETHODCALLTYPE GetWords(
6187         DWORD *pdwGeneration,
6188         DWORD *pdwCookie,
6189         SPWORDLIST *pWordList) = 0;
6190 
6191     virtual HRESULT STDMETHODCALLTYPE GetShortcutsForGeneration(
6192         DWORD *pdwGeneration,
6193         DWORD *pdwCookie,
6194         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6195 
6196     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
6197         DWORD *pdwGeneration,
6198         SPSHORTCUTPAIRLIST *pShortcutpairList) = 0;
6199 
6200 };
6201 #ifdef __CRT_UUID_DECL
6202 __CRT_UUID_DECL(ISpShortcut, 0x3df681e2, 0xea56, 0x11d9, 0x8b,0xde, 0xf6,0x6b,0xad,0x1e,0x3f,0x3a)
6203 #endif
6204 #else
6205 typedef struct ISpShortcutVtbl {
6206     BEGIN_INTERFACE
6207 
6208     /*** IUnknown methods ***/
6209     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6210         ISpShortcut *This,
6211         REFIID riid,
6212         void **ppvObject);
6213 
6214     ULONG (STDMETHODCALLTYPE *AddRef)(
6215         ISpShortcut *This);
6216 
6217     ULONG (STDMETHODCALLTYPE *Release)(
6218         ISpShortcut *This);
6219 
6220     /*** ISpShortcut methods ***/
6221     HRESULT (STDMETHODCALLTYPE *AddShortcut)(
6222         ISpShortcut *This,
6223         LPCWSTR pszDisplay,
6224         WORD LangID,
6225         LPCWSTR pszSpoken,
6226         SPSHORTCUTTYPE shType);
6227 
6228     HRESULT (STDMETHODCALLTYPE *RemoveShortcut)(
6229         ISpShortcut *This,
6230         LPCWSTR pszDisplay,
6231         WORD LangID,
6232         LPCWSTR pszSpoken,
6233         SPSHORTCUTTYPE shType);
6234 
6235     HRESULT (STDMETHODCALLTYPE *GetShortcuts)(
6236         ISpShortcut *This,
6237         WORD LangID,
6238         SPSHORTCUTPAIRLIST *pShortcutpairList);
6239 
6240     HRESULT (STDMETHODCALLTYPE *GetGeneration)(
6241         ISpShortcut *This,
6242         DWORD *pdwGeneration);
6243 
6244     HRESULT (STDMETHODCALLTYPE *GetWordsFromGenerationChange)(
6245         ISpShortcut *This,
6246         DWORD *pdwGeneration,
6247         SPWORDLIST *pWordList);
6248 
6249     HRESULT (STDMETHODCALLTYPE *GetWords)(
6250         ISpShortcut *This,
6251         DWORD *pdwGeneration,
6252         DWORD *pdwCookie,
6253         SPWORDLIST *pWordList);
6254 
6255     HRESULT (STDMETHODCALLTYPE *GetShortcutsForGeneration)(
6256         ISpShortcut *This,
6257         DWORD *pdwGeneration,
6258         DWORD *pdwCookie,
6259         SPSHORTCUTPAIRLIST *pShortcutpairList);
6260 
6261     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
6262         ISpShortcut *This,
6263         DWORD *pdwGeneration,
6264         SPSHORTCUTPAIRLIST *pShortcutpairList);
6265 
6266     END_INTERFACE
6267 } ISpShortcutVtbl;
6268 
6269 interface ISpShortcut {
6270     CONST_VTBL ISpShortcutVtbl* lpVtbl;
6271 };
6272 
6273 #ifdef COBJMACROS
6274 #ifndef WIDL_C_INLINE_WRAPPERS
6275 /*** IUnknown methods ***/
6276 #define ISpShortcut_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6277 #define ISpShortcut_AddRef(This) (This)->lpVtbl->AddRef(This)
6278 #define ISpShortcut_Release(This) (This)->lpVtbl->Release(This)
6279 /*** ISpShortcut methods ***/
6280 #define ISpShortcut_AddShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType)
6281 #define ISpShortcut_RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType) (This)->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType)
6282 #define ISpShortcut_GetShortcuts(This,LangID,pShortcutpairList) (This)->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList)
6283 #define ISpShortcut_GetGeneration(This,pdwGeneration) (This)->lpVtbl->GetGeneration(This,pdwGeneration)
6284 #define ISpShortcut_GetWordsFromGenerationChange(This,pdwGeneration,pWordList) (This)->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList)
6285 #define ISpShortcut_GetWords(This,pdwGeneration,pdwCookie,pWordList) (This)->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList)
6286 #define ISpShortcut_GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList) (This)->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList)
6287 #define ISpShortcut_GetGenerationChange(This,pdwGeneration,pShortcutpairList) (This)->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList)
6288 #else
6289 /*** IUnknown methods ***/
6290 static FORCEINLINE HRESULT ISpShortcut_QueryInterface(ISpShortcut* This,REFIID riid,void **ppvObject) {
6291     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6292 }
6293 static FORCEINLINE ULONG ISpShortcut_AddRef(ISpShortcut* This) {
6294     return This->lpVtbl->AddRef(This);
6295 }
6296 static FORCEINLINE ULONG ISpShortcut_Release(ISpShortcut* This) {
6297     return This->lpVtbl->Release(This);
6298 }
6299 /*** ISpShortcut methods ***/
6300 static FORCEINLINE HRESULT ISpShortcut_AddShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
6301     return This->lpVtbl->AddShortcut(This,pszDisplay,LangID,pszSpoken,shType);
6302 }
6303 static FORCEINLINE HRESULT ISpShortcut_RemoveShortcut(ISpShortcut* This,LPCWSTR pszDisplay,WORD LangID,LPCWSTR pszSpoken,SPSHORTCUTTYPE shType) {
6304     return This->lpVtbl->RemoveShortcut(This,pszDisplay,LangID,pszSpoken,shType);
6305 }
6306 static FORCEINLINE HRESULT ISpShortcut_GetShortcuts(ISpShortcut* This,WORD LangID,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6307     return This->lpVtbl->GetShortcuts(This,LangID,pShortcutpairList);
6308 }
6309 static FORCEINLINE HRESULT ISpShortcut_GetGeneration(ISpShortcut* This,DWORD *pdwGeneration) {
6310     return This->lpVtbl->GetGeneration(This,pdwGeneration);
6311 }
6312 static FORCEINLINE HRESULT ISpShortcut_GetWordsFromGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPWORDLIST *pWordList) {
6313     return This->lpVtbl->GetWordsFromGenerationChange(This,pdwGeneration,pWordList);
6314 }
6315 static FORCEINLINE HRESULT ISpShortcut_GetWords(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPWORDLIST *pWordList) {
6316     return This->lpVtbl->GetWords(This,pdwGeneration,pdwCookie,pWordList);
6317 }
6318 static FORCEINLINE HRESULT ISpShortcut_GetShortcutsForGeneration(ISpShortcut* This,DWORD *pdwGeneration,DWORD *pdwCookie,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6319     return This->lpVtbl->GetShortcutsForGeneration(This,pdwGeneration,pdwCookie,pShortcutpairList);
6320 }
6321 static FORCEINLINE HRESULT ISpShortcut_GetGenerationChange(ISpShortcut* This,DWORD *pdwGeneration,SPSHORTCUTPAIRLIST *pShortcutpairList) {
6322     return This->lpVtbl->GetGenerationChange(This,pdwGeneration,pShortcutpairList);
6323 }
6324 #endif
6325 #endif
6326 
6327 #endif
6328 
6329 
6330 #endif  /* __ISpShortcut_INTERFACE_DEFINED__ */
6331 
6332 /*****************************************************************************
6333  * ISpPhoneConverter interface
6334  */
6335 #ifndef __ISpPhoneConverter_INTERFACE_DEFINED__
6336 #define __ISpPhoneConverter_INTERFACE_DEFINED__
6337 
6338 DEFINE_GUID(IID_ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55);
6339 #if defined(__cplusplus) && !defined(CINTERFACE)
6340 MIDL_INTERFACE("8445c581-0cac-4a38-abfe-9b2ce2826455")
6341 ISpPhoneConverter : public ISpObjectWithToken
6342 {
6343     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
6344         LPCWSTR pszPhone,
6345         SPPHONEID *pId) = 0;
6346 
6347     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
6348         PCSPPHONEID pId,
6349         WCHAR *pszPhone) = 0;
6350 
6351 };
6352 #ifdef __CRT_UUID_DECL
6353 __CRT_UUID_DECL(ISpPhoneConverter, 0x8445c581, 0x0cac, 0x4a38, 0xab,0xfe, 0x9b,0x2c,0xe2,0x82,0x64,0x55)
6354 #endif
6355 #else
6356 typedef struct ISpPhoneConverterVtbl {
6357     BEGIN_INTERFACE
6358 
6359     /*** IUnknown methods ***/
6360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6361         ISpPhoneConverter *This,
6362         REFIID riid,
6363         void **ppvObject);
6364 
6365     ULONG (STDMETHODCALLTYPE *AddRef)(
6366         ISpPhoneConverter *This);
6367 
6368     ULONG (STDMETHODCALLTYPE *Release)(
6369         ISpPhoneConverter *This);
6370 
6371     /*** ISpObjectWithToken methods ***/
6372     HRESULT (STDMETHODCALLTYPE *SetObjectToken)(
6373         ISpPhoneConverter *This,
6374         ISpObjectToken *pToken);
6375 
6376     HRESULT (STDMETHODCALLTYPE *GetObjectToken)(
6377         ISpPhoneConverter *This,
6378         ISpObjectToken **ppToken);
6379 
6380     /*** ISpPhoneConverter methods ***/
6381     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
6382         ISpPhoneConverter *This,
6383         LPCWSTR pszPhone,
6384         SPPHONEID *pId);
6385 
6386     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
6387         ISpPhoneConverter *This,
6388         PCSPPHONEID pId,
6389         WCHAR *pszPhone);
6390 
6391     END_INTERFACE
6392 } ISpPhoneConverterVtbl;
6393 
6394 interface ISpPhoneConverter {
6395     CONST_VTBL ISpPhoneConverterVtbl* lpVtbl;
6396 };
6397 
6398 #ifdef COBJMACROS
6399 #ifndef WIDL_C_INLINE_WRAPPERS
6400 /*** IUnknown methods ***/
6401 #define ISpPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6402 #define ISpPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6403 #define ISpPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
6404 /*** ISpObjectWithToken methods ***/
6405 #define ISpPhoneConverter_SetObjectToken(This,pToken) (This)->lpVtbl->SetObjectToken(This,pToken)
6406 #define ISpPhoneConverter_GetObjectToken(This,ppToken) (This)->lpVtbl->GetObjectToken(This,ppToken)
6407 /*** ISpPhoneConverter methods ***/
6408 #define ISpPhoneConverter_PhoneToId(This,pszPhone,pId) (This)->lpVtbl->PhoneToId(This,pszPhone,pId)
6409 #define ISpPhoneConverter_IdToPhone(This,pId,pszPhone) (This)->lpVtbl->IdToPhone(This,pId,pszPhone)
6410 #else
6411 /*** IUnknown methods ***/
6412 static FORCEINLINE HRESULT ISpPhoneConverter_QueryInterface(ISpPhoneConverter* This,REFIID riid,void **ppvObject) {
6413     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6414 }
6415 static FORCEINLINE ULONG ISpPhoneConverter_AddRef(ISpPhoneConverter* This) {
6416     return This->lpVtbl->AddRef(This);
6417 }
6418 static FORCEINLINE ULONG ISpPhoneConverter_Release(ISpPhoneConverter* This) {
6419     return This->lpVtbl->Release(This);
6420 }
6421 /*** ISpObjectWithToken methods ***/
6422 static FORCEINLINE HRESULT ISpPhoneConverter_SetObjectToken(ISpPhoneConverter* This,ISpObjectToken *pToken) {
6423     return This->lpVtbl->SetObjectToken(This,pToken);
6424 }
6425 static FORCEINLINE HRESULT ISpPhoneConverter_GetObjectToken(ISpPhoneConverter* This,ISpObjectToken **ppToken) {
6426     return This->lpVtbl->GetObjectToken(This,ppToken);
6427 }
6428 /*** ISpPhoneConverter methods ***/
6429 static FORCEINLINE HRESULT ISpPhoneConverter_PhoneToId(ISpPhoneConverter* This,LPCWSTR pszPhone,SPPHONEID *pId) {
6430     return This->lpVtbl->PhoneToId(This,pszPhone,pId);
6431 }
6432 static FORCEINLINE HRESULT ISpPhoneConverter_IdToPhone(ISpPhoneConverter* This,PCSPPHONEID pId,WCHAR *pszPhone) {
6433     return This->lpVtbl->IdToPhone(This,pId,pszPhone);
6434 }
6435 #endif
6436 #endif
6437 
6438 #endif
6439 
6440 
6441 #endif  /* __ISpPhoneConverter_INTERFACE_DEFINED__ */
6442 
6443 /*****************************************************************************
6444  * ISpPhoneticAlphabetConverter interface
6445  */
6446 #ifndef __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
6447 #define __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__
6448 
6449 DEFINE_GUID(IID_ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17);
6450 #if defined(__cplusplus) && !defined(CINTERFACE)
6451 MIDL_INTERFACE("133adcd4-19b4-4020-9fdc-842e78253b17")
6452 ISpPhoneticAlphabetConverter : public IUnknown
6453 {
6454     virtual HRESULT STDMETHODCALLTYPE GetLangId(
6455         WORD *pLangID) = 0;
6456 
6457     virtual HRESULT STDMETHODCALLTYPE SetLangId(
6458         WORD LangID) = 0;
6459 
6460     virtual HRESULT STDMETHODCALLTYPE SAPI2UPS(
6461         const SPPHONEID *pszSAPIId,
6462         SPPHONEID *pszUPSId,
6463         DWORD cMaxLength) = 0;
6464 
6465     virtual HRESULT STDMETHODCALLTYPE UPS2SAPI(
6466         const SPPHONEID *pszUPSId,
6467         SPPHONEID *pszSAPIId,
6468         DWORD cMaxLength) = 0;
6469 
6470     virtual HRESULT STDMETHODCALLTYPE GetMaxConvertLength(
6471         DWORD cSrcLength,
6472         WINBOOL bSAPI2UPS,
6473         DWORD *pcMaxDestLength) = 0;
6474 
6475 };
6476 #ifdef __CRT_UUID_DECL
6477 __CRT_UUID_DECL(ISpPhoneticAlphabetConverter, 0x133adcd4, 0x19b4, 0x4020, 0x9f,0xdc, 0x84,0x2e,0x78,0x25,0x3b,0x17)
6478 #endif
6479 #else
6480 typedef struct ISpPhoneticAlphabetConverterVtbl {
6481     BEGIN_INTERFACE
6482 
6483     /*** IUnknown methods ***/
6484     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6485         ISpPhoneticAlphabetConverter *This,
6486         REFIID riid,
6487         void **ppvObject);
6488 
6489     ULONG (STDMETHODCALLTYPE *AddRef)(
6490         ISpPhoneticAlphabetConverter *This);
6491 
6492     ULONG (STDMETHODCALLTYPE *Release)(
6493         ISpPhoneticAlphabetConverter *This);
6494 
6495     /*** ISpPhoneticAlphabetConverter methods ***/
6496     HRESULT (STDMETHODCALLTYPE *GetLangId)(
6497         ISpPhoneticAlphabetConverter *This,
6498         WORD *pLangID);
6499 
6500     HRESULT (STDMETHODCALLTYPE *SetLangId)(
6501         ISpPhoneticAlphabetConverter *This,
6502         WORD LangID);
6503 
6504     HRESULT (STDMETHODCALLTYPE *SAPI2UPS)(
6505         ISpPhoneticAlphabetConverter *This,
6506         const SPPHONEID *pszSAPIId,
6507         SPPHONEID *pszUPSId,
6508         DWORD cMaxLength);
6509 
6510     HRESULT (STDMETHODCALLTYPE *UPS2SAPI)(
6511         ISpPhoneticAlphabetConverter *This,
6512         const SPPHONEID *pszUPSId,
6513         SPPHONEID *pszSAPIId,
6514         DWORD cMaxLength);
6515 
6516     HRESULT (STDMETHODCALLTYPE *GetMaxConvertLength)(
6517         ISpPhoneticAlphabetConverter *This,
6518         DWORD cSrcLength,
6519         WINBOOL bSAPI2UPS,
6520         DWORD *pcMaxDestLength);
6521 
6522     END_INTERFACE
6523 } ISpPhoneticAlphabetConverterVtbl;
6524 
6525 interface ISpPhoneticAlphabetConverter {
6526     CONST_VTBL ISpPhoneticAlphabetConverterVtbl* lpVtbl;
6527 };
6528 
6529 #ifdef COBJMACROS
6530 #ifndef WIDL_C_INLINE_WRAPPERS
6531 /*** IUnknown methods ***/
6532 #define ISpPhoneticAlphabetConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6533 #define ISpPhoneticAlphabetConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
6534 #define ISpPhoneticAlphabetConverter_Release(This) (This)->lpVtbl->Release(This)
6535 /*** ISpPhoneticAlphabetConverter methods ***/
6536 #define ISpPhoneticAlphabetConverter_GetLangId(This,pLangID) (This)->lpVtbl->GetLangId(This,pLangID)
6537 #define ISpPhoneticAlphabetConverter_SetLangId(This,LangID) (This)->lpVtbl->SetLangId(This,LangID)
6538 #define ISpPhoneticAlphabetConverter_SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength) (This)->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength)
6539 #define ISpPhoneticAlphabetConverter_UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength) (This)->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength)
6540 #define ISpPhoneticAlphabetConverter_GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength) (This)->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength)
6541 #else
6542 /*** IUnknown methods ***/
6543 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_QueryInterface(ISpPhoneticAlphabetConverter* This,REFIID riid,void **ppvObject) {
6544     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6545 }
6546 static FORCEINLINE ULONG ISpPhoneticAlphabetConverter_AddRef(ISpPhoneticAlphabetConverter* This) {
6547     return This->lpVtbl->AddRef(This);
6548 }
6549 static FORCEINLINE ULONG ISpPhoneticAlphabetConverter_Release(ISpPhoneticAlphabetConverter* This) {
6550     return This->lpVtbl->Release(This);
6551 }
6552 /*** ISpPhoneticAlphabetConverter methods ***/
6553 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_GetLangId(ISpPhoneticAlphabetConverter* This,WORD *pLangID) {
6554     return This->lpVtbl->GetLangId(This,pLangID);
6555 }
6556 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_SetLangId(ISpPhoneticAlphabetConverter* This,WORD LangID) {
6557     return This->lpVtbl->SetLangId(This,LangID);
6558 }
6559 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_SAPI2UPS(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszSAPIId,SPPHONEID *pszUPSId,DWORD cMaxLength) {
6560     return This->lpVtbl->SAPI2UPS(This,pszSAPIId,pszUPSId,cMaxLength);
6561 }
6562 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_UPS2SAPI(ISpPhoneticAlphabetConverter* This,const SPPHONEID *pszUPSId,SPPHONEID *pszSAPIId,DWORD cMaxLength) {
6563     return This->lpVtbl->UPS2SAPI(This,pszUPSId,pszSAPIId,cMaxLength);
6564 }
6565 static FORCEINLINE HRESULT ISpPhoneticAlphabetConverter_GetMaxConvertLength(ISpPhoneticAlphabetConverter* This,DWORD cSrcLength,WINBOOL bSAPI2UPS,DWORD *pcMaxDestLength) {
6566     return This->lpVtbl->GetMaxConvertLength(This,cSrcLength,bSAPI2UPS,pcMaxDestLength);
6567 }
6568 #endif
6569 #endif
6570 
6571 #endif
6572 
6573 
6574 #endif  /* __ISpPhoneticAlphabetConverter_INTERFACE_DEFINED__ */
6575 
6576 /*****************************************************************************
6577  * ISpPhoneticAlphabetSelection interface
6578  */
6579 #ifndef __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
6580 #define __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__
6581 
6582 DEFINE_GUID(IID_ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90);
6583 #if defined(__cplusplus) && !defined(CINTERFACE)
6584 MIDL_INTERFACE("b2745efd-42ce-48ca-81f1-a96e02538a90")
6585 ISpPhoneticAlphabetSelection : public IUnknown
6586 {
6587     virtual HRESULT STDMETHODCALLTYPE IsAlphabetUPS(
6588         WINBOOL *pfIsUPS) = 0;
6589 
6590     virtual HRESULT STDMETHODCALLTYPE SetAlphabetToUPS(
6591         WINBOOL fForceUPS) = 0;
6592 
6593 };
6594 #ifdef __CRT_UUID_DECL
6595 __CRT_UUID_DECL(ISpPhoneticAlphabetSelection, 0xb2745efd, 0x42ce, 0x48ca, 0x81,0xf1, 0xa9,0x6e,0x02,0x53,0x8a,0x90)
6596 #endif
6597 #else
6598 typedef struct ISpPhoneticAlphabetSelectionVtbl {
6599     BEGIN_INTERFACE
6600 
6601     /*** IUnknown methods ***/
6602     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6603         ISpPhoneticAlphabetSelection *This,
6604         REFIID riid,
6605         void **ppvObject);
6606 
6607     ULONG (STDMETHODCALLTYPE *AddRef)(
6608         ISpPhoneticAlphabetSelection *This);
6609 
6610     ULONG (STDMETHODCALLTYPE *Release)(
6611         ISpPhoneticAlphabetSelection *This);
6612 
6613     /*** ISpPhoneticAlphabetSelection methods ***/
6614     HRESULT (STDMETHODCALLTYPE *IsAlphabetUPS)(
6615         ISpPhoneticAlphabetSelection *This,
6616         WINBOOL *pfIsUPS);
6617 
6618     HRESULT (STDMETHODCALLTYPE *SetAlphabetToUPS)(
6619         ISpPhoneticAlphabetSelection *This,
6620         WINBOOL fForceUPS);
6621 
6622     END_INTERFACE
6623 } ISpPhoneticAlphabetSelectionVtbl;
6624 
6625 interface ISpPhoneticAlphabetSelection {
6626     CONST_VTBL ISpPhoneticAlphabetSelectionVtbl* lpVtbl;
6627 };
6628 
6629 #ifdef COBJMACROS
6630 #ifndef WIDL_C_INLINE_WRAPPERS
6631 /*** IUnknown methods ***/
6632 #define ISpPhoneticAlphabetSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
6633 #define ISpPhoneticAlphabetSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
6634 #define ISpPhoneticAlphabetSelection_Release(This) (This)->lpVtbl->Release(This)
6635 /*** ISpPhoneticAlphabetSelection methods ***/
6636 #define ISpPhoneticAlphabetSelection_IsAlphabetUPS(This,pfIsUPS) (This)->lpVtbl->IsAlphabetUPS(This,pfIsUPS)
6637 #define ISpPhoneticAlphabetSelection_SetAlphabetToUPS(This,fForceUPS) (This)->lpVtbl->SetAlphabetToUPS(This,fForceUPS)
6638 #else
6639 /*** IUnknown methods ***/
6640 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_QueryInterface(ISpPhoneticAlphabetSelection* This,REFIID riid,void **ppvObject) {
6641     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
6642 }
6643 static FORCEINLINE ULONG ISpPhoneticAlphabetSelection_AddRef(ISpPhoneticAlphabetSelection* This) {
6644     return This->lpVtbl->AddRef(This);
6645 }
6646 static FORCEINLINE ULONG ISpPhoneticAlphabetSelection_Release(ISpPhoneticAlphabetSelection* This) {
6647     return This->lpVtbl->Release(This);
6648 }
6649 /*** ISpPhoneticAlphabetSelection methods ***/
6650 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_IsAlphabetUPS(ISpPhoneticAlphabetSelection* This,WINBOOL *pfIsUPS) {
6651     return This->lpVtbl->IsAlphabetUPS(This,pfIsUPS);
6652 }
6653 static FORCEINLINE HRESULT ISpPhoneticAlphabetSelection_SetAlphabetToUPS(ISpPhoneticAlphabetSelection* This,WINBOOL fForceUPS) {
6654     return This->lpVtbl->SetAlphabetToUPS(This,fForceUPS);
6655 }
6656 #endif
6657 #endif
6658 
6659 #endif
6660 
6661 
6662 #endif  /* __ISpPhoneticAlphabetSelection_INTERFACE_DEFINED__ */
6663 
6664 typedef struct SPVPITCH {
6665     LONG MiddleAdj;
6666     LONG RangeAdj;
6667 } SPVPITCH;
6668 typedef struct SPVCONTEXT {
6669     LPCWSTR pCategory;
6670     LPCWSTR pBefore;
6671     LPCWSTR pAfter;
6672 } SPVCONTEXT;
6673 typedef struct SPVSTATE {
6674     SPVACTIONS eAction;
6675     WORD LangID;
6676     WORD wReserved;
6677     LONG EmphAdj;
6678     LONG RateAdj;
6679     ULONG Volume;
6680     SPVPITCH PitchAdj;
6681     ULONG SilenceMSecs;
6682     SPPHONEID *pPhoneIds;
6683     SPPARTOFSPEECH ePartOfSpeech;
6684     SPVCONTEXT Context;
6685 } SPVSTATE;
6686 typedef struct SPVOICESTATUS {
6687     ULONG ulCurrentStream;
6688     ULONG ulLastStreamQueued;
6689     HRESULT hrLastResult;
6690     DWORD dwRunningState;
6691     ULONG ulInputWordPos;
6692     ULONG ulInputWordLen;
6693     ULONG ulInputSentPos;
6694     ULONG ulInputSentLen;
6695     LONG lBookmarkId;
6696     SPPHONEID PhonemeId;
6697     SPVISEMES VisemeId;
6698     DWORD dwReserved1;
6699     DWORD dwReserved2;
6700 } SPVOICESTATUS;
6701 typedef enum SPEAKFLAGS {
6702     SPF_DEFAULT = 0,
6703     SPF_ASYNC = 1,
6704     SPF_PURGEBEFORESPEAK = 2,
6705     SPF_IS_FILENAME = 4,
6706     SPF_IS_XML = 8,
6707     SPF_IS_NOT_XML = 0x10,
6708     SPF_PERSIST_XML = 0x20,
6709     SPF_NLP_SPEAK_PUNC = 0x40,
6710     SPF_PARSE_SAPI = 0x80,
6711     SPF_PARSE_SSML = 0x100,
6712     SPF_PARSE_AUTODETECT = 0,
6713     SPF_NLP_MASK = SPF_NLP_SPEAK_PUNC,
6714     SPF_PARSE_MASK = SPF_PARSE_SAPI | SPF_PARSE_SSML,
6715     SPF_VOICE_MASK = ((((((SPF_ASYNC | SPF_PURGEBEFORESPEAK) | SPF_IS_FILENAME) | SPF_IS_XML) | SPF_IS_NOT_XML) | SPF_NLP_MASK) | SPF_PERSIST_XML) | SPF_PARSE_MASK,
6716     SPF_UNUSED_FLAGS = ~SPF_VOICE_MASK
6717 } SPEAKFLAGS;
6718 /*****************************************************************************
6719  * ISpVoice interface
6720  */
6721 #ifndef __ISpVoice_INTERFACE_DEFINED__
6722 #define __ISpVoice_INTERFACE_DEFINED__
6723 
6724 DEFINE_GUID(IID_ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4);
6725 #if defined(__cplusplus) && !defined(CINTERFACE)
6726 MIDL_INTERFACE("6c44df74-72b9-4992-a1ec-ef996e0422d4")
6727 ISpVoice : public ISpEventSource
6728 {
6729     virtual HRESULT STDMETHODCALLTYPE SetOutput(
6730         IUnknown *pUnkOutput,
6731         WINBOOL fAllowFormatChanges) = 0;
6732 
6733     virtual HRESULT STDMETHODCALLTYPE GetOutputObjectToken(
6734         ISpObjectToken **ppObjectToken) = 0;
6735 
6736     virtual HRESULT STDMETHODCALLTYPE GetOutputStream(
6737         ISpStreamFormat **ppStream) = 0;
6738 
6739     virtual HRESULT STDMETHODCALLTYPE Pause(
6740         ) = 0;
6741 
6742     virtual HRESULT STDMETHODCALLTYPE Resume(
6743         ) = 0;
6744 
6745     virtual HRESULT STDMETHODCALLTYPE SetVoice(
6746         ISpObjectToken *pToken) = 0;
6747 
6748     virtual HRESULT STDMETHODCALLTYPE GetVoice(
6749         ISpObjectToken **ppToken) = 0;
6750 
6751     virtual HRESULT STDMETHODCALLTYPE Speak(
6752         LPCWSTR pwcs,
6753         DWORD dwFlags,
6754         ULONG *pulStreamNumber) = 0;
6755 
6756     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
6757         IStream *pStream,
6758         DWORD dwFlags,
6759         ULONG *pulStreamNumber) = 0;
6760 
6761     virtual HRESULT STDMETHODCALLTYPE GetStatus(
6762         SPVOICESTATUS *pStatus,
6763         LPWSTR *ppszLastBookmark) = 0;
6764 
6765     virtual HRESULT STDMETHODCALLTYPE Skip(
6766         LPCWSTR pItemType,
6767         LONG lNumItems,
6768         ULONG *pulNumSkipped) = 0;
6769 
6770     virtual HRESULT STDMETHODCALLTYPE SetPriority(
6771         SPVPRIORITY ePriority) = 0;
6772 
6773     virtual HRESULT STDMETHODCALLTYPE GetPriority(
6774         SPVPRIORITY *pePriority) = 0;
6775 
6776     virtual HRESULT STDMETHODCALLTYPE SetAlertBoundary(
6777         SPEVENTENUM eBoundary) = 0;
6778 
6779     virtual HRESULT STDMETHODCALLTYPE GetAlertBoundary(
6780         SPEVENTENUM *peBoundary) = 0;
6781 
6782     virtual HRESULT STDMETHODCALLTYPE SetRate(
6783         LONG RateAdjust) = 0;
6784 
6785     virtual HRESULT STDMETHODCALLTYPE GetRate(
6786         LONG *pRateAdjust) = 0;
6787 
6788     virtual HRESULT STDMETHODCALLTYPE SetVolume(
6789         USHORT usVolume) = 0;
6790 
6791     virtual HRESULT STDMETHODCALLTYPE GetVolume(
6792         USHORT *pusVolume) = 0;
6793 
6794     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
6795         ULONG msTimeout) = 0;
6796 
6797     virtual HRESULT STDMETHODCALLTYPE SetSyncSpeakTimeout(
6798         ULONG msTimeout) = 0;
6799 
6800     virtual HRESULT STDMETHODCALLTYPE GetSyncSpeakTimeout(
6801         ULONG *pmsTimeout) = 0;
6802 
6803     virtual HANDLE STDMETHODCALLTYPE SpeakCompleteEvent(
6804         ) = 0;
6805 
6806     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
6807         LPCWSTR pszTypeOfUI,
6808         void *pvExtraData,
6809         ULONG cbExtraData,
6810         WINBOOL *pfSupported) = 0;
6811 
6812     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
6813         HWND hwndParent,
6814         LPCWSTR pszTitle,
6815         LPCWSTR pszTypeOfUI,
6816         void *pvExtraData,
6817         ULONG cbExtraData) = 0;
6818 
6819 };
6820 #ifdef __CRT_UUID_DECL
6821 __CRT_UUID_DECL(ISpVoice, 0x6c44df74, 0x72b9, 0x4992, 0xa1,0xec, 0xef,0x99,0x6e,0x04,0x22,0xd4)
6822 #endif
6823 #else
6824 typedef struct ISpVoiceVtbl {
6825     BEGIN_INTERFACE
6826 
6827     /*** IUnknown methods ***/
6828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
6829         ISpVoice *This,
6830         REFIID riid,
6831         void **ppvObject);
6832 
6833     ULONG (STDMETHODCALLTYPE *AddRef)(
6834         ISpVoice *This);
6835 
6836     ULONG (STDMETHODCALLTYPE *Release)(
6837         ISpVoice *This);
6838 
6839     /*** ISpNotifySource methods ***/
6840     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
6841         ISpVoice *This,
6842         ISpNotifySink *pNotifySink);
6843 
6844     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
6845         ISpVoice *This,
6846         HWND hWnd,
6847         UINT Msg,
6848         WPARAM wParam,
6849         LPARAM lParam);
6850 
6851     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
6852         ISpVoice *This,
6853         SPNOTIFYCALLBACK *pfnCallback,
6854         WPARAM wParam,
6855         LPARAM lParam);
6856 
6857     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
6858         ISpVoice *This,
6859         ISpNotifyCallback *pSpCallback,
6860         WPARAM wParam,
6861         LPARAM lParam);
6862 
6863     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
6864         ISpVoice *This);
6865 
6866     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
6867         ISpVoice *This,
6868         DWORD dwMilliseconds);
6869 
6870     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
6871         ISpVoice *This);
6872 
6873     /*** ISpEventSource methods ***/
6874     HRESULT (STDMETHODCALLTYPE *SetInterest)(
6875         ISpVoice *This,
6876         ULONGLONG ullEventInterest,
6877         ULONGLONG ullQueuedInterest);
6878 
6879     HRESULT (STDMETHODCALLTYPE *GetEvents)(
6880         ISpVoice *This,
6881         ULONG ulCount,
6882         SPEVENT *pEventArray,
6883         ULONG *pulFetched);
6884 
6885     HRESULT (STDMETHODCALLTYPE *GetInfo)(
6886         ISpVoice *This,
6887         SPEVENTSOURCEINFO *pInfo);
6888 
6889     /*** ISpVoice methods ***/
6890     HRESULT (STDMETHODCALLTYPE *SetOutput)(
6891         ISpVoice *This,
6892         IUnknown *pUnkOutput,
6893         WINBOOL fAllowFormatChanges);
6894 
6895     HRESULT (STDMETHODCALLTYPE *GetOutputObjectToken)(
6896         ISpVoice *This,
6897         ISpObjectToken **ppObjectToken);
6898 
6899     HRESULT (STDMETHODCALLTYPE *GetOutputStream)(
6900         ISpVoice *This,
6901         ISpStreamFormat **ppStream);
6902 
6903     HRESULT (STDMETHODCALLTYPE *Pause)(
6904         ISpVoice *This);
6905 
6906     HRESULT (STDMETHODCALLTYPE *Resume)(
6907         ISpVoice *This);
6908 
6909     HRESULT (STDMETHODCALLTYPE *SetVoice)(
6910         ISpVoice *This,
6911         ISpObjectToken *pToken);
6912 
6913     HRESULT (STDMETHODCALLTYPE *GetVoice)(
6914         ISpVoice *This,
6915         ISpObjectToken **ppToken);
6916 
6917     HRESULT (STDMETHODCALLTYPE *Speak)(
6918         ISpVoice *This,
6919         LPCWSTR pwcs,
6920         DWORD dwFlags,
6921         ULONG *pulStreamNumber);
6922 
6923     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
6924         ISpVoice *This,
6925         IStream *pStream,
6926         DWORD dwFlags,
6927         ULONG *pulStreamNumber);
6928 
6929     HRESULT (STDMETHODCALLTYPE *GetStatus)(
6930         ISpVoice *This,
6931         SPVOICESTATUS *pStatus,
6932         LPWSTR *ppszLastBookmark);
6933 
6934     HRESULT (STDMETHODCALLTYPE *Skip)(
6935         ISpVoice *This,
6936         LPCWSTR pItemType,
6937         LONG lNumItems,
6938         ULONG *pulNumSkipped);
6939 
6940     HRESULT (STDMETHODCALLTYPE *SetPriority)(
6941         ISpVoice *This,
6942         SPVPRIORITY ePriority);
6943 
6944     HRESULT (STDMETHODCALLTYPE *GetPriority)(
6945         ISpVoice *This,
6946         SPVPRIORITY *pePriority);
6947 
6948     HRESULT (STDMETHODCALLTYPE *SetAlertBoundary)(
6949         ISpVoice *This,
6950         SPEVENTENUM eBoundary);
6951 
6952     HRESULT (STDMETHODCALLTYPE *GetAlertBoundary)(
6953         ISpVoice *This,
6954         SPEVENTENUM *peBoundary);
6955 
6956     HRESULT (STDMETHODCALLTYPE *SetRate)(
6957         ISpVoice *This,
6958         LONG RateAdjust);
6959 
6960     HRESULT (STDMETHODCALLTYPE *GetRate)(
6961         ISpVoice *This,
6962         LONG *pRateAdjust);
6963 
6964     HRESULT (STDMETHODCALLTYPE *SetVolume)(
6965         ISpVoice *This,
6966         USHORT usVolume);
6967 
6968     HRESULT (STDMETHODCALLTYPE *GetVolume)(
6969         ISpVoice *This,
6970         USHORT *pusVolume);
6971 
6972     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
6973         ISpVoice *This,
6974         ULONG msTimeout);
6975 
6976     HRESULT (STDMETHODCALLTYPE *SetSyncSpeakTimeout)(
6977         ISpVoice *This,
6978         ULONG msTimeout);
6979 
6980     HRESULT (STDMETHODCALLTYPE *GetSyncSpeakTimeout)(
6981         ISpVoice *This,
6982         ULONG *pmsTimeout);
6983 
6984     HANDLE (STDMETHODCALLTYPE *SpeakCompleteEvent)(
6985         ISpVoice *This);
6986 
6987     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
6988         ISpVoice *This,
6989         LPCWSTR pszTypeOfUI,
6990         void *pvExtraData,
6991         ULONG cbExtraData,
6992         WINBOOL *pfSupported);
6993 
6994     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
6995         ISpVoice *This,
6996         HWND hwndParent,
6997         LPCWSTR pszTitle,
6998         LPCWSTR pszTypeOfUI,
6999         void *pvExtraData,
7000         ULONG cbExtraData);
7001 
7002     END_INTERFACE
7003 } ISpVoiceVtbl;
7004 
7005 interface ISpVoice {
7006     CONST_VTBL ISpVoiceVtbl* lpVtbl;
7007 };
7008 
7009 #ifdef COBJMACROS
7010 #ifndef WIDL_C_INLINE_WRAPPERS
7011 /*** IUnknown methods ***/
7012 #define ISpVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7013 #define ISpVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
7014 #define ISpVoice_Release(This) (This)->lpVtbl->Release(This)
7015 /*** ISpNotifySource methods ***/
7016 #define ISpVoice_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
7017 #define ISpVoice_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
7018 #define ISpVoice_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
7019 #define ISpVoice_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
7020 #define ISpVoice_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
7021 #define ISpVoice_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
7022 #define ISpVoice_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
7023 /*** ISpEventSource methods ***/
7024 #define ISpVoice_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
7025 #define ISpVoice_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
7026 #define ISpVoice_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
7027 /*** ISpVoice methods ***/
7028 #define ISpVoice_SetOutput(This,pUnkOutput,fAllowFormatChanges) (This)->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges)
7029 #define ISpVoice_GetOutputObjectToken(This,ppObjectToken) (This)->lpVtbl->GetOutputObjectToken(This,ppObjectToken)
7030 #define ISpVoice_GetOutputStream(This,ppStream) (This)->lpVtbl->GetOutputStream(This,ppStream)
7031 #define ISpVoice_Pause(This) (This)->lpVtbl->Pause(This)
7032 #define ISpVoice_Resume(This) (This)->lpVtbl->Resume(This)
7033 #define ISpVoice_SetVoice(This,pToken) (This)->lpVtbl->SetVoice(This,pToken)
7034 #define ISpVoice_GetVoice(This,ppToken) (This)->lpVtbl->GetVoice(This,ppToken)
7035 #define ISpVoice_Speak(This,pwcs,dwFlags,pulStreamNumber) (This)->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber)
7036 #define ISpVoice_SpeakStream(This,pStream,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber)
7037 #define ISpVoice_GetStatus(This,pStatus,ppszLastBookmark) (This)->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark)
7038 #define ISpVoice_Skip(This,pItemType,lNumItems,pulNumSkipped) (This)->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped)
7039 #define ISpVoice_SetPriority(This,ePriority) (This)->lpVtbl->SetPriority(This,ePriority)
7040 #define ISpVoice_GetPriority(This,pePriority) (This)->lpVtbl->GetPriority(This,pePriority)
7041 #define ISpVoice_SetAlertBoundary(This,eBoundary) (This)->lpVtbl->SetAlertBoundary(This,eBoundary)
7042 #define ISpVoice_GetAlertBoundary(This,peBoundary) (This)->lpVtbl->GetAlertBoundary(This,peBoundary)
7043 #define ISpVoice_SetRate(This,RateAdjust) (This)->lpVtbl->SetRate(This,RateAdjust)
7044 #define ISpVoice_GetRate(This,pRateAdjust) (This)->lpVtbl->GetRate(This,pRateAdjust)
7045 #define ISpVoice_SetVolume(This,usVolume) (This)->lpVtbl->SetVolume(This,usVolume)
7046 #define ISpVoice_GetVolume(This,pusVolume) (This)->lpVtbl->GetVolume(This,pusVolume)
7047 #define ISpVoice_WaitUntilDone(This,msTimeout) (This)->lpVtbl->WaitUntilDone(This,msTimeout)
7048 #define ISpVoice_SetSyncSpeakTimeout(This,msTimeout) (This)->lpVtbl->SetSyncSpeakTimeout(This,msTimeout)
7049 #define ISpVoice_GetSyncSpeakTimeout(This,pmsTimeout) (This)->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout)
7050 #define ISpVoice_SpeakCompleteEvent(This) (This)->lpVtbl->SpeakCompleteEvent(This)
7051 #define ISpVoice_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
7052 #define ISpVoice_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
7053 #else
7054 /*** IUnknown methods ***/
7055 static FORCEINLINE HRESULT ISpVoice_QueryInterface(ISpVoice* This,REFIID riid,void **ppvObject) {
7056     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7057 }
7058 static FORCEINLINE ULONG ISpVoice_AddRef(ISpVoice* This) {
7059     return This->lpVtbl->AddRef(This);
7060 }
7061 static FORCEINLINE ULONG ISpVoice_Release(ISpVoice* This) {
7062     return This->lpVtbl->Release(This);
7063 }
7064 /*** ISpNotifySource methods ***/
7065 static FORCEINLINE HRESULT ISpVoice_SetNotifySink(ISpVoice* This,ISpNotifySink *pNotifySink) {
7066     return This->lpVtbl->SetNotifySink(This,pNotifySink);
7067 }
7068 static FORCEINLINE HRESULT ISpVoice_SetNotifyWindowMessage(ISpVoice* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
7069     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
7070 }
7071 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackFunction(ISpVoice* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
7072     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
7073 }
7074 static FORCEINLINE HRESULT ISpVoice_SetNotifyCallbackInterface(ISpVoice* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
7075     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
7076 }
7077 static FORCEINLINE HRESULT ISpVoice_SetNotifyWin32Event(ISpVoice* This) {
7078     return This->lpVtbl->SetNotifyWin32Event(This);
7079 }
7080 static FORCEINLINE HRESULT ISpVoice_WaitForNotifyEvent(ISpVoice* This,DWORD dwMilliseconds) {
7081     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
7082 }
7083 static FORCEINLINE HANDLE ISpVoice_GetNotifyEventHandle(ISpVoice* This) {
7084     return This->lpVtbl->GetNotifyEventHandle(This);
7085 }
7086 /*** ISpEventSource methods ***/
7087 static FORCEINLINE HRESULT ISpVoice_SetInterest(ISpVoice* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
7088     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
7089 }
7090 static FORCEINLINE HRESULT ISpVoice_GetEvents(ISpVoice* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
7091     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
7092 }
7093 static FORCEINLINE HRESULT ISpVoice_GetInfo(ISpVoice* This,SPEVENTSOURCEINFO *pInfo) {
7094     return This->lpVtbl->GetInfo(This,pInfo);
7095 }
7096 /*** ISpVoice methods ***/
7097 static FORCEINLINE HRESULT ISpVoice_SetOutput(ISpVoice* This,IUnknown *pUnkOutput,WINBOOL fAllowFormatChanges) {
7098     return This->lpVtbl->SetOutput(This,pUnkOutput,fAllowFormatChanges);
7099 }
7100 static FORCEINLINE HRESULT ISpVoice_GetOutputObjectToken(ISpVoice* This,ISpObjectToken **ppObjectToken) {
7101     return This->lpVtbl->GetOutputObjectToken(This,ppObjectToken);
7102 }
7103 static FORCEINLINE HRESULT ISpVoice_GetOutputStream(ISpVoice* This,ISpStreamFormat **ppStream) {
7104     return This->lpVtbl->GetOutputStream(This,ppStream);
7105 }
7106 static FORCEINLINE HRESULT ISpVoice_Pause(ISpVoice* This) {
7107     return This->lpVtbl->Pause(This);
7108 }
7109 static FORCEINLINE HRESULT ISpVoice_Resume(ISpVoice* This) {
7110     return This->lpVtbl->Resume(This);
7111 }
7112 static FORCEINLINE HRESULT ISpVoice_SetVoice(ISpVoice* This,ISpObjectToken *pToken) {
7113     return This->lpVtbl->SetVoice(This,pToken);
7114 }
7115 static FORCEINLINE HRESULT ISpVoice_GetVoice(ISpVoice* This,ISpObjectToken **ppToken) {
7116     return This->lpVtbl->GetVoice(This,ppToken);
7117 }
7118 static FORCEINLINE HRESULT ISpVoice_Speak(ISpVoice* This,LPCWSTR pwcs,DWORD dwFlags,ULONG *pulStreamNumber) {
7119     return This->lpVtbl->Speak(This,pwcs,dwFlags,pulStreamNumber);
7120 }
7121 static FORCEINLINE HRESULT ISpVoice_SpeakStream(ISpVoice* This,IStream *pStream,DWORD dwFlags,ULONG *pulStreamNumber) {
7122     return This->lpVtbl->SpeakStream(This,pStream,dwFlags,pulStreamNumber);
7123 }
7124 static FORCEINLINE HRESULT ISpVoice_GetStatus(ISpVoice* This,SPVOICESTATUS *pStatus,LPWSTR *ppszLastBookmark) {
7125     return This->lpVtbl->GetStatus(This,pStatus,ppszLastBookmark);
7126 }
7127 static FORCEINLINE HRESULT ISpVoice_Skip(ISpVoice* This,LPCWSTR pItemType,LONG lNumItems,ULONG *pulNumSkipped) {
7128     return This->lpVtbl->Skip(This,pItemType,lNumItems,pulNumSkipped);
7129 }
7130 static FORCEINLINE HRESULT ISpVoice_SetPriority(ISpVoice* This,SPVPRIORITY ePriority) {
7131     return This->lpVtbl->SetPriority(This,ePriority);
7132 }
7133 static FORCEINLINE HRESULT ISpVoice_GetPriority(ISpVoice* This,SPVPRIORITY *pePriority) {
7134     return This->lpVtbl->GetPriority(This,pePriority);
7135 }
7136 static FORCEINLINE HRESULT ISpVoice_SetAlertBoundary(ISpVoice* This,SPEVENTENUM eBoundary) {
7137     return This->lpVtbl->SetAlertBoundary(This,eBoundary);
7138 }
7139 static FORCEINLINE HRESULT ISpVoice_GetAlertBoundary(ISpVoice* This,SPEVENTENUM *peBoundary) {
7140     return This->lpVtbl->GetAlertBoundary(This,peBoundary);
7141 }
7142 static FORCEINLINE HRESULT ISpVoice_SetRate(ISpVoice* This,LONG RateAdjust) {
7143     return This->lpVtbl->SetRate(This,RateAdjust);
7144 }
7145 static FORCEINLINE HRESULT ISpVoice_GetRate(ISpVoice* This,LONG *pRateAdjust) {
7146     return This->lpVtbl->GetRate(This,pRateAdjust);
7147 }
7148 static FORCEINLINE HRESULT ISpVoice_SetVolume(ISpVoice* This,USHORT usVolume) {
7149     return This->lpVtbl->SetVolume(This,usVolume);
7150 }
7151 static FORCEINLINE HRESULT ISpVoice_GetVolume(ISpVoice* This,USHORT *pusVolume) {
7152     return This->lpVtbl->GetVolume(This,pusVolume);
7153 }
7154 static FORCEINLINE HRESULT ISpVoice_WaitUntilDone(ISpVoice* This,ULONG msTimeout) {
7155     return This->lpVtbl->WaitUntilDone(This,msTimeout);
7156 }
7157 static FORCEINLINE HRESULT ISpVoice_SetSyncSpeakTimeout(ISpVoice* This,ULONG msTimeout) {
7158     return This->lpVtbl->SetSyncSpeakTimeout(This,msTimeout);
7159 }
7160 static FORCEINLINE HRESULT ISpVoice_GetSyncSpeakTimeout(ISpVoice* This,ULONG *pmsTimeout) {
7161     return This->lpVtbl->GetSyncSpeakTimeout(This,pmsTimeout);
7162 }
7163 static FORCEINLINE HANDLE ISpVoice_SpeakCompleteEvent(ISpVoice* This) {
7164     return This->lpVtbl->SpeakCompleteEvent(This);
7165 }
7166 static FORCEINLINE HRESULT ISpVoice_IsUISupported(ISpVoice* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
7167     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
7168 }
7169 static FORCEINLINE HRESULT ISpVoice_DisplayUI(ISpVoice* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
7170     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
7171 }
7172 #endif
7173 #endif
7174 
7175 #endif
7176 
7177 
7178 #endif  /* __ISpVoice_INTERFACE_DEFINED__ */
7179 
7180 /*****************************************************************************
7181  * ISpPhrase interface
7182  */
7183 #ifndef __ISpPhrase_INTERFACE_DEFINED__
7184 #define __ISpPhrase_INTERFACE_DEFINED__
7185 
7186 DEFINE_GUID(IID_ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53);
7187 #if defined(__cplusplus) && !defined(CINTERFACE)
7188 MIDL_INTERFACE("1a5c0354-b621-4b5a-8791-d306ed379e53")
7189 ISpPhrase : public IUnknown
7190 {
7191     virtual HRESULT STDMETHODCALLTYPE GetPhrase(
7192         SPPHRASE **ppCoMemPhrase) = 0;
7193 
7194     virtual HRESULT STDMETHODCALLTYPE GetSerializedPhrase(
7195         SPSERIALIZEDPHRASE **ppCoMemPhrase) = 0;
7196 
7197     virtual HRESULT STDMETHODCALLTYPE GetText(
7198         ULONG ulStart,
7199         ULONG ulCount,
7200         WINBOOL fUseTextReplacements,
7201         LPWSTR *ppszCoMemText,
7202         BYTE *pbDisplayAttributes) = 0;
7203 
7204     virtual HRESULT STDMETHODCALLTYPE Discard(
7205         DWORD dwValueTypes) = 0;
7206 
7207 };
7208 #ifdef __CRT_UUID_DECL
7209 __CRT_UUID_DECL(ISpPhrase, 0x1a5c0354, 0xb621, 0x4b5a, 0x87,0x91, 0xd3,0x06,0xed,0x37,0x9e,0x53)
7210 #endif
7211 #else
7212 typedef struct ISpPhraseVtbl {
7213     BEGIN_INTERFACE
7214 
7215     /*** IUnknown methods ***/
7216     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7217         ISpPhrase *This,
7218         REFIID riid,
7219         void **ppvObject);
7220 
7221     ULONG (STDMETHODCALLTYPE *AddRef)(
7222         ISpPhrase *This);
7223 
7224     ULONG (STDMETHODCALLTYPE *Release)(
7225         ISpPhrase *This);
7226 
7227     /*** ISpPhrase methods ***/
7228     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7229         ISpPhrase *This,
7230         SPPHRASE **ppCoMemPhrase);
7231 
7232     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7233         ISpPhrase *This,
7234         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7235 
7236     HRESULT (STDMETHODCALLTYPE *GetText)(
7237         ISpPhrase *This,
7238         ULONG ulStart,
7239         ULONG ulCount,
7240         WINBOOL fUseTextReplacements,
7241         LPWSTR *ppszCoMemText,
7242         BYTE *pbDisplayAttributes);
7243 
7244     HRESULT (STDMETHODCALLTYPE *Discard)(
7245         ISpPhrase *This,
7246         DWORD dwValueTypes);
7247 
7248     END_INTERFACE
7249 } ISpPhraseVtbl;
7250 
7251 interface ISpPhrase {
7252     CONST_VTBL ISpPhraseVtbl* lpVtbl;
7253 };
7254 
7255 #ifdef COBJMACROS
7256 #ifndef WIDL_C_INLINE_WRAPPERS
7257 /*** IUnknown methods ***/
7258 #define ISpPhrase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7259 #define ISpPhrase_AddRef(This) (This)->lpVtbl->AddRef(This)
7260 #define ISpPhrase_Release(This) (This)->lpVtbl->Release(This)
7261 /*** ISpPhrase methods ***/
7262 #define ISpPhrase_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7263 #define ISpPhrase_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7264 #define ISpPhrase_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7265 #define ISpPhrase_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7266 #else
7267 /*** IUnknown methods ***/
7268 static FORCEINLINE HRESULT ISpPhrase_QueryInterface(ISpPhrase* This,REFIID riid,void **ppvObject) {
7269     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7270 }
7271 static FORCEINLINE ULONG ISpPhrase_AddRef(ISpPhrase* This) {
7272     return This->lpVtbl->AddRef(This);
7273 }
7274 static FORCEINLINE ULONG ISpPhrase_Release(ISpPhrase* This) {
7275     return This->lpVtbl->Release(This);
7276 }
7277 /*** ISpPhrase methods ***/
7278 static FORCEINLINE HRESULT ISpPhrase_GetPhrase(ISpPhrase* This,SPPHRASE **ppCoMemPhrase) {
7279     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7280 }
7281 static FORCEINLINE HRESULT ISpPhrase_GetSerializedPhrase(ISpPhrase* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7282     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7283 }
7284 static FORCEINLINE HRESULT ISpPhrase_GetText(ISpPhrase* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7285     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7286 }
7287 static FORCEINLINE HRESULT ISpPhrase_Discard(ISpPhrase* This,DWORD dwValueTypes) {
7288     return This->lpVtbl->Discard(This,dwValueTypes);
7289 }
7290 #endif
7291 #endif
7292 
7293 #endif
7294 
7295 
7296 #endif  /* __ISpPhrase_INTERFACE_DEFINED__ */
7297 
7298 /*****************************************************************************
7299  * ISpPhraseAlt interface
7300  */
7301 #ifndef __ISpPhraseAlt_INTERFACE_DEFINED__
7302 #define __ISpPhraseAlt_INTERFACE_DEFINED__
7303 
7304 DEFINE_GUID(IID_ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d);
7305 #if defined(__cplusplus) && !defined(CINTERFACE)
7306 MIDL_INTERFACE("8fcebc98-4e49-4067-9c6c-d86a0e092e3d")
7307 ISpPhraseAlt : public ISpPhrase
7308 {
7309     virtual HRESULT STDMETHODCALLTYPE GetAltInfo(
7310         ISpPhrase **ppParent,
7311         ULONG *pulStartElementInParent,
7312         ULONG *pcElementsInParent,
7313         ULONG *pcElementsInAlt) = 0;
7314 
7315     virtual HRESULT STDMETHODCALLTYPE Commit(
7316         ) = 0;
7317 
7318 };
7319 #ifdef __CRT_UUID_DECL
7320 __CRT_UUID_DECL(ISpPhraseAlt, 0x8fcebc98, 0x4e49, 0x4067, 0x9c,0x6c, 0xd8,0x6a,0x0e,0x09,0x2e,0x3d)
7321 #endif
7322 #else
7323 typedef struct ISpPhraseAltVtbl {
7324     BEGIN_INTERFACE
7325 
7326     /*** IUnknown methods ***/
7327     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7328         ISpPhraseAlt *This,
7329         REFIID riid,
7330         void **ppvObject);
7331 
7332     ULONG (STDMETHODCALLTYPE *AddRef)(
7333         ISpPhraseAlt *This);
7334 
7335     ULONG (STDMETHODCALLTYPE *Release)(
7336         ISpPhraseAlt *This);
7337 
7338     /*** ISpPhrase methods ***/
7339     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7340         ISpPhraseAlt *This,
7341         SPPHRASE **ppCoMemPhrase);
7342 
7343     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7344         ISpPhraseAlt *This,
7345         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7346 
7347     HRESULT (STDMETHODCALLTYPE *GetText)(
7348         ISpPhraseAlt *This,
7349         ULONG ulStart,
7350         ULONG ulCount,
7351         WINBOOL fUseTextReplacements,
7352         LPWSTR *ppszCoMemText,
7353         BYTE *pbDisplayAttributes);
7354 
7355     HRESULT (STDMETHODCALLTYPE *Discard)(
7356         ISpPhraseAlt *This,
7357         DWORD dwValueTypes);
7358 
7359     /*** ISpPhraseAlt methods ***/
7360     HRESULT (STDMETHODCALLTYPE *GetAltInfo)(
7361         ISpPhraseAlt *This,
7362         ISpPhrase **ppParent,
7363         ULONG *pulStartElementInParent,
7364         ULONG *pcElementsInParent,
7365         ULONG *pcElementsInAlt);
7366 
7367     HRESULT (STDMETHODCALLTYPE *Commit)(
7368         ISpPhraseAlt *This);
7369 
7370     END_INTERFACE
7371 } ISpPhraseAltVtbl;
7372 
7373 interface ISpPhraseAlt {
7374     CONST_VTBL ISpPhraseAltVtbl* lpVtbl;
7375 };
7376 
7377 #ifdef COBJMACROS
7378 #ifndef WIDL_C_INLINE_WRAPPERS
7379 /*** IUnknown methods ***/
7380 #define ISpPhraseAlt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7381 #define ISpPhraseAlt_AddRef(This) (This)->lpVtbl->AddRef(This)
7382 #define ISpPhraseAlt_Release(This) (This)->lpVtbl->Release(This)
7383 /*** ISpPhrase methods ***/
7384 #define ISpPhraseAlt_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7385 #define ISpPhraseAlt_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7386 #define ISpPhraseAlt_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7387 #define ISpPhraseAlt_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7388 /*** ISpPhraseAlt methods ***/
7389 #define ISpPhraseAlt_GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt) (This)->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt)
7390 #define ISpPhraseAlt_Commit(This) (This)->lpVtbl->Commit(This)
7391 #else
7392 /*** IUnknown methods ***/
7393 static FORCEINLINE HRESULT ISpPhraseAlt_QueryInterface(ISpPhraseAlt* This,REFIID riid,void **ppvObject) {
7394     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7395 }
7396 static FORCEINLINE ULONG ISpPhraseAlt_AddRef(ISpPhraseAlt* This) {
7397     return This->lpVtbl->AddRef(This);
7398 }
7399 static FORCEINLINE ULONG ISpPhraseAlt_Release(ISpPhraseAlt* This) {
7400     return This->lpVtbl->Release(This);
7401 }
7402 /*** ISpPhrase methods ***/
7403 static FORCEINLINE HRESULT ISpPhraseAlt_GetPhrase(ISpPhraseAlt* This,SPPHRASE **ppCoMemPhrase) {
7404     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7405 }
7406 static FORCEINLINE HRESULT ISpPhraseAlt_GetSerializedPhrase(ISpPhraseAlt* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7407     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7408 }
7409 static FORCEINLINE HRESULT ISpPhraseAlt_GetText(ISpPhraseAlt* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7410     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7411 }
7412 static FORCEINLINE HRESULT ISpPhraseAlt_Discard(ISpPhraseAlt* This,DWORD dwValueTypes) {
7413     return This->lpVtbl->Discard(This,dwValueTypes);
7414 }
7415 /*** ISpPhraseAlt methods ***/
7416 static FORCEINLINE HRESULT ISpPhraseAlt_GetAltInfo(ISpPhraseAlt* This,ISpPhrase **ppParent,ULONG *pulStartElementInParent,ULONG *pcElementsInParent,ULONG *pcElementsInAlt) {
7417     return This->lpVtbl->GetAltInfo(This,ppParent,pulStartElementInParent,pcElementsInParent,pcElementsInAlt);
7418 }
7419 static FORCEINLINE HRESULT ISpPhraseAlt_Commit(ISpPhraseAlt* This) {
7420     return This->lpVtbl->Commit(This);
7421 }
7422 #endif
7423 #endif
7424 
7425 #endif
7426 
7427 
7428 #endif  /* __ISpPhraseAlt_INTERFACE_DEFINED__ */
7429 
7430 typedef enum SPXMLRESULTOPTIONS {
7431     SPXRO_SML = 0,
7432     SPXRO_Alternates_SML = 1
7433 } SPXMLRESULTOPTIONS;
7434 /*****************************************************************************
7435  * ISpPhrase2 interface
7436  */
7437 #ifndef __ISpPhrase2_INTERFACE_DEFINED__
7438 #define __ISpPhrase2_INTERFACE_DEFINED__
7439 
7440 DEFINE_GUID(IID_ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79);
7441 #if defined(__cplusplus) && !defined(CINTERFACE)
7442 MIDL_INTERFACE("f264da52-e457-4696-b856-a737b717af79")
7443 ISpPhrase2 : public ISpPhrase
7444 {
7445     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
7446         LPWSTR *ppszCoMemXMLResult,
7447         SPXMLRESULTOPTIONS Options) = 0;
7448 
7449     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
7450         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
7451 
7452     virtual HRESULT STDMETHODCALLTYPE GetAudio(
7453         ULONG ulStartElement,
7454         ULONG cElements,
7455         ISpStreamFormat **ppStream) = 0;
7456 
7457 };
7458 #ifdef __CRT_UUID_DECL
7459 __CRT_UUID_DECL(ISpPhrase2, 0xf264da52, 0xe457, 0x4696, 0xb8,0x56, 0xa7,0x37,0xb7,0x17,0xaf,0x79)
7460 #endif
7461 #else
7462 typedef struct ISpPhrase2Vtbl {
7463     BEGIN_INTERFACE
7464 
7465     /*** IUnknown methods ***/
7466     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7467         ISpPhrase2 *This,
7468         REFIID riid,
7469         void **ppvObject);
7470 
7471     ULONG (STDMETHODCALLTYPE *AddRef)(
7472         ISpPhrase2 *This);
7473 
7474     ULONG (STDMETHODCALLTYPE *Release)(
7475         ISpPhrase2 *This);
7476 
7477     /*** ISpPhrase methods ***/
7478     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7479         ISpPhrase2 *This,
7480         SPPHRASE **ppCoMemPhrase);
7481 
7482     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7483         ISpPhrase2 *This,
7484         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7485 
7486     HRESULT (STDMETHODCALLTYPE *GetText)(
7487         ISpPhrase2 *This,
7488         ULONG ulStart,
7489         ULONG ulCount,
7490         WINBOOL fUseTextReplacements,
7491         LPWSTR *ppszCoMemText,
7492         BYTE *pbDisplayAttributes);
7493 
7494     HRESULT (STDMETHODCALLTYPE *Discard)(
7495         ISpPhrase2 *This,
7496         DWORD dwValueTypes);
7497 
7498     /*** ISpPhrase2 methods ***/
7499     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
7500         ISpPhrase2 *This,
7501         LPWSTR *ppszCoMemXMLResult,
7502         SPXMLRESULTOPTIONS Options);
7503 
7504     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
7505         ISpPhrase2 *This,
7506         SPSEMANTICERRORINFO *pSemanticErrorInfo);
7507 
7508     HRESULT (STDMETHODCALLTYPE *GetAudio)(
7509         ISpPhrase2 *This,
7510         ULONG ulStartElement,
7511         ULONG cElements,
7512         ISpStreamFormat **ppStream);
7513 
7514     END_INTERFACE
7515 } ISpPhrase2Vtbl;
7516 
7517 interface ISpPhrase2 {
7518     CONST_VTBL ISpPhrase2Vtbl* lpVtbl;
7519 };
7520 
7521 #ifdef COBJMACROS
7522 #ifndef WIDL_C_INLINE_WRAPPERS
7523 /*** IUnknown methods ***/
7524 #define ISpPhrase2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7525 #define ISpPhrase2_AddRef(This) (This)->lpVtbl->AddRef(This)
7526 #define ISpPhrase2_Release(This) (This)->lpVtbl->Release(This)
7527 /*** ISpPhrase methods ***/
7528 #define ISpPhrase2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7529 #define ISpPhrase2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7530 #define ISpPhrase2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7531 #define ISpPhrase2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7532 /*** ISpPhrase2 methods ***/
7533 #define ISpPhrase2_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
7534 #define ISpPhrase2_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
7535 #define ISpPhrase2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
7536 #else
7537 /*** IUnknown methods ***/
7538 static FORCEINLINE HRESULT ISpPhrase2_QueryInterface(ISpPhrase2* This,REFIID riid,void **ppvObject) {
7539     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7540 }
7541 static FORCEINLINE ULONG ISpPhrase2_AddRef(ISpPhrase2* This) {
7542     return This->lpVtbl->AddRef(This);
7543 }
7544 static FORCEINLINE ULONG ISpPhrase2_Release(ISpPhrase2* This) {
7545     return This->lpVtbl->Release(This);
7546 }
7547 /*** ISpPhrase methods ***/
7548 static FORCEINLINE HRESULT ISpPhrase2_GetPhrase(ISpPhrase2* This,SPPHRASE **ppCoMemPhrase) {
7549     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7550 }
7551 static FORCEINLINE HRESULT ISpPhrase2_GetSerializedPhrase(ISpPhrase2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7552     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7553 }
7554 static FORCEINLINE HRESULT ISpPhrase2_GetText(ISpPhrase2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7555     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7556 }
7557 static FORCEINLINE HRESULT ISpPhrase2_Discard(ISpPhrase2* This,DWORD dwValueTypes) {
7558     return This->lpVtbl->Discard(This,dwValueTypes);
7559 }
7560 /*** ISpPhrase2 methods ***/
7561 static FORCEINLINE HRESULT ISpPhrase2_GetXMLResult(ISpPhrase2* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
7562     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
7563 }
7564 static FORCEINLINE HRESULT ISpPhrase2_GetXMLErrorInfo(ISpPhrase2* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
7565     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
7566 }
7567 static FORCEINLINE HRESULT ISpPhrase2_GetAudio(ISpPhrase2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
7568     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
7569 }
7570 #endif
7571 #endif
7572 
7573 #endif
7574 
7575 
7576 #endif  /* __ISpPhrase2_INTERFACE_DEFINED__ */
7577 
7578 typedef struct SPRECORESULTTIMES {
7579     FILETIME ftStreamTime;
7580     ULONGLONG ullLength;
7581     DWORD dwTickCount;
7582     ULONGLONG ullStart;
7583 } SPRECORESULTTIMES;
7584 typedef struct SPSERIALIZEDRESULT {
7585     ULONG ulSerializedSize;
7586 } SPSERIALIZEDRESULT;
7587 /*****************************************************************************
7588  * ISpRecoResult interface
7589  */
7590 #ifndef __ISpRecoResult_INTERFACE_DEFINED__
7591 #define __ISpRecoResult_INTERFACE_DEFINED__
7592 
7593 DEFINE_GUID(IID_ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42);
7594 #if defined(__cplusplus) && !defined(CINTERFACE)
7595 MIDL_INTERFACE("20b053be-e235-43cd-9a2a-8d17a48b7842")
7596 ISpRecoResult : public ISpPhrase
7597 {
7598     virtual HRESULT STDMETHODCALLTYPE GetResultTimes(
7599         SPRECORESULTTIMES *pTimes) = 0;
7600 
7601     virtual HRESULT STDMETHODCALLTYPE GetAlternates(
7602         ULONG ulStartElement,
7603         ULONG cElements,
7604         ULONG ulRequestCount,
7605         ISpPhraseAlt **ppPhrases,
7606         ULONG *pcPhrasesReturned) = 0;
7607 
7608     virtual HRESULT STDMETHODCALLTYPE GetAudio(
7609         ULONG ulStartElement,
7610         ULONG cElements,
7611         ISpStreamFormat **ppStream) = 0;
7612 
7613     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
7614         ULONG ulStartElement,
7615         ULONG cElements,
7616         DWORD dwFlags,
7617         ULONG *pulStreamNumber) = 0;
7618 
7619     virtual HRESULT STDMETHODCALLTYPE Serialize(
7620         SPSERIALIZEDRESULT **ppCoMemSerializedResult) = 0;
7621 
7622     virtual HRESULT STDMETHODCALLTYPE ScaleAudio(
7623         const GUID *pAudioFormatId,
7624         const WAVEFORMATEX *pWaveFormatEx) = 0;
7625 
7626     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
7627         ISpRecoContext **ppRecoContext) = 0;
7628 
7629 };
7630 #ifdef __CRT_UUID_DECL
7631 __CRT_UUID_DECL(ISpRecoResult, 0x20b053be, 0xe235, 0x43cd, 0x9a,0x2a, 0x8d,0x17,0xa4,0x8b,0x78,0x42)
7632 #endif
7633 #else
7634 typedef struct ISpRecoResultVtbl {
7635     BEGIN_INTERFACE
7636 
7637     /*** IUnknown methods ***/
7638     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7639         ISpRecoResult *This,
7640         REFIID riid,
7641         void **ppvObject);
7642 
7643     ULONG (STDMETHODCALLTYPE *AddRef)(
7644         ISpRecoResult *This);
7645 
7646     ULONG (STDMETHODCALLTYPE *Release)(
7647         ISpRecoResult *This);
7648 
7649     /*** ISpPhrase methods ***/
7650     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7651         ISpRecoResult *This,
7652         SPPHRASE **ppCoMemPhrase);
7653 
7654     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7655         ISpRecoResult *This,
7656         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7657 
7658     HRESULT (STDMETHODCALLTYPE *GetText)(
7659         ISpRecoResult *This,
7660         ULONG ulStart,
7661         ULONG ulCount,
7662         WINBOOL fUseTextReplacements,
7663         LPWSTR *ppszCoMemText,
7664         BYTE *pbDisplayAttributes);
7665 
7666     HRESULT (STDMETHODCALLTYPE *Discard)(
7667         ISpRecoResult *This,
7668         DWORD dwValueTypes);
7669 
7670     /*** ISpRecoResult methods ***/
7671     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
7672         ISpRecoResult *This,
7673         SPRECORESULTTIMES *pTimes);
7674 
7675     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
7676         ISpRecoResult *This,
7677         ULONG ulStartElement,
7678         ULONG cElements,
7679         ULONG ulRequestCount,
7680         ISpPhraseAlt **ppPhrases,
7681         ULONG *pcPhrasesReturned);
7682 
7683     HRESULT (STDMETHODCALLTYPE *GetAudio)(
7684         ISpRecoResult *This,
7685         ULONG ulStartElement,
7686         ULONG cElements,
7687         ISpStreamFormat **ppStream);
7688 
7689     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
7690         ISpRecoResult *This,
7691         ULONG ulStartElement,
7692         ULONG cElements,
7693         DWORD dwFlags,
7694         ULONG *pulStreamNumber);
7695 
7696     HRESULT (STDMETHODCALLTYPE *Serialize)(
7697         ISpRecoResult *This,
7698         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
7699 
7700     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
7701         ISpRecoResult *This,
7702         const GUID *pAudioFormatId,
7703         const WAVEFORMATEX *pWaveFormatEx);
7704 
7705     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
7706         ISpRecoResult *This,
7707         ISpRecoContext **ppRecoContext);
7708 
7709     END_INTERFACE
7710 } ISpRecoResultVtbl;
7711 
7712 interface ISpRecoResult {
7713     CONST_VTBL ISpRecoResultVtbl* lpVtbl;
7714 };
7715 
7716 #ifdef COBJMACROS
7717 #ifndef WIDL_C_INLINE_WRAPPERS
7718 /*** IUnknown methods ***/
7719 #define ISpRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7720 #define ISpRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
7721 #define ISpRecoResult_Release(This) (This)->lpVtbl->Release(This)
7722 /*** ISpPhrase methods ***/
7723 #define ISpRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7724 #define ISpRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7725 #define ISpRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7726 #define ISpRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7727 /*** ISpRecoResult methods ***/
7728 #define ISpRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
7729 #define ISpRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
7730 #define ISpRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
7731 #define ISpRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
7732 #define ISpRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
7733 #define ISpRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
7734 #define ISpRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
7735 #else
7736 /*** IUnknown methods ***/
7737 static FORCEINLINE HRESULT ISpRecoResult_QueryInterface(ISpRecoResult* This,REFIID riid,void **ppvObject) {
7738     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7739 }
7740 static FORCEINLINE ULONG ISpRecoResult_AddRef(ISpRecoResult* This) {
7741     return This->lpVtbl->AddRef(This);
7742 }
7743 static FORCEINLINE ULONG ISpRecoResult_Release(ISpRecoResult* This) {
7744     return This->lpVtbl->Release(This);
7745 }
7746 /*** ISpPhrase methods ***/
7747 static FORCEINLINE HRESULT ISpRecoResult_GetPhrase(ISpRecoResult* This,SPPHRASE **ppCoMemPhrase) {
7748     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7749 }
7750 static FORCEINLINE HRESULT ISpRecoResult_GetSerializedPhrase(ISpRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7751     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7752 }
7753 static FORCEINLINE HRESULT ISpRecoResult_GetText(ISpRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7754     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7755 }
7756 static FORCEINLINE HRESULT ISpRecoResult_Discard(ISpRecoResult* This,DWORD dwValueTypes) {
7757     return This->lpVtbl->Discard(This,dwValueTypes);
7758 }
7759 /*** ISpRecoResult methods ***/
7760 static FORCEINLINE HRESULT ISpRecoResult_GetResultTimes(ISpRecoResult* This,SPRECORESULTTIMES *pTimes) {
7761     return This->lpVtbl->GetResultTimes(This,pTimes);
7762 }
7763 static FORCEINLINE HRESULT ISpRecoResult_GetAlternates(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
7764     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
7765 }
7766 static FORCEINLINE HRESULT ISpRecoResult_GetAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
7767     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
7768 }
7769 static FORCEINLINE HRESULT ISpRecoResult_SpeakAudio(ISpRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
7770     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
7771 }
7772 static FORCEINLINE HRESULT ISpRecoResult_Serialize(ISpRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
7773     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
7774 }
7775 static FORCEINLINE HRESULT ISpRecoResult_ScaleAudio(ISpRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
7776     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
7777 }
7778 static FORCEINLINE HRESULT ISpRecoResult_GetRecoContext(ISpRecoResult* This,ISpRecoContext **ppRecoContext) {
7779     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
7780 }
7781 #endif
7782 #endif
7783 
7784 #endif
7785 
7786 
7787 #endif  /* __ISpRecoResult_INTERFACE_DEFINED__ */
7788 
7789 typedef enum SPCOMMITFLAGS {
7790     SPCF_NONE = 0,
7791     SPCF_ADD_TO_USER_LEXICON = 1 << 0,
7792     SPCF_DEFINITE_CORRECTION = 1 << 1
7793 } SPCOMMITFLAGS;
7794 /*****************************************************************************
7795  * ISpRecoResult2 interface
7796  */
7797 #ifndef __ISpRecoResult2_INTERFACE_DEFINED__
7798 #define __ISpRecoResult2_INTERFACE_DEFINED__
7799 
7800 DEFINE_GUID(IID_ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e);
7801 #if defined(__cplusplus) && !defined(CINTERFACE)
7802 MIDL_INTERFACE("27cac6c4-88f2-41f2-8817-0c95e59f1e6e")
7803 ISpRecoResult2 : public ISpRecoResult
7804 {
7805     virtual HRESULT STDMETHODCALLTYPE CommitAlternate(
7806         ISpPhraseAlt *pPhraseAlt,
7807         ISpRecoResult **ppNewResult) = 0;
7808 
7809     virtual HRESULT STDMETHODCALLTYPE CommitText(
7810         ULONG ulStartElement,
7811         ULONG cElements,
7812         LPCWSTR pszCorrectedData,
7813         DWORD eCommitFlags) = 0;
7814 
7815     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
7816         LPCWSTR pszFeedback,
7817         WINBOOL fSuccessful) = 0;
7818 
7819 };
7820 #ifdef __CRT_UUID_DECL
7821 __CRT_UUID_DECL(ISpRecoResult2, 0x27cac6c4, 0x88f2, 0x41f2, 0x88,0x17, 0x0c,0x95,0xe5,0x9f,0x1e,0x6e)
7822 #endif
7823 #else
7824 typedef struct ISpRecoResult2Vtbl {
7825     BEGIN_INTERFACE
7826 
7827     /*** IUnknown methods ***/
7828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
7829         ISpRecoResult2 *This,
7830         REFIID riid,
7831         void **ppvObject);
7832 
7833     ULONG (STDMETHODCALLTYPE *AddRef)(
7834         ISpRecoResult2 *This);
7835 
7836     ULONG (STDMETHODCALLTYPE *Release)(
7837         ISpRecoResult2 *This);
7838 
7839     /*** ISpPhrase methods ***/
7840     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
7841         ISpRecoResult2 *This,
7842         SPPHRASE **ppCoMemPhrase);
7843 
7844     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
7845         ISpRecoResult2 *This,
7846         SPSERIALIZEDPHRASE **ppCoMemPhrase);
7847 
7848     HRESULT (STDMETHODCALLTYPE *GetText)(
7849         ISpRecoResult2 *This,
7850         ULONG ulStart,
7851         ULONG ulCount,
7852         WINBOOL fUseTextReplacements,
7853         LPWSTR *ppszCoMemText,
7854         BYTE *pbDisplayAttributes);
7855 
7856     HRESULT (STDMETHODCALLTYPE *Discard)(
7857         ISpRecoResult2 *This,
7858         DWORD dwValueTypes);
7859 
7860     /*** ISpRecoResult methods ***/
7861     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
7862         ISpRecoResult2 *This,
7863         SPRECORESULTTIMES *pTimes);
7864 
7865     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
7866         ISpRecoResult2 *This,
7867         ULONG ulStartElement,
7868         ULONG cElements,
7869         ULONG ulRequestCount,
7870         ISpPhraseAlt **ppPhrases,
7871         ULONG *pcPhrasesReturned);
7872 
7873     HRESULT (STDMETHODCALLTYPE *GetAudio)(
7874         ISpRecoResult2 *This,
7875         ULONG ulStartElement,
7876         ULONG cElements,
7877         ISpStreamFormat **ppStream);
7878 
7879     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
7880         ISpRecoResult2 *This,
7881         ULONG ulStartElement,
7882         ULONG cElements,
7883         DWORD dwFlags,
7884         ULONG *pulStreamNumber);
7885 
7886     HRESULT (STDMETHODCALLTYPE *Serialize)(
7887         ISpRecoResult2 *This,
7888         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
7889 
7890     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
7891         ISpRecoResult2 *This,
7892         const GUID *pAudioFormatId,
7893         const WAVEFORMATEX *pWaveFormatEx);
7894 
7895     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
7896         ISpRecoResult2 *This,
7897         ISpRecoContext **ppRecoContext);
7898 
7899     /*** ISpRecoResult2 methods ***/
7900     HRESULT (STDMETHODCALLTYPE *CommitAlternate)(
7901         ISpRecoResult2 *This,
7902         ISpPhraseAlt *pPhraseAlt,
7903         ISpRecoResult **ppNewResult);
7904 
7905     HRESULT (STDMETHODCALLTYPE *CommitText)(
7906         ISpRecoResult2 *This,
7907         ULONG ulStartElement,
7908         ULONG cElements,
7909         LPCWSTR pszCorrectedData,
7910         DWORD eCommitFlags);
7911 
7912     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
7913         ISpRecoResult2 *This,
7914         LPCWSTR pszFeedback,
7915         WINBOOL fSuccessful);
7916 
7917     END_INTERFACE
7918 } ISpRecoResult2Vtbl;
7919 
7920 interface ISpRecoResult2 {
7921     CONST_VTBL ISpRecoResult2Vtbl* lpVtbl;
7922 };
7923 
7924 #ifdef COBJMACROS
7925 #ifndef WIDL_C_INLINE_WRAPPERS
7926 /*** IUnknown methods ***/
7927 #define ISpRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
7928 #define ISpRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
7929 #define ISpRecoResult2_Release(This) (This)->lpVtbl->Release(This)
7930 /*** ISpPhrase methods ***/
7931 #define ISpRecoResult2_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
7932 #define ISpRecoResult2_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
7933 #define ISpRecoResult2_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
7934 #define ISpRecoResult2_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
7935 /*** ISpRecoResult methods ***/
7936 #define ISpRecoResult2_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
7937 #define ISpRecoResult2_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
7938 #define ISpRecoResult2_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
7939 #define ISpRecoResult2_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
7940 #define ISpRecoResult2_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
7941 #define ISpRecoResult2_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
7942 #define ISpRecoResult2_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
7943 /*** ISpRecoResult2 methods ***/
7944 #define ISpRecoResult2_CommitAlternate(This,pPhraseAlt,ppNewResult) (This)->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult)
7945 #define ISpRecoResult2_CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags) (This)->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags)
7946 #define ISpRecoResult2_SetTextFeedback(This,pszFeedback,fSuccessful) (This)->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful)
7947 #else
7948 /*** IUnknown methods ***/
7949 static FORCEINLINE HRESULT ISpRecoResult2_QueryInterface(ISpRecoResult2* This,REFIID riid,void **ppvObject) {
7950     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
7951 }
7952 static FORCEINLINE ULONG ISpRecoResult2_AddRef(ISpRecoResult2* This) {
7953     return This->lpVtbl->AddRef(This);
7954 }
7955 static FORCEINLINE ULONG ISpRecoResult2_Release(ISpRecoResult2* This) {
7956     return This->lpVtbl->Release(This);
7957 }
7958 /*** ISpPhrase methods ***/
7959 static FORCEINLINE HRESULT ISpRecoResult2_GetPhrase(ISpRecoResult2* This,SPPHRASE **ppCoMemPhrase) {
7960     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
7961 }
7962 static FORCEINLINE HRESULT ISpRecoResult2_GetSerializedPhrase(ISpRecoResult2* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
7963     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
7964 }
7965 static FORCEINLINE HRESULT ISpRecoResult2_GetText(ISpRecoResult2* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
7966     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
7967 }
7968 static FORCEINLINE HRESULT ISpRecoResult2_Discard(ISpRecoResult2* This,DWORD dwValueTypes) {
7969     return This->lpVtbl->Discard(This,dwValueTypes);
7970 }
7971 /*** ISpRecoResult methods ***/
7972 static FORCEINLINE HRESULT ISpRecoResult2_GetResultTimes(ISpRecoResult2* This,SPRECORESULTTIMES *pTimes) {
7973     return This->lpVtbl->GetResultTimes(This,pTimes);
7974 }
7975 static FORCEINLINE HRESULT ISpRecoResult2_GetAlternates(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
7976     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
7977 }
7978 static FORCEINLINE HRESULT ISpRecoResult2_GetAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
7979     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
7980 }
7981 static FORCEINLINE HRESULT ISpRecoResult2_SpeakAudio(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
7982     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
7983 }
7984 static FORCEINLINE HRESULT ISpRecoResult2_Serialize(ISpRecoResult2* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
7985     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
7986 }
7987 static FORCEINLINE HRESULT ISpRecoResult2_ScaleAudio(ISpRecoResult2* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
7988     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
7989 }
7990 static FORCEINLINE HRESULT ISpRecoResult2_GetRecoContext(ISpRecoResult2* This,ISpRecoContext **ppRecoContext) {
7991     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
7992 }
7993 /*** ISpRecoResult2 methods ***/
7994 static FORCEINLINE HRESULT ISpRecoResult2_CommitAlternate(ISpRecoResult2* This,ISpPhraseAlt *pPhraseAlt,ISpRecoResult **ppNewResult) {
7995     return This->lpVtbl->CommitAlternate(This,pPhraseAlt,ppNewResult);
7996 }
7997 static FORCEINLINE HRESULT ISpRecoResult2_CommitText(ISpRecoResult2* This,ULONG ulStartElement,ULONG cElements,LPCWSTR pszCorrectedData,DWORD eCommitFlags) {
7998     return This->lpVtbl->CommitText(This,ulStartElement,cElements,pszCorrectedData,eCommitFlags);
7999 }
8000 static FORCEINLINE HRESULT ISpRecoResult2_SetTextFeedback(ISpRecoResult2* This,LPCWSTR pszFeedback,WINBOOL fSuccessful) {
8001     return This->lpVtbl->SetTextFeedback(This,pszFeedback,fSuccessful);
8002 }
8003 #endif
8004 #endif
8005 
8006 #endif
8007 
8008 
8009 #endif  /* __ISpRecoResult2_INTERFACE_DEFINED__ */
8010 
8011 /*****************************************************************************
8012  * ISpXMLRecoResult interface
8013  */
8014 #ifndef __ISpXMLRecoResult_INTERFACE_DEFINED__
8015 #define __ISpXMLRecoResult_INTERFACE_DEFINED__
8016 
8017 DEFINE_GUID(IID_ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6);
8018 #if defined(__cplusplus) && !defined(CINTERFACE)
8019 MIDL_INTERFACE("ae39362b-45a8-4074-9b9e-ccf49aa2d0b6")
8020 ISpXMLRecoResult : public ISpRecoResult
8021 {
8022     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
8023         LPWSTR *ppszCoMemXMLResult,
8024         SPXMLRESULTOPTIONS Options) = 0;
8025 
8026     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
8027         SPSEMANTICERRORINFO *pSemanticErrorInfo) = 0;
8028 
8029 };
8030 #ifdef __CRT_UUID_DECL
8031 __CRT_UUID_DECL(ISpXMLRecoResult, 0xae39362b, 0x45a8, 0x4074, 0x9b,0x9e, 0xcc,0xf4,0x9a,0xa2,0xd0,0xb6)
8032 #endif
8033 #else
8034 typedef struct ISpXMLRecoResultVtbl {
8035     BEGIN_INTERFACE
8036 
8037     /*** IUnknown methods ***/
8038     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8039         ISpXMLRecoResult *This,
8040         REFIID riid,
8041         void **ppvObject);
8042 
8043     ULONG (STDMETHODCALLTYPE *AddRef)(
8044         ISpXMLRecoResult *This);
8045 
8046     ULONG (STDMETHODCALLTYPE *Release)(
8047         ISpXMLRecoResult *This);
8048 
8049     /*** ISpPhrase methods ***/
8050     HRESULT (STDMETHODCALLTYPE *GetPhrase)(
8051         ISpXMLRecoResult *This,
8052         SPPHRASE **ppCoMemPhrase);
8053 
8054     HRESULT (STDMETHODCALLTYPE *GetSerializedPhrase)(
8055         ISpXMLRecoResult *This,
8056         SPSERIALIZEDPHRASE **ppCoMemPhrase);
8057 
8058     HRESULT (STDMETHODCALLTYPE *GetText)(
8059         ISpXMLRecoResult *This,
8060         ULONG ulStart,
8061         ULONG ulCount,
8062         WINBOOL fUseTextReplacements,
8063         LPWSTR *ppszCoMemText,
8064         BYTE *pbDisplayAttributes);
8065 
8066     HRESULT (STDMETHODCALLTYPE *Discard)(
8067         ISpXMLRecoResult *This,
8068         DWORD dwValueTypes);
8069 
8070     /*** ISpRecoResult methods ***/
8071     HRESULT (STDMETHODCALLTYPE *GetResultTimes)(
8072         ISpXMLRecoResult *This,
8073         SPRECORESULTTIMES *pTimes);
8074 
8075     HRESULT (STDMETHODCALLTYPE *GetAlternates)(
8076         ISpXMLRecoResult *This,
8077         ULONG ulStartElement,
8078         ULONG cElements,
8079         ULONG ulRequestCount,
8080         ISpPhraseAlt **ppPhrases,
8081         ULONG *pcPhrasesReturned);
8082 
8083     HRESULT (STDMETHODCALLTYPE *GetAudio)(
8084         ISpXMLRecoResult *This,
8085         ULONG ulStartElement,
8086         ULONG cElements,
8087         ISpStreamFormat **ppStream);
8088 
8089     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
8090         ISpXMLRecoResult *This,
8091         ULONG ulStartElement,
8092         ULONG cElements,
8093         DWORD dwFlags,
8094         ULONG *pulStreamNumber);
8095 
8096     HRESULT (STDMETHODCALLTYPE *Serialize)(
8097         ISpXMLRecoResult *This,
8098         SPSERIALIZEDRESULT **ppCoMemSerializedResult);
8099 
8100     HRESULT (STDMETHODCALLTYPE *ScaleAudio)(
8101         ISpXMLRecoResult *This,
8102         const GUID *pAudioFormatId,
8103         const WAVEFORMATEX *pWaveFormatEx);
8104 
8105     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8106         ISpXMLRecoResult *This,
8107         ISpRecoContext **ppRecoContext);
8108 
8109     /*** ISpXMLRecoResult methods ***/
8110     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
8111         ISpXMLRecoResult *This,
8112         LPWSTR *ppszCoMemXMLResult,
8113         SPXMLRESULTOPTIONS Options);
8114 
8115     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
8116         ISpXMLRecoResult *This,
8117         SPSEMANTICERRORINFO *pSemanticErrorInfo);
8118 
8119     END_INTERFACE
8120 } ISpXMLRecoResultVtbl;
8121 
8122 interface ISpXMLRecoResult {
8123     CONST_VTBL ISpXMLRecoResultVtbl* lpVtbl;
8124 };
8125 
8126 #ifdef COBJMACROS
8127 #ifndef WIDL_C_INLINE_WRAPPERS
8128 /*** IUnknown methods ***/
8129 #define ISpXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8130 #define ISpXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
8131 #define ISpXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
8132 /*** ISpPhrase methods ***/
8133 #define ISpXMLRecoResult_GetPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetPhrase(This,ppCoMemPhrase)
8134 #define ISpXMLRecoResult_GetSerializedPhrase(This,ppCoMemPhrase) (This)->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase)
8135 #define ISpXMLRecoResult_GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes) (This)->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes)
8136 #define ISpXMLRecoResult_Discard(This,dwValueTypes) (This)->lpVtbl->Discard(This,dwValueTypes)
8137 /*** ISpRecoResult methods ***/
8138 #define ISpXMLRecoResult_GetResultTimes(This,pTimes) (This)->lpVtbl->GetResultTimes(This,pTimes)
8139 #define ISpXMLRecoResult_GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned) (This)->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned)
8140 #define ISpXMLRecoResult_GetAudio(This,ulStartElement,cElements,ppStream) (This)->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream)
8141 #define ISpXMLRecoResult_SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber) (This)->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber)
8142 #define ISpXMLRecoResult_Serialize(This,ppCoMemSerializedResult) (This)->lpVtbl->Serialize(This,ppCoMemSerializedResult)
8143 #define ISpXMLRecoResult_ScaleAudio(This,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx)
8144 #define ISpXMLRecoResult_GetRecoContext(This,ppRecoContext) (This)->lpVtbl->GetRecoContext(This,ppRecoContext)
8145 /*** ISpXMLRecoResult methods ***/
8146 #define ISpXMLRecoResult_GetXMLResult(This,ppszCoMemXMLResult,Options) (This)->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options)
8147 #define ISpXMLRecoResult_GetXMLErrorInfo(This,pSemanticErrorInfo) (This)->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo)
8148 #else
8149 /*** IUnknown methods ***/
8150 static FORCEINLINE HRESULT ISpXMLRecoResult_QueryInterface(ISpXMLRecoResult* This,REFIID riid,void **ppvObject) {
8151     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8152 }
8153 static FORCEINLINE ULONG ISpXMLRecoResult_AddRef(ISpXMLRecoResult* This) {
8154     return This->lpVtbl->AddRef(This);
8155 }
8156 static FORCEINLINE ULONG ISpXMLRecoResult_Release(ISpXMLRecoResult* This) {
8157     return This->lpVtbl->Release(This);
8158 }
8159 /*** ISpPhrase methods ***/
8160 static FORCEINLINE HRESULT ISpXMLRecoResult_GetPhrase(ISpXMLRecoResult* This,SPPHRASE **ppCoMemPhrase) {
8161     return This->lpVtbl->GetPhrase(This,ppCoMemPhrase);
8162 }
8163 static FORCEINLINE HRESULT ISpXMLRecoResult_GetSerializedPhrase(ISpXMLRecoResult* This,SPSERIALIZEDPHRASE **ppCoMemPhrase) {
8164     return This->lpVtbl->GetSerializedPhrase(This,ppCoMemPhrase);
8165 }
8166 static FORCEINLINE HRESULT ISpXMLRecoResult_GetText(ISpXMLRecoResult* This,ULONG ulStart,ULONG ulCount,WINBOOL fUseTextReplacements,LPWSTR *ppszCoMemText,BYTE *pbDisplayAttributes) {
8167     return This->lpVtbl->GetText(This,ulStart,ulCount,fUseTextReplacements,ppszCoMemText,pbDisplayAttributes);
8168 }
8169 static FORCEINLINE HRESULT ISpXMLRecoResult_Discard(ISpXMLRecoResult* This,DWORD dwValueTypes) {
8170     return This->lpVtbl->Discard(This,dwValueTypes);
8171 }
8172 /*** ISpRecoResult methods ***/
8173 static FORCEINLINE HRESULT ISpXMLRecoResult_GetResultTimes(ISpXMLRecoResult* This,SPRECORESULTTIMES *pTimes) {
8174     return This->lpVtbl->GetResultTimes(This,pTimes);
8175 }
8176 static FORCEINLINE HRESULT ISpXMLRecoResult_GetAlternates(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ULONG ulRequestCount,ISpPhraseAlt **ppPhrases,ULONG *pcPhrasesReturned) {
8177     return This->lpVtbl->GetAlternates(This,ulStartElement,cElements,ulRequestCount,ppPhrases,pcPhrasesReturned);
8178 }
8179 static FORCEINLINE HRESULT ISpXMLRecoResult_GetAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,ISpStreamFormat **ppStream) {
8180     return This->lpVtbl->GetAudio(This,ulStartElement,cElements,ppStream);
8181 }
8182 static FORCEINLINE HRESULT ISpXMLRecoResult_SpeakAudio(ISpXMLRecoResult* This,ULONG ulStartElement,ULONG cElements,DWORD dwFlags,ULONG *pulStreamNumber) {
8183     return This->lpVtbl->SpeakAudio(This,ulStartElement,cElements,dwFlags,pulStreamNumber);
8184 }
8185 static FORCEINLINE HRESULT ISpXMLRecoResult_Serialize(ISpXMLRecoResult* This,SPSERIALIZEDRESULT **ppCoMemSerializedResult) {
8186     return This->lpVtbl->Serialize(This,ppCoMemSerializedResult);
8187 }
8188 static FORCEINLINE HRESULT ISpXMLRecoResult_ScaleAudio(ISpXMLRecoResult* This,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
8189     return This->lpVtbl->ScaleAudio(This,pAudioFormatId,pWaveFormatEx);
8190 }
8191 static FORCEINLINE HRESULT ISpXMLRecoResult_GetRecoContext(ISpXMLRecoResult* This,ISpRecoContext **ppRecoContext) {
8192     return This->lpVtbl->GetRecoContext(This,ppRecoContext);
8193 }
8194 /*** ISpXMLRecoResult methods ***/
8195 static FORCEINLINE HRESULT ISpXMLRecoResult_GetXMLResult(ISpXMLRecoResult* This,LPWSTR *ppszCoMemXMLResult,SPXMLRESULTOPTIONS Options) {
8196     return This->lpVtbl->GetXMLResult(This,ppszCoMemXMLResult,Options);
8197 }
8198 static FORCEINLINE HRESULT ISpXMLRecoResult_GetXMLErrorInfo(ISpXMLRecoResult* This,SPSEMANTICERRORINFO *pSemanticErrorInfo) {
8199     return This->lpVtbl->GetXMLErrorInfo(This,pSemanticErrorInfo);
8200 }
8201 #endif
8202 #endif
8203 
8204 #endif
8205 
8206 
8207 #endif  /* __ISpXMLRecoResult_INTERFACE_DEFINED__ */
8208 
8209 typedef struct tagSPTEXTSELECTIONINFO {
8210     ULONG ulStartActiveOffset;
8211     ULONG cchActiveChars;
8212     ULONG ulStartSelection;
8213     ULONG cchSelection;
8214 } SPTEXTSELECTIONINFO;
8215 typedef enum SPWORDPRONOUNCEABLE {
8216     SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE = 0,
8217     SPWP_UNKNOWN_WORD_PRONOUNCEABLE = 1,
8218     SPWP_KNOWN_WORD_PRONOUNCEABLE = 2
8219 } SPWORDPRONOUNCEABLE;
8220 typedef enum SPGRAMMARSTATE {
8221     SPGS_DISABLED = 0,
8222     SPGS_ENABLED = 1,
8223     SPGS_EXCLUSIVE = 3
8224 } SPGRAMMARSTATE;
8225 typedef enum SPCONTEXTSTATE {
8226     SPCS_DISABLED = 0,
8227     SPCS_ENABLED = 1
8228 } SPCONTEXTSTATE;
8229 typedef enum SPRULESTATE {
8230     SPRS_INACTIVE = 0,
8231     SPRS_ACTIVE = 1,
8232     SPRS_ACTIVE_WITH_AUTO_PAUSE = 3,
8233     SPRS_ACTIVE_USER_DELIMITED = 4
8234 } SPRULESTATE;
8235 #define SP_STREAMPOS_ASAP (0)
8236 
8237 #define SP_STREAMPOS_REALTIME (-1)
8238 
8239 #define SPRULETRANS_TEXTBUFFER (SPSTATEHANDLE) (-1)
8240 #define SPRULETRANS_WILDCARD (SPSTATEHANDLE) (-2)
8241 #define SPRULETRANS_DICTATION (SPSTATEHANDLE) (-3)
8242 typedef enum SPGRAMMARWORDTYPE {
8243     SPWT_DISPLAY = 0,
8244     SPWT_LEXICAL = 1,
8245     SPWT_PRONUNCIATION = 2,
8246     SPWT_LEXICAL_NO_SPECIAL_CHARS = 3
8247 } SPGRAMMARWORDTYPE;
8248 typedef struct tagSPPROPERTYINFO {
8249     LPCWSTR pszName;
8250     ULONG ulId;
8251     LPCWSTR pszValue;
8252     VARIANT vValue;
8253 } SPPROPERTYINFO;
8254 typedef enum SPCFGRULEATTRIBUTES {
8255     SPRAF_TopLevel = 0x1,
8256     SPRAF_Active = 0x2,
8257     SPRAF_Export = 0x4,
8258     SPRAF_Import = 0x8,
8259     SPRAF_Interpreter = 0x10,
8260     SPRAF_Dynamic = 0x20,
8261     SPRAF_Root = 0x40,
8262     SPRAF_AutoPause = 0x10000,
8263     SPRAF_UserDelimited = 0x20000
8264 } SPCFGRULEATTRIBUTES;
8265 /*****************************************************************************
8266  * ISpGrammarBuilder interface
8267  */
8268 #ifndef __ISpGrammarBuilder_INTERFACE_DEFINED__
8269 #define __ISpGrammarBuilder_INTERFACE_DEFINED__
8270 
8271 DEFINE_GUID(IID_ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68);
8272 #if defined(__cplusplus) && !defined(CINTERFACE)
8273 MIDL_INTERFACE("8137828f-591a-4a42-be58-49ea7ebaac68")
8274 ISpGrammarBuilder : public IUnknown
8275 {
8276     virtual HRESULT STDMETHODCALLTYPE ResetGrammar(
8277         WORD NewLanguage) = 0;
8278 
8279     virtual HRESULT STDMETHODCALLTYPE GetRule(
8280         LPCWSTR pszRuleName,
8281         DWORD dwRuleId,
8282         DWORD dwAttributes,
8283         WINBOOL fCreateIfNotExist,
8284         SPSTATEHANDLE *phInitialState) = 0;
8285 
8286     virtual HRESULT STDMETHODCALLTYPE ClearRule(
8287         SPSTATEHANDLE hState) = 0;
8288 
8289     virtual HRESULT STDMETHODCALLTYPE CreateNewState(
8290         SPSTATEHANDLE hState,
8291         SPSTATEHANDLE *phState) = 0;
8292 
8293     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
8294         SPSTATEHANDLE hFromState,
8295         SPSTATEHANDLE hToState,
8296         LPCWSTR psz,
8297         LPCWSTR pszSeparators,
8298         SPGRAMMARWORDTYPE eWordType,
8299         float Weight,
8300         const SPPROPERTYINFO *pPropInfo) = 0;
8301 
8302     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
8303         SPSTATEHANDLE hFromState,
8304         SPSTATEHANDLE hToState,
8305         SPSTATEHANDLE hRule,
8306         float Weight,
8307         const SPPROPERTYINFO *pPropInfo) = 0;
8308 
8309     virtual HRESULT STDMETHODCALLTYPE AddResource(
8310         SPSTATEHANDLE hRuleState,
8311         LPCWSTR pszResourceName,
8312         LPCWSTR pszResourceValue) = 0;
8313 
8314     virtual HRESULT STDMETHODCALLTYPE Commit(
8315         DWORD dwReserved) = 0;
8316 
8317 };
8318 #ifdef __CRT_UUID_DECL
8319 __CRT_UUID_DECL(ISpGrammarBuilder, 0x8137828f, 0x591a, 0x4a42, 0xbe,0x58, 0x49,0xea,0x7e,0xba,0xac,0x68)
8320 #endif
8321 #else
8322 typedef struct ISpGrammarBuilderVtbl {
8323     BEGIN_INTERFACE
8324 
8325     /*** IUnknown methods ***/
8326     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8327         ISpGrammarBuilder *This,
8328         REFIID riid,
8329         void **ppvObject);
8330 
8331     ULONG (STDMETHODCALLTYPE *AddRef)(
8332         ISpGrammarBuilder *This);
8333 
8334     ULONG (STDMETHODCALLTYPE *Release)(
8335         ISpGrammarBuilder *This);
8336 
8337     /*** ISpGrammarBuilder methods ***/
8338     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
8339         ISpGrammarBuilder *This,
8340         WORD NewLanguage);
8341 
8342     HRESULT (STDMETHODCALLTYPE *GetRule)(
8343         ISpGrammarBuilder *This,
8344         LPCWSTR pszRuleName,
8345         DWORD dwRuleId,
8346         DWORD dwAttributes,
8347         WINBOOL fCreateIfNotExist,
8348         SPSTATEHANDLE *phInitialState);
8349 
8350     HRESULT (STDMETHODCALLTYPE *ClearRule)(
8351         ISpGrammarBuilder *This,
8352         SPSTATEHANDLE hState);
8353 
8354     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
8355         ISpGrammarBuilder *This,
8356         SPSTATEHANDLE hState,
8357         SPSTATEHANDLE *phState);
8358 
8359     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
8360         ISpGrammarBuilder *This,
8361         SPSTATEHANDLE hFromState,
8362         SPSTATEHANDLE hToState,
8363         LPCWSTR psz,
8364         LPCWSTR pszSeparators,
8365         SPGRAMMARWORDTYPE eWordType,
8366         float Weight,
8367         const SPPROPERTYINFO *pPropInfo);
8368 
8369     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
8370         ISpGrammarBuilder *This,
8371         SPSTATEHANDLE hFromState,
8372         SPSTATEHANDLE hToState,
8373         SPSTATEHANDLE hRule,
8374         float Weight,
8375         const SPPROPERTYINFO *pPropInfo);
8376 
8377     HRESULT (STDMETHODCALLTYPE *AddResource)(
8378         ISpGrammarBuilder *This,
8379         SPSTATEHANDLE hRuleState,
8380         LPCWSTR pszResourceName,
8381         LPCWSTR pszResourceValue);
8382 
8383     HRESULT (STDMETHODCALLTYPE *Commit)(
8384         ISpGrammarBuilder *This,
8385         DWORD dwReserved);
8386 
8387     END_INTERFACE
8388 } ISpGrammarBuilderVtbl;
8389 
8390 interface ISpGrammarBuilder {
8391     CONST_VTBL ISpGrammarBuilderVtbl* lpVtbl;
8392 };
8393 
8394 #ifdef COBJMACROS
8395 #ifndef WIDL_C_INLINE_WRAPPERS
8396 /*** IUnknown methods ***/
8397 #define ISpGrammarBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8398 #define ISpGrammarBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
8399 #define ISpGrammarBuilder_Release(This) (This)->lpVtbl->Release(This)
8400 /*** ISpGrammarBuilder methods ***/
8401 #define ISpGrammarBuilder_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
8402 #define ISpGrammarBuilder_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
8403 #define ISpGrammarBuilder_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
8404 #define ISpGrammarBuilder_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
8405 #define ISpGrammarBuilder_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
8406 #define ISpGrammarBuilder_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
8407 #define ISpGrammarBuilder_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
8408 #define ISpGrammarBuilder_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
8409 #else
8410 /*** IUnknown methods ***/
8411 static FORCEINLINE HRESULT ISpGrammarBuilder_QueryInterface(ISpGrammarBuilder* This,REFIID riid,void **ppvObject) {
8412     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8413 }
8414 static FORCEINLINE ULONG ISpGrammarBuilder_AddRef(ISpGrammarBuilder* This) {
8415     return This->lpVtbl->AddRef(This);
8416 }
8417 static FORCEINLINE ULONG ISpGrammarBuilder_Release(ISpGrammarBuilder* This) {
8418     return This->lpVtbl->Release(This);
8419 }
8420 /*** ISpGrammarBuilder methods ***/
8421 static FORCEINLINE HRESULT ISpGrammarBuilder_ResetGrammar(ISpGrammarBuilder* This,WORD NewLanguage) {
8422     return This->lpVtbl->ResetGrammar(This,NewLanguage);
8423 }
8424 static FORCEINLINE HRESULT ISpGrammarBuilder_GetRule(ISpGrammarBuilder* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
8425     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
8426 }
8427 static FORCEINLINE HRESULT ISpGrammarBuilder_ClearRule(ISpGrammarBuilder* This,SPSTATEHANDLE hState) {
8428     return This->lpVtbl->ClearRule(This,hState);
8429 }
8430 static FORCEINLINE HRESULT ISpGrammarBuilder_CreateNewState(ISpGrammarBuilder* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
8431     return This->lpVtbl->CreateNewState(This,hState,phState);
8432 }
8433 static FORCEINLINE HRESULT ISpGrammarBuilder_AddWordTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
8434     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
8435 }
8436 static FORCEINLINE HRESULT ISpGrammarBuilder_AddRuleTransition(ISpGrammarBuilder* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
8437     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
8438 }
8439 static FORCEINLINE HRESULT ISpGrammarBuilder_AddResource(ISpGrammarBuilder* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
8440     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
8441 }
8442 static FORCEINLINE HRESULT ISpGrammarBuilder_Commit(ISpGrammarBuilder* This,DWORD dwReserved) {
8443     return This->lpVtbl->Commit(This,dwReserved);
8444 }
8445 #endif
8446 #endif
8447 
8448 #endif
8449 
8450 
8451 #endif  /* __ISpGrammarBuilder_INTERFACE_DEFINED__ */
8452 
8453 typedef enum SPLOADOPTIONS {
8454     SPLO_STATIC = 0,
8455     SPLO_DYNAMIC = 1
8456 } SPLOADOPTIONS;
8457 /*****************************************************************************
8458  * ISpRecoGrammar interface
8459  */
8460 #ifndef __ISpRecoGrammar_INTERFACE_DEFINED__
8461 #define __ISpRecoGrammar_INTERFACE_DEFINED__
8462 
8463 DEFINE_GUID(IID_ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02);
8464 #if defined(__cplusplus) && !defined(CINTERFACE)
8465 MIDL_INTERFACE("2177db29-7f45-47d0-8554-067e91c80502")
8466 ISpRecoGrammar : public ISpGrammarBuilder
8467 {
8468     virtual HRESULT STDMETHODCALLTYPE GetGrammarId(
8469         ULONGLONG *pullGrammarId) = 0;
8470 
8471     virtual HRESULT STDMETHODCALLTYPE GetRecoContext(
8472         ISpRecoContext **ppRecoCtxt) = 0;
8473 
8474     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile(
8475         LPCWSTR pszFileName,
8476         SPLOADOPTIONS Options) = 0;
8477 
8478     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromObject(
8479         REFCLSID rcid,
8480         LPCWSTR pszGrammarName,
8481         SPLOADOPTIONS Options) = 0;
8482 
8483     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromResource(
8484         HMODULE hModule,
8485         LPCWSTR pszResourceName,
8486         LPCWSTR pszResourceType,
8487         WORD wLanguage,
8488         SPLOADOPTIONS Options) = 0;
8489 
8490     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory(
8491         const SPBINARYGRAMMAR *pGrammar,
8492         SPLOADOPTIONS Options) = 0;
8493 
8494     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromProprietaryGrammar(
8495         REFGUID rguidParam,
8496         LPCWSTR pszStringParam,
8497         const void *pvDataPrarm,
8498         ULONG cbDataSize,
8499         SPLOADOPTIONS Options) = 0;
8500 
8501     virtual HRESULT STDMETHODCALLTYPE SetRuleState(
8502         LPCWSTR pszName,
8503         void *pReserved,
8504         SPRULESTATE NewState) = 0;
8505 
8506     virtual HRESULT STDMETHODCALLTYPE SetRuleIdState(
8507         ULONG ulRuleId,
8508         SPRULESTATE NewState) = 0;
8509 
8510     virtual HRESULT STDMETHODCALLTYPE LoadDictation(
8511         LPCWSTR pszTopicName,
8512         SPLOADOPTIONS Options) = 0;
8513 
8514     virtual HRESULT STDMETHODCALLTYPE UnloadDictation(
8515         ) = 0;
8516 
8517     virtual HRESULT STDMETHODCALLTYPE SetDictationState(
8518         SPRULESTATE NewState) = 0;
8519 
8520     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
8521         const WCHAR *pText,
8522         ULONG cchText,
8523         const SPTEXTSELECTIONINFO *pInfo) = 0;
8524 
8525     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
8526         const SPTEXTSELECTIONINFO *pInfo) = 0;
8527 
8528     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
8529         LPCWSTR pszWord,
8530         SPWORDPRONOUNCEABLE *pWordPronounceable) = 0;
8531 
8532     virtual HRESULT STDMETHODCALLTYPE SetGrammarState(
8533         SPGRAMMARSTATE eGrammarState) = 0;
8534 
8535     virtual HRESULT STDMETHODCALLTYPE SaveCmd(
8536         IStream *pStream,
8537         LPWSTR *ppszCoMemErrorText) = 0;
8538 
8539     virtual HRESULT STDMETHODCALLTYPE GetGrammarState(
8540         SPGRAMMARSTATE *peGrammarState) = 0;
8541 
8542 };
8543 #ifdef __CRT_UUID_DECL
8544 __CRT_UUID_DECL(ISpRecoGrammar, 0x2177db29, 0x7f45, 0x47d0, 0x85,0x54, 0x06,0x7e,0x91,0xc8,0x05,0x02)
8545 #endif
8546 #else
8547 typedef struct ISpRecoGrammarVtbl {
8548     BEGIN_INTERFACE
8549 
8550     /*** IUnknown methods ***/
8551     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8552         ISpRecoGrammar *This,
8553         REFIID riid,
8554         void **ppvObject);
8555 
8556     ULONG (STDMETHODCALLTYPE *AddRef)(
8557         ISpRecoGrammar *This);
8558 
8559     ULONG (STDMETHODCALLTYPE *Release)(
8560         ISpRecoGrammar *This);
8561 
8562     /*** ISpGrammarBuilder methods ***/
8563     HRESULT (STDMETHODCALLTYPE *ResetGrammar)(
8564         ISpRecoGrammar *This,
8565         WORD NewLanguage);
8566 
8567     HRESULT (STDMETHODCALLTYPE *GetRule)(
8568         ISpRecoGrammar *This,
8569         LPCWSTR pszRuleName,
8570         DWORD dwRuleId,
8571         DWORD dwAttributes,
8572         WINBOOL fCreateIfNotExist,
8573         SPSTATEHANDLE *phInitialState);
8574 
8575     HRESULT (STDMETHODCALLTYPE *ClearRule)(
8576         ISpRecoGrammar *This,
8577         SPSTATEHANDLE hState);
8578 
8579     HRESULT (STDMETHODCALLTYPE *CreateNewState)(
8580         ISpRecoGrammar *This,
8581         SPSTATEHANDLE hState,
8582         SPSTATEHANDLE *phState);
8583 
8584     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
8585         ISpRecoGrammar *This,
8586         SPSTATEHANDLE hFromState,
8587         SPSTATEHANDLE hToState,
8588         LPCWSTR psz,
8589         LPCWSTR pszSeparators,
8590         SPGRAMMARWORDTYPE eWordType,
8591         float Weight,
8592         const SPPROPERTYINFO *pPropInfo);
8593 
8594     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
8595         ISpRecoGrammar *This,
8596         SPSTATEHANDLE hFromState,
8597         SPSTATEHANDLE hToState,
8598         SPSTATEHANDLE hRule,
8599         float Weight,
8600         const SPPROPERTYINFO *pPropInfo);
8601 
8602     HRESULT (STDMETHODCALLTYPE *AddResource)(
8603         ISpRecoGrammar *This,
8604         SPSTATEHANDLE hRuleState,
8605         LPCWSTR pszResourceName,
8606         LPCWSTR pszResourceValue);
8607 
8608     HRESULT (STDMETHODCALLTYPE *Commit)(
8609         ISpRecoGrammar *This,
8610         DWORD dwReserved);
8611 
8612     /*** ISpRecoGrammar methods ***/
8613     HRESULT (STDMETHODCALLTYPE *GetGrammarId)(
8614         ISpRecoGrammar *This,
8615         ULONGLONG *pullGrammarId);
8616 
8617     HRESULT (STDMETHODCALLTYPE *GetRecoContext)(
8618         ISpRecoGrammar *This,
8619         ISpRecoContext **ppRecoCtxt);
8620 
8621     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile)(
8622         ISpRecoGrammar *This,
8623         LPCWSTR pszFileName,
8624         SPLOADOPTIONS Options);
8625 
8626     HRESULT (STDMETHODCALLTYPE *LoadCmdFromObject)(
8627         ISpRecoGrammar *This,
8628         REFCLSID rcid,
8629         LPCWSTR pszGrammarName,
8630         SPLOADOPTIONS Options);
8631 
8632     HRESULT (STDMETHODCALLTYPE *LoadCmdFromResource)(
8633         ISpRecoGrammar *This,
8634         HMODULE hModule,
8635         LPCWSTR pszResourceName,
8636         LPCWSTR pszResourceType,
8637         WORD wLanguage,
8638         SPLOADOPTIONS Options);
8639 
8640     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory)(
8641         ISpRecoGrammar *This,
8642         const SPBINARYGRAMMAR *pGrammar,
8643         SPLOADOPTIONS Options);
8644 
8645     HRESULT (STDMETHODCALLTYPE *LoadCmdFromProprietaryGrammar)(
8646         ISpRecoGrammar *This,
8647         REFGUID rguidParam,
8648         LPCWSTR pszStringParam,
8649         const void *pvDataPrarm,
8650         ULONG cbDataSize,
8651         SPLOADOPTIONS Options);
8652 
8653     HRESULT (STDMETHODCALLTYPE *SetRuleState)(
8654         ISpRecoGrammar *This,
8655         LPCWSTR pszName,
8656         void *pReserved,
8657         SPRULESTATE NewState);
8658 
8659     HRESULT (STDMETHODCALLTYPE *SetRuleIdState)(
8660         ISpRecoGrammar *This,
8661         ULONG ulRuleId,
8662         SPRULESTATE NewState);
8663 
8664     HRESULT (STDMETHODCALLTYPE *LoadDictation)(
8665         ISpRecoGrammar *This,
8666         LPCWSTR pszTopicName,
8667         SPLOADOPTIONS Options);
8668 
8669     HRESULT (STDMETHODCALLTYPE *UnloadDictation)(
8670         ISpRecoGrammar *This);
8671 
8672     HRESULT (STDMETHODCALLTYPE *SetDictationState)(
8673         ISpRecoGrammar *This,
8674         SPRULESTATE NewState);
8675 
8676     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
8677         ISpRecoGrammar *This,
8678         const WCHAR *pText,
8679         ULONG cchText,
8680         const SPTEXTSELECTIONINFO *pInfo);
8681 
8682     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
8683         ISpRecoGrammar *This,
8684         const SPTEXTSELECTIONINFO *pInfo);
8685 
8686     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
8687         ISpRecoGrammar *This,
8688         LPCWSTR pszWord,
8689         SPWORDPRONOUNCEABLE *pWordPronounceable);
8690 
8691     HRESULT (STDMETHODCALLTYPE *SetGrammarState)(
8692         ISpRecoGrammar *This,
8693         SPGRAMMARSTATE eGrammarState);
8694 
8695     HRESULT (STDMETHODCALLTYPE *SaveCmd)(
8696         ISpRecoGrammar *This,
8697         IStream *pStream,
8698         LPWSTR *ppszCoMemErrorText);
8699 
8700     HRESULT (STDMETHODCALLTYPE *GetGrammarState)(
8701         ISpRecoGrammar *This,
8702         SPGRAMMARSTATE *peGrammarState);
8703 
8704     END_INTERFACE
8705 } ISpRecoGrammarVtbl;
8706 
8707 interface ISpRecoGrammar {
8708     CONST_VTBL ISpRecoGrammarVtbl* lpVtbl;
8709 };
8710 
8711 #ifdef COBJMACROS
8712 #ifndef WIDL_C_INLINE_WRAPPERS
8713 /*** IUnknown methods ***/
8714 #define ISpRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8715 #define ISpRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
8716 #define ISpRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
8717 /*** ISpGrammarBuilder methods ***/
8718 #define ISpRecoGrammar_ResetGrammar(This,NewLanguage) (This)->lpVtbl->ResetGrammar(This,NewLanguage)
8719 #define ISpRecoGrammar_GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState) (This)->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState)
8720 #define ISpRecoGrammar_ClearRule(This,hState) (This)->lpVtbl->ClearRule(This,hState)
8721 #define ISpRecoGrammar_CreateNewState(This,hState,phState) (This)->lpVtbl->CreateNewState(This,hState,phState)
8722 #define ISpRecoGrammar_AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo) (This)->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo)
8723 #define ISpRecoGrammar_AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo) (This)->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo)
8724 #define ISpRecoGrammar_AddResource(This,hRuleState,pszResourceName,pszResourceValue) (This)->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue)
8725 #define ISpRecoGrammar_Commit(This,dwReserved) (This)->lpVtbl->Commit(This,dwReserved)
8726 /*** ISpRecoGrammar methods ***/
8727 #define ISpRecoGrammar_GetGrammarId(This,pullGrammarId) (This)->lpVtbl->GetGrammarId(This,pullGrammarId)
8728 #define ISpRecoGrammar_GetRecoContext(This,ppRecoCtxt) (This)->lpVtbl->GetRecoContext(This,ppRecoCtxt)
8729 #define ISpRecoGrammar_LoadCmdFromFile(This,pszFileName,Options) (This)->lpVtbl->LoadCmdFromFile(This,pszFileName,Options)
8730 #define ISpRecoGrammar_LoadCmdFromObject(This,rcid,pszGrammarName,Options) (This)->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options)
8731 #define ISpRecoGrammar_LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options) (This)->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options)
8732 #define ISpRecoGrammar_LoadCmdFromMemory(This,pGrammar,Options) (This)->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options)
8733 #define ISpRecoGrammar_LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options) (This)->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options)
8734 #define ISpRecoGrammar_SetRuleState(This,pszName,pReserved,NewState) (This)->lpVtbl->SetRuleState(This,pszName,pReserved,NewState)
8735 #define ISpRecoGrammar_SetRuleIdState(This,ulRuleId,NewState) (This)->lpVtbl->SetRuleIdState(This,ulRuleId,NewState)
8736 #define ISpRecoGrammar_LoadDictation(This,pszTopicName,Options) (This)->lpVtbl->LoadDictation(This,pszTopicName,Options)
8737 #define ISpRecoGrammar_UnloadDictation(This) (This)->lpVtbl->UnloadDictation(This)
8738 #define ISpRecoGrammar_SetDictationState(This,NewState) (This)->lpVtbl->SetDictationState(This,NewState)
8739 #define ISpRecoGrammar_SetWordSequenceData(This,pText,cchText,pInfo) (This)->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo)
8740 #define ISpRecoGrammar_SetTextSelection(This,pInfo) (This)->lpVtbl->SetTextSelection(This,pInfo)
8741 #define ISpRecoGrammar_IsPronounceable(This,pszWord,pWordPronounceable) (This)->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable)
8742 #define ISpRecoGrammar_SetGrammarState(This,eGrammarState) (This)->lpVtbl->SetGrammarState(This,eGrammarState)
8743 #define ISpRecoGrammar_SaveCmd(This,pStream,ppszCoMemErrorText) (This)->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText)
8744 #define ISpRecoGrammar_GetGrammarState(This,peGrammarState) (This)->lpVtbl->GetGrammarState(This,peGrammarState)
8745 #else
8746 /*** IUnknown methods ***/
8747 static FORCEINLINE HRESULT ISpRecoGrammar_QueryInterface(ISpRecoGrammar* This,REFIID riid,void **ppvObject) {
8748     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8749 }
8750 static FORCEINLINE ULONG ISpRecoGrammar_AddRef(ISpRecoGrammar* This) {
8751     return This->lpVtbl->AddRef(This);
8752 }
8753 static FORCEINLINE ULONG ISpRecoGrammar_Release(ISpRecoGrammar* This) {
8754     return This->lpVtbl->Release(This);
8755 }
8756 /*** ISpGrammarBuilder methods ***/
8757 static FORCEINLINE HRESULT ISpRecoGrammar_ResetGrammar(ISpRecoGrammar* This,WORD NewLanguage) {
8758     return This->lpVtbl->ResetGrammar(This,NewLanguage);
8759 }
8760 static FORCEINLINE HRESULT ISpRecoGrammar_GetRule(ISpRecoGrammar* This,LPCWSTR pszRuleName,DWORD dwRuleId,DWORD dwAttributes,WINBOOL fCreateIfNotExist,SPSTATEHANDLE *phInitialState) {
8761     return This->lpVtbl->GetRule(This,pszRuleName,dwRuleId,dwAttributes,fCreateIfNotExist,phInitialState);
8762 }
8763 static FORCEINLINE HRESULT ISpRecoGrammar_ClearRule(ISpRecoGrammar* This,SPSTATEHANDLE hState) {
8764     return This->lpVtbl->ClearRule(This,hState);
8765 }
8766 static FORCEINLINE HRESULT ISpRecoGrammar_CreateNewState(ISpRecoGrammar* This,SPSTATEHANDLE hState,SPSTATEHANDLE *phState) {
8767     return This->lpVtbl->CreateNewState(This,hState,phState);
8768 }
8769 static FORCEINLINE HRESULT ISpRecoGrammar_AddWordTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,LPCWSTR pszSeparators,SPGRAMMARWORDTYPE eWordType,float Weight,const SPPROPERTYINFO *pPropInfo) {
8770     return This->lpVtbl->AddWordTransition(This,hFromState,hToState,psz,pszSeparators,eWordType,Weight,pPropInfo);
8771 }
8772 static FORCEINLINE HRESULT ISpRecoGrammar_AddRuleTransition(ISpRecoGrammar* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,SPSTATEHANDLE hRule,float Weight,const SPPROPERTYINFO *pPropInfo) {
8773     return This->lpVtbl->AddRuleTransition(This,hFromState,hToState,hRule,Weight,pPropInfo);
8774 }
8775 static FORCEINLINE HRESULT ISpRecoGrammar_AddResource(ISpRecoGrammar* This,SPSTATEHANDLE hRuleState,LPCWSTR pszResourceName,LPCWSTR pszResourceValue) {
8776     return This->lpVtbl->AddResource(This,hRuleState,pszResourceName,pszResourceValue);
8777 }
8778 static FORCEINLINE HRESULT ISpRecoGrammar_Commit(ISpRecoGrammar* This,DWORD dwReserved) {
8779     return This->lpVtbl->Commit(This,dwReserved);
8780 }
8781 /*** ISpRecoGrammar methods ***/
8782 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarId(ISpRecoGrammar* This,ULONGLONG *pullGrammarId) {
8783     return This->lpVtbl->GetGrammarId(This,pullGrammarId);
8784 }
8785 static FORCEINLINE HRESULT ISpRecoGrammar_GetRecoContext(ISpRecoGrammar* This,ISpRecoContext **ppRecoCtxt) {
8786     return This->lpVtbl->GetRecoContext(This,ppRecoCtxt);
8787 }
8788 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromFile(ISpRecoGrammar* This,LPCWSTR pszFileName,SPLOADOPTIONS Options) {
8789     return This->lpVtbl->LoadCmdFromFile(This,pszFileName,Options);
8790 }
8791 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromObject(ISpRecoGrammar* This,REFCLSID rcid,LPCWSTR pszGrammarName,SPLOADOPTIONS Options) {
8792     return This->lpVtbl->LoadCmdFromObject(This,rcid,pszGrammarName,Options);
8793 }
8794 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromResource(ISpRecoGrammar* This,HMODULE hModule,LPCWSTR pszResourceName,LPCWSTR pszResourceType,WORD wLanguage,SPLOADOPTIONS Options) {
8795     return This->lpVtbl->LoadCmdFromResource(This,hModule,pszResourceName,pszResourceType,wLanguage,Options);
8796 }
8797 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromMemory(ISpRecoGrammar* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options) {
8798     return This->lpVtbl->LoadCmdFromMemory(This,pGrammar,Options);
8799 }
8800 static FORCEINLINE HRESULT ISpRecoGrammar_LoadCmdFromProprietaryGrammar(ISpRecoGrammar* This,REFGUID rguidParam,LPCWSTR pszStringParam,const void *pvDataPrarm,ULONG cbDataSize,SPLOADOPTIONS Options) {
8801     return This->lpVtbl->LoadCmdFromProprietaryGrammar(This,rguidParam,pszStringParam,pvDataPrarm,cbDataSize,Options);
8802 }
8803 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleState(ISpRecoGrammar* This,LPCWSTR pszName,void *pReserved,SPRULESTATE NewState) {
8804     return This->lpVtbl->SetRuleState(This,pszName,pReserved,NewState);
8805 }
8806 static FORCEINLINE HRESULT ISpRecoGrammar_SetRuleIdState(ISpRecoGrammar* This,ULONG ulRuleId,SPRULESTATE NewState) {
8807     return This->lpVtbl->SetRuleIdState(This,ulRuleId,NewState);
8808 }
8809 static FORCEINLINE HRESULT ISpRecoGrammar_LoadDictation(ISpRecoGrammar* This,LPCWSTR pszTopicName,SPLOADOPTIONS Options) {
8810     return This->lpVtbl->LoadDictation(This,pszTopicName,Options);
8811 }
8812 static FORCEINLINE HRESULT ISpRecoGrammar_UnloadDictation(ISpRecoGrammar* This) {
8813     return This->lpVtbl->UnloadDictation(This);
8814 }
8815 static FORCEINLINE HRESULT ISpRecoGrammar_SetDictationState(ISpRecoGrammar* This,SPRULESTATE NewState) {
8816     return This->lpVtbl->SetDictationState(This,NewState);
8817 }
8818 static FORCEINLINE HRESULT ISpRecoGrammar_SetWordSequenceData(ISpRecoGrammar* This,const WCHAR *pText,ULONG cchText,const SPTEXTSELECTIONINFO *pInfo) {
8819     return This->lpVtbl->SetWordSequenceData(This,pText,cchText,pInfo);
8820 }
8821 static FORCEINLINE HRESULT ISpRecoGrammar_SetTextSelection(ISpRecoGrammar* This,const SPTEXTSELECTIONINFO *pInfo) {
8822     return This->lpVtbl->SetTextSelection(This,pInfo);
8823 }
8824 static FORCEINLINE HRESULT ISpRecoGrammar_IsPronounceable(ISpRecoGrammar* This,LPCWSTR pszWord,SPWORDPRONOUNCEABLE *pWordPronounceable) {
8825     return This->lpVtbl->IsPronounceable(This,pszWord,pWordPronounceable);
8826 }
8827 static FORCEINLINE HRESULT ISpRecoGrammar_SetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE eGrammarState) {
8828     return This->lpVtbl->SetGrammarState(This,eGrammarState);
8829 }
8830 static FORCEINLINE HRESULT ISpRecoGrammar_SaveCmd(ISpRecoGrammar* This,IStream *pStream,LPWSTR *ppszCoMemErrorText) {
8831     return This->lpVtbl->SaveCmd(This,pStream,ppszCoMemErrorText);
8832 }
8833 static FORCEINLINE HRESULT ISpRecoGrammar_GetGrammarState(ISpRecoGrammar* This,SPGRAMMARSTATE *peGrammarState) {
8834     return This->lpVtbl->GetGrammarState(This,peGrammarState);
8835 }
8836 #endif
8837 #endif
8838 
8839 #endif
8840 
8841 
8842 #endif  /* __ISpRecoGrammar_INTERFACE_DEFINED__ */
8843 
8844 typedef enum SPMATCHINGMODE {
8845     AllWords = 0,
8846     Subsequence = 1,
8847     OrderedSubset = 3,
8848     SubsequenceContentRequired = 5,
8849     OrderedSubsetContentRequired = 7
8850 } SPMATCHINGMODE;
8851 typedef enum PHONETICALPHABET {
8852     PA_Ipa = 0,
8853     PA_Ups = 1,
8854     PA_Sapi = 2
8855 } PHONETICALPHABET;
8856 /*****************************************************************************
8857  * ISpGrammarBuilder2 interface
8858  */
8859 #ifndef __ISpGrammarBuilder2_INTERFACE_DEFINED__
8860 #define __ISpGrammarBuilder2_INTERFACE_DEFINED__
8861 
8862 DEFINE_GUID(IID_ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60);
8863 #if defined(__cplusplus) && !defined(CINTERFACE)
8864 MIDL_INTERFACE("8ab10026-20cc-4b20-8c22-a49c9ba78f60")
8865 ISpGrammarBuilder2 : public IUnknown
8866 {
8867     virtual HRESULT STDMETHODCALLTYPE AddTextSubset(
8868         SPSTATEHANDLE hFromState,
8869         SPSTATEHANDLE hToState,
8870         LPCWSTR psz,
8871         SPMATCHINGMODE eMatchMode) = 0;
8872 
8873     virtual HRESULT STDMETHODCALLTYPE SetPhoneticAlphabet(
8874         PHONETICALPHABET phoneticALphabet) = 0;
8875 
8876 };
8877 #ifdef __CRT_UUID_DECL
8878 __CRT_UUID_DECL(ISpGrammarBuilder2, 0x8ab10026, 0x20cc, 0x4b20, 0x8c,0x22, 0xa4,0x9c,0x9b,0xa7,0x8f,0x60)
8879 #endif
8880 #else
8881 typedef struct ISpGrammarBuilder2Vtbl {
8882     BEGIN_INTERFACE
8883 
8884     /*** IUnknown methods ***/
8885     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
8886         ISpGrammarBuilder2 *This,
8887         REFIID riid,
8888         void **ppvObject);
8889 
8890     ULONG (STDMETHODCALLTYPE *AddRef)(
8891         ISpGrammarBuilder2 *This);
8892 
8893     ULONG (STDMETHODCALLTYPE *Release)(
8894         ISpGrammarBuilder2 *This);
8895 
8896     /*** ISpGrammarBuilder2 methods ***/
8897     HRESULT (STDMETHODCALLTYPE *AddTextSubset)(
8898         ISpGrammarBuilder2 *This,
8899         SPSTATEHANDLE hFromState,
8900         SPSTATEHANDLE hToState,
8901         LPCWSTR psz,
8902         SPMATCHINGMODE eMatchMode);
8903 
8904     HRESULT (STDMETHODCALLTYPE *SetPhoneticAlphabet)(
8905         ISpGrammarBuilder2 *This,
8906         PHONETICALPHABET phoneticALphabet);
8907 
8908     END_INTERFACE
8909 } ISpGrammarBuilder2Vtbl;
8910 
8911 interface ISpGrammarBuilder2 {
8912     CONST_VTBL ISpGrammarBuilder2Vtbl* lpVtbl;
8913 };
8914 
8915 #ifdef COBJMACROS
8916 #ifndef WIDL_C_INLINE_WRAPPERS
8917 /*** IUnknown methods ***/
8918 #define ISpGrammarBuilder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
8919 #define ISpGrammarBuilder2_AddRef(This) (This)->lpVtbl->AddRef(This)
8920 #define ISpGrammarBuilder2_Release(This) (This)->lpVtbl->Release(This)
8921 /*** ISpGrammarBuilder2 methods ***/
8922 #define ISpGrammarBuilder2_AddTextSubset(This,hFromState,hToState,psz,eMatchMode) (This)->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode)
8923 #define ISpGrammarBuilder2_SetPhoneticAlphabet(This,phoneticALphabet) (This)->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet)
8924 #else
8925 /*** IUnknown methods ***/
8926 static FORCEINLINE HRESULT ISpGrammarBuilder2_QueryInterface(ISpGrammarBuilder2* This,REFIID riid,void **ppvObject) {
8927     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
8928 }
8929 static FORCEINLINE ULONG ISpGrammarBuilder2_AddRef(ISpGrammarBuilder2* This) {
8930     return This->lpVtbl->AddRef(This);
8931 }
8932 static FORCEINLINE ULONG ISpGrammarBuilder2_Release(ISpGrammarBuilder2* This) {
8933     return This->lpVtbl->Release(This);
8934 }
8935 /*** ISpGrammarBuilder2 methods ***/
8936 static FORCEINLINE HRESULT ISpGrammarBuilder2_AddTextSubset(ISpGrammarBuilder2* This,SPSTATEHANDLE hFromState,SPSTATEHANDLE hToState,LPCWSTR psz,SPMATCHINGMODE eMatchMode) {
8937     return This->lpVtbl->AddTextSubset(This,hFromState,hToState,psz,eMatchMode);
8938 }
8939 static FORCEINLINE HRESULT ISpGrammarBuilder2_SetPhoneticAlphabet(ISpGrammarBuilder2* This,PHONETICALPHABET phoneticALphabet) {
8940     return This->lpVtbl->SetPhoneticAlphabet(This,phoneticALphabet);
8941 }
8942 #endif
8943 #endif
8944 
8945 #endif
8946 
8947 
8948 #endif  /* __ISpGrammarBuilder2_INTERFACE_DEFINED__ */
8949 
8950 #define SPRP_NORMAL 0
8951 /*****************************************************************************
8952  * ISpRecoGrammar2 interface
8953  */
8954 #ifndef __ISpRecoGrammar2_INTERFACE_DEFINED__
8955 #define __ISpRecoGrammar2_INTERFACE_DEFINED__
8956 
8957 DEFINE_GUID(IID_ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3);
8958 #if defined(__cplusplus) && !defined(CINTERFACE)
8959 MIDL_INTERFACE("4b37bc9e-9ed6-44a3-93d3-18f022b79ec3")
8960 ISpRecoGrammar2 : public IUnknown
8961 {
8962     virtual HRESULT STDMETHODCALLTYPE GetRules(
8963         SPRULE **ppCoMemRules,
8964         UINT *puNumRules) = 0;
8965 
8966     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromFile2(
8967         LPCWSTR pszFileName,
8968         SPLOADOPTIONS Options,
8969         LPCWSTR pszSharingUri,
8970         LPCWSTR pszBaseUri) = 0;
8971 
8972     virtual HRESULT STDMETHODCALLTYPE LoadCmdFromMemory2(
8973         const SPBINARYGRAMMAR *pGrammar,
8974         SPLOADOPTIONS Options,
8975         LPCWSTR pszSharingUri,
8976         LPCWSTR pszBaseUri) = 0;
8977 
8978     virtual HRESULT STDMETHODCALLTYPE SetRulePriority(
8979         LPCWSTR pszRuleName,
8980         ULONG ulRuleId,
8981         int nRulePriority) = 0;
8982 
8983     virtual HRESULT STDMETHODCALLTYPE SetRuleWeight(
8984         LPCWSTR pszRuleName,
8985         ULONG ulRuleId,
8986         float flWeight) = 0;
8987 
8988     virtual HRESULT STDMETHODCALLTYPE SetDictationWeight(
8989         float flWeight) = 0;
8990 
8991     virtual HRESULT STDMETHODCALLTYPE SetGrammarLoader(
8992         ISpeechResourceLoader *pLoader) = 0;
8993 
8994     virtual HRESULT STDMETHODCALLTYPE SetSMLSecurityManager(
8995         IInternetSecurityManager *pSMLSecurityManager) = 0;
8996 
8997 };
8998 #ifdef __CRT_UUID_DECL
8999 __CRT_UUID_DECL(ISpRecoGrammar2, 0x4b37bc9e, 0x9ed6, 0x44a3, 0x93,0xd3, 0x18,0xf0,0x22,0xb7,0x9e,0xc3)
9000 #endif
9001 #else
9002 typedef struct ISpRecoGrammar2Vtbl {
9003     BEGIN_INTERFACE
9004 
9005     /*** IUnknown methods ***/
9006     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9007         ISpRecoGrammar2 *This,
9008         REFIID riid,
9009         void **ppvObject);
9010 
9011     ULONG (STDMETHODCALLTYPE *AddRef)(
9012         ISpRecoGrammar2 *This);
9013 
9014     ULONG (STDMETHODCALLTYPE *Release)(
9015         ISpRecoGrammar2 *This);
9016 
9017     /*** ISpRecoGrammar2 methods ***/
9018     HRESULT (STDMETHODCALLTYPE *GetRules)(
9019         ISpRecoGrammar2 *This,
9020         SPRULE **ppCoMemRules,
9021         UINT *puNumRules);
9022 
9023     HRESULT (STDMETHODCALLTYPE *LoadCmdFromFile2)(
9024         ISpRecoGrammar2 *This,
9025         LPCWSTR pszFileName,
9026         SPLOADOPTIONS Options,
9027         LPCWSTR pszSharingUri,
9028         LPCWSTR pszBaseUri);
9029 
9030     HRESULT (STDMETHODCALLTYPE *LoadCmdFromMemory2)(
9031         ISpRecoGrammar2 *This,
9032         const SPBINARYGRAMMAR *pGrammar,
9033         SPLOADOPTIONS Options,
9034         LPCWSTR pszSharingUri,
9035         LPCWSTR pszBaseUri);
9036 
9037     HRESULT (STDMETHODCALLTYPE *SetRulePriority)(
9038         ISpRecoGrammar2 *This,
9039         LPCWSTR pszRuleName,
9040         ULONG ulRuleId,
9041         int nRulePriority);
9042 
9043     HRESULT (STDMETHODCALLTYPE *SetRuleWeight)(
9044         ISpRecoGrammar2 *This,
9045         LPCWSTR pszRuleName,
9046         ULONG ulRuleId,
9047         float flWeight);
9048 
9049     HRESULT (STDMETHODCALLTYPE *SetDictationWeight)(
9050         ISpRecoGrammar2 *This,
9051         float flWeight);
9052 
9053     HRESULT (STDMETHODCALLTYPE *SetGrammarLoader)(
9054         ISpRecoGrammar2 *This,
9055         ISpeechResourceLoader *pLoader);
9056 
9057     HRESULT (STDMETHODCALLTYPE *SetSMLSecurityManager)(
9058         ISpRecoGrammar2 *This,
9059         IInternetSecurityManager *pSMLSecurityManager);
9060 
9061     END_INTERFACE
9062 } ISpRecoGrammar2Vtbl;
9063 
9064 interface ISpRecoGrammar2 {
9065     CONST_VTBL ISpRecoGrammar2Vtbl* lpVtbl;
9066 };
9067 
9068 #ifdef COBJMACROS
9069 #ifndef WIDL_C_INLINE_WRAPPERS
9070 /*** IUnknown methods ***/
9071 #define ISpRecoGrammar2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9072 #define ISpRecoGrammar2_AddRef(This) (This)->lpVtbl->AddRef(This)
9073 #define ISpRecoGrammar2_Release(This) (This)->lpVtbl->Release(This)
9074 /*** ISpRecoGrammar2 methods ***/
9075 #define ISpRecoGrammar2_GetRules(This,ppCoMemRules,puNumRules) (This)->lpVtbl->GetRules(This,ppCoMemRules,puNumRules)
9076 #define ISpRecoGrammar2_LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri)
9077 #define ISpRecoGrammar2_LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri) (This)->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri)
9078 #define ISpRecoGrammar2_SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority) (This)->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority)
9079 #define ISpRecoGrammar2_SetRuleWeight(This,pszRuleName,ulRuleId,flWeight) (This)->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight)
9080 #define ISpRecoGrammar2_SetDictationWeight(This,flWeight) (This)->lpVtbl->SetDictationWeight(This,flWeight)
9081 #define ISpRecoGrammar2_SetGrammarLoader(This,pLoader) (This)->lpVtbl->SetGrammarLoader(This,pLoader)
9082 #define ISpRecoGrammar2_SetSMLSecurityManager(This,pSMLSecurityManager) (This)->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager)
9083 #else
9084 /*** IUnknown methods ***/
9085 static FORCEINLINE HRESULT ISpRecoGrammar2_QueryInterface(ISpRecoGrammar2* This,REFIID riid,void **ppvObject) {
9086     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9087 }
9088 static FORCEINLINE ULONG ISpRecoGrammar2_AddRef(ISpRecoGrammar2* This) {
9089     return This->lpVtbl->AddRef(This);
9090 }
9091 static FORCEINLINE ULONG ISpRecoGrammar2_Release(ISpRecoGrammar2* This) {
9092     return This->lpVtbl->Release(This);
9093 }
9094 /*** ISpRecoGrammar2 methods ***/
9095 static FORCEINLINE HRESULT ISpRecoGrammar2_GetRules(ISpRecoGrammar2* This,SPRULE **ppCoMemRules,UINT *puNumRules) {
9096     return This->lpVtbl->GetRules(This,ppCoMemRules,puNumRules);
9097 }
9098 static FORCEINLINE HRESULT ISpRecoGrammar2_LoadCmdFromFile2(ISpRecoGrammar2* This,LPCWSTR pszFileName,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
9099     return This->lpVtbl->LoadCmdFromFile2(This,pszFileName,Options,pszSharingUri,pszBaseUri);
9100 }
9101 static FORCEINLINE HRESULT ISpRecoGrammar2_LoadCmdFromMemory2(ISpRecoGrammar2* This,const SPBINARYGRAMMAR *pGrammar,SPLOADOPTIONS Options,LPCWSTR pszSharingUri,LPCWSTR pszBaseUri) {
9102     return This->lpVtbl->LoadCmdFromMemory2(This,pGrammar,Options,pszSharingUri,pszBaseUri);
9103 }
9104 static FORCEINLINE HRESULT ISpRecoGrammar2_SetRulePriority(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,int nRulePriority) {
9105     return This->lpVtbl->SetRulePriority(This,pszRuleName,ulRuleId,nRulePriority);
9106 }
9107 static FORCEINLINE HRESULT ISpRecoGrammar2_SetRuleWeight(ISpRecoGrammar2* This,LPCWSTR pszRuleName,ULONG ulRuleId,float flWeight) {
9108     return This->lpVtbl->SetRuleWeight(This,pszRuleName,ulRuleId,flWeight);
9109 }
9110 static FORCEINLINE HRESULT ISpRecoGrammar2_SetDictationWeight(ISpRecoGrammar2* This,float flWeight) {
9111     return This->lpVtbl->SetDictationWeight(This,flWeight);
9112 }
9113 static FORCEINLINE HRESULT ISpRecoGrammar2_SetGrammarLoader(ISpRecoGrammar2* This,ISpeechResourceLoader *pLoader) {
9114     return This->lpVtbl->SetGrammarLoader(This,pLoader);
9115 }
9116 static FORCEINLINE HRESULT ISpRecoGrammar2_SetSMLSecurityManager(ISpRecoGrammar2* This,IInternetSecurityManager *pSMLSecurityManager) {
9117     return This->lpVtbl->SetSMLSecurityManager(This,pSMLSecurityManager);
9118 }
9119 #endif
9120 #endif
9121 
9122 #endif
9123 
9124 
9125 #endif  /* __ISpRecoGrammar2_INTERFACE_DEFINED__ */
9126 
9127 /*****************************************************************************
9128  * ISpeechResourceLoader interface
9129  */
9130 #ifndef __ISpeechResourceLoader_INTERFACE_DEFINED__
9131 #define __ISpeechResourceLoader_INTERFACE_DEFINED__
9132 
9133 DEFINE_GUID(IID_ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3);
9134 #if defined(__cplusplus) && !defined(CINTERFACE)
9135 MIDL_INTERFACE("b9ac5783-fcd0-4b21-b119-b4f8da8fd2c3")
9136 ISpeechResourceLoader : public IDispatch
9137 {
9138     virtual HRESULT STDMETHODCALLTYPE LoadResource(
9139         BSTR bstrResourceUri,
9140         VARIANT_BOOL fAlwaysReload,
9141         IUnknown **pStream,
9142         BSTR *pbstrMIMEType,
9143         VARIANT_BOOL *pfModified,
9144         BSTR *pbstrRedirectUrl) = 0;
9145 
9146     virtual HRESULT STDMETHODCALLTYPE GetLocalCopy(
9147         BSTR bstrResourceUri,
9148         BSTR *pbstrLocalPath,
9149         BSTR *pbstrMIMEType,
9150         BSTR *pbstrRedirectUrl) = 0;
9151 
9152     virtual HRESULT STDMETHODCALLTYPE ReleaseLocalCopy(
9153         BSTR pbstrLocalPath) = 0;
9154 
9155 };
9156 #ifdef __CRT_UUID_DECL
9157 __CRT_UUID_DECL(ISpeechResourceLoader, 0xb9ac5783, 0xfcd0, 0x4b21, 0xb1,0x19, 0xb4,0xf8,0xda,0x8f,0xd2,0xc3)
9158 #endif
9159 #else
9160 typedef struct ISpeechResourceLoaderVtbl {
9161     BEGIN_INTERFACE
9162 
9163     /*** IUnknown methods ***/
9164     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9165         ISpeechResourceLoader *This,
9166         REFIID riid,
9167         void **ppvObject);
9168 
9169     ULONG (STDMETHODCALLTYPE *AddRef)(
9170         ISpeechResourceLoader *This);
9171 
9172     ULONG (STDMETHODCALLTYPE *Release)(
9173         ISpeechResourceLoader *This);
9174 
9175     /*** IDispatch methods ***/
9176     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
9177         ISpeechResourceLoader *This,
9178         UINT *pctinfo);
9179 
9180     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
9181         ISpeechResourceLoader *This,
9182         UINT iTInfo,
9183         LCID lcid,
9184         ITypeInfo **ppTInfo);
9185 
9186     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
9187         ISpeechResourceLoader *This,
9188         REFIID riid,
9189         LPOLESTR *rgszNames,
9190         UINT cNames,
9191         LCID lcid,
9192         DISPID *rgDispId);
9193 
9194     HRESULT (STDMETHODCALLTYPE *Invoke)(
9195         ISpeechResourceLoader *This,
9196         DISPID dispIdMember,
9197         REFIID riid,
9198         LCID lcid,
9199         WORD wFlags,
9200         DISPPARAMS *pDispParams,
9201         VARIANT *pVarResult,
9202         EXCEPINFO *pExcepInfo,
9203         UINT *puArgErr);
9204 
9205     /*** ISpeechResourceLoader methods ***/
9206     HRESULT (STDMETHODCALLTYPE *LoadResource)(
9207         ISpeechResourceLoader *This,
9208         BSTR bstrResourceUri,
9209         VARIANT_BOOL fAlwaysReload,
9210         IUnknown **pStream,
9211         BSTR *pbstrMIMEType,
9212         VARIANT_BOOL *pfModified,
9213         BSTR *pbstrRedirectUrl);
9214 
9215     HRESULT (STDMETHODCALLTYPE *GetLocalCopy)(
9216         ISpeechResourceLoader *This,
9217         BSTR bstrResourceUri,
9218         BSTR *pbstrLocalPath,
9219         BSTR *pbstrMIMEType,
9220         BSTR *pbstrRedirectUrl);
9221 
9222     HRESULT (STDMETHODCALLTYPE *ReleaseLocalCopy)(
9223         ISpeechResourceLoader *This,
9224         BSTR pbstrLocalPath);
9225 
9226     END_INTERFACE
9227 } ISpeechResourceLoaderVtbl;
9228 
9229 interface ISpeechResourceLoader {
9230     CONST_VTBL ISpeechResourceLoaderVtbl* lpVtbl;
9231 };
9232 
9233 #ifdef COBJMACROS
9234 #ifndef WIDL_C_INLINE_WRAPPERS
9235 /*** IUnknown methods ***/
9236 #define ISpeechResourceLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9237 #define ISpeechResourceLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
9238 #define ISpeechResourceLoader_Release(This) (This)->lpVtbl->Release(This)
9239 /*** IDispatch methods ***/
9240 #define ISpeechResourceLoader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
9241 #define ISpeechResourceLoader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
9242 #define ISpeechResourceLoader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
9243 #define ISpeechResourceLoader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
9244 /*** ISpeechResourceLoader methods ***/
9245 #define ISpeechResourceLoader_LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl) (This)->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl)
9246 #define ISpeechResourceLoader_GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl) (This)->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl)
9247 #define ISpeechResourceLoader_ReleaseLocalCopy(This,pbstrLocalPath) (This)->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath)
9248 #else
9249 /*** IUnknown methods ***/
9250 static FORCEINLINE HRESULT ISpeechResourceLoader_QueryInterface(ISpeechResourceLoader* This,REFIID riid,void **ppvObject) {
9251     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9252 }
9253 static FORCEINLINE ULONG ISpeechResourceLoader_AddRef(ISpeechResourceLoader* This) {
9254     return This->lpVtbl->AddRef(This);
9255 }
9256 static FORCEINLINE ULONG ISpeechResourceLoader_Release(ISpeechResourceLoader* This) {
9257     return This->lpVtbl->Release(This);
9258 }
9259 /*** IDispatch methods ***/
9260 static FORCEINLINE HRESULT ISpeechResourceLoader_GetTypeInfoCount(ISpeechResourceLoader* This,UINT *pctinfo) {
9261     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
9262 }
9263 static FORCEINLINE HRESULT ISpeechResourceLoader_GetTypeInfo(ISpeechResourceLoader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
9264     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
9265 }
9266 static FORCEINLINE HRESULT ISpeechResourceLoader_GetIDsOfNames(ISpeechResourceLoader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
9267     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
9268 }
9269 static FORCEINLINE HRESULT ISpeechResourceLoader_Invoke(ISpeechResourceLoader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
9270     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
9271 }
9272 /*** ISpeechResourceLoader methods ***/
9273 static FORCEINLINE HRESULT ISpeechResourceLoader_LoadResource(ISpeechResourceLoader* This,BSTR bstrResourceUri,VARIANT_BOOL fAlwaysReload,IUnknown **pStream,BSTR *pbstrMIMEType,VARIANT_BOOL *pfModified,BSTR *pbstrRedirectUrl) {
9274     return This->lpVtbl->LoadResource(This,bstrResourceUri,fAlwaysReload,pStream,pbstrMIMEType,pfModified,pbstrRedirectUrl);
9275 }
9276 static FORCEINLINE HRESULT ISpeechResourceLoader_GetLocalCopy(ISpeechResourceLoader* This,BSTR bstrResourceUri,BSTR *pbstrLocalPath,BSTR *pbstrMIMEType,BSTR *pbstrRedirectUrl) {
9277     return This->lpVtbl->GetLocalCopy(This,bstrResourceUri,pbstrLocalPath,pbstrMIMEType,pbstrRedirectUrl);
9278 }
9279 static FORCEINLINE HRESULT ISpeechResourceLoader_ReleaseLocalCopy(ISpeechResourceLoader* This,BSTR pbstrLocalPath) {
9280     return This->lpVtbl->ReleaseLocalCopy(This,pbstrLocalPath);
9281 }
9282 #endif
9283 #endif
9284 
9285 #endif
9286 
9287 
9288 #endif  /* __ISpeechResourceLoader_INTERFACE_DEFINED__ */
9289 
9290 typedef struct SPRECOCONTEXTSTATUS {
9291     SPINTERFERENCE eInterference;
9292     WCHAR szRequestTypeOfUI[255];
9293     DWORD dwReserved1;
9294     DWORD dwReserved2;
9295 } SPRECOCONTEXTSTATUS;
9296 typedef enum SPBOOKMARKOPTIONS {
9297     SPBO_NONE = 0,
9298     SPBO_PAUSE = 0x1,
9299     SPBO_AHEAD = 0x2,
9300     SPBO_TIME_UNITS = 0x4
9301 } SPBOOKMARKOPTIONS;
9302 typedef enum SPAUDIOOPTIONS {
9303     SPAO_NONE = 0,
9304     SPAO_RETAIN_AUDIO = 0x1
9305 } SPAUDIOOPTIONS;
9306 /*****************************************************************************
9307  * ISpRecoContext interface
9308  */
9309 #ifndef __ISpRecoContext_INTERFACE_DEFINED__
9310 #define __ISpRecoContext_INTERFACE_DEFINED__
9311 
9312 DEFINE_GUID(IID_ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d);
9313 #if defined(__cplusplus) && !defined(CINTERFACE)
9314 MIDL_INTERFACE("f740a62f-7c15-489e-8234-940a33d9272d")
9315 ISpRecoContext : public ISpEventSource
9316 {
9317     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
9318         ISpRecognizer **ppRecognizer) = 0;
9319 
9320     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
9321         ULONGLONG ullGrammarId,
9322         ISpRecoGrammar **ppGrammar) = 0;
9323 
9324     virtual HRESULT STDMETHODCALLTYPE GetStatus(
9325         SPRECOCONTEXTSTATUS *pStatus) = 0;
9326 
9327     virtual HRESULT STDMETHODCALLTYPE GetMaxAlternates(
9328         ULONG *pcAlternates) = 0;
9329 
9330     virtual HRESULT STDMETHODCALLTYPE SetMaxAlternates(
9331         ULONG cAlternates) = 0;
9332 
9333     virtual HRESULT STDMETHODCALLTYPE SetAudioOptions(
9334         SPAUDIOOPTIONS Options,
9335         const GUID *pAudioFormatId,
9336         const WAVEFORMATEX *pWaveFormatEx) = 0;
9337 
9338     virtual HRESULT STDMETHODCALLTYPE GetAudioOptions(
9339         SPAUDIOOPTIONS *pOptions,
9340         GUID *pAudioFormatId,
9341         WAVEFORMATEX **ppCoMemWFEX) = 0;
9342 
9343     virtual HRESULT STDMETHODCALLTYPE DeserializeResult(
9344         const SPSERIALIZEDRESULT *pSerializedResult,
9345         ISpRecoResult **ppResult) = 0;
9346 
9347     virtual HRESULT STDMETHODCALLTYPE Bookmark(
9348         SPBOOKMARKOPTIONS Options,
9349         ULONGLONG ullStreamPosition,
9350         LPARAM lparamEvent) = 0;
9351 
9352     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
9353         LPCWSTR pAdaptationData,
9354         const ULONG cch) = 0;
9355 
9356     virtual HRESULT STDMETHODCALLTYPE Pause(
9357         DWORD dwReserved) = 0;
9358 
9359     virtual HRESULT STDMETHODCALLTYPE Resume(
9360         DWORD dwReserved) = 0;
9361 
9362     virtual HRESULT STDMETHODCALLTYPE SetVoice(
9363         ISpVoice *pVoice,
9364         WINBOOL fAllowFormatChanges) = 0;
9365 
9366     virtual HRESULT STDMETHODCALLTYPE GetVoice(
9367         ISpVoice **ppVoice) = 0;
9368 
9369     virtual HRESULT STDMETHODCALLTYPE SetVoicePurgeEvent(
9370         ULONGLONG ullEventInterest) = 0;
9371 
9372     virtual HRESULT STDMETHODCALLTYPE GetVoicePurgeEvent(
9373         ULONGLONG *pullEventInterest) = 0;
9374 
9375     virtual HRESULT STDMETHODCALLTYPE SetContextState(
9376         SPCONTEXTSTATE eContextState) = 0;
9377 
9378     virtual HRESULT STDMETHODCALLTYPE GetContextState(
9379         SPCONTEXTSTATE *peContextState) = 0;
9380 
9381 };
9382 #ifdef __CRT_UUID_DECL
9383 __CRT_UUID_DECL(ISpRecoContext, 0xf740a62f, 0x7c15, 0x489e, 0x82,0x34, 0x94,0x0a,0x33,0xd9,0x27,0x2d)
9384 #endif
9385 #else
9386 typedef struct ISpRecoContextVtbl {
9387     BEGIN_INTERFACE
9388 
9389     /*** IUnknown methods ***/
9390     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9391         ISpRecoContext *This,
9392         REFIID riid,
9393         void **ppvObject);
9394 
9395     ULONG (STDMETHODCALLTYPE *AddRef)(
9396         ISpRecoContext *This);
9397 
9398     ULONG (STDMETHODCALLTYPE *Release)(
9399         ISpRecoContext *This);
9400 
9401     /*** ISpNotifySource methods ***/
9402     HRESULT (STDMETHODCALLTYPE *SetNotifySink)(
9403         ISpRecoContext *This,
9404         ISpNotifySink *pNotifySink);
9405 
9406     HRESULT (STDMETHODCALLTYPE *SetNotifyWindowMessage)(
9407         ISpRecoContext *This,
9408         HWND hWnd,
9409         UINT Msg,
9410         WPARAM wParam,
9411         LPARAM lParam);
9412 
9413     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackFunction)(
9414         ISpRecoContext *This,
9415         SPNOTIFYCALLBACK *pfnCallback,
9416         WPARAM wParam,
9417         LPARAM lParam);
9418 
9419     HRESULT (STDMETHODCALLTYPE *SetNotifyCallbackInterface)(
9420         ISpRecoContext *This,
9421         ISpNotifyCallback *pSpCallback,
9422         WPARAM wParam,
9423         LPARAM lParam);
9424 
9425     HRESULT (STDMETHODCALLTYPE *SetNotifyWin32Event)(
9426         ISpRecoContext *This);
9427 
9428     HRESULT (STDMETHODCALLTYPE *WaitForNotifyEvent)(
9429         ISpRecoContext *This,
9430         DWORD dwMilliseconds);
9431 
9432     HANDLE (STDMETHODCALLTYPE *GetNotifyEventHandle)(
9433         ISpRecoContext *This);
9434 
9435     /*** ISpEventSource methods ***/
9436     HRESULT (STDMETHODCALLTYPE *SetInterest)(
9437         ISpRecoContext *This,
9438         ULONGLONG ullEventInterest,
9439         ULONGLONG ullQueuedInterest);
9440 
9441     HRESULT (STDMETHODCALLTYPE *GetEvents)(
9442         ISpRecoContext *This,
9443         ULONG ulCount,
9444         SPEVENT *pEventArray,
9445         ULONG *pulFetched);
9446 
9447     HRESULT (STDMETHODCALLTYPE *GetInfo)(
9448         ISpRecoContext *This,
9449         SPEVENTSOURCEINFO *pInfo);
9450 
9451     /*** ISpRecoContext methods ***/
9452     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
9453         ISpRecoContext *This,
9454         ISpRecognizer **ppRecognizer);
9455 
9456     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
9457         ISpRecoContext *This,
9458         ULONGLONG ullGrammarId,
9459         ISpRecoGrammar **ppGrammar);
9460 
9461     HRESULT (STDMETHODCALLTYPE *GetStatus)(
9462         ISpRecoContext *This,
9463         SPRECOCONTEXTSTATUS *pStatus);
9464 
9465     HRESULT (STDMETHODCALLTYPE *GetMaxAlternates)(
9466         ISpRecoContext *This,
9467         ULONG *pcAlternates);
9468 
9469     HRESULT (STDMETHODCALLTYPE *SetMaxAlternates)(
9470         ISpRecoContext *This,
9471         ULONG cAlternates);
9472 
9473     HRESULT (STDMETHODCALLTYPE *SetAudioOptions)(
9474         ISpRecoContext *This,
9475         SPAUDIOOPTIONS Options,
9476         const GUID *pAudioFormatId,
9477         const WAVEFORMATEX *pWaveFormatEx);
9478 
9479     HRESULT (STDMETHODCALLTYPE *GetAudioOptions)(
9480         ISpRecoContext *This,
9481         SPAUDIOOPTIONS *pOptions,
9482         GUID *pAudioFormatId,
9483         WAVEFORMATEX **ppCoMemWFEX);
9484 
9485     HRESULT (STDMETHODCALLTYPE *DeserializeResult)(
9486         ISpRecoContext *This,
9487         const SPSERIALIZEDRESULT *pSerializedResult,
9488         ISpRecoResult **ppResult);
9489 
9490     HRESULT (STDMETHODCALLTYPE *Bookmark)(
9491         ISpRecoContext *This,
9492         SPBOOKMARKOPTIONS Options,
9493         ULONGLONG ullStreamPosition,
9494         LPARAM lparamEvent);
9495 
9496     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
9497         ISpRecoContext *This,
9498         LPCWSTR pAdaptationData,
9499         const ULONG cch);
9500 
9501     HRESULT (STDMETHODCALLTYPE *Pause)(
9502         ISpRecoContext *This,
9503         DWORD dwReserved);
9504 
9505     HRESULT (STDMETHODCALLTYPE *Resume)(
9506         ISpRecoContext *This,
9507         DWORD dwReserved);
9508 
9509     HRESULT (STDMETHODCALLTYPE *SetVoice)(
9510         ISpRecoContext *This,
9511         ISpVoice *pVoice,
9512         WINBOOL fAllowFormatChanges);
9513 
9514     HRESULT (STDMETHODCALLTYPE *GetVoice)(
9515         ISpRecoContext *This,
9516         ISpVoice **ppVoice);
9517 
9518     HRESULT (STDMETHODCALLTYPE *SetVoicePurgeEvent)(
9519         ISpRecoContext *This,
9520         ULONGLONG ullEventInterest);
9521 
9522     HRESULT (STDMETHODCALLTYPE *GetVoicePurgeEvent)(
9523         ISpRecoContext *This,
9524         ULONGLONG *pullEventInterest);
9525 
9526     HRESULT (STDMETHODCALLTYPE *SetContextState)(
9527         ISpRecoContext *This,
9528         SPCONTEXTSTATE eContextState);
9529 
9530     HRESULT (STDMETHODCALLTYPE *GetContextState)(
9531         ISpRecoContext *This,
9532         SPCONTEXTSTATE *peContextState);
9533 
9534     END_INTERFACE
9535 } ISpRecoContextVtbl;
9536 
9537 interface ISpRecoContext {
9538     CONST_VTBL ISpRecoContextVtbl* lpVtbl;
9539 };
9540 
9541 #ifdef COBJMACROS
9542 #ifndef WIDL_C_INLINE_WRAPPERS
9543 /*** IUnknown methods ***/
9544 #define ISpRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9545 #define ISpRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
9546 #define ISpRecoContext_Release(This) (This)->lpVtbl->Release(This)
9547 /*** ISpNotifySource methods ***/
9548 #define ISpRecoContext_SetNotifySink(This,pNotifySink) (This)->lpVtbl->SetNotifySink(This,pNotifySink)
9549 #define ISpRecoContext_SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam) (This)->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam)
9550 #define ISpRecoContext_SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam)
9551 #define ISpRecoContext_SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam) (This)->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam)
9552 #define ISpRecoContext_SetNotifyWin32Event(This) (This)->lpVtbl->SetNotifyWin32Event(This)
9553 #define ISpRecoContext_WaitForNotifyEvent(This,dwMilliseconds) (This)->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds)
9554 #define ISpRecoContext_GetNotifyEventHandle(This) (This)->lpVtbl->GetNotifyEventHandle(This)
9555 /*** ISpEventSource methods ***/
9556 #define ISpRecoContext_SetInterest(This,ullEventInterest,ullQueuedInterest) (This)->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest)
9557 #define ISpRecoContext_GetEvents(This,ulCount,pEventArray,pulFetched) (This)->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched)
9558 #define ISpRecoContext_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
9559 /*** ISpRecoContext methods ***/
9560 #define ISpRecoContext_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
9561 #define ISpRecoContext_CreateGrammar(This,ullGrammarId,ppGrammar) (This)->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar)
9562 #define ISpRecoContext_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
9563 #define ISpRecoContext_GetMaxAlternates(This,pcAlternates) (This)->lpVtbl->GetMaxAlternates(This,pcAlternates)
9564 #define ISpRecoContext_SetMaxAlternates(This,cAlternates) (This)->lpVtbl->SetMaxAlternates(This,cAlternates)
9565 #define ISpRecoContext_SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx) (This)->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx)
9566 #define ISpRecoContext_GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX) (This)->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX)
9567 #define ISpRecoContext_DeserializeResult(This,pSerializedResult,ppResult) (This)->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult)
9568 #define ISpRecoContext_Bookmark(This,Options,ullStreamPosition,lparamEvent) (This)->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent)
9569 #define ISpRecoContext_SetAdaptationData(This,pAdaptationData,cch) (This)->lpVtbl->SetAdaptationData(This,pAdaptationData,cch)
9570 #define ISpRecoContext_Pause(This,dwReserved) (This)->lpVtbl->Pause(This,dwReserved)
9571 #define ISpRecoContext_Resume(This,dwReserved) (This)->lpVtbl->Resume(This,dwReserved)
9572 #define ISpRecoContext_SetVoice(This,pVoice,fAllowFormatChanges) (This)->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges)
9573 #define ISpRecoContext_GetVoice(This,ppVoice) (This)->lpVtbl->GetVoice(This,ppVoice)
9574 #define ISpRecoContext_SetVoicePurgeEvent(This,ullEventInterest) (This)->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest)
9575 #define ISpRecoContext_GetVoicePurgeEvent(This,pullEventInterest) (This)->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest)
9576 #define ISpRecoContext_SetContextState(This,eContextState) (This)->lpVtbl->SetContextState(This,eContextState)
9577 #define ISpRecoContext_GetContextState(This,peContextState) (This)->lpVtbl->GetContextState(This,peContextState)
9578 #else
9579 /*** IUnknown methods ***/
9580 static FORCEINLINE HRESULT ISpRecoContext_QueryInterface(ISpRecoContext* This,REFIID riid,void **ppvObject) {
9581     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9582 }
9583 static FORCEINLINE ULONG ISpRecoContext_AddRef(ISpRecoContext* This) {
9584     return This->lpVtbl->AddRef(This);
9585 }
9586 static FORCEINLINE ULONG ISpRecoContext_Release(ISpRecoContext* This) {
9587     return This->lpVtbl->Release(This);
9588 }
9589 /*** ISpNotifySource methods ***/
9590 static FORCEINLINE HRESULT ISpRecoContext_SetNotifySink(ISpRecoContext* This,ISpNotifySink *pNotifySink) {
9591     return This->lpVtbl->SetNotifySink(This,pNotifySink);
9592 }
9593 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWindowMessage(ISpRecoContext* This,HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam) {
9594     return This->lpVtbl->SetNotifyWindowMessage(This,hWnd,Msg,wParam,lParam);
9595 }
9596 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackFunction(ISpRecoContext* This,SPNOTIFYCALLBACK *pfnCallback,WPARAM wParam,LPARAM lParam) {
9597     return This->lpVtbl->SetNotifyCallbackFunction(This,pfnCallback,wParam,lParam);
9598 }
9599 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyCallbackInterface(ISpRecoContext* This,ISpNotifyCallback *pSpCallback,WPARAM wParam,LPARAM lParam) {
9600     return This->lpVtbl->SetNotifyCallbackInterface(This,pSpCallback,wParam,lParam);
9601 }
9602 static FORCEINLINE HRESULT ISpRecoContext_SetNotifyWin32Event(ISpRecoContext* This) {
9603     return This->lpVtbl->SetNotifyWin32Event(This);
9604 }
9605 static FORCEINLINE HRESULT ISpRecoContext_WaitForNotifyEvent(ISpRecoContext* This,DWORD dwMilliseconds) {
9606     return This->lpVtbl->WaitForNotifyEvent(This,dwMilliseconds);
9607 }
9608 static FORCEINLINE HANDLE ISpRecoContext_GetNotifyEventHandle(ISpRecoContext* This) {
9609     return This->lpVtbl->GetNotifyEventHandle(This);
9610 }
9611 /*** ISpEventSource methods ***/
9612 static FORCEINLINE HRESULT ISpRecoContext_SetInterest(ISpRecoContext* This,ULONGLONG ullEventInterest,ULONGLONG ullQueuedInterest) {
9613     return This->lpVtbl->SetInterest(This,ullEventInterest,ullQueuedInterest);
9614 }
9615 static FORCEINLINE HRESULT ISpRecoContext_GetEvents(ISpRecoContext* This,ULONG ulCount,SPEVENT *pEventArray,ULONG *pulFetched) {
9616     return This->lpVtbl->GetEvents(This,ulCount,pEventArray,pulFetched);
9617 }
9618 static FORCEINLINE HRESULT ISpRecoContext_GetInfo(ISpRecoContext* This,SPEVENTSOURCEINFO *pInfo) {
9619     return This->lpVtbl->GetInfo(This,pInfo);
9620 }
9621 /*** ISpRecoContext methods ***/
9622 static FORCEINLINE HRESULT ISpRecoContext_GetRecognizer(ISpRecoContext* This,ISpRecognizer **ppRecognizer) {
9623     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
9624 }
9625 static FORCEINLINE HRESULT ISpRecoContext_CreateGrammar(ISpRecoContext* This,ULONGLONG ullGrammarId,ISpRecoGrammar **ppGrammar) {
9626     return This->lpVtbl->CreateGrammar(This,ullGrammarId,ppGrammar);
9627 }
9628 static FORCEINLINE HRESULT ISpRecoContext_GetStatus(ISpRecoContext* This,SPRECOCONTEXTSTATUS *pStatus) {
9629     return This->lpVtbl->GetStatus(This,pStatus);
9630 }
9631 static FORCEINLINE HRESULT ISpRecoContext_GetMaxAlternates(ISpRecoContext* This,ULONG *pcAlternates) {
9632     return This->lpVtbl->GetMaxAlternates(This,pcAlternates);
9633 }
9634 static FORCEINLINE HRESULT ISpRecoContext_SetMaxAlternates(ISpRecoContext* This,ULONG cAlternates) {
9635     return This->lpVtbl->SetMaxAlternates(This,cAlternates);
9636 }
9637 static FORCEINLINE HRESULT ISpRecoContext_SetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS Options,const GUID *pAudioFormatId,const WAVEFORMATEX *pWaveFormatEx) {
9638     return This->lpVtbl->SetAudioOptions(This,Options,pAudioFormatId,pWaveFormatEx);
9639 }
9640 static FORCEINLINE HRESULT ISpRecoContext_GetAudioOptions(ISpRecoContext* This,SPAUDIOOPTIONS *pOptions,GUID *pAudioFormatId,WAVEFORMATEX **ppCoMemWFEX) {
9641     return This->lpVtbl->GetAudioOptions(This,pOptions,pAudioFormatId,ppCoMemWFEX);
9642 }
9643 static FORCEINLINE HRESULT ISpRecoContext_DeserializeResult(ISpRecoContext* This,const SPSERIALIZEDRESULT *pSerializedResult,ISpRecoResult **ppResult) {
9644     return This->lpVtbl->DeserializeResult(This,pSerializedResult,ppResult);
9645 }
9646 static FORCEINLINE HRESULT ISpRecoContext_Bookmark(ISpRecoContext* This,SPBOOKMARKOPTIONS Options,ULONGLONG ullStreamPosition,LPARAM lparamEvent) {
9647     return This->lpVtbl->Bookmark(This,Options,ullStreamPosition,lparamEvent);
9648 }
9649 static FORCEINLINE HRESULT ISpRecoContext_SetAdaptationData(ISpRecoContext* This,LPCWSTR pAdaptationData,const ULONG cch) {
9650     return This->lpVtbl->SetAdaptationData(This,pAdaptationData,cch);
9651 }
9652 static FORCEINLINE HRESULT ISpRecoContext_Pause(ISpRecoContext* This,DWORD dwReserved) {
9653     return This->lpVtbl->Pause(This,dwReserved);
9654 }
9655 static FORCEINLINE HRESULT ISpRecoContext_Resume(ISpRecoContext* This,DWORD dwReserved) {
9656     return This->lpVtbl->Resume(This,dwReserved);
9657 }
9658 static FORCEINLINE HRESULT ISpRecoContext_SetVoice(ISpRecoContext* This,ISpVoice *pVoice,WINBOOL fAllowFormatChanges) {
9659     return This->lpVtbl->SetVoice(This,pVoice,fAllowFormatChanges);
9660 }
9661 static FORCEINLINE HRESULT ISpRecoContext_GetVoice(ISpRecoContext* This,ISpVoice **ppVoice) {
9662     return This->lpVtbl->GetVoice(This,ppVoice);
9663 }
9664 static FORCEINLINE HRESULT ISpRecoContext_SetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG ullEventInterest) {
9665     return This->lpVtbl->SetVoicePurgeEvent(This,ullEventInterest);
9666 }
9667 static FORCEINLINE HRESULT ISpRecoContext_GetVoicePurgeEvent(ISpRecoContext* This,ULONGLONG *pullEventInterest) {
9668     return This->lpVtbl->GetVoicePurgeEvent(This,pullEventInterest);
9669 }
9670 static FORCEINLINE HRESULT ISpRecoContext_SetContextState(ISpRecoContext* This,SPCONTEXTSTATE eContextState) {
9671     return This->lpVtbl->SetContextState(This,eContextState);
9672 }
9673 static FORCEINLINE HRESULT ISpRecoContext_GetContextState(ISpRecoContext* This,SPCONTEXTSTATE *peContextState) {
9674     return This->lpVtbl->GetContextState(This,peContextState);
9675 }
9676 #endif
9677 #endif
9678 
9679 #endif
9680 
9681 
9682 #endif  /* __ISpRecoContext_INTERFACE_DEFINED__ */
9683 
9684 typedef enum SPGRAMMAROPTIONS {
9685     SPGO_SAPI = 0x1,
9686     SPGO_SRGS = 0x2,
9687     SPGO_UPS = 0x4,
9688     SPGO_SRGS_MS_SCRIPT = 0x8,
9689     SPGO_FILE = 0x10,
9690     SPGO_HTTP = 0x20,
9691     SPGO_RES = 0x40,
9692     SPGO_OBJECT = 0x80,
9693     SPGO_SRGS_W3C_SCRIPT = 0x100,
9694     SPGO_SRGS_STG_SCRIPT = 0x200,
9695     SPGO_SRGS_SCRIPT = ((SPGO_SRGS | SPGO_SRGS_MS_SCRIPT) | SPGO_SRGS_W3C_SCRIPT) | SPGO_SRGS_STG_SCRIPT,
9696     SPGO_DEFAULT = 0x3fb,
9697     SPGO_ALL = 0x3ff
9698 } SPGRAMMAROPTIONS;
9699 typedef enum SPADAPTATIONSETTINGS {
9700     SPADS_Default = 0x0,
9701     SPADS_CurrentRecognizer = 0x1,
9702     SPADS_RecoProfile = 0x2,
9703     SPADS_Immediate = 0x4,
9704     SPADS_Reset = 0x8,
9705     SPADS_HighVolumeDataSource = 0x10
9706 } SPADAPTATIONSETTINGS;
9707 typedef enum SPADAPTATIONRELEVANCE {
9708     SPAR_Unknown = 0,
9709     SPAR_Low = 1,
9710     SPAR_Medium = 2,
9711     SPAR_High = 3
9712 } SPADAPTATIONRELEVANCE;
9713 /*****************************************************************************
9714  * ISpRecoContext2 interface
9715  */
9716 #ifndef __ISpRecoContext2_INTERFACE_DEFINED__
9717 #define __ISpRecoContext2_INTERFACE_DEFINED__
9718 
9719 DEFINE_GUID(IID_ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d);
9720 #if defined(__cplusplus) && !defined(CINTERFACE)
9721 MIDL_INTERFACE("bead311c-52ff-437f-9464-6b21054ca73d")
9722 ISpRecoContext2 : public IUnknown
9723 {
9724     virtual HRESULT STDMETHODCALLTYPE SetGrammarOptions(
9725         DWORD eGrammarOptions) = 0;
9726 
9727     virtual HRESULT STDMETHODCALLTYPE GetGrammarOptions(
9728         DWORD *peGrammarOptions) = 0;
9729 
9730     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData2(
9731         LPCWSTR pAdaptationData,
9732         const ULONG cch,
9733         LPCWSTR pTopicName,
9734         DWORD eAdaptationSettings,
9735         SPADAPTATIONRELEVANCE eRelevance) = 0;
9736 
9737 };
9738 #ifdef __CRT_UUID_DECL
9739 __CRT_UUID_DECL(ISpRecoContext2, 0xbead311c, 0x52ff, 0x437f, 0x94,0x64, 0x6b,0x21,0x05,0x4c,0xa7,0x3d)
9740 #endif
9741 #else
9742 typedef struct ISpRecoContext2Vtbl {
9743     BEGIN_INTERFACE
9744 
9745     /*** IUnknown methods ***/
9746     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9747         ISpRecoContext2 *This,
9748         REFIID riid,
9749         void **ppvObject);
9750 
9751     ULONG (STDMETHODCALLTYPE *AddRef)(
9752         ISpRecoContext2 *This);
9753 
9754     ULONG (STDMETHODCALLTYPE *Release)(
9755         ISpRecoContext2 *This);
9756 
9757     /*** ISpRecoContext2 methods ***/
9758     HRESULT (STDMETHODCALLTYPE *SetGrammarOptions)(
9759         ISpRecoContext2 *This,
9760         DWORD eGrammarOptions);
9761 
9762     HRESULT (STDMETHODCALLTYPE *GetGrammarOptions)(
9763         ISpRecoContext2 *This,
9764         DWORD *peGrammarOptions);
9765 
9766     HRESULT (STDMETHODCALLTYPE *SetAdaptationData2)(
9767         ISpRecoContext2 *This,
9768         LPCWSTR pAdaptationData,
9769         const ULONG cch,
9770         LPCWSTR pTopicName,
9771         DWORD eAdaptationSettings,
9772         SPADAPTATIONRELEVANCE eRelevance);
9773 
9774     END_INTERFACE
9775 } ISpRecoContext2Vtbl;
9776 
9777 interface ISpRecoContext2 {
9778     CONST_VTBL ISpRecoContext2Vtbl* lpVtbl;
9779 };
9780 
9781 #ifdef COBJMACROS
9782 #ifndef WIDL_C_INLINE_WRAPPERS
9783 /*** IUnknown methods ***/
9784 #define ISpRecoContext2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9785 #define ISpRecoContext2_AddRef(This) (This)->lpVtbl->AddRef(This)
9786 #define ISpRecoContext2_Release(This) (This)->lpVtbl->Release(This)
9787 /*** ISpRecoContext2 methods ***/
9788 #define ISpRecoContext2_SetGrammarOptions(This,eGrammarOptions) (This)->lpVtbl->SetGrammarOptions(This,eGrammarOptions)
9789 #define ISpRecoContext2_GetGrammarOptions(This,peGrammarOptions) (This)->lpVtbl->GetGrammarOptions(This,peGrammarOptions)
9790 #define ISpRecoContext2_SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance) (This)->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance)
9791 #else
9792 /*** IUnknown methods ***/
9793 static FORCEINLINE HRESULT ISpRecoContext2_QueryInterface(ISpRecoContext2* This,REFIID riid,void **ppvObject) {
9794     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9795 }
9796 static FORCEINLINE ULONG ISpRecoContext2_AddRef(ISpRecoContext2* This) {
9797     return This->lpVtbl->AddRef(This);
9798 }
9799 static FORCEINLINE ULONG ISpRecoContext2_Release(ISpRecoContext2* This) {
9800     return This->lpVtbl->Release(This);
9801 }
9802 /*** ISpRecoContext2 methods ***/
9803 static FORCEINLINE HRESULT ISpRecoContext2_SetGrammarOptions(ISpRecoContext2* This,DWORD eGrammarOptions) {
9804     return This->lpVtbl->SetGrammarOptions(This,eGrammarOptions);
9805 }
9806 static FORCEINLINE HRESULT ISpRecoContext2_GetGrammarOptions(ISpRecoContext2* This,DWORD *peGrammarOptions) {
9807     return This->lpVtbl->GetGrammarOptions(This,peGrammarOptions);
9808 }
9809 static FORCEINLINE HRESULT ISpRecoContext2_SetAdaptationData2(ISpRecoContext2* This,LPCWSTR pAdaptationData,const ULONG cch,LPCWSTR pTopicName,DWORD eAdaptationSettings,SPADAPTATIONRELEVANCE eRelevance) {
9810     return This->lpVtbl->SetAdaptationData2(This,pAdaptationData,cch,pTopicName,eAdaptationSettings,eRelevance);
9811 }
9812 #endif
9813 #endif
9814 
9815 #endif
9816 
9817 
9818 #endif  /* __ISpRecoContext2_INTERFACE_DEFINED__ */
9819 
9820 /*****************************************************************************
9821  * ISpProperties interface
9822  */
9823 #ifndef __ISpProperties_INTERFACE_DEFINED__
9824 #define __ISpProperties_INTERFACE_DEFINED__
9825 
9826 DEFINE_GUID(IID_ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4);
9827 #if defined(__cplusplus) && !defined(CINTERFACE)
9828 MIDL_INTERFACE("5b4fb971-b115-4de1-ad97-e482e3bf6ee4")
9829 ISpProperties : public IUnknown
9830 {
9831     virtual HRESULT STDMETHODCALLTYPE SetPropertyNum(
9832         LPCWSTR pName,
9833         LONG lValue) = 0;
9834 
9835     virtual HRESULT STDMETHODCALLTYPE GetPropertyNum(
9836         LPCWSTR pName,
9837         LONG *plValue) = 0;
9838 
9839     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
9840         LPCWSTR pName,
9841         LPCWSTR pValue) = 0;
9842 
9843     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
9844         LPCWSTR pName,
9845         LPWSTR *ppCoMemValue) = 0;
9846 
9847 };
9848 #ifdef __CRT_UUID_DECL
9849 __CRT_UUID_DECL(ISpProperties, 0x5b4fb971, 0xb115, 0x4de1, 0xad,0x97, 0xe4,0x82,0xe3,0xbf,0x6e,0xe4)
9850 #endif
9851 #else
9852 typedef struct ISpPropertiesVtbl {
9853     BEGIN_INTERFACE
9854 
9855     /*** IUnknown methods ***/
9856     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
9857         ISpProperties *This,
9858         REFIID riid,
9859         void **ppvObject);
9860 
9861     ULONG (STDMETHODCALLTYPE *AddRef)(
9862         ISpProperties *This);
9863 
9864     ULONG (STDMETHODCALLTYPE *Release)(
9865         ISpProperties *This);
9866 
9867     /*** ISpProperties methods ***/
9868     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
9869         ISpProperties *This,
9870         LPCWSTR pName,
9871         LONG lValue);
9872 
9873     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
9874         ISpProperties *This,
9875         LPCWSTR pName,
9876         LONG *plValue);
9877 
9878     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
9879         ISpProperties *This,
9880         LPCWSTR pName,
9881         LPCWSTR pValue);
9882 
9883     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
9884         ISpProperties *This,
9885         LPCWSTR pName,
9886         LPWSTR *ppCoMemValue);
9887 
9888     END_INTERFACE
9889 } ISpPropertiesVtbl;
9890 
9891 interface ISpProperties {
9892     CONST_VTBL ISpPropertiesVtbl* lpVtbl;
9893 };
9894 
9895 #ifdef COBJMACROS
9896 #ifndef WIDL_C_INLINE_WRAPPERS
9897 /*** IUnknown methods ***/
9898 #define ISpProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
9899 #define ISpProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
9900 #define ISpProperties_Release(This) (This)->lpVtbl->Release(This)
9901 /*** ISpProperties methods ***/
9902 #define ISpProperties_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
9903 #define ISpProperties_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
9904 #define ISpProperties_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
9905 #define ISpProperties_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
9906 #else
9907 /*** IUnknown methods ***/
9908 static FORCEINLINE HRESULT ISpProperties_QueryInterface(ISpProperties* This,REFIID riid,void **ppvObject) {
9909     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
9910 }
9911 static FORCEINLINE ULONG ISpProperties_AddRef(ISpProperties* This) {
9912     return This->lpVtbl->AddRef(This);
9913 }
9914 static FORCEINLINE ULONG ISpProperties_Release(ISpProperties* This) {
9915     return This->lpVtbl->Release(This);
9916 }
9917 /*** ISpProperties methods ***/
9918 static FORCEINLINE HRESULT ISpProperties_SetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG lValue) {
9919     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
9920 }
9921 static FORCEINLINE HRESULT ISpProperties_GetPropertyNum(ISpProperties* This,LPCWSTR pName,LONG *plValue) {
9922     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
9923 }
9924 static FORCEINLINE HRESULT ISpProperties_SetPropertyString(ISpProperties* This,LPCWSTR pName,LPCWSTR pValue) {
9925     return This->lpVtbl->SetPropertyString(This,pName,pValue);
9926 }
9927 static FORCEINLINE HRESULT ISpProperties_GetPropertyString(ISpProperties* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
9928     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
9929 }
9930 #endif
9931 #endif
9932 
9933 #endif
9934 
9935 
9936 #endif  /* __ISpProperties_INTERFACE_DEFINED__ */
9937 
9938 #define SP_MAX_LANGIDS (20)
9939 
9940 typedef struct SPRECOGNIZERSTATUS {
9941     SPAUDIOSTATUS AudioStatus;
9942     ULONGLONG ullRecognitionStreamPos;
9943     ULONG ulStreamNumber;
9944     ULONG ulNumActive;
9945     CLSID clsidEngine;
9946     ULONG cLangIDs;
9947     WORD aLangID[20];
9948     ULONGLONG ullRecognitionStreamTime;
9949 } SPRECOGNIZERSTATUS;
9950 typedef enum SPWAVEFORMATTYPE {
9951     SPWF_INPUT = 0,
9952     SPWF_SRENGINE = 1
9953 } SPSTREAMFORMATTYPE;
9954 typedef enum SPRECOSTATE {
9955     SPRST_INACTIVE = 0,
9956     SPRST_ACTIVE = 1,
9957     SPRST_ACTIVE_ALWAYS = 2,
9958     SPRST_INACTIVE_WITH_PURGE = 3,
9959     SPRST_NUM_STATES = 4
9960 } SPRECOSTATE;
9961 typedef enum SPCATEGORYTYPE {
9962     SPCT_COMMAND = 0,
9963     SPCT_DICTATION = 1,
9964     SPCT_SLEEP = 2,
9965     SPCT_SUB_COMMAND = 3,
9966     SPCT_SUB_DICTATION = 4
9967 } SPCATEGORYTYPE;
9968 /*****************************************************************************
9969  * ISpRecognizer interface
9970  */
9971 #ifndef __ISpRecognizer_INTERFACE_DEFINED__
9972 #define __ISpRecognizer_INTERFACE_DEFINED__
9973 
9974 DEFINE_GUID(IID_ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c);
9975 #if defined(__cplusplus) && !defined(CINTERFACE)
9976 MIDL_INTERFACE("c2b5f241-daa0-4507-9e16-5a1eaa2b7a5c")
9977 ISpRecognizer : public ISpProperties
9978 {
9979     virtual HRESULT STDMETHODCALLTYPE SetRecognizer(
9980         ISpObjectToken *pRecognizer) = 0;
9981 
9982     virtual HRESULT STDMETHODCALLTYPE GetRecognizer(
9983         ISpObjectToken **ppRecognizer) = 0;
9984 
9985     virtual HRESULT STDMETHODCALLTYPE SetInput(
9986         IUnknown *pUnkInput,
9987         WINBOOL fAllowFormatChanges) = 0;
9988 
9989     virtual HRESULT STDMETHODCALLTYPE GetInputObjectToken(
9990         ISpObjectToken **ppToken) = 0;
9991 
9992     virtual HRESULT STDMETHODCALLTYPE GetInputStream(
9993         ISpStreamFormat **ppStream) = 0;
9994 
9995     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
9996         ISpRecoContext **ppNewCtxt) = 0;
9997 
9998     virtual HRESULT STDMETHODCALLTYPE GetRecoProfile(
9999         ISpObjectToken **ppToken) = 0;
10000 
10001     virtual HRESULT STDMETHODCALLTYPE SetRecoProfile(
10002         ISpObjectToken *pToken) = 0;
10003 
10004     virtual HRESULT STDMETHODCALLTYPE IsSharedInstance(
10005         ) = 0;
10006 
10007     virtual HRESULT STDMETHODCALLTYPE GetRecoState(
10008         SPRECOSTATE *pState) = 0;
10009 
10010     virtual HRESULT STDMETHODCALLTYPE SetRecoState(
10011         SPRECOSTATE NewState) = 0;
10012 
10013     virtual HRESULT STDMETHODCALLTYPE GetStatus(
10014         SPRECOGNIZERSTATUS *pStatus) = 0;
10015 
10016     virtual HRESULT STDMETHODCALLTYPE GetFormat(
10017         SPSTREAMFORMATTYPE WaveFormatType,
10018         GUID *pFormatId,
10019         WAVEFORMATEX **ppCoMemWFEX) = 0;
10020 
10021     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
10022         LPCWSTR pszTypeOfUI,
10023         void *pvExtraData,
10024         ULONG cbExtraData,
10025         WINBOOL *pfSupported) = 0;
10026 
10027     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
10028         HWND hwndParent,
10029         LPCWSTR pszTitle,
10030         LPCWSTR pszTypeOfUI,
10031         void *pvExtraData,
10032         ULONG cbExtraData) = 0;
10033 
10034     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
10035         ISpPhrase *pPhrase) = 0;
10036 
10037 };
10038 #ifdef __CRT_UUID_DECL
10039 __CRT_UUID_DECL(ISpRecognizer, 0xc2b5f241, 0xdaa0, 0x4507, 0x9e,0x16, 0x5a,0x1e,0xaa,0x2b,0x7a,0x5c)
10040 #endif
10041 #else
10042 typedef struct ISpRecognizerVtbl {
10043     BEGIN_INTERFACE
10044 
10045     /*** IUnknown methods ***/
10046     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10047         ISpRecognizer *This,
10048         REFIID riid,
10049         void **ppvObject);
10050 
10051     ULONG (STDMETHODCALLTYPE *AddRef)(
10052         ISpRecognizer *This);
10053 
10054     ULONG (STDMETHODCALLTYPE *Release)(
10055         ISpRecognizer *This);
10056 
10057     /*** ISpProperties methods ***/
10058     HRESULT (STDMETHODCALLTYPE *SetPropertyNum)(
10059         ISpRecognizer *This,
10060         LPCWSTR pName,
10061         LONG lValue);
10062 
10063     HRESULT (STDMETHODCALLTYPE *GetPropertyNum)(
10064         ISpRecognizer *This,
10065         LPCWSTR pName,
10066         LONG *plValue);
10067 
10068     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
10069         ISpRecognizer *This,
10070         LPCWSTR pName,
10071         LPCWSTR pValue);
10072 
10073     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
10074         ISpRecognizer *This,
10075         LPCWSTR pName,
10076         LPWSTR *ppCoMemValue);
10077 
10078     /*** ISpRecognizer methods ***/
10079     HRESULT (STDMETHODCALLTYPE *SetRecognizer)(
10080         ISpRecognizer *This,
10081         ISpObjectToken *pRecognizer);
10082 
10083     HRESULT (STDMETHODCALLTYPE *GetRecognizer)(
10084         ISpRecognizer *This,
10085         ISpObjectToken **ppRecognizer);
10086 
10087     HRESULT (STDMETHODCALLTYPE *SetInput)(
10088         ISpRecognizer *This,
10089         IUnknown *pUnkInput,
10090         WINBOOL fAllowFormatChanges);
10091 
10092     HRESULT (STDMETHODCALLTYPE *GetInputObjectToken)(
10093         ISpRecognizer *This,
10094         ISpObjectToken **ppToken);
10095 
10096     HRESULT (STDMETHODCALLTYPE *GetInputStream)(
10097         ISpRecognizer *This,
10098         ISpStreamFormat **ppStream);
10099 
10100     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
10101         ISpRecognizer *This,
10102         ISpRecoContext **ppNewCtxt);
10103 
10104     HRESULT (STDMETHODCALLTYPE *GetRecoProfile)(
10105         ISpRecognizer *This,
10106         ISpObjectToken **ppToken);
10107 
10108     HRESULT (STDMETHODCALLTYPE *SetRecoProfile)(
10109         ISpRecognizer *This,
10110         ISpObjectToken *pToken);
10111 
10112     HRESULT (STDMETHODCALLTYPE *IsSharedInstance)(
10113         ISpRecognizer *This);
10114 
10115     HRESULT (STDMETHODCALLTYPE *GetRecoState)(
10116         ISpRecognizer *This,
10117         SPRECOSTATE *pState);
10118 
10119     HRESULT (STDMETHODCALLTYPE *SetRecoState)(
10120         ISpRecognizer *This,
10121         SPRECOSTATE NewState);
10122 
10123     HRESULT (STDMETHODCALLTYPE *GetStatus)(
10124         ISpRecognizer *This,
10125         SPRECOGNIZERSTATUS *pStatus);
10126 
10127     HRESULT (STDMETHODCALLTYPE *GetFormat)(
10128         ISpRecognizer *This,
10129         SPSTREAMFORMATTYPE WaveFormatType,
10130         GUID *pFormatId,
10131         WAVEFORMATEX **ppCoMemWFEX);
10132 
10133     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
10134         ISpRecognizer *This,
10135         LPCWSTR pszTypeOfUI,
10136         void *pvExtraData,
10137         ULONG cbExtraData,
10138         WINBOOL *pfSupported);
10139 
10140     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
10141         ISpRecognizer *This,
10142         HWND hwndParent,
10143         LPCWSTR pszTitle,
10144         LPCWSTR pszTypeOfUI,
10145         void *pvExtraData,
10146         ULONG cbExtraData);
10147 
10148     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
10149         ISpRecognizer *This,
10150         ISpPhrase *pPhrase);
10151 
10152     END_INTERFACE
10153 } ISpRecognizerVtbl;
10154 
10155 interface ISpRecognizer {
10156     CONST_VTBL ISpRecognizerVtbl* lpVtbl;
10157 };
10158 
10159 #ifdef COBJMACROS
10160 #ifndef WIDL_C_INLINE_WRAPPERS
10161 /*** IUnknown methods ***/
10162 #define ISpRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10163 #define ISpRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
10164 #define ISpRecognizer_Release(This) (This)->lpVtbl->Release(This)
10165 /*** ISpProperties methods ***/
10166 #define ISpRecognizer_SetPropertyNum(This,pName,lValue) (This)->lpVtbl->SetPropertyNum(This,pName,lValue)
10167 #define ISpRecognizer_GetPropertyNum(This,pName,plValue) (This)->lpVtbl->GetPropertyNum(This,pName,plValue)
10168 #define ISpRecognizer_SetPropertyString(This,pName,pValue) (This)->lpVtbl->SetPropertyString(This,pName,pValue)
10169 #define ISpRecognizer_GetPropertyString(This,pName,ppCoMemValue) (This)->lpVtbl->GetPropertyString(This,pName,ppCoMemValue)
10170 /*** ISpRecognizer methods ***/
10171 #define ISpRecognizer_SetRecognizer(This,pRecognizer) (This)->lpVtbl->SetRecognizer(This,pRecognizer)
10172 #define ISpRecognizer_GetRecognizer(This,ppRecognizer) (This)->lpVtbl->GetRecognizer(This,ppRecognizer)
10173 #define ISpRecognizer_SetInput(This,pUnkInput,fAllowFormatChanges) (This)->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges)
10174 #define ISpRecognizer_GetInputObjectToken(This,ppToken) (This)->lpVtbl->GetInputObjectToken(This,ppToken)
10175 #define ISpRecognizer_GetInputStream(This,ppStream) (This)->lpVtbl->GetInputStream(This,ppStream)
10176 #define ISpRecognizer_CreateRecoContext(This,ppNewCtxt) (This)->lpVtbl->CreateRecoContext(This,ppNewCtxt)
10177 #define ISpRecognizer_GetRecoProfile(This,ppToken) (This)->lpVtbl->GetRecoProfile(This,ppToken)
10178 #define ISpRecognizer_SetRecoProfile(This,pToken) (This)->lpVtbl->SetRecoProfile(This,pToken)
10179 #define ISpRecognizer_IsSharedInstance(This) (This)->lpVtbl->IsSharedInstance(This)
10180 #define ISpRecognizer_GetRecoState(This,pState) (This)->lpVtbl->GetRecoState(This,pState)
10181 #define ISpRecognizer_SetRecoState(This,NewState) (This)->lpVtbl->SetRecoState(This,NewState)
10182 #define ISpRecognizer_GetStatus(This,pStatus) (This)->lpVtbl->GetStatus(This,pStatus)
10183 #define ISpRecognizer_GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX) (This)->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX)
10184 #define ISpRecognizer_IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported) (This)->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported)
10185 #define ISpRecognizer_DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData) (This)->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData)
10186 #define ISpRecognizer_EmulateRecognition(This,pPhrase) (This)->lpVtbl->EmulateRecognition(This,pPhrase)
10187 #else
10188 /*** IUnknown methods ***/
10189 static FORCEINLINE HRESULT ISpRecognizer_QueryInterface(ISpRecognizer* This,REFIID riid,void **ppvObject) {
10190     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10191 }
10192 static FORCEINLINE ULONG ISpRecognizer_AddRef(ISpRecognizer* This) {
10193     return This->lpVtbl->AddRef(This);
10194 }
10195 static FORCEINLINE ULONG ISpRecognizer_Release(ISpRecognizer* This) {
10196     return This->lpVtbl->Release(This);
10197 }
10198 /*** ISpProperties methods ***/
10199 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG lValue) {
10200     return This->lpVtbl->SetPropertyNum(This,pName,lValue);
10201 }
10202 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyNum(ISpRecognizer* This,LPCWSTR pName,LONG *plValue) {
10203     return This->lpVtbl->GetPropertyNum(This,pName,plValue);
10204 }
10205 static FORCEINLINE HRESULT ISpRecognizer_SetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPCWSTR pValue) {
10206     return This->lpVtbl->SetPropertyString(This,pName,pValue);
10207 }
10208 static FORCEINLINE HRESULT ISpRecognizer_GetPropertyString(ISpRecognizer* This,LPCWSTR pName,LPWSTR *ppCoMemValue) {
10209     return This->lpVtbl->GetPropertyString(This,pName,ppCoMemValue);
10210 }
10211 /*** ISpRecognizer methods ***/
10212 static FORCEINLINE HRESULT ISpRecognizer_SetRecognizer(ISpRecognizer* This,ISpObjectToken *pRecognizer) {
10213     return This->lpVtbl->SetRecognizer(This,pRecognizer);
10214 }
10215 static FORCEINLINE HRESULT ISpRecognizer_GetRecognizer(ISpRecognizer* This,ISpObjectToken **ppRecognizer) {
10216     return This->lpVtbl->GetRecognizer(This,ppRecognizer);
10217 }
10218 static FORCEINLINE HRESULT ISpRecognizer_SetInput(ISpRecognizer* This,IUnknown *pUnkInput,WINBOOL fAllowFormatChanges) {
10219     return This->lpVtbl->SetInput(This,pUnkInput,fAllowFormatChanges);
10220 }
10221 static FORCEINLINE HRESULT ISpRecognizer_GetInputObjectToken(ISpRecognizer* This,ISpObjectToken **ppToken) {
10222     return This->lpVtbl->GetInputObjectToken(This,ppToken);
10223 }
10224 static FORCEINLINE HRESULT ISpRecognizer_GetInputStream(ISpRecognizer* This,ISpStreamFormat **ppStream) {
10225     return This->lpVtbl->GetInputStream(This,ppStream);
10226 }
10227 static FORCEINLINE HRESULT ISpRecognizer_CreateRecoContext(ISpRecognizer* This,ISpRecoContext **ppNewCtxt) {
10228     return This->lpVtbl->CreateRecoContext(This,ppNewCtxt);
10229 }
10230 static FORCEINLINE HRESULT ISpRecognizer_GetRecoProfile(ISpRecognizer* This,ISpObjectToken **ppToken) {
10231     return This->lpVtbl->GetRecoProfile(This,ppToken);
10232 }
10233 static FORCEINLINE HRESULT ISpRecognizer_SetRecoProfile(ISpRecognizer* This,ISpObjectToken *pToken) {
10234     return This->lpVtbl->SetRecoProfile(This,pToken);
10235 }
10236 static FORCEINLINE HRESULT ISpRecognizer_IsSharedInstance(ISpRecognizer* This) {
10237     return This->lpVtbl->IsSharedInstance(This);
10238 }
10239 static FORCEINLINE HRESULT ISpRecognizer_GetRecoState(ISpRecognizer* This,SPRECOSTATE *pState) {
10240     return This->lpVtbl->GetRecoState(This,pState);
10241 }
10242 static FORCEINLINE HRESULT ISpRecognizer_SetRecoState(ISpRecognizer* This,SPRECOSTATE NewState) {
10243     return This->lpVtbl->SetRecoState(This,NewState);
10244 }
10245 static FORCEINLINE HRESULT ISpRecognizer_GetStatus(ISpRecognizer* This,SPRECOGNIZERSTATUS *pStatus) {
10246     return This->lpVtbl->GetStatus(This,pStatus);
10247 }
10248 static FORCEINLINE HRESULT ISpRecognizer_GetFormat(ISpRecognizer* This,SPSTREAMFORMATTYPE WaveFormatType,GUID *pFormatId,WAVEFORMATEX **ppCoMemWFEX) {
10249     return This->lpVtbl->GetFormat(This,WaveFormatType,pFormatId,ppCoMemWFEX);
10250 }
10251 static FORCEINLINE HRESULT ISpRecognizer_IsUISupported(ISpRecognizer* This,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData,WINBOOL *pfSupported) {
10252     return This->lpVtbl->IsUISupported(This,pszTypeOfUI,pvExtraData,cbExtraData,pfSupported);
10253 }
10254 static FORCEINLINE HRESULT ISpRecognizer_DisplayUI(ISpRecognizer* This,HWND hwndParent,LPCWSTR pszTitle,LPCWSTR pszTypeOfUI,void *pvExtraData,ULONG cbExtraData) {
10255     return This->lpVtbl->DisplayUI(This,hwndParent,pszTitle,pszTypeOfUI,pvExtraData,cbExtraData);
10256 }
10257 static FORCEINLINE HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,ISpPhrase *pPhrase) {
10258     return This->lpVtbl->EmulateRecognition(This,pPhrase);
10259 }
10260 #endif
10261 #endif
10262 
10263 #endif
10264 
10265 
10266 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
10267 
10268 /*****************************************************************************
10269  * ISpSerializeState interface
10270  */
10271 #ifndef __ISpSerializeState_INTERFACE_DEFINED__
10272 #define __ISpSerializeState_INTERFACE_DEFINED__
10273 
10274 DEFINE_GUID(IID_ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9);
10275 #if defined(__cplusplus) && !defined(CINTERFACE)
10276 MIDL_INTERFACE("21b501a0-0ec7-46c9-92c3-a2bc784c54b9")
10277 ISpSerializeState : public IUnknown
10278 {
10279     virtual HRESULT STDMETHODCALLTYPE GetSerializedState(
10280         BYTE **ppbData,
10281         ULONG *pulSize,
10282         DWORD dwReserved) = 0;
10283 
10284     virtual HRESULT STDMETHODCALLTYPE SetSerializedState(
10285         BYTE *pbData,
10286         ULONG ulSize,
10287         DWORD dwReserved) = 0;
10288 
10289 };
10290 #ifdef __CRT_UUID_DECL
10291 __CRT_UUID_DECL(ISpSerializeState, 0x21b501a0, 0x0ec7, 0x46c9, 0x92,0xc3, 0xa2,0xbc,0x78,0x4c,0x54,0xb9)
10292 #endif
10293 #else
10294 typedef struct ISpSerializeStateVtbl {
10295     BEGIN_INTERFACE
10296 
10297     /*** IUnknown methods ***/
10298     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10299         ISpSerializeState *This,
10300         REFIID riid,
10301         void **ppvObject);
10302 
10303     ULONG (STDMETHODCALLTYPE *AddRef)(
10304         ISpSerializeState *This);
10305 
10306     ULONG (STDMETHODCALLTYPE *Release)(
10307         ISpSerializeState *This);
10308 
10309     /*** ISpSerializeState methods ***/
10310     HRESULT (STDMETHODCALLTYPE *GetSerializedState)(
10311         ISpSerializeState *This,
10312         BYTE **ppbData,
10313         ULONG *pulSize,
10314         DWORD dwReserved);
10315 
10316     HRESULT (STDMETHODCALLTYPE *SetSerializedState)(
10317         ISpSerializeState *This,
10318         BYTE *pbData,
10319         ULONG ulSize,
10320         DWORD dwReserved);
10321 
10322     END_INTERFACE
10323 } ISpSerializeStateVtbl;
10324 
10325 interface ISpSerializeState {
10326     CONST_VTBL ISpSerializeStateVtbl* lpVtbl;
10327 };
10328 
10329 #ifdef COBJMACROS
10330 #ifndef WIDL_C_INLINE_WRAPPERS
10331 /*** IUnknown methods ***/
10332 #define ISpSerializeState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10333 #define ISpSerializeState_AddRef(This) (This)->lpVtbl->AddRef(This)
10334 #define ISpSerializeState_Release(This) (This)->lpVtbl->Release(This)
10335 /*** ISpSerializeState methods ***/
10336 #define ISpSerializeState_GetSerializedState(This,ppbData,pulSize,dwReserved) (This)->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved)
10337 #define ISpSerializeState_SetSerializedState(This,pbData,ulSize,dwReserved) (This)->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved)
10338 #else
10339 /*** IUnknown methods ***/
10340 static FORCEINLINE HRESULT ISpSerializeState_QueryInterface(ISpSerializeState* This,REFIID riid,void **ppvObject) {
10341     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10342 }
10343 static FORCEINLINE ULONG ISpSerializeState_AddRef(ISpSerializeState* This) {
10344     return This->lpVtbl->AddRef(This);
10345 }
10346 static FORCEINLINE ULONG ISpSerializeState_Release(ISpSerializeState* This) {
10347     return This->lpVtbl->Release(This);
10348 }
10349 /*** ISpSerializeState methods ***/
10350 static FORCEINLINE HRESULT ISpSerializeState_GetSerializedState(ISpSerializeState* This,BYTE **ppbData,ULONG *pulSize,DWORD dwReserved) {
10351     return This->lpVtbl->GetSerializedState(This,ppbData,pulSize,dwReserved);
10352 }
10353 static FORCEINLINE HRESULT ISpSerializeState_SetSerializedState(ISpSerializeState* This,BYTE *pbData,ULONG ulSize,DWORD dwReserved) {
10354     return This->lpVtbl->SetSerializedState(This,pbData,ulSize,dwReserved);
10355 }
10356 #endif
10357 #endif
10358 
10359 #endif
10360 
10361 
10362 #endif  /* __ISpSerializeState_INTERFACE_DEFINED__ */
10363 
10364 /*****************************************************************************
10365  * ISpRecognizer2 interface
10366  */
10367 #ifndef __ISpRecognizer2_INTERFACE_DEFINED__
10368 #define __ISpRecognizer2_INTERFACE_DEFINED__
10369 
10370 DEFINE_GUID(IID_ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3);
10371 #if defined(__cplusplus) && !defined(CINTERFACE)
10372 MIDL_INTERFACE("8fc6d974-c81e-4098-93c5-0147f61ed4d3")
10373 ISpRecognizer2 : public IUnknown
10374 {
10375     virtual HRESULT STDMETHODCALLTYPE EmulateRecognitionEx(
10376         ISpPhrase *pPhrase,
10377         DWORD dwCompareFlags) = 0;
10378 
10379     virtual HRESULT STDMETHODCALLTYPE SetTrainingState(
10380         WINBOOL fDoingTraining,
10381         WINBOOL fAdaptFromTrainingData) = 0;
10382 
10383     virtual HRESULT STDMETHODCALLTYPE ResetAcousticModelAdaptation(
10384         ) = 0;
10385 
10386 };
10387 #ifdef __CRT_UUID_DECL
10388 __CRT_UUID_DECL(ISpRecognizer2, 0x8fc6d974, 0xc81e, 0x4098, 0x93,0xc5, 0x01,0x47,0xf6,0x1e,0xd4,0xd3)
10389 #endif
10390 #else
10391 typedef struct ISpRecognizer2Vtbl {
10392     BEGIN_INTERFACE
10393 
10394     /*** IUnknown methods ***/
10395     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10396         ISpRecognizer2 *This,
10397         REFIID riid,
10398         void **ppvObject);
10399 
10400     ULONG (STDMETHODCALLTYPE *AddRef)(
10401         ISpRecognizer2 *This);
10402 
10403     ULONG (STDMETHODCALLTYPE *Release)(
10404         ISpRecognizer2 *This);
10405 
10406     /*** ISpRecognizer2 methods ***/
10407     HRESULT (STDMETHODCALLTYPE *EmulateRecognitionEx)(
10408         ISpRecognizer2 *This,
10409         ISpPhrase *pPhrase,
10410         DWORD dwCompareFlags);
10411 
10412     HRESULT (STDMETHODCALLTYPE *SetTrainingState)(
10413         ISpRecognizer2 *This,
10414         WINBOOL fDoingTraining,
10415         WINBOOL fAdaptFromTrainingData);
10416 
10417     HRESULT (STDMETHODCALLTYPE *ResetAcousticModelAdaptation)(
10418         ISpRecognizer2 *This);
10419 
10420     END_INTERFACE
10421 } ISpRecognizer2Vtbl;
10422 
10423 interface ISpRecognizer2 {
10424     CONST_VTBL ISpRecognizer2Vtbl* lpVtbl;
10425 };
10426 
10427 #ifdef COBJMACROS
10428 #ifndef WIDL_C_INLINE_WRAPPERS
10429 /*** IUnknown methods ***/
10430 #define ISpRecognizer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10431 #define ISpRecognizer2_AddRef(This) (This)->lpVtbl->AddRef(This)
10432 #define ISpRecognizer2_Release(This) (This)->lpVtbl->Release(This)
10433 /*** ISpRecognizer2 methods ***/
10434 #define ISpRecognizer2_EmulateRecognitionEx(This,pPhrase,dwCompareFlags) (This)->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags)
10435 #define ISpRecognizer2_SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData) (This)->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData)
10436 #define ISpRecognizer2_ResetAcousticModelAdaptation(This) (This)->lpVtbl->ResetAcousticModelAdaptation(This)
10437 #else
10438 /*** IUnknown methods ***/
10439 static FORCEINLINE HRESULT ISpRecognizer2_QueryInterface(ISpRecognizer2* This,REFIID riid,void **ppvObject) {
10440     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10441 }
10442 static FORCEINLINE ULONG ISpRecognizer2_AddRef(ISpRecognizer2* This) {
10443     return This->lpVtbl->AddRef(This);
10444 }
10445 static FORCEINLINE ULONG ISpRecognizer2_Release(ISpRecognizer2* This) {
10446     return This->lpVtbl->Release(This);
10447 }
10448 /*** ISpRecognizer2 methods ***/
10449 static FORCEINLINE HRESULT ISpRecognizer2_EmulateRecognitionEx(ISpRecognizer2* This,ISpPhrase *pPhrase,DWORD dwCompareFlags) {
10450     return This->lpVtbl->EmulateRecognitionEx(This,pPhrase,dwCompareFlags);
10451 }
10452 static FORCEINLINE HRESULT ISpRecognizer2_SetTrainingState(ISpRecognizer2* This,WINBOOL fDoingTraining,WINBOOL fAdaptFromTrainingData) {
10453     return This->lpVtbl->SetTrainingState(This,fDoingTraining,fAdaptFromTrainingData);
10454 }
10455 static FORCEINLINE HRESULT ISpRecognizer2_ResetAcousticModelAdaptation(ISpRecognizer2* This) {
10456     return This->lpVtbl->ResetAcousticModelAdaptation(This);
10457 }
10458 #endif
10459 #endif
10460 
10461 #endif
10462 
10463 
10464 #endif  /* __ISpRecognizer2_INTERFACE_DEFINED__ */
10465 
10466 /*****************************************************************************
10467  * ISpRecoCategory interface
10468  */
10469 #ifndef __ISpRecoCategory_INTERFACE_DEFINED__
10470 #define __ISpRecoCategory_INTERFACE_DEFINED__
10471 
10472 DEFINE_GUID(IID_ISpRecoCategory, 0xda0cd0f9, 0x14a2, 0x4f09, 0x8c,0x2a, 0x85,0xcc,0x48,0x97,0x93,0x45);
10473 #if defined(__cplusplus) && !defined(CINTERFACE)
10474 MIDL_INTERFACE("da0cd0f9-14a2-4f09-8c2a-85cc48979345")
10475 ISpRecoCategory : public IUnknown
10476 {
10477     virtual HRESULT STDMETHODCALLTYPE GetType(
10478         SPCATEGORYTYPE *peCategoryType) = 0;
10479 
10480 };
10481 #ifdef __CRT_UUID_DECL
10482 __CRT_UUID_DECL(ISpRecoCategory, 0xda0cd0f9, 0x14a2, 0x4f09, 0x8c,0x2a, 0x85,0xcc,0x48,0x97,0x93,0x45)
10483 #endif
10484 #else
10485 typedef struct ISpRecoCategoryVtbl {
10486     BEGIN_INTERFACE
10487 
10488     /*** IUnknown methods ***/
10489     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10490         ISpRecoCategory *This,
10491         REFIID riid,
10492         void **ppvObject);
10493 
10494     ULONG (STDMETHODCALLTYPE *AddRef)(
10495         ISpRecoCategory *This);
10496 
10497     ULONG (STDMETHODCALLTYPE *Release)(
10498         ISpRecoCategory *This);
10499 
10500     /*** ISpRecoCategory methods ***/
10501     HRESULT (STDMETHODCALLTYPE *GetType)(
10502         ISpRecoCategory *This,
10503         SPCATEGORYTYPE *peCategoryType);
10504 
10505     END_INTERFACE
10506 } ISpRecoCategoryVtbl;
10507 
10508 interface ISpRecoCategory {
10509     CONST_VTBL ISpRecoCategoryVtbl* lpVtbl;
10510 };
10511 
10512 #ifdef COBJMACROS
10513 #ifndef WIDL_C_INLINE_WRAPPERS
10514 /*** IUnknown methods ***/
10515 #define ISpRecoCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10516 #define ISpRecoCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
10517 #define ISpRecoCategory_Release(This) (This)->lpVtbl->Release(This)
10518 /*** ISpRecoCategory methods ***/
10519 #define ISpRecoCategory_GetType(This,peCategoryType) (This)->lpVtbl->GetType(This,peCategoryType)
10520 #else
10521 /*** IUnknown methods ***/
10522 static FORCEINLINE HRESULT ISpRecoCategory_QueryInterface(ISpRecoCategory* This,REFIID riid,void **ppvObject) {
10523     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10524 }
10525 static FORCEINLINE ULONG ISpRecoCategory_AddRef(ISpRecoCategory* This) {
10526     return This->lpVtbl->AddRef(This);
10527 }
10528 static FORCEINLINE ULONG ISpRecoCategory_Release(ISpRecoCategory* This) {
10529     return This->lpVtbl->Release(This);
10530 }
10531 /*** ISpRecoCategory methods ***/
10532 static FORCEINLINE HRESULT ISpRecoCategory_GetType(ISpRecoCategory* This,SPCATEGORYTYPE *peCategoryType) {
10533     return This->lpVtbl->GetType(This,peCategoryType);
10534 }
10535 #endif
10536 #endif
10537 
10538 #endif
10539 
10540 
10541 #endif  /* __ISpRecoCategory_INTERFACE_DEFINED__ */
10542 
10543 /*****************************************************************************
10544  * ISpRecognizer3 interface
10545  */
10546 #ifndef __ISpRecognizer3_INTERFACE_DEFINED__
10547 #define __ISpRecognizer3_INTERFACE_DEFINED__
10548 
10549 DEFINE_GUID(IID_ISpRecognizer3, 0xdf1b943c, 0x5838, 0x4aa2, 0x87,0x06, 0xd7,0xcd,0x5b,0x33,0x34,0x99);
10550 #if defined(__cplusplus) && !defined(CINTERFACE)
10551 MIDL_INTERFACE("df1b943c-5838-4aa2-8706-d7cd5b333499")
10552 ISpRecognizer3 : public IUnknown
10553 {
10554     virtual HRESULT STDMETHODCALLTYPE GetCategory(
10555         SPCATEGORYTYPE categoryType,
10556         ISpRecoCategory **ppCategory) = 0;
10557 
10558     virtual HRESULT STDMETHODCALLTYPE SetActiveCategory(
10559         ISpRecoCategory *pCategory) = 0;
10560 
10561     virtual HRESULT STDMETHODCALLTYPE GetActiveCategory(
10562         ISpRecoCategory **ppCategory) = 0;
10563 
10564 };
10565 #ifdef __CRT_UUID_DECL
10566 __CRT_UUID_DECL(ISpRecognizer3, 0xdf1b943c, 0x5838, 0x4aa2, 0x87,0x06, 0xd7,0xcd,0x5b,0x33,0x34,0x99)
10567 #endif
10568 #else
10569 typedef struct ISpRecognizer3Vtbl {
10570     BEGIN_INTERFACE
10571 
10572     /*** IUnknown methods ***/
10573     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10574         ISpRecognizer3 *This,
10575         REFIID riid,
10576         void **ppvObject);
10577 
10578     ULONG (STDMETHODCALLTYPE *AddRef)(
10579         ISpRecognizer3 *This);
10580 
10581     ULONG (STDMETHODCALLTYPE *Release)(
10582         ISpRecognizer3 *This);
10583 
10584     /*** ISpRecognizer3 methods ***/
10585     HRESULT (STDMETHODCALLTYPE *GetCategory)(
10586         ISpRecognizer3 *This,
10587         SPCATEGORYTYPE categoryType,
10588         ISpRecoCategory **ppCategory);
10589 
10590     HRESULT (STDMETHODCALLTYPE *SetActiveCategory)(
10591         ISpRecognizer3 *This,
10592         ISpRecoCategory *pCategory);
10593 
10594     HRESULT (STDMETHODCALLTYPE *GetActiveCategory)(
10595         ISpRecognizer3 *This,
10596         ISpRecoCategory **ppCategory);
10597 
10598     END_INTERFACE
10599 } ISpRecognizer3Vtbl;
10600 
10601 interface ISpRecognizer3 {
10602     CONST_VTBL ISpRecognizer3Vtbl* lpVtbl;
10603 };
10604 
10605 #ifdef COBJMACROS
10606 #ifndef WIDL_C_INLINE_WRAPPERS
10607 /*** IUnknown methods ***/
10608 #define ISpRecognizer3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10609 #define ISpRecognizer3_AddRef(This) (This)->lpVtbl->AddRef(This)
10610 #define ISpRecognizer3_Release(This) (This)->lpVtbl->Release(This)
10611 /*** ISpRecognizer3 methods ***/
10612 #define ISpRecognizer3_GetCategory(This,categoryType,ppCategory) (This)->lpVtbl->GetCategory(This,categoryType,ppCategory)
10613 #define ISpRecognizer3_SetActiveCategory(This,pCategory) (This)->lpVtbl->SetActiveCategory(This,pCategory)
10614 #define ISpRecognizer3_GetActiveCategory(This,ppCategory) (This)->lpVtbl->GetActiveCategory(This,ppCategory)
10615 #else
10616 /*** IUnknown methods ***/
10617 static FORCEINLINE HRESULT ISpRecognizer3_QueryInterface(ISpRecognizer3* This,REFIID riid,void **ppvObject) {
10618     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10619 }
10620 static FORCEINLINE ULONG ISpRecognizer3_AddRef(ISpRecognizer3* This) {
10621     return This->lpVtbl->AddRef(This);
10622 }
10623 static FORCEINLINE ULONG ISpRecognizer3_Release(ISpRecognizer3* This) {
10624     return This->lpVtbl->Release(This);
10625 }
10626 /*** ISpRecognizer3 methods ***/
10627 static FORCEINLINE HRESULT ISpRecognizer3_GetCategory(ISpRecognizer3* This,SPCATEGORYTYPE categoryType,ISpRecoCategory **ppCategory) {
10628     return This->lpVtbl->GetCategory(This,categoryType,ppCategory);
10629 }
10630 static FORCEINLINE HRESULT ISpRecognizer3_SetActiveCategory(ISpRecognizer3* This,ISpRecoCategory *pCategory) {
10631     return This->lpVtbl->SetActiveCategory(This,pCategory);
10632 }
10633 static FORCEINLINE HRESULT ISpRecognizer3_GetActiveCategory(ISpRecognizer3* This,ISpRecoCategory **ppCategory) {
10634     return This->lpVtbl->GetActiveCategory(This,ppCategory);
10635 }
10636 #endif
10637 #endif
10638 
10639 #endif
10640 
10641 
10642 #endif  /* __ISpRecognizer3_INTERFACE_DEFINED__ */
10643 
10644 typedef struct SPNORMALIZATIONLIST {
10645     ULONG ulSize;
10646     WCHAR **ppszzNormalizedList;
10647 } SPNORMALIZATIONLIST;
10648 /*****************************************************************************
10649  * ISpEnginePronunciation interface
10650  */
10651 #ifndef __ISpEnginePronunciation_INTERFACE_DEFINED__
10652 #define __ISpEnginePronunciation_INTERFACE_DEFINED__
10653 
10654 DEFINE_GUID(IID_ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda);
10655 #if defined(__cplusplus) && !defined(CINTERFACE)
10656 MIDL_INTERFACE("c360ce4b-76d1-4214-ad68-52657d5083da")
10657 ISpEnginePronunciation : public IUnknown
10658 {
10659     virtual HRESULT STDMETHODCALLTYPE Normalize(
10660         LPCWSTR pszWord,
10661         LPCWSTR pszLeftContext,
10662         LPCWSTR pszRightContext,
10663         WORD LangID,
10664         SPNORMALIZATIONLIST *pNormalizationList) = 0;
10665 
10666     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
10667         LPCWSTR pszWord,
10668         LPCWSTR pszLeftContext,
10669         LPCWSTR pszRightContext,
10670         WORD LangID,
10671         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) = 0;
10672 
10673 };
10674 #ifdef __CRT_UUID_DECL
10675 __CRT_UUID_DECL(ISpEnginePronunciation, 0xc360ce4b, 0x76d1, 0x4214, 0xad,0x68, 0x52,0x65,0x7d,0x50,0x83,0xda)
10676 #endif
10677 #else
10678 typedef struct ISpEnginePronunciationVtbl {
10679     BEGIN_INTERFACE
10680 
10681     /*** IUnknown methods ***/
10682     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10683         ISpEnginePronunciation *This,
10684         REFIID riid,
10685         void **ppvObject);
10686 
10687     ULONG (STDMETHODCALLTYPE *AddRef)(
10688         ISpEnginePronunciation *This);
10689 
10690     ULONG (STDMETHODCALLTYPE *Release)(
10691         ISpEnginePronunciation *This);
10692 
10693     /*** ISpEnginePronunciation methods ***/
10694     HRESULT (STDMETHODCALLTYPE *Normalize)(
10695         ISpEnginePronunciation *This,
10696         LPCWSTR pszWord,
10697         LPCWSTR pszLeftContext,
10698         LPCWSTR pszRightContext,
10699         WORD LangID,
10700         SPNORMALIZATIONLIST *pNormalizationList);
10701 
10702     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
10703         ISpEnginePronunciation *This,
10704         LPCWSTR pszWord,
10705         LPCWSTR pszLeftContext,
10706         LPCWSTR pszRightContext,
10707         WORD LangID,
10708         SPWORDPRONUNCIATIONLIST *pEnginePronunciationList);
10709 
10710     END_INTERFACE
10711 } ISpEnginePronunciationVtbl;
10712 
10713 interface ISpEnginePronunciation {
10714     CONST_VTBL ISpEnginePronunciationVtbl* lpVtbl;
10715 };
10716 
10717 #ifdef COBJMACROS
10718 #ifndef WIDL_C_INLINE_WRAPPERS
10719 /*** IUnknown methods ***/
10720 #define ISpEnginePronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10721 #define ISpEnginePronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
10722 #define ISpEnginePronunciation_Release(This) (This)->lpVtbl->Release(This)
10723 /*** ISpEnginePronunciation methods ***/
10724 #define ISpEnginePronunciation_Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList) (This)->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList)
10725 #define ISpEnginePronunciation_GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList) (This)->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList)
10726 #else
10727 /*** IUnknown methods ***/
10728 static FORCEINLINE HRESULT ISpEnginePronunciation_QueryInterface(ISpEnginePronunciation* This,REFIID riid,void **ppvObject) {
10729     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10730 }
10731 static FORCEINLINE ULONG ISpEnginePronunciation_AddRef(ISpEnginePronunciation* This) {
10732     return This->lpVtbl->AddRef(This);
10733 }
10734 static FORCEINLINE ULONG ISpEnginePronunciation_Release(ISpEnginePronunciation* This) {
10735     return This->lpVtbl->Release(This);
10736 }
10737 /*** ISpEnginePronunciation methods ***/
10738 static FORCEINLINE HRESULT ISpEnginePronunciation_Normalize(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPNORMALIZATIONLIST *pNormalizationList) {
10739     return This->lpVtbl->Normalize(This,pszWord,pszLeftContext,pszRightContext,LangID,pNormalizationList);
10740 }
10741 static FORCEINLINE HRESULT ISpEnginePronunciation_GetPronunciations(ISpEnginePronunciation* This,LPCWSTR pszWord,LPCWSTR pszLeftContext,LPCWSTR pszRightContext,WORD LangID,SPWORDPRONUNCIATIONLIST *pEnginePronunciationList) {
10742     return This->lpVtbl->GetPronunciations(This,pszWord,pszLeftContext,pszRightContext,LangID,pEnginePronunciationList);
10743 }
10744 #endif
10745 #endif
10746 
10747 #endif
10748 
10749 
10750 #endif  /* __ISpEnginePronunciation_INTERFACE_DEFINED__ */
10751 
10752 typedef struct SPDISPLAYTOKEN {
10753     const WCHAR *pszLexical;
10754     const WCHAR *pszDisplay;
10755     BYTE bDisplayAttributes;
10756 } SPDISPLAYTOKEN;
10757 typedef struct SPDISPLAYPHRASE {
10758     ULONG ulNumTokens;
10759     SPDISPLAYTOKEN *pTokens;
10760 } SPDISPLAYPHRASE;
10761 /*****************************************************************************
10762  * ISpDisplayAlternates interface
10763  */
10764 #ifndef __ISpDisplayAlternates_INTERFACE_DEFINED__
10765 #define __ISpDisplayAlternates_INTERFACE_DEFINED__
10766 
10767 DEFINE_GUID(IID_ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e);
10768 #if defined(__cplusplus) && !defined(CINTERFACE)
10769 MIDL_INTERFACE("c8d7c7e2-0dde-44b7-afe3-b0c991fbeb5e")
10770 ISpDisplayAlternates : public IUnknown
10771 {
10772     virtual HRESULT STDMETHODCALLTYPE GetDisplayAlternates(
10773         const SPDISPLAYPHRASE *pPhrase,
10774         ULONG cRequestCount,
10775         SPDISPLAYPHRASE **ppCoMemPhrases,
10776         ULONG *pcPhrasesReturned) = 0;
10777 
10778     virtual HRESULT STDMETHODCALLTYPE SetFullStopTrailSpace(
10779         ULONG ulTrailSpace) = 0;
10780 
10781 };
10782 #ifdef __CRT_UUID_DECL
10783 __CRT_UUID_DECL(ISpDisplayAlternates, 0xc8d7c7e2, 0x0dde, 0x44b7, 0xaf,0xe3, 0xb0,0xc9,0x91,0xfb,0xeb,0x5e)
10784 #endif
10785 #else
10786 typedef struct ISpDisplayAlternatesVtbl {
10787     BEGIN_INTERFACE
10788 
10789     /*** IUnknown methods ***/
10790     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10791         ISpDisplayAlternates *This,
10792         REFIID riid,
10793         void **ppvObject);
10794 
10795     ULONG (STDMETHODCALLTYPE *AddRef)(
10796         ISpDisplayAlternates *This);
10797 
10798     ULONG (STDMETHODCALLTYPE *Release)(
10799         ISpDisplayAlternates *This);
10800 
10801     /*** ISpDisplayAlternates methods ***/
10802     HRESULT (STDMETHODCALLTYPE *GetDisplayAlternates)(
10803         ISpDisplayAlternates *This,
10804         const SPDISPLAYPHRASE *pPhrase,
10805         ULONG cRequestCount,
10806         SPDISPLAYPHRASE **ppCoMemPhrases,
10807         ULONG *pcPhrasesReturned);
10808 
10809     HRESULT (STDMETHODCALLTYPE *SetFullStopTrailSpace)(
10810         ISpDisplayAlternates *This,
10811         ULONG ulTrailSpace);
10812 
10813     END_INTERFACE
10814 } ISpDisplayAlternatesVtbl;
10815 
10816 interface ISpDisplayAlternates {
10817     CONST_VTBL ISpDisplayAlternatesVtbl* lpVtbl;
10818 };
10819 
10820 #ifdef COBJMACROS
10821 #ifndef WIDL_C_INLINE_WRAPPERS
10822 /*** IUnknown methods ***/
10823 #define ISpDisplayAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10824 #define ISpDisplayAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
10825 #define ISpDisplayAlternates_Release(This) (This)->lpVtbl->Release(This)
10826 /*** ISpDisplayAlternates methods ***/
10827 #define ISpDisplayAlternates_GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned) (This)->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned)
10828 #define ISpDisplayAlternates_SetFullStopTrailSpace(This,ulTrailSpace) (This)->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace)
10829 #else
10830 /*** IUnknown methods ***/
10831 static FORCEINLINE HRESULT ISpDisplayAlternates_QueryInterface(ISpDisplayAlternates* This,REFIID riid,void **ppvObject) {
10832     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10833 }
10834 static FORCEINLINE ULONG ISpDisplayAlternates_AddRef(ISpDisplayAlternates* This) {
10835     return This->lpVtbl->AddRef(This);
10836 }
10837 static FORCEINLINE ULONG ISpDisplayAlternates_Release(ISpDisplayAlternates* This) {
10838     return This->lpVtbl->Release(This);
10839 }
10840 /*** ISpDisplayAlternates methods ***/
10841 static FORCEINLINE HRESULT ISpDisplayAlternates_GetDisplayAlternates(ISpDisplayAlternates* This,const SPDISPLAYPHRASE *pPhrase,ULONG cRequestCount,SPDISPLAYPHRASE **ppCoMemPhrases,ULONG *pcPhrasesReturned) {
10842     return This->lpVtbl->GetDisplayAlternates(This,pPhrase,cRequestCount,ppCoMemPhrases,pcPhrasesReturned);
10843 }
10844 static FORCEINLINE HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplayAlternates* This,ULONG ulTrailSpace) {
10845     return This->lpVtbl->SetFullStopTrailSpace(This,ulTrailSpace);
10846 }
10847 #endif
10848 #endif
10849 
10850 #endif
10851 
10852 
10853 #endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
10854 
10855 #ifndef __SpeechLib_LIBRARY_DEFINED__
10856 #define __SpeechLib_LIBRARY_DEFINED__
10857 
10858 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
10859 
10860 #ifndef __ISpeechDataKey_FWD_DEFINED__
10861 #define __ISpeechDataKey_FWD_DEFINED__
10862 typedef interface ISpeechDataKey ISpeechDataKey;
10863 #ifdef __cplusplus
10864 interface ISpeechDataKey;
10865 #endif /* __cplusplus */
10866 #endif
10867 
10868 #ifndef __ISpeechObjectToken_FWD_DEFINED__
10869 #define __ISpeechObjectToken_FWD_DEFINED__
10870 typedef interface ISpeechObjectToken ISpeechObjectToken;
10871 #ifdef __cplusplus
10872 interface ISpeechObjectToken;
10873 #endif /* __cplusplus */
10874 #endif
10875 
10876 #ifndef __ISpeechObjectTokens_FWD_DEFINED__
10877 #define __ISpeechObjectTokens_FWD_DEFINED__
10878 typedef interface ISpeechObjectTokens ISpeechObjectTokens;
10879 #ifdef __cplusplus
10880 interface ISpeechObjectTokens;
10881 #endif /* __cplusplus */
10882 #endif
10883 
10884 #ifndef __ISpeechObjectTokenCategory_FWD_DEFINED__
10885 #define __ISpeechObjectTokenCategory_FWD_DEFINED__
10886 typedef interface ISpeechObjectTokenCategory ISpeechObjectTokenCategory;
10887 #ifdef __cplusplus
10888 interface ISpeechObjectTokenCategory;
10889 #endif /* __cplusplus */
10890 #endif
10891 
10892 #ifndef __ISpeechAudioBufferInfo_FWD_DEFINED__
10893 #define __ISpeechAudioBufferInfo_FWD_DEFINED__
10894 typedef interface ISpeechAudioBufferInfo ISpeechAudioBufferInfo;
10895 #ifdef __cplusplus
10896 interface ISpeechAudioBufferInfo;
10897 #endif /* __cplusplus */
10898 #endif
10899 
10900 #ifndef __ISpeechAudioStatus_FWD_DEFINED__
10901 #define __ISpeechAudioStatus_FWD_DEFINED__
10902 typedef interface ISpeechAudioStatus ISpeechAudioStatus;
10903 #ifdef __cplusplus
10904 interface ISpeechAudioStatus;
10905 #endif /* __cplusplus */
10906 #endif
10907 
10908 #ifndef __ISpeechAudioFormat_FWD_DEFINED__
10909 #define __ISpeechAudioFormat_FWD_DEFINED__
10910 typedef interface ISpeechAudioFormat ISpeechAudioFormat;
10911 #ifdef __cplusplus
10912 interface ISpeechAudioFormat;
10913 #endif /* __cplusplus */
10914 #endif
10915 
10916 #ifndef __ISpeechWaveFormatEx_FWD_DEFINED__
10917 #define __ISpeechWaveFormatEx_FWD_DEFINED__
10918 typedef interface ISpeechWaveFormatEx ISpeechWaveFormatEx;
10919 #ifdef __cplusplus
10920 interface ISpeechWaveFormatEx;
10921 #endif /* __cplusplus */
10922 #endif
10923 
10924 #ifndef __ISpeechBaseStream_FWD_DEFINED__
10925 #define __ISpeechBaseStream_FWD_DEFINED__
10926 typedef interface ISpeechBaseStream ISpeechBaseStream;
10927 #ifdef __cplusplus
10928 interface ISpeechBaseStream;
10929 #endif /* __cplusplus */
10930 #endif
10931 
10932 #ifndef __ISpeechFileStream_FWD_DEFINED__
10933 #define __ISpeechFileStream_FWD_DEFINED__
10934 typedef interface ISpeechFileStream ISpeechFileStream;
10935 #ifdef __cplusplus
10936 interface ISpeechFileStream;
10937 #endif /* __cplusplus */
10938 #endif
10939 
10940 #ifndef __ISpeechMemoryStream_FWD_DEFINED__
10941 #define __ISpeechMemoryStream_FWD_DEFINED__
10942 typedef interface ISpeechMemoryStream ISpeechMemoryStream;
10943 #ifdef __cplusplus
10944 interface ISpeechMemoryStream;
10945 #endif /* __cplusplus */
10946 #endif
10947 
10948 #ifndef __ISpeechCustomStream_FWD_DEFINED__
10949 #define __ISpeechCustomStream_FWD_DEFINED__
10950 typedef interface ISpeechCustomStream ISpeechCustomStream;
10951 #ifdef __cplusplus
10952 interface ISpeechCustomStream;
10953 #endif /* __cplusplus */
10954 #endif
10955 
10956 #ifndef __ISpeechAudio_FWD_DEFINED__
10957 #define __ISpeechAudio_FWD_DEFINED__
10958 typedef interface ISpeechAudio ISpeechAudio;
10959 #ifdef __cplusplus
10960 interface ISpeechAudio;
10961 #endif /* __cplusplus */
10962 #endif
10963 
10964 #ifndef __ISpeechMMSysAudio_FWD_DEFINED__
10965 #define __ISpeechMMSysAudio_FWD_DEFINED__
10966 typedef interface ISpeechMMSysAudio ISpeechMMSysAudio;
10967 #ifdef __cplusplus
10968 interface ISpeechMMSysAudio;
10969 #endif /* __cplusplus */
10970 #endif
10971 
10972 #ifndef __ISpeechVoice_FWD_DEFINED__
10973 #define __ISpeechVoice_FWD_DEFINED__
10974 typedef interface ISpeechVoice ISpeechVoice;
10975 #ifdef __cplusplus
10976 interface ISpeechVoice;
10977 #endif /* __cplusplus */
10978 #endif
10979 
10980 #ifndef __ISpeechVoiceStatus_FWD_DEFINED__
10981 #define __ISpeechVoiceStatus_FWD_DEFINED__
10982 typedef interface ISpeechVoiceStatus ISpeechVoiceStatus;
10983 #ifdef __cplusplus
10984 interface ISpeechVoiceStatus;
10985 #endif /* __cplusplus */
10986 #endif
10987 
10988 #ifndef ___ISpeechVoiceEvents_FWD_DEFINED__
10989 #define ___ISpeechVoiceEvents_FWD_DEFINED__
10990 typedef interface _ISpeechVoiceEvents _ISpeechVoiceEvents;
10991 #ifdef __cplusplus
10992 interface _ISpeechVoiceEvents;
10993 #endif /* __cplusplus */
10994 #endif
10995 
10996 #ifndef __ISpeechRecognizer_FWD_DEFINED__
10997 #define __ISpeechRecognizer_FWD_DEFINED__
10998 typedef interface ISpeechRecognizer ISpeechRecognizer;
10999 #ifdef __cplusplus
11000 interface ISpeechRecognizer;
11001 #endif /* __cplusplus */
11002 #endif
11003 
11004 #ifndef __ISpeechRecognizerStatus_FWD_DEFINED__
11005 #define __ISpeechRecognizerStatus_FWD_DEFINED__
11006 typedef interface ISpeechRecognizerStatus ISpeechRecognizerStatus;
11007 #ifdef __cplusplus
11008 interface ISpeechRecognizerStatus;
11009 #endif /* __cplusplus */
11010 #endif
11011 
11012 #ifndef __ISpeechRecoContext_FWD_DEFINED__
11013 #define __ISpeechRecoContext_FWD_DEFINED__
11014 typedef interface ISpeechRecoContext ISpeechRecoContext;
11015 #ifdef __cplusplus
11016 interface ISpeechRecoContext;
11017 #endif /* __cplusplus */
11018 #endif
11019 
11020 #ifndef __ISpeechRecoGrammar_FWD_DEFINED__
11021 #define __ISpeechRecoGrammar_FWD_DEFINED__
11022 typedef interface ISpeechRecoGrammar ISpeechRecoGrammar;
11023 #ifdef __cplusplus
11024 interface ISpeechRecoGrammar;
11025 #endif /* __cplusplus */
11026 #endif
11027 
11028 #ifndef ___ISpeechRecoContextEvents_FWD_DEFINED__
11029 #define ___ISpeechRecoContextEvents_FWD_DEFINED__
11030 typedef interface _ISpeechRecoContextEvents _ISpeechRecoContextEvents;
11031 #ifdef __cplusplus
11032 interface _ISpeechRecoContextEvents;
11033 #endif /* __cplusplus */
11034 #endif
11035 
11036 #ifndef __ISpeechGrammarRule_FWD_DEFINED__
11037 #define __ISpeechGrammarRule_FWD_DEFINED__
11038 typedef interface ISpeechGrammarRule ISpeechGrammarRule;
11039 #ifdef __cplusplus
11040 interface ISpeechGrammarRule;
11041 #endif /* __cplusplus */
11042 #endif
11043 
11044 #ifndef __ISpeechGrammarRules_FWD_DEFINED__
11045 #define __ISpeechGrammarRules_FWD_DEFINED__
11046 typedef interface ISpeechGrammarRules ISpeechGrammarRules;
11047 #ifdef __cplusplus
11048 interface ISpeechGrammarRules;
11049 #endif /* __cplusplus */
11050 #endif
11051 
11052 #ifndef __ISpeechGrammarRuleState_FWD_DEFINED__
11053 #define __ISpeechGrammarRuleState_FWD_DEFINED__
11054 typedef interface ISpeechGrammarRuleState ISpeechGrammarRuleState;
11055 #ifdef __cplusplus
11056 interface ISpeechGrammarRuleState;
11057 #endif /* __cplusplus */
11058 #endif
11059 
11060 #ifndef __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
11061 #define __ISpeechGrammarRuleStateTransition_FWD_DEFINED__
11062 typedef interface ISpeechGrammarRuleStateTransition ISpeechGrammarRuleStateTransition;
11063 #ifdef __cplusplus
11064 interface ISpeechGrammarRuleStateTransition;
11065 #endif /* __cplusplus */
11066 #endif
11067 
11068 #ifndef __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
11069 #define __ISpeechGrammarRuleStateTransitions_FWD_DEFINED__
11070 typedef interface ISpeechGrammarRuleStateTransitions ISpeechGrammarRuleStateTransitions;
11071 #ifdef __cplusplus
11072 interface ISpeechGrammarRuleStateTransitions;
11073 #endif /* __cplusplus */
11074 #endif
11075 
11076 #ifndef __ISpeechTextSelectionInformation_FWD_DEFINED__
11077 #define __ISpeechTextSelectionInformation_FWD_DEFINED__
11078 typedef interface ISpeechTextSelectionInformation ISpeechTextSelectionInformation;
11079 #ifdef __cplusplus
11080 interface ISpeechTextSelectionInformation;
11081 #endif /* __cplusplus */
11082 #endif
11083 
11084 #ifndef __ISpeechRecoResult_FWD_DEFINED__
11085 #define __ISpeechRecoResult_FWD_DEFINED__
11086 typedef interface ISpeechRecoResult ISpeechRecoResult;
11087 #ifdef __cplusplus
11088 interface ISpeechRecoResult;
11089 #endif /* __cplusplus */
11090 #endif
11091 
11092 #ifndef __ISpeechRecoResult2_FWD_DEFINED__
11093 #define __ISpeechRecoResult2_FWD_DEFINED__
11094 typedef interface ISpeechRecoResult2 ISpeechRecoResult2;
11095 #ifdef __cplusplus
11096 interface ISpeechRecoResult2;
11097 #endif /* __cplusplus */
11098 #endif
11099 
11100 #ifndef __ISpeechRecoResultTimes_FWD_DEFINED__
11101 #define __ISpeechRecoResultTimes_FWD_DEFINED__
11102 typedef interface ISpeechRecoResultTimes ISpeechRecoResultTimes;
11103 #ifdef __cplusplus
11104 interface ISpeechRecoResultTimes;
11105 #endif /* __cplusplus */
11106 #endif
11107 
11108 #ifndef __ISpeechPhraseAlternate_FWD_DEFINED__
11109 #define __ISpeechPhraseAlternate_FWD_DEFINED__
11110 typedef interface ISpeechPhraseAlternate ISpeechPhraseAlternate;
11111 #ifdef __cplusplus
11112 interface ISpeechPhraseAlternate;
11113 #endif /* __cplusplus */
11114 #endif
11115 
11116 #ifndef __ISpeechPhraseAlternates_FWD_DEFINED__
11117 #define __ISpeechPhraseAlternates_FWD_DEFINED__
11118 typedef interface ISpeechPhraseAlternates ISpeechPhraseAlternates;
11119 #ifdef __cplusplus
11120 interface ISpeechPhraseAlternates;
11121 #endif /* __cplusplus */
11122 #endif
11123 
11124 #ifndef __ISpeechPhraseInfo_FWD_DEFINED__
11125 #define __ISpeechPhraseInfo_FWD_DEFINED__
11126 typedef interface ISpeechPhraseInfo ISpeechPhraseInfo;
11127 #ifdef __cplusplus
11128 interface ISpeechPhraseInfo;
11129 #endif /* __cplusplus */
11130 #endif
11131 
11132 #ifndef __ISpeechPhraseElement_FWD_DEFINED__
11133 #define __ISpeechPhraseElement_FWD_DEFINED__
11134 typedef interface ISpeechPhraseElement ISpeechPhraseElement;
11135 #ifdef __cplusplus
11136 interface ISpeechPhraseElement;
11137 #endif /* __cplusplus */
11138 #endif
11139 
11140 #ifndef __ISpeechPhraseElements_FWD_DEFINED__
11141 #define __ISpeechPhraseElements_FWD_DEFINED__
11142 typedef interface ISpeechPhraseElements ISpeechPhraseElements;
11143 #ifdef __cplusplus
11144 interface ISpeechPhraseElements;
11145 #endif /* __cplusplus */
11146 #endif
11147 
11148 #ifndef __ISpeechPhraseReplacement_FWD_DEFINED__
11149 #define __ISpeechPhraseReplacement_FWD_DEFINED__
11150 typedef interface ISpeechPhraseReplacement ISpeechPhraseReplacement;
11151 #ifdef __cplusplus
11152 interface ISpeechPhraseReplacement;
11153 #endif /* __cplusplus */
11154 #endif
11155 
11156 #ifndef __ISpeechPhraseReplacements_FWD_DEFINED__
11157 #define __ISpeechPhraseReplacements_FWD_DEFINED__
11158 typedef interface ISpeechPhraseReplacements ISpeechPhraseReplacements;
11159 #ifdef __cplusplus
11160 interface ISpeechPhraseReplacements;
11161 #endif /* __cplusplus */
11162 #endif
11163 
11164 #ifndef __ISpeechPhraseProperty_FWD_DEFINED__
11165 #define __ISpeechPhraseProperty_FWD_DEFINED__
11166 typedef interface ISpeechPhraseProperty ISpeechPhraseProperty;
11167 #ifdef __cplusplus
11168 interface ISpeechPhraseProperty;
11169 #endif /* __cplusplus */
11170 #endif
11171 
11172 #ifndef __ISpeechPhraseProperties_FWD_DEFINED__
11173 #define __ISpeechPhraseProperties_FWD_DEFINED__
11174 typedef interface ISpeechPhraseProperties ISpeechPhraseProperties;
11175 #ifdef __cplusplus
11176 interface ISpeechPhraseProperties;
11177 #endif /* __cplusplus */
11178 #endif
11179 
11180 #ifndef __ISpeechPhraseRule_FWD_DEFINED__
11181 #define __ISpeechPhraseRule_FWD_DEFINED__
11182 typedef interface ISpeechPhraseRule ISpeechPhraseRule;
11183 #ifdef __cplusplus
11184 interface ISpeechPhraseRule;
11185 #endif /* __cplusplus */
11186 #endif
11187 
11188 #ifndef __ISpeechPhraseRules_FWD_DEFINED__
11189 #define __ISpeechPhraseRules_FWD_DEFINED__
11190 typedef interface ISpeechPhraseRules ISpeechPhraseRules;
11191 #ifdef __cplusplus
11192 interface ISpeechPhraseRules;
11193 #endif /* __cplusplus */
11194 #endif
11195 
11196 #ifndef __ISpeechLexicon_FWD_DEFINED__
11197 #define __ISpeechLexicon_FWD_DEFINED__
11198 typedef interface ISpeechLexicon ISpeechLexicon;
11199 #ifdef __cplusplus
11200 interface ISpeechLexicon;
11201 #endif /* __cplusplus */
11202 #endif
11203 
11204 #ifndef __ISpeechLexiconWords_FWD_DEFINED__
11205 #define __ISpeechLexiconWords_FWD_DEFINED__
11206 typedef interface ISpeechLexiconWords ISpeechLexiconWords;
11207 #ifdef __cplusplus
11208 interface ISpeechLexiconWords;
11209 #endif /* __cplusplus */
11210 #endif
11211 
11212 #ifndef __ISpeechLexiconWord_FWD_DEFINED__
11213 #define __ISpeechLexiconWord_FWD_DEFINED__
11214 typedef interface ISpeechLexiconWord ISpeechLexiconWord;
11215 #ifdef __cplusplus
11216 interface ISpeechLexiconWord;
11217 #endif /* __cplusplus */
11218 #endif
11219 
11220 #ifndef __ISpeechLexiconPronunciations_FWD_DEFINED__
11221 #define __ISpeechLexiconPronunciations_FWD_DEFINED__
11222 typedef interface ISpeechLexiconPronunciations ISpeechLexiconPronunciations;
11223 #ifdef __cplusplus
11224 interface ISpeechLexiconPronunciations;
11225 #endif /* __cplusplus */
11226 #endif
11227 
11228 #ifndef __ISpeechLexiconPronunciation_FWD_DEFINED__
11229 #define __ISpeechLexiconPronunciation_FWD_DEFINED__
11230 typedef interface ISpeechLexiconPronunciation ISpeechLexiconPronunciation;
11231 #ifdef __cplusplus
11232 interface ISpeechLexiconPronunciation;
11233 #endif /* __cplusplus */
11234 #endif
11235 
11236 typedef LONG SpeechLanguageId;
11237 #define __SpeechStringConstants_MODULE_DEFINED__
11238 typedef enum DISPID_SpeechDataKey {
11239     DISPID_SDKSetBinaryValue = 1,
11240     DISPID_SDKGetBinaryValue = 2,
11241     DISPID_SDKSetStringValue = 3,
11242     DISPID_SDKGetStringValue = 4,
11243     DISPID_SDKSetLongValue = 5,
11244     DISPID_SDKGetlongValue = 6,
11245     DISPID_SDKOpenKey = 7,
11246     DISPID_SDKCreateKey = 8,
11247     DISPID_SDKDeleteKey = 9,
11248     DISPID_SDKDeleteValue = 10,
11249     DISPID_SDKEnumKeys = 11,
11250     DISPID_SDKEnumValues = 12
11251 } DISPID_SpeechDataKey;
11252 typedef enum DISPID_SpeechObjectToken {
11253     DISPID_SOTId = 1,
11254     DISPID_SOTDataKey = 2,
11255     DISPID_SOTCategory = 3,
11256     DISPID_SOTGetDescription = 4,
11257     DISPID_SOTSetId = 5,
11258     DISPID_SOTGetAttribute = 6,
11259     DISPID_SOTCreateInstance = 7,
11260     DISPID_SOTRemove = 8,
11261     DISPID_SOTGetStorageFileName = 9,
11262     DISPID_SOTRemoveStorageFileName = 10,
11263     DISPID_SOTIsUISupported = 11,
11264     DISPID_SOTDisplayUI = 12,
11265     DISPID_SOTMatchesAttributes = 13
11266 } DISPID_SpeechObjectToken;
11267 typedef enum SpeechDataKeyLocation {
11268     SDKLDefaultLocation = SPDKL_DefaultLocation,
11269     SDKLCurrentUser = SPDKL_CurrentUser,
11270     SDKLLocalMachine = SPDKL_LocalMachine,
11271     SDKLCurrentConfig = SPDKL_CurrentConfig
11272 } SpeechDataKeyLocation;
11273 typedef enum SpeechTokenContext {
11274     STCInprocServer = CLSCTX_INPROC_SERVER,
11275     STCInprocHandler = CLSCTX_INPROC_HANDLER,
11276     STCLocalServer = CLSCTX_LOCAL_SERVER,
11277     STCRemoteServer = CLSCTX_REMOTE_SERVER,
11278     STCAll = ((CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER) | CLSCTX_LOCAL_SERVER) | CLSCTX_REMOTE_SERVER
11279 } SpeechTokenContext;
11280 typedef enum SpeechTokenShellFolder {
11281     STSF_AppData = 0x1a,
11282     STSF_LocalAppData = 0x1c,
11283     STSF_CommonAppData = 0x23,
11284     STSF_FlagCreate = 0x8000
11285 } SpeechTokenShellFolder;
11286 typedef enum DISPID_SpeechObjectTokens {
11287     DISPID_SOTsCount = 1,
11288     DISPID_SOTsItem = DISPID_VALUE,
11289     DISPID_SOTs_NewEnum = DISPID_NEWENUM
11290 } DISPID_SpeechObjectTokens;
11291 typedef enum DISPID_SpeechObjectTokenCategory {
11292     DISPID_SOTCId = 1,
11293     DISPID_SOTCDefault = 2,
11294     DISPID_SOTCSetId = 3,
11295     DISPID_SOTCGetDataKey = 4,
11296     DISPID_SOTCEnumerateTokens = 5
11297 } DISPID_SpeechObjectTokenCategory;
11298 /*****************************************************************************
11299  * ISpeechDataKey interface
11300  */
11301 #ifndef __ISpeechDataKey_INTERFACE_DEFINED__
11302 #define __ISpeechDataKey_INTERFACE_DEFINED__
11303 
11304 DEFINE_GUID(IID_ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd);
11305 #if defined(__cplusplus) && !defined(CINTERFACE)
11306 MIDL_INTERFACE("ce17c09b-4efa-44d5-a4c9-59d9585ab0cd")
11307 ISpeechDataKey : public IDispatch
11308 {
11309     virtual HRESULT STDMETHODCALLTYPE SetBinaryValue(
11310         const BSTR ValueName,
11311         VARIANT Value) = 0;
11312 
11313     virtual HRESULT STDMETHODCALLTYPE GetBinaryValue(
11314         const BSTR ValueName,
11315         VARIANT *Value) = 0;
11316 
11317     virtual HRESULT STDMETHODCALLTYPE SetStringValue(
11318         const BSTR ValueName,
11319         const BSTR Value) = 0;
11320 
11321     virtual HRESULT STDMETHODCALLTYPE GetStringValue(
11322         const BSTR ValueName,
11323         BSTR *Value) = 0;
11324 
11325     virtual HRESULT STDMETHODCALLTYPE SetLongValue(
11326         const BSTR ValueName,
11327         LONG Value) = 0;
11328 
11329     virtual HRESULT STDMETHODCALLTYPE GetLongValue(
11330         const BSTR ValueName,
11331         LONG *Value) = 0;
11332 
11333     virtual HRESULT STDMETHODCALLTYPE OpenKey(
11334         const BSTR SubKeyName,
11335         ISpeechDataKey **SubKey) = 0;
11336 
11337     virtual HRESULT STDMETHODCALLTYPE CreateKey(
11338         const BSTR SubKeyName,
11339         ISpeechDataKey **SubKey) = 0;
11340 
11341     virtual HRESULT STDMETHODCALLTYPE DeleteKey(
11342         const BSTR SubKeyName) = 0;
11343 
11344     virtual HRESULT STDMETHODCALLTYPE DeleteValue(
11345         const BSTR ValueName) = 0;
11346 
11347     virtual HRESULT STDMETHODCALLTYPE EnumKeys(
11348         LONG Index,
11349         BSTR *SubKeyName) = 0;
11350 
11351     virtual HRESULT STDMETHODCALLTYPE EnumValues(
11352         LONG Index,
11353         BSTR *ValueName) = 0;
11354 
11355 };
11356 #ifdef __CRT_UUID_DECL
11357 __CRT_UUID_DECL(ISpeechDataKey, 0xce17c09b, 0x4efa, 0x44d5, 0xa4,0xc9, 0x59,0xd9,0x58,0x5a,0xb0,0xcd)
11358 #endif
11359 #else
11360 typedef struct ISpeechDataKeyVtbl {
11361     BEGIN_INTERFACE
11362 
11363     /*** IUnknown methods ***/
11364     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11365         ISpeechDataKey *This,
11366         REFIID riid,
11367         void **ppvObject);
11368 
11369     ULONG (STDMETHODCALLTYPE *AddRef)(
11370         ISpeechDataKey *This);
11371 
11372     ULONG (STDMETHODCALLTYPE *Release)(
11373         ISpeechDataKey *This);
11374 
11375     /*** IDispatch methods ***/
11376     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11377         ISpeechDataKey *This,
11378         UINT *pctinfo);
11379 
11380     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11381         ISpeechDataKey *This,
11382         UINT iTInfo,
11383         LCID lcid,
11384         ITypeInfo **ppTInfo);
11385 
11386     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11387         ISpeechDataKey *This,
11388         REFIID riid,
11389         LPOLESTR *rgszNames,
11390         UINT cNames,
11391         LCID lcid,
11392         DISPID *rgDispId);
11393 
11394     HRESULT (STDMETHODCALLTYPE *Invoke)(
11395         ISpeechDataKey *This,
11396         DISPID dispIdMember,
11397         REFIID riid,
11398         LCID lcid,
11399         WORD wFlags,
11400         DISPPARAMS *pDispParams,
11401         VARIANT *pVarResult,
11402         EXCEPINFO *pExcepInfo,
11403         UINT *puArgErr);
11404 
11405     /*** ISpeechDataKey methods ***/
11406     HRESULT (STDMETHODCALLTYPE *SetBinaryValue)(
11407         ISpeechDataKey *This,
11408         const BSTR ValueName,
11409         VARIANT Value);
11410 
11411     HRESULT (STDMETHODCALLTYPE *GetBinaryValue)(
11412         ISpeechDataKey *This,
11413         const BSTR ValueName,
11414         VARIANT *Value);
11415 
11416     HRESULT (STDMETHODCALLTYPE *SetStringValue)(
11417         ISpeechDataKey *This,
11418         const BSTR ValueName,
11419         const BSTR Value);
11420 
11421     HRESULT (STDMETHODCALLTYPE *GetStringValue)(
11422         ISpeechDataKey *This,
11423         const BSTR ValueName,
11424         BSTR *Value);
11425 
11426     HRESULT (STDMETHODCALLTYPE *SetLongValue)(
11427         ISpeechDataKey *This,
11428         const BSTR ValueName,
11429         LONG Value);
11430 
11431     HRESULT (STDMETHODCALLTYPE *GetLongValue)(
11432         ISpeechDataKey *This,
11433         const BSTR ValueName,
11434         LONG *Value);
11435 
11436     HRESULT (STDMETHODCALLTYPE *OpenKey)(
11437         ISpeechDataKey *This,
11438         const BSTR SubKeyName,
11439         ISpeechDataKey **SubKey);
11440 
11441     HRESULT (STDMETHODCALLTYPE *CreateKey)(
11442         ISpeechDataKey *This,
11443         const BSTR SubKeyName,
11444         ISpeechDataKey **SubKey);
11445 
11446     HRESULT (STDMETHODCALLTYPE *DeleteKey)(
11447         ISpeechDataKey *This,
11448         const BSTR SubKeyName);
11449 
11450     HRESULT (STDMETHODCALLTYPE *DeleteValue)(
11451         ISpeechDataKey *This,
11452         const BSTR ValueName);
11453 
11454     HRESULT (STDMETHODCALLTYPE *EnumKeys)(
11455         ISpeechDataKey *This,
11456         LONG Index,
11457         BSTR *SubKeyName);
11458 
11459     HRESULT (STDMETHODCALLTYPE *EnumValues)(
11460         ISpeechDataKey *This,
11461         LONG Index,
11462         BSTR *ValueName);
11463 
11464     END_INTERFACE
11465 } ISpeechDataKeyVtbl;
11466 
11467 interface ISpeechDataKey {
11468     CONST_VTBL ISpeechDataKeyVtbl* lpVtbl;
11469 };
11470 
11471 #ifdef COBJMACROS
11472 #ifndef WIDL_C_INLINE_WRAPPERS
11473 /*** IUnknown methods ***/
11474 #define ISpeechDataKey_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11475 #define ISpeechDataKey_AddRef(This) (This)->lpVtbl->AddRef(This)
11476 #define ISpeechDataKey_Release(This) (This)->lpVtbl->Release(This)
11477 /*** IDispatch methods ***/
11478 #define ISpeechDataKey_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11479 #define ISpeechDataKey_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11480 #define ISpeechDataKey_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11481 #define ISpeechDataKey_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11482 /*** ISpeechDataKey methods ***/
11483 #define ISpeechDataKey_SetBinaryValue(This,ValueName,Value) (This)->lpVtbl->SetBinaryValue(This,ValueName,Value)
11484 #define ISpeechDataKey_GetBinaryValue(This,ValueName,Value) (This)->lpVtbl->GetBinaryValue(This,ValueName,Value)
11485 #define ISpeechDataKey_SetStringValue(This,ValueName,Value) (This)->lpVtbl->SetStringValue(This,ValueName,Value)
11486 #define ISpeechDataKey_GetStringValue(This,ValueName,Value) (This)->lpVtbl->GetStringValue(This,ValueName,Value)
11487 #define ISpeechDataKey_SetLongValue(This,ValueName,Value) (This)->lpVtbl->SetLongValue(This,ValueName,Value)
11488 #define ISpeechDataKey_GetLongValue(This,ValueName,Value) (This)->lpVtbl->GetLongValue(This,ValueName,Value)
11489 #define ISpeechDataKey_OpenKey(This,SubKeyName,SubKey) (This)->lpVtbl->OpenKey(This,SubKeyName,SubKey)
11490 #define ISpeechDataKey_CreateKey(This,SubKeyName,SubKey) (This)->lpVtbl->CreateKey(This,SubKeyName,SubKey)
11491 #define ISpeechDataKey_DeleteKey(This,SubKeyName) (This)->lpVtbl->DeleteKey(This,SubKeyName)
11492 #define ISpeechDataKey_DeleteValue(This,ValueName) (This)->lpVtbl->DeleteValue(This,ValueName)
11493 #define ISpeechDataKey_EnumKeys(This,Index,SubKeyName) (This)->lpVtbl->EnumKeys(This,Index,SubKeyName)
11494 #define ISpeechDataKey_EnumValues(This,Index,ValueName) (This)->lpVtbl->EnumValues(This,Index,ValueName)
11495 #else
11496 /*** IUnknown methods ***/
11497 static FORCEINLINE HRESULT ISpeechDataKey_QueryInterface(ISpeechDataKey* This,REFIID riid,void **ppvObject) {
11498     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11499 }
11500 static FORCEINLINE ULONG ISpeechDataKey_AddRef(ISpeechDataKey* This) {
11501     return This->lpVtbl->AddRef(This);
11502 }
11503 static FORCEINLINE ULONG ISpeechDataKey_Release(ISpeechDataKey* This) {
11504     return This->lpVtbl->Release(This);
11505 }
11506 /*** IDispatch methods ***/
11507 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfoCount(ISpeechDataKey* This,UINT *pctinfo) {
11508     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11509 }
11510 static FORCEINLINE HRESULT ISpeechDataKey_GetTypeInfo(ISpeechDataKey* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11511     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11512 }
11513 static FORCEINLINE HRESULT ISpeechDataKey_GetIDsOfNames(ISpeechDataKey* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11514     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11515 }
11516 static FORCEINLINE HRESULT ISpeechDataKey_Invoke(ISpeechDataKey* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11517     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11518 }
11519 /*** ISpeechDataKey methods ***/
11520 static FORCEINLINE HRESULT ISpeechDataKey_SetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT Value) {
11521     return This->lpVtbl->SetBinaryValue(This,ValueName,Value);
11522 }
11523 static FORCEINLINE HRESULT ISpeechDataKey_GetBinaryValue(ISpeechDataKey* This,const BSTR ValueName,VARIANT *Value) {
11524     return This->lpVtbl->GetBinaryValue(This,ValueName,Value);
11525 }
11526 static FORCEINLINE HRESULT ISpeechDataKey_SetStringValue(ISpeechDataKey* This,const BSTR ValueName,const BSTR Value) {
11527     return This->lpVtbl->SetStringValue(This,ValueName,Value);
11528 }
11529 static FORCEINLINE HRESULT ISpeechDataKey_GetStringValue(ISpeechDataKey* This,const BSTR ValueName,BSTR *Value) {
11530     return This->lpVtbl->GetStringValue(This,ValueName,Value);
11531 }
11532 static FORCEINLINE HRESULT ISpeechDataKey_SetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG Value) {
11533     return This->lpVtbl->SetLongValue(This,ValueName,Value);
11534 }
11535 static FORCEINLINE HRESULT ISpeechDataKey_GetLongValue(ISpeechDataKey* This,const BSTR ValueName,LONG *Value) {
11536     return This->lpVtbl->GetLongValue(This,ValueName,Value);
11537 }
11538 static FORCEINLINE HRESULT ISpeechDataKey_OpenKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
11539     return This->lpVtbl->OpenKey(This,SubKeyName,SubKey);
11540 }
11541 static FORCEINLINE HRESULT ISpeechDataKey_CreateKey(ISpeechDataKey* This,const BSTR SubKeyName,ISpeechDataKey **SubKey) {
11542     return This->lpVtbl->CreateKey(This,SubKeyName,SubKey);
11543 }
11544 static FORCEINLINE HRESULT ISpeechDataKey_DeleteKey(ISpeechDataKey* This,const BSTR SubKeyName) {
11545     return This->lpVtbl->DeleteKey(This,SubKeyName);
11546 }
11547 static FORCEINLINE HRESULT ISpeechDataKey_DeleteValue(ISpeechDataKey* This,const BSTR ValueName) {
11548     return This->lpVtbl->DeleteValue(This,ValueName);
11549 }
11550 static FORCEINLINE HRESULT ISpeechDataKey_EnumKeys(ISpeechDataKey* This,LONG Index,BSTR *SubKeyName) {
11551     return This->lpVtbl->EnumKeys(This,Index,SubKeyName);
11552 }
11553 static FORCEINLINE HRESULT ISpeechDataKey_EnumValues(ISpeechDataKey* This,LONG Index,BSTR *ValueName) {
11554     return This->lpVtbl->EnumValues(This,Index,ValueName);
11555 }
11556 #endif
11557 #endif
11558 
11559 #endif
11560 
11561 
11562 #endif  /* __ISpeechDataKey_INTERFACE_DEFINED__ */
11563 
11564 /*****************************************************************************
11565  * ISpeechObjectToken interface
11566  */
11567 #ifndef __ISpeechObjectToken_INTERFACE_DEFINED__
11568 #define __ISpeechObjectToken_INTERFACE_DEFINED__
11569 
11570 DEFINE_GUID(IID_ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c);
11571 #if defined(__cplusplus) && !defined(CINTERFACE)
11572 MIDL_INTERFACE("c74a3adc-b727-4500-a84a-b526721c8b8c")
11573 ISpeechObjectToken : public IDispatch
11574 {
11575     virtual HRESULT STDMETHODCALLTYPE get_Id(
11576         BSTR *ObjectId) = 0;
11577 
11578     virtual HRESULT STDMETHODCALLTYPE get_DataKey(
11579         ISpeechDataKey **DataKey) = 0;
11580 
11581     virtual HRESULT STDMETHODCALLTYPE get_Category(
11582         ISpeechObjectTokenCategory **Category) = 0;
11583 
11584     virtual HRESULT STDMETHODCALLTYPE GetDescription(
11585         LONG Locale,
11586         BSTR *Description) = 0;
11587 
11588     virtual HRESULT STDMETHODCALLTYPE SetId(
11589         BSTR Id,
11590         BSTR CategoryID = L"",
11591         VARIANT_BOOL CreateIfNotExist = 0) = 0;
11592 
11593     virtual HRESULT STDMETHODCALLTYPE GetAttribute(
11594         BSTR AttributeName,
11595         BSTR *AttributeValue) = 0;
11596 
11597     virtual HRESULT STDMETHODCALLTYPE CreateInstance(
11598         IUnknown *pUnkOuter,
11599         SpeechTokenContext ClsContext,
11600         IUnknown **Object) = 0;
11601 
11602     virtual HRESULT STDMETHODCALLTYPE Remove(
11603         BSTR ObjectStorageCLSID) = 0;
11604 
11605     virtual HRESULT STDMETHODCALLTYPE GetStorageFileName(
11606         BSTR ObjectStorageCLSID,
11607         BSTR KeyName,
11608         BSTR FileName,
11609         SpeechTokenShellFolder Folder,
11610         BSTR *FilePath) = 0;
11611 
11612     virtual HRESULT STDMETHODCALLTYPE RemoveStorageFileName(
11613         BSTR ObjectStorageCLSID,
11614         BSTR KeyName,
11615         VARIANT_BOOL DeleteFile) = 0;
11616 
11617     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
11618         const BSTR TypeOfUI,
11619         const VARIANT *ExtraData,
11620         IUnknown *Object,
11621         VARIANT_BOOL *Supported) = 0;
11622 
11623     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
11624         LONG hWnd,
11625         BSTR Title,
11626         const BSTR TypeOfUI,
11627         const VARIANT *ExtraData = 0,
11628         IUnknown *Object = 0) = 0;
11629 
11630     virtual HRESULT STDMETHODCALLTYPE MatchesAttributes(
11631         BSTR Attributes,
11632         VARIANT_BOOL *Matches) = 0;
11633 
11634 };
11635 #ifdef __CRT_UUID_DECL
11636 __CRT_UUID_DECL(ISpeechObjectToken, 0xc74a3adc, 0xb727, 0x4500, 0xa8,0x4a, 0xb5,0x26,0x72,0x1c,0x8b,0x8c)
11637 #endif
11638 #else
11639 typedef struct ISpeechObjectTokenVtbl {
11640     BEGIN_INTERFACE
11641 
11642     /*** IUnknown methods ***/
11643     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11644         ISpeechObjectToken *This,
11645         REFIID riid,
11646         void **ppvObject);
11647 
11648     ULONG (STDMETHODCALLTYPE *AddRef)(
11649         ISpeechObjectToken *This);
11650 
11651     ULONG (STDMETHODCALLTYPE *Release)(
11652         ISpeechObjectToken *This);
11653 
11654     /*** IDispatch methods ***/
11655     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11656         ISpeechObjectToken *This,
11657         UINT *pctinfo);
11658 
11659     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11660         ISpeechObjectToken *This,
11661         UINT iTInfo,
11662         LCID lcid,
11663         ITypeInfo **ppTInfo);
11664 
11665     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11666         ISpeechObjectToken *This,
11667         REFIID riid,
11668         LPOLESTR *rgszNames,
11669         UINT cNames,
11670         LCID lcid,
11671         DISPID *rgDispId);
11672 
11673     HRESULT (STDMETHODCALLTYPE *Invoke)(
11674         ISpeechObjectToken *This,
11675         DISPID dispIdMember,
11676         REFIID riid,
11677         LCID lcid,
11678         WORD wFlags,
11679         DISPPARAMS *pDispParams,
11680         VARIANT *pVarResult,
11681         EXCEPINFO *pExcepInfo,
11682         UINT *puArgErr);
11683 
11684     /*** ISpeechObjectToken methods ***/
11685     HRESULT (STDMETHODCALLTYPE *get_Id)(
11686         ISpeechObjectToken *This,
11687         BSTR *ObjectId);
11688 
11689     HRESULT (STDMETHODCALLTYPE *get_DataKey)(
11690         ISpeechObjectToken *This,
11691         ISpeechDataKey **DataKey);
11692 
11693     HRESULT (STDMETHODCALLTYPE *get_Category)(
11694         ISpeechObjectToken *This,
11695         ISpeechObjectTokenCategory **Category);
11696 
11697     HRESULT (STDMETHODCALLTYPE *GetDescription)(
11698         ISpeechObjectToken *This,
11699         LONG Locale,
11700         BSTR *Description);
11701 
11702     HRESULT (STDMETHODCALLTYPE *SetId)(
11703         ISpeechObjectToken *This,
11704         BSTR Id,
11705         BSTR CategoryID,
11706         VARIANT_BOOL CreateIfNotExist);
11707 
11708     HRESULT (STDMETHODCALLTYPE *GetAttribute)(
11709         ISpeechObjectToken *This,
11710         BSTR AttributeName,
11711         BSTR *AttributeValue);
11712 
11713     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
11714         ISpeechObjectToken *This,
11715         IUnknown *pUnkOuter,
11716         SpeechTokenContext ClsContext,
11717         IUnknown **Object);
11718 
11719     HRESULT (STDMETHODCALLTYPE *Remove)(
11720         ISpeechObjectToken *This,
11721         BSTR ObjectStorageCLSID);
11722 
11723     HRESULT (STDMETHODCALLTYPE *GetStorageFileName)(
11724         ISpeechObjectToken *This,
11725         BSTR ObjectStorageCLSID,
11726         BSTR KeyName,
11727         BSTR FileName,
11728         SpeechTokenShellFolder Folder,
11729         BSTR *FilePath);
11730 
11731     HRESULT (STDMETHODCALLTYPE *RemoveStorageFileName)(
11732         ISpeechObjectToken *This,
11733         BSTR ObjectStorageCLSID,
11734         BSTR KeyName,
11735         VARIANT_BOOL DeleteFile);
11736 
11737     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
11738         ISpeechObjectToken *This,
11739         const BSTR TypeOfUI,
11740         const VARIANT *ExtraData,
11741         IUnknown *Object,
11742         VARIANT_BOOL *Supported);
11743 
11744     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
11745         ISpeechObjectToken *This,
11746         LONG hWnd,
11747         BSTR Title,
11748         const BSTR TypeOfUI,
11749         const VARIANT *ExtraData,
11750         IUnknown *Object);
11751 
11752     HRESULT (STDMETHODCALLTYPE *MatchesAttributes)(
11753         ISpeechObjectToken *This,
11754         BSTR Attributes,
11755         VARIANT_BOOL *Matches);
11756 
11757     END_INTERFACE
11758 } ISpeechObjectTokenVtbl;
11759 
11760 interface ISpeechObjectToken {
11761     CONST_VTBL ISpeechObjectTokenVtbl* lpVtbl;
11762 };
11763 
11764 #ifdef COBJMACROS
11765 #ifndef WIDL_C_INLINE_WRAPPERS
11766 /*** IUnknown methods ***/
11767 #define ISpeechObjectToken_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11768 #define ISpeechObjectToken_AddRef(This) (This)->lpVtbl->AddRef(This)
11769 #define ISpeechObjectToken_Release(This) (This)->lpVtbl->Release(This)
11770 /*** IDispatch methods ***/
11771 #define ISpeechObjectToken_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11772 #define ISpeechObjectToken_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11773 #define ISpeechObjectToken_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11774 #define ISpeechObjectToken_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11775 /*** ISpeechObjectToken methods ***/
11776 #define ISpeechObjectToken_get_Id(This,ObjectId) (This)->lpVtbl->get_Id(This,ObjectId)
11777 #define ISpeechObjectToken_get_DataKey(This,DataKey) (This)->lpVtbl->get_DataKey(This,DataKey)
11778 #define ISpeechObjectToken_get_Category(This,Category) (This)->lpVtbl->get_Category(This,Category)
11779 #define ISpeechObjectToken_GetDescription(This,Locale,Description) (This)->lpVtbl->GetDescription(This,Locale,Description)
11780 #define ISpeechObjectToken_SetId(This,Id,CategoryID,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist)
11781 #define ISpeechObjectToken_GetAttribute(This,AttributeName,AttributeValue) (This)->lpVtbl->GetAttribute(This,AttributeName,AttributeValue)
11782 #define ISpeechObjectToken_CreateInstance(This,pUnkOuter,ClsContext,Object) (This)->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object)
11783 #define ISpeechObjectToken_Remove(This,ObjectStorageCLSID) (This)->lpVtbl->Remove(This,ObjectStorageCLSID)
11784 #define ISpeechObjectToken_GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath) (This)->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath)
11785 #define ISpeechObjectToken_RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile) (This)->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile)
11786 #define ISpeechObjectToken_IsUISupported(This,TypeOfUI,ExtraData,Object,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported)
11787 #define ISpeechObjectToken_DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object) (This)->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object)
11788 #define ISpeechObjectToken_MatchesAttributes(This,Attributes,Matches) (This)->lpVtbl->MatchesAttributes(This,Attributes,Matches)
11789 #else
11790 /*** IUnknown methods ***/
11791 static FORCEINLINE HRESULT ISpeechObjectToken_QueryInterface(ISpeechObjectToken* This,REFIID riid,void **ppvObject) {
11792     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11793 }
11794 static FORCEINLINE ULONG ISpeechObjectToken_AddRef(ISpeechObjectToken* This) {
11795     return This->lpVtbl->AddRef(This);
11796 }
11797 static FORCEINLINE ULONG ISpeechObjectToken_Release(ISpeechObjectToken* This) {
11798     return This->lpVtbl->Release(This);
11799 }
11800 /*** IDispatch methods ***/
11801 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfoCount(ISpeechObjectToken* This,UINT *pctinfo) {
11802     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11803 }
11804 static FORCEINLINE HRESULT ISpeechObjectToken_GetTypeInfo(ISpeechObjectToken* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11805     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11806 }
11807 static FORCEINLINE HRESULT ISpeechObjectToken_GetIDsOfNames(ISpeechObjectToken* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11808     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11809 }
11810 static FORCEINLINE HRESULT ISpeechObjectToken_Invoke(ISpeechObjectToken* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11811     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11812 }
11813 /*** ISpeechObjectToken methods ***/
11814 static FORCEINLINE HRESULT ISpeechObjectToken_get_Id(ISpeechObjectToken* This,BSTR *ObjectId) {
11815     return This->lpVtbl->get_Id(This,ObjectId);
11816 }
11817 static FORCEINLINE HRESULT ISpeechObjectToken_get_DataKey(ISpeechObjectToken* This,ISpeechDataKey **DataKey) {
11818     return This->lpVtbl->get_DataKey(This,DataKey);
11819 }
11820 static FORCEINLINE HRESULT ISpeechObjectToken_get_Category(ISpeechObjectToken* This,ISpeechObjectTokenCategory **Category) {
11821     return This->lpVtbl->get_Category(This,Category);
11822 }
11823 static FORCEINLINE HRESULT ISpeechObjectToken_GetDescription(ISpeechObjectToken* This,LONG Locale,BSTR *Description) {
11824     return This->lpVtbl->GetDescription(This,Locale,Description);
11825 }
11826 static FORCEINLINE HRESULT ISpeechObjectToken_SetId(ISpeechObjectToken* This,BSTR Id,BSTR CategoryID,VARIANT_BOOL CreateIfNotExist) {
11827     return This->lpVtbl->SetId(This,Id,CategoryID,CreateIfNotExist);
11828 }
11829 static FORCEINLINE HRESULT ISpeechObjectToken_GetAttribute(ISpeechObjectToken* This,BSTR AttributeName,BSTR *AttributeValue) {
11830     return This->lpVtbl->GetAttribute(This,AttributeName,AttributeValue);
11831 }
11832 static FORCEINLINE HRESULT ISpeechObjectToken_CreateInstance(ISpeechObjectToken* This,IUnknown *pUnkOuter,SpeechTokenContext ClsContext,IUnknown **Object) {
11833     return This->lpVtbl->CreateInstance(This,pUnkOuter,ClsContext,Object);
11834 }
11835 static FORCEINLINE HRESULT ISpeechObjectToken_Remove(ISpeechObjectToken* This,BSTR ObjectStorageCLSID) {
11836     return This->lpVtbl->Remove(This,ObjectStorageCLSID);
11837 }
11838 static FORCEINLINE HRESULT ISpeechObjectToken_GetStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,BSTR FileName,SpeechTokenShellFolder Folder,BSTR *FilePath) {
11839     return This->lpVtbl->GetStorageFileName(This,ObjectStorageCLSID,KeyName,FileName,Folder,FilePath);
11840 }
11841 static FORCEINLINE HRESULT ISpeechObjectToken_RemoveStorageFileName(ISpeechObjectToken* This,BSTR ObjectStorageCLSID,BSTR KeyName,VARIANT_BOOL DeleteFile) {
11842     return This->lpVtbl->RemoveStorageFileName(This,ObjectStorageCLSID,KeyName,DeleteFile);
11843 }
11844 static FORCEINLINE HRESULT ISpeechObjectToken_IsUISupported(ISpeechObjectToken* This,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object,VARIANT_BOOL *Supported) {
11845     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Object,Supported);
11846 }
11847 static FORCEINLINE HRESULT ISpeechObjectToken_DisplayUI(ISpeechObjectToken* This,LONG hWnd,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData,IUnknown *Object) {
11848     return This->lpVtbl->DisplayUI(This,hWnd,Title,TypeOfUI,ExtraData,Object);
11849 }
11850 static FORCEINLINE HRESULT ISpeechObjectToken_MatchesAttributes(ISpeechObjectToken* This,BSTR Attributes,VARIANT_BOOL *Matches) {
11851     return This->lpVtbl->MatchesAttributes(This,Attributes,Matches);
11852 }
11853 #endif
11854 #endif
11855 
11856 #endif
11857 
11858 
11859 #endif  /* __ISpeechObjectToken_INTERFACE_DEFINED__ */
11860 
11861 /*****************************************************************************
11862  * ISpeechObjectTokens interface
11863  */
11864 #ifndef __ISpeechObjectTokens_INTERFACE_DEFINED__
11865 #define __ISpeechObjectTokens_INTERFACE_DEFINED__
11866 
11867 DEFINE_GUID(IID_ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f);
11868 #if defined(__cplusplus) && !defined(CINTERFACE)
11869 MIDL_INTERFACE("9285b776-2e7b-4bc0-b53e-580eb6fa967f")
11870 ISpeechObjectTokens : public IDispatch
11871 {
11872     virtual HRESULT STDMETHODCALLTYPE get_Count(
11873         LONG *Count) = 0;
11874 
11875     virtual HRESULT STDMETHODCALLTYPE Item(
11876         LONG Index,
11877         ISpeechObjectToken **Token) = 0;
11878 
11879     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
11880         IUnknown **ppEnumVARIANT) = 0;
11881 
11882 };
11883 #ifdef __CRT_UUID_DECL
11884 __CRT_UUID_DECL(ISpeechObjectTokens, 0x9285b776, 0x2e7b, 0x4bc0, 0xb5,0x3e, 0x58,0x0e,0xb6,0xfa,0x96,0x7f)
11885 #endif
11886 #else
11887 typedef struct ISpeechObjectTokensVtbl {
11888     BEGIN_INTERFACE
11889 
11890     /*** IUnknown methods ***/
11891     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11892         ISpeechObjectTokens *This,
11893         REFIID riid,
11894         void **ppvObject);
11895 
11896     ULONG (STDMETHODCALLTYPE *AddRef)(
11897         ISpeechObjectTokens *This);
11898 
11899     ULONG (STDMETHODCALLTYPE *Release)(
11900         ISpeechObjectTokens *This);
11901 
11902     /*** IDispatch methods ***/
11903     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
11904         ISpeechObjectTokens *This,
11905         UINT *pctinfo);
11906 
11907     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
11908         ISpeechObjectTokens *This,
11909         UINT iTInfo,
11910         LCID lcid,
11911         ITypeInfo **ppTInfo);
11912 
11913     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
11914         ISpeechObjectTokens *This,
11915         REFIID riid,
11916         LPOLESTR *rgszNames,
11917         UINT cNames,
11918         LCID lcid,
11919         DISPID *rgDispId);
11920 
11921     HRESULT (STDMETHODCALLTYPE *Invoke)(
11922         ISpeechObjectTokens *This,
11923         DISPID dispIdMember,
11924         REFIID riid,
11925         LCID lcid,
11926         WORD wFlags,
11927         DISPPARAMS *pDispParams,
11928         VARIANT *pVarResult,
11929         EXCEPINFO *pExcepInfo,
11930         UINT *puArgErr);
11931 
11932     /*** ISpeechObjectTokens methods ***/
11933     HRESULT (STDMETHODCALLTYPE *get_Count)(
11934         ISpeechObjectTokens *This,
11935         LONG *Count);
11936 
11937     HRESULT (STDMETHODCALLTYPE *Item)(
11938         ISpeechObjectTokens *This,
11939         LONG Index,
11940         ISpeechObjectToken **Token);
11941 
11942     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
11943         ISpeechObjectTokens *This,
11944         IUnknown **ppEnumVARIANT);
11945 
11946     END_INTERFACE
11947 } ISpeechObjectTokensVtbl;
11948 
11949 interface ISpeechObjectTokens {
11950     CONST_VTBL ISpeechObjectTokensVtbl* lpVtbl;
11951 };
11952 
11953 #ifdef COBJMACROS
11954 #ifndef WIDL_C_INLINE_WRAPPERS
11955 /*** IUnknown methods ***/
11956 #define ISpeechObjectTokens_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11957 #define ISpeechObjectTokens_AddRef(This) (This)->lpVtbl->AddRef(This)
11958 #define ISpeechObjectTokens_Release(This) (This)->lpVtbl->Release(This)
11959 /*** IDispatch methods ***/
11960 #define ISpeechObjectTokens_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
11961 #define ISpeechObjectTokens_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
11962 #define ISpeechObjectTokens_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
11963 #define ISpeechObjectTokens_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
11964 /*** ISpeechObjectTokens methods ***/
11965 #define ISpeechObjectTokens_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
11966 #define ISpeechObjectTokens_Item(This,Index,Token) (This)->lpVtbl->Item(This,Index,Token)
11967 #define ISpeechObjectTokens_get__NewEnum(This,ppEnumVARIANT) (This)->lpVtbl->get__NewEnum(This,ppEnumVARIANT)
11968 #else
11969 /*** IUnknown methods ***/
11970 static FORCEINLINE HRESULT ISpeechObjectTokens_QueryInterface(ISpeechObjectTokens* This,REFIID riid,void **ppvObject) {
11971     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11972 }
11973 static FORCEINLINE ULONG ISpeechObjectTokens_AddRef(ISpeechObjectTokens* This) {
11974     return This->lpVtbl->AddRef(This);
11975 }
11976 static FORCEINLINE ULONG ISpeechObjectTokens_Release(ISpeechObjectTokens* This) {
11977     return This->lpVtbl->Release(This);
11978 }
11979 /*** IDispatch methods ***/
11980 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfoCount(ISpeechObjectTokens* This,UINT *pctinfo) {
11981     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
11982 }
11983 static FORCEINLINE HRESULT ISpeechObjectTokens_GetTypeInfo(ISpeechObjectTokens* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
11984     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
11985 }
11986 static FORCEINLINE HRESULT ISpeechObjectTokens_GetIDsOfNames(ISpeechObjectTokens* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
11987     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
11988 }
11989 static FORCEINLINE HRESULT ISpeechObjectTokens_Invoke(ISpeechObjectTokens* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
11990     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
11991 }
11992 /*** ISpeechObjectTokens methods ***/
11993 static FORCEINLINE HRESULT ISpeechObjectTokens_get_Count(ISpeechObjectTokens* This,LONG *Count) {
11994     return This->lpVtbl->get_Count(This,Count);
11995 }
11996 static FORCEINLINE HRESULT ISpeechObjectTokens_Item(ISpeechObjectTokens* This,LONG Index,ISpeechObjectToken **Token) {
11997     return This->lpVtbl->Item(This,Index,Token);
11998 }
11999 static FORCEINLINE HRESULT ISpeechObjectTokens_get__NewEnum(ISpeechObjectTokens* This,IUnknown **ppEnumVARIANT) {
12000     return This->lpVtbl->get__NewEnum(This,ppEnumVARIANT);
12001 }
12002 #endif
12003 #endif
12004 
12005 #endif
12006 
12007 
12008 #endif  /* __ISpeechObjectTokens_INTERFACE_DEFINED__ */
12009 
12010 /*****************************************************************************
12011  * ISpeechObjectTokenCategory interface
12012  */
12013 #ifndef __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
12014 #define __ISpeechObjectTokenCategory_INTERFACE_DEFINED__
12015 
12016 DEFINE_GUID(IID_ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69);
12017 #if defined(__cplusplus) && !defined(CINTERFACE)
12018 MIDL_INTERFACE("ca7eac50-2d01-4145-86d4-5ae7d70f4469")
12019 ISpeechObjectTokenCategory : public IDispatch
12020 {
12021     virtual HRESULT STDMETHODCALLTYPE get_Id(
12022         BSTR *Id) = 0;
12023 
12024     virtual HRESULT STDMETHODCALLTYPE put_Default(
12025         const BSTR TokenId) = 0;
12026 
12027     virtual HRESULT STDMETHODCALLTYPE get_Default(
12028         BSTR *TokenId) = 0;
12029 
12030     virtual HRESULT STDMETHODCALLTYPE SetId(
12031         const BSTR Id,
12032         VARIANT_BOOL CreateIfNotExist = 0) = 0;
12033 
12034     virtual HRESULT STDMETHODCALLTYPE GetDataKey(
12035         SpeechDataKeyLocation Location,
12036         ISpeechDataKey **DataKey) = 0;
12037 
12038     virtual HRESULT STDMETHODCALLTYPE EnumerateTokens(
12039         BSTR RequiredAttributes,
12040         BSTR OptionalAttributes,
12041         ISpeechObjectTokens **Tokens) = 0;
12042 
12043 };
12044 #ifdef __CRT_UUID_DECL
12045 __CRT_UUID_DECL(ISpeechObjectTokenCategory, 0xca7eac50, 0x2d01, 0x4145, 0x86,0xd4, 0x5a,0xe7,0xd7,0x0f,0x44,0x69)
12046 #endif
12047 #else
12048 typedef struct ISpeechObjectTokenCategoryVtbl {
12049     BEGIN_INTERFACE
12050 
12051     /*** IUnknown methods ***/
12052     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12053         ISpeechObjectTokenCategory *This,
12054         REFIID riid,
12055         void **ppvObject);
12056 
12057     ULONG (STDMETHODCALLTYPE *AddRef)(
12058         ISpeechObjectTokenCategory *This);
12059 
12060     ULONG (STDMETHODCALLTYPE *Release)(
12061         ISpeechObjectTokenCategory *This);
12062 
12063     /*** IDispatch methods ***/
12064     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12065         ISpeechObjectTokenCategory *This,
12066         UINT *pctinfo);
12067 
12068     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12069         ISpeechObjectTokenCategory *This,
12070         UINT iTInfo,
12071         LCID lcid,
12072         ITypeInfo **ppTInfo);
12073 
12074     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12075         ISpeechObjectTokenCategory *This,
12076         REFIID riid,
12077         LPOLESTR *rgszNames,
12078         UINT cNames,
12079         LCID lcid,
12080         DISPID *rgDispId);
12081 
12082     HRESULT (STDMETHODCALLTYPE *Invoke)(
12083         ISpeechObjectTokenCategory *This,
12084         DISPID dispIdMember,
12085         REFIID riid,
12086         LCID lcid,
12087         WORD wFlags,
12088         DISPPARAMS *pDispParams,
12089         VARIANT *pVarResult,
12090         EXCEPINFO *pExcepInfo,
12091         UINT *puArgErr);
12092 
12093     /*** ISpeechObjectTokenCategory methods ***/
12094     HRESULT (STDMETHODCALLTYPE *get_Id)(
12095         ISpeechObjectTokenCategory *This,
12096         BSTR *Id);
12097 
12098     HRESULT (STDMETHODCALLTYPE *put_Default)(
12099         ISpeechObjectTokenCategory *This,
12100         const BSTR TokenId);
12101 
12102     HRESULT (STDMETHODCALLTYPE *get_Default)(
12103         ISpeechObjectTokenCategory *This,
12104         BSTR *TokenId);
12105 
12106     HRESULT (STDMETHODCALLTYPE *SetId)(
12107         ISpeechObjectTokenCategory *This,
12108         const BSTR Id,
12109         VARIANT_BOOL CreateIfNotExist);
12110 
12111     HRESULT (STDMETHODCALLTYPE *GetDataKey)(
12112         ISpeechObjectTokenCategory *This,
12113         SpeechDataKeyLocation Location,
12114         ISpeechDataKey **DataKey);
12115 
12116     HRESULT (STDMETHODCALLTYPE *EnumerateTokens)(
12117         ISpeechObjectTokenCategory *This,
12118         BSTR RequiredAttributes,
12119         BSTR OptionalAttributes,
12120         ISpeechObjectTokens **Tokens);
12121 
12122     END_INTERFACE
12123 } ISpeechObjectTokenCategoryVtbl;
12124 
12125 interface ISpeechObjectTokenCategory {
12126     CONST_VTBL ISpeechObjectTokenCategoryVtbl* lpVtbl;
12127 };
12128 
12129 #ifdef COBJMACROS
12130 #ifndef WIDL_C_INLINE_WRAPPERS
12131 /*** IUnknown methods ***/
12132 #define ISpeechObjectTokenCategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12133 #define ISpeechObjectTokenCategory_AddRef(This) (This)->lpVtbl->AddRef(This)
12134 #define ISpeechObjectTokenCategory_Release(This) (This)->lpVtbl->Release(This)
12135 /*** IDispatch methods ***/
12136 #define ISpeechObjectTokenCategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12137 #define ISpeechObjectTokenCategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12138 #define ISpeechObjectTokenCategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12139 #define ISpeechObjectTokenCategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12140 /*** ISpeechObjectTokenCategory methods ***/
12141 #define ISpeechObjectTokenCategory_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
12142 #define ISpeechObjectTokenCategory_put_Default(This,TokenId) (This)->lpVtbl->put_Default(This,TokenId)
12143 #define ISpeechObjectTokenCategory_get_Default(This,TokenId) (This)->lpVtbl->get_Default(This,TokenId)
12144 #define ISpeechObjectTokenCategory_SetId(This,Id,CreateIfNotExist) (This)->lpVtbl->SetId(This,Id,CreateIfNotExist)
12145 #define ISpeechObjectTokenCategory_GetDataKey(This,Location,DataKey) (This)->lpVtbl->GetDataKey(This,Location,DataKey)
12146 #define ISpeechObjectTokenCategory_EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens) (This)->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens)
12147 #else
12148 /*** IUnknown methods ***/
12149 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_QueryInterface(ISpeechObjectTokenCategory* This,REFIID riid,void **ppvObject) {
12150     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12151 }
12152 static FORCEINLINE ULONG ISpeechObjectTokenCategory_AddRef(ISpeechObjectTokenCategory* This) {
12153     return This->lpVtbl->AddRef(This);
12154 }
12155 static FORCEINLINE ULONG ISpeechObjectTokenCategory_Release(ISpeechObjectTokenCategory* This) {
12156     return This->lpVtbl->Release(This);
12157 }
12158 /*** IDispatch methods ***/
12159 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfoCount(ISpeechObjectTokenCategory* This,UINT *pctinfo) {
12160     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12161 }
12162 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetTypeInfo(ISpeechObjectTokenCategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12163     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12164 }
12165 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetIDsOfNames(ISpeechObjectTokenCategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12166     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12167 }
12168 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_Invoke(ISpeechObjectTokenCategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12169     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12170 }
12171 /*** ISpeechObjectTokenCategory methods ***/
12172 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Id(ISpeechObjectTokenCategory* This,BSTR *Id) {
12173     return This->lpVtbl->get_Id(This,Id);
12174 }
12175 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_put_Default(ISpeechObjectTokenCategory* This,const BSTR TokenId) {
12176     return This->lpVtbl->put_Default(This,TokenId);
12177 }
12178 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_get_Default(ISpeechObjectTokenCategory* This,BSTR *TokenId) {
12179     return This->lpVtbl->get_Default(This,TokenId);
12180 }
12181 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_SetId(ISpeechObjectTokenCategory* This,const BSTR Id,VARIANT_BOOL CreateIfNotExist) {
12182     return This->lpVtbl->SetId(This,Id,CreateIfNotExist);
12183 }
12184 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_GetDataKey(ISpeechObjectTokenCategory* This,SpeechDataKeyLocation Location,ISpeechDataKey **DataKey) {
12185     return This->lpVtbl->GetDataKey(This,Location,DataKey);
12186 }
12187 static FORCEINLINE HRESULT ISpeechObjectTokenCategory_EnumerateTokens(ISpeechObjectTokenCategory* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **Tokens) {
12188     return This->lpVtbl->EnumerateTokens(This,RequiredAttributes,OptionalAttributes,Tokens);
12189 }
12190 #endif
12191 #endif
12192 
12193 #endif
12194 
12195 
12196 #endif  /* __ISpeechObjectTokenCategory_INTERFACE_DEFINED__ */
12197 
12198 typedef enum SpeechAudioFormatType {
12199     SAFTDefault = -1,
12200     SAFTNoAssignedFormat = 0,
12201     SAFTText = 1,
12202     SAFTNonStandardFormat = 2,
12203     SAFTExtendedAudioFormat = 3,
12204     SAFT8kHz8BitMono = 4,
12205     SAFT8kHz8BitStereo = 5,
12206     SAFT8kHz16BitMono = 6,
12207     SAFT8kHz16BitStereo = 7,
12208     SAFT11kHz8BitMono = 8,
12209     SAFT11kHz8BitStereo = 9,
12210     SAFT11kHz16BitMono = 10,
12211     SAFT11kHz16BitStereo = 11,
12212     SAFT12kHz8BitMono = 12,
12213     SAFT12kHz8BitStereo = 13,
12214     SAFT12kHz16BitMono = 14,
12215     SAFT12kHz16BitStereo = 15,
12216     SAFT16kHz8BitMono = 16,
12217     SAFT16kHz8BitStereo = 17,
12218     SAFT16kHz16BitMono = 18,
12219     SAFT16kHz16BitStereo = 19,
12220     SAFT22kHz8BitMono = 20,
12221     SAFT22kHz8BitStereo = 21,
12222     SAFT22kHz16BitMono = 22,
12223     SAFT22kHz16BitStereo = 23,
12224     SAFT24kHz8BitMono = 24,
12225     SAFT24kHz8BitStereo = 25,
12226     SAFT24kHz16BitMono = 26,
12227     SAFT24kHz16BitStereo = 27,
12228     SAFT32kHz8BitMono = 28,
12229     SAFT32kHz8BitStereo = 29,
12230     SAFT32kHz16BitMono = 30,
12231     SAFT32kHz16BitStereo = 31,
12232     SAFT44kHz8BitMono = 32,
12233     SAFT44kHz8BitStereo = 33,
12234     SAFT44kHz16BitMono = 34,
12235     SAFT44kHz16BitStereo = 35,
12236     SAFT48kHz8BitMono = 36,
12237     SAFT48kHz8BitStereo = 37,
12238     SAFT48kHz16BitMono = 38,
12239     SAFT48kHz16BitStereo = 39,
12240     SAFTTrueSpeech_8kHz1BitMono = 40,
12241     SAFTCCITT_ALaw_8kHzMono = 41,
12242     SAFTCCITT_ALaw_8kHzStereo = 42,
12243     SAFTCCITT_ALaw_11kHzMono = 43,
12244     SAFTCCITT_ALaw_11kHzStereo = 44,
12245     SAFTCCITT_ALaw_22kHzMono = 45,
12246     SAFTCCITT_ALaw_22kHzStereo = 46,
12247     SAFTCCITT_ALaw_44kHzMono = 47,
12248     SAFTCCITT_ALaw_44kHzStereo = 48,
12249     SAFTCCITT_uLaw_8kHzMono = 49,
12250     SAFTCCITT_uLaw_8kHzStereo = 50,
12251     SAFTCCITT_uLaw_11kHzMono = 51,
12252     SAFTCCITT_uLaw_11kHzStereo = 52,
12253     SAFTCCITT_uLaw_22kHzMono = 53,
12254     SAFTCCITT_uLaw_22kHzStereo = 54,
12255     SAFTCCITT_uLaw_44kHzMono = 55,
12256     SAFTCCITT_uLaw_44kHzStereo = 56,
12257     SAFTADPCM_8kHzMono = 57,
12258     SAFTADPCM_8kHzStereo = 58,
12259     SAFTADPCM_11kHzMono = 59,
12260     SAFTADPCM_11kHzStereo = 60,
12261     SAFTADPCM_22kHzMono = 61,
12262     SAFTADPCM_22kHzStereo = 62,
12263     SAFTADPCM_44kHzMono = 63,
12264     SAFTADPCM_44kHzStereo = 64,
12265     SAFTGSM610_8kHzMono = 65,
12266     SAFTGSM610_11kHzMono = 66,
12267     SAFTGSM610_22kHzMono = 67,
12268     SAFTGSM610_44kHzMono = 68
12269 } SpeechAudioFormatType;
12270 typedef enum DISPID_SpeechAudioFormat {
12271     DISPID_SAFType = 1,
12272     DISPID_SAFGuid = 2,
12273     DISPID_SAFGetWaveFormatEx = 3,
12274     DISPID_SAFSetWaveFormatEx = 4
12275 } DISPID_SpeechAudioFormat;
12276 typedef enum DISPID_SpeechBaseStream {
12277     DISPID_SBSFormat = 1,
12278     DISPID_SBSRead = 2,
12279     DISPID_SBSWrite = 3,
12280     DISPID_SBSSeek = 4
12281 } DISPID_SpeechBaseStream;
12282 typedef enum SpeechStreamSeekPositionType {
12283     SSSPTRelativeToStart = STREAM_SEEK_SET,
12284     SSSPTRelativeToCurrentPosition = STREAM_SEEK_CUR,
12285     SSSPTRelativeToEnd = STREAM_SEEK_END
12286 } SpeechStreamSeekPositionType;
12287 typedef enum DISPID_SpeechAudio {
12288     DISPID_SAStatus = 200,
12289     DISPID_SABufferInfo = 201,
12290     DISPID_SADefaultFormat = 202,
12291     DISPID_SAVolume = 203,
12292     DISPID_SABufferNotifySize = 204,
12293     DISPID_SAEventHandle = 205,
12294     DISPID_SASetState = 206
12295 } DISPID_SpeechAudio;
12296 typedef enum SpeechAudioState {
12297     SASClosed = SPAS_CLOSED,
12298     SASStop = SPAS_STOP,
12299     SASPause = SPAS_PAUSE,
12300     SASRun = SPAS_RUN
12301 } SpeechAudioState;
12302 typedef enum DISPID_SpeechMMSysAudio {
12303     DISPID_SMSADeviceId = 300,
12304     DISPID_SMSALineId = 301,
12305     DISPID_SMSAMMHandle = 302
12306 } DISPID_SpeechMMSysAudio;
12307 typedef enum DISPID_SpeechFileStream {
12308     DISPID_SFSOpen = 100,
12309     DISPID_SFSClose = 101
12310 } DISPID_SpeechFileStream;
12311 typedef enum SpeechStreamFileMode {
12312     SSFMOpenForRead = SPFM_OPEN_READONLY,
12313     SSFMOpenReadWrite = SPFM_OPEN_READWRITE,
12314     SSFMCreate = SPFM_CREATE,
12315     SSFMCreateForWrite = SPFM_CREATE_ALWAYS
12316 } SpeechStreamFileMode;
12317 typedef enum DISPID_SpeechCustomStream {
12318     DISPID_SCSBaseStream = 100
12319 } DISPID_SpeechCustomStream;
12320 typedef enum DISPID_SpeechMemoryStream {
12321     DISPID_SMSSetData = 100,
12322     DISPID_SMSGetData = 101
12323 } DISPID_SpeechMemoryStream;
12324 typedef enum DISPID_SpeechAudioStatus {
12325     DISPID_SASFreeBufferSpace = 1,
12326     DISPID_SASNonBlockingIO = 2,
12327     DISPID_SASState = 3,
12328     DISPID_SASCurrentSeekPosition = 4,
12329     DISPID_SASCurrentDevicePosition = 5
12330 } DISPID_SpeechAudioStatus;
12331 typedef enum DISPID_SpeechAudioBufferInfo {
12332     DISPID_SABIMinNotification = 1,
12333     DISPID_SABIBufferSize = 2,
12334     DISPID_SABIEventBias = 3
12335 } DISPID_SpeechAudioBufferInfo;
12336 typedef enum DISPID_SpeechWaveFormatEx {
12337     DISPID_SWFEFormatTag = 1,
12338     DISPID_SWFEChannels = 2,
12339     DISPID_SWFESamplesPerSec = 3,
12340     DISPID_SWFEAvgBytesPerSec = 4,
12341     DISPID_SWFEBlockAlign = 5,
12342     DISPID_SWFEBitsPerSample = 6,
12343     DISPID_SWFEExtraData = 7
12344 } DISPID_SpeechWaveFormatEx;
12345 typedef enum DISPID_SpeechVoice {
12346     DISPID_SVStatus = 1,
12347     DISPID_SVVoice = 2,
12348     DISPID_SVAudioOutput = 3,
12349     DISPID_SVAudioOutputStream = 4,
12350     DISPID_SVRate = 5,
12351     DISPID_SVVolume = 6,
12352     DISPID_SVAllowAudioOuputFormatChangesOnNextSet = 7,
12353     DISPID_SVEventInterests = 8,
12354     DISPID_SVPriority = 9,
12355     DISPID_SVAlertBoundary = 10,
12356     DISPID_SVSyncronousSpeakTimeout = 11,
12357     DISPID_SVSpeak = 12,
12358     DISPID_SVSpeakStream = 13,
12359     DISPID_SVPause = 14,
12360     DISPID_SVResume = 15,
12361     DISPID_SVSkip = 16,
12362     DISPID_SVGetVoices = 17,
12363     DISPID_SVGetAudioOutputs = 18,
12364     DISPID_SVWaitUntilDone = 19,
12365     DISPID_SVSpeakCompleteEvent = 20,
12366     DISPID_SVIsUISupported = 21,
12367     DISPID_SVDisplayUI = 22
12368 } DISPID_SpeechVoice;
12369 typedef enum SpeechVoicePriority {
12370     SVPNormal = SPVPRI_NORMAL,
12371     SVPAlert = SPVPRI_ALERT,
12372     SVPOver = SPVPRI_OVER
12373 } SpeechVoicePriority;
12374 typedef enum SpeechVoiceSpeakFlags {
12375     SVSFDefault = SPF_DEFAULT,
12376     SVSFlagsAsync = SPF_ASYNC,
12377     SVSFPurgeBeforeSpeak = SPF_PURGEBEFORESPEAK,
12378     SVSFIsFilename = SPF_IS_FILENAME,
12379     SVSFIsXML = SPF_IS_XML,
12380     SVSFIsNotXML = SPF_IS_NOT_XML,
12381     SVSFPersistXML = SPF_PERSIST_XML,
12382     SVSFNLPSpeakPunc = SPF_NLP_SPEAK_PUNC,
12383     SVSFParseSapi = SPF_PARSE_SAPI,
12384     SVSFParseSsml = SPF_PARSE_SSML,
12385     SVSFParseAutodetect = SPF_PARSE_AUTODETECT,
12386     SVSFNLPMask = SPF_NLP_MASK,
12387     SVSFParseMask = SPF_PARSE_MASK,
12388     SVSFVoiceMask = SPF_VOICE_MASK,
12389     SVSFUnusedFlags = SPF_UNUSED_FLAGS
12390 } SpeechVoiceSpeakFlags;
12391 typedef enum SpeechVoiceEvents {
12392     SVEStartInputStream = 0x2,
12393     SVEEndInputStream = 0x4,
12394     SVEVoiceChange = 0x8,
12395     SVEBookmark = 0x10,
12396     SVEWordBoundary = 0x20,
12397     SVEPhoneme = 0x40,
12398     SVESentenceBoundary = 0x80,
12399     SVEViseme = 0x100,
12400     SVEAudioLevel = 0x200,
12401     SVEPrivate = 0x8000,
12402     SVEAllEvents = 0x83fe
12403 } SpeechVoiceEvents;
12404 typedef enum DISPID_SpeechVoiceStatus {
12405     DISPID_SVSCurrentStreamNumber = 1,
12406     DISPID_SVSLastStreamNumberQueued = 2,
12407     DISPID_SVSLastResult = 3,
12408     DISPID_SVSRunningState = 4,
12409     DISPID_SVSInputWordPosition = 5,
12410     DISPID_SVSInputWordLength = 6,
12411     DISPID_SVSInputSentencePosition = 7,
12412     DISPID_SVSInputSentenceLength = 8,
12413     DISPID_SVSLastBookmark = 9,
12414     DISPID_SVSLastBookmarkId = 10,
12415     DISPID_SVSPhonemeId = 11,
12416     DISPID_SVSVisemeId = 12
12417 } DISPID_SpeechVoiceStatus;
12418 typedef enum SpeechRunState {
12419     SRSEDone = SPRS_DONE,
12420     SRSEIsSpeaking = SPRS_IS_SPEAKING
12421 } SpeechRunState;
12422 /*****************************************************************************
12423  * ISpeechAudioFormat interface
12424  */
12425 #ifndef __ISpeechAudioFormat_INTERFACE_DEFINED__
12426 #define __ISpeechAudioFormat_INTERFACE_DEFINED__
12427 
12428 DEFINE_GUID(IID_ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7);
12429 #if defined(__cplusplus) && !defined(CINTERFACE)
12430 MIDL_INTERFACE("e6e9c590-3e18-40e3-8299-061f98bde7c7")
12431 ISpeechAudioFormat : public IDispatch
12432 {
12433     virtual HRESULT STDMETHODCALLTYPE get_Type(
12434         SpeechAudioFormatType *AudioFormat) = 0;
12435 
12436     virtual HRESULT STDMETHODCALLTYPE put_Type(
12437         SpeechAudioFormatType AudioFormat) = 0;
12438 
12439     virtual HRESULT STDMETHODCALLTYPE get_Guid(
12440         BSTR *Guid) = 0;
12441 
12442     virtual HRESULT STDMETHODCALLTYPE put_Guid(
12443         BSTR Guid) = 0;
12444 
12445     virtual HRESULT STDMETHODCALLTYPE GetWaveFormatEx(
12446         ISpeechWaveFormatEx **SpeechWaveFormatEx) = 0;
12447 
12448     virtual HRESULT STDMETHODCALLTYPE SetWaveFormatEx(
12449         ISpeechWaveFormatEx *SpeechWaveFormatEx) = 0;
12450 
12451 };
12452 #ifdef __CRT_UUID_DECL
12453 __CRT_UUID_DECL(ISpeechAudioFormat, 0xe6e9c590, 0x3e18, 0x40e3, 0x82,0x99, 0x06,0x1f,0x98,0xbd,0xe7,0xc7)
12454 #endif
12455 #else
12456 typedef struct ISpeechAudioFormatVtbl {
12457     BEGIN_INTERFACE
12458 
12459     /*** IUnknown methods ***/
12460     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12461         ISpeechAudioFormat *This,
12462         REFIID riid,
12463         void **ppvObject);
12464 
12465     ULONG (STDMETHODCALLTYPE *AddRef)(
12466         ISpeechAudioFormat *This);
12467 
12468     ULONG (STDMETHODCALLTYPE *Release)(
12469         ISpeechAudioFormat *This);
12470 
12471     /*** IDispatch methods ***/
12472     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12473         ISpeechAudioFormat *This,
12474         UINT *pctinfo);
12475 
12476     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12477         ISpeechAudioFormat *This,
12478         UINT iTInfo,
12479         LCID lcid,
12480         ITypeInfo **ppTInfo);
12481 
12482     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12483         ISpeechAudioFormat *This,
12484         REFIID riid,
12485         LPOLESTR *rgszNames,
12486         UINT cNames,
12487         LCID lcid,
12488         DISPID *rgDispId);
12489 
12490     HRESULT (STDMETHODCALLTYPE *Invoke)(
12491         ISpeechAudioFormat *This,
12492         DISPID dispIdMember,
12493         REFIID riid,
12494         LCID lcid,
12495         WORD wFlags,
12496         DISPPARAMS *pDispParams,
12497         VARIANT *pVarResult,
12498         EXCEPINFO *pExcepInfo,
12499         UINT *puArgErr);
12500 
12501     /*** ISpeechAudioFormat methods ***/
12502     HRESULT (STDMETHODCALLTYPE *get_Type)(
12503         ISpeechAudioFormat *This,
12504         SpeechAudioFormatType *AudioFormat);
12505 
12506     HRESULT (STDMETHODCALLTYPE *put_Type)(
12507         ISpeechAudioFormat *This,
12508         SpeechAudioFormatType AudioFormat);
12509 
12510     HRESULT (STDMETHODCALLTYPE *get_Guid)(
12511         ISpeechAudioFormat *This,
12512         BSTR *Guid);
12513 
12514     HRESULT (STDMETHODCALLTYPE *put_Guid)(
12515         ISpeechAudioFormat *This,
12516         BSTR Guid);
12517 
12518     HRESULT (STDMETHODCALLTYPE *GetWaveFormatEx)(
12519         ISpeechAudioFormat *This,
12520         ISpeechWaveFormatEx **SpeechWaveFormatEx);
12521 
12522     HRESULT (STDMETHODCALLTYPE *SetWaveFormatEx)(
12523         ISpeechAudioFormat *This,
12524         ISpeechWaveFormatEx *SpeechWaveFormatEx);
12525 
12526     END_INTERFACE
12527 } ISpeechAudioFormatVtbl;
12528 
12529 interface ISpeechAudioFormat {
12530     CONST_VTBL ISpeechAudioFormatVtbl* lpVtbl;
12531 };
12532 
12533 #ifdef COBJMACROS
12534 #ifndef WIDL_C_INLINE_WRAPPERS
12535 /*** IUnknown methods ***/
12536 #define ISpeechAudioFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12537 #define ISpeechAudioFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
12538 #define ISpeechAudioFormat_Release(This) (This)->lpVtbl->Release(This)
12539 /*** IDispatch methods ***/
12540 #define ISpeechAudioFormat_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12541 #define ISpeechAudioFormat_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12542 #define ISpeechAudioFormat_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12543 #define ISpeechAudioFormat_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12544 /*** ISpeechAudioFormat methods ***/
12545 #define ISpeechAudioFormat_get_Type(This,AudioFormat) (This)->lpVtbl->get_Type(This,AudioFormat)
12546 #define ISpeechAudioFormat_put_Type(This,AudioFormat) (This)->lpVtbl->put_Type(This,AudioFormat)
12547 #define ISpeechAudioFormat_get_Guid(This,Guid) (This)->lpVtbl->get_Guid(This,Guid)
12548 #define ISpeechAudioFormat_put_Guid(This,Guid) (This)->lpVtbl->put_Guid(This,Guid)
12549 #define ISpeechAudioFormat_GetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx)
12550 #define ISpeechAudioFormat_SetWaveFormatEx(This,SpeechWaveFormatEx) (This)->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx)
12551 #else
12552 /*** IUnknown methods ***/
12553 static FORCEINLINE HRESULT ISpeechAudioFormat_QueryInterface(ISpeechAudioFormat* This,REFIID riid,void **ppvObject) {
12554     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12555 }
12556 static FORCEINLINE ULONG ISpeechAudioFormat_AddRef(ISpeechAudioFormat* This) {
12557     return This->lpVtbl->AddRef(This);
12558 }
12559 static FORCEINLINE ULONG ISpeechAudioFormat_Release(ISpeechAudioFormat* This) {
12560     return This->lpVtbl->Release(This);
12561 }
12562 /*** IDispatch methods ***/
12563 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfoCount(ISpeechAudioFormat* This,UINT *pctinfo) {
12564     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12565 }
12566 static FORCEINLINE HRESULT ISpeechAudioFormat_GetTypeInfo(ISpeechAudioFormat* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12567     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12568 }
12569 static FORCEINLINE HRESULT ISpeechAudioFormat_GetIDsOfNames(ISpeechAudioFormat* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12570     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12571 }
12572 static FORCEINLINE HRESULT ISpeechAudioFormat_Invoke(ISpeechAudioFormat* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12573     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12574 }
12575 /*** ISpeechAudioFormat methods ***/
12576 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Type(ISpeechAudioFormat* This,SpeechAudioFormatType *AudioFormat) {
12577     return This->lpVtbl->get_Type(This,AudioFormat);
12578 }
12579 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Type(ISpeechAudioFormat* This,SpeechAudioFormatType AudioFormat) {
12580     return This->lpVtbl->put_Type(This,AudioFormat);
12581 }
12582 static FORCEINLINE HRESULT ISpeechAudioFormat_get_Guid(ISpeechAudioFormat* This,BSTR *Guid) {
12583     return This->lpVtbl->get_Guid(This,Guid);
12584 }
12585 static FORCEINLINE HRESULT ISpeechAudioFormat_put_Guid(ISpeechAudioFormat* This,BSTR Guid) {
12586     return This->lpVtbl->put_Guid(This,Guid);
12587 }
12588 static FORCEINLINE HRESULT ISpeechAudioFormat_GetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx **SpeechWaveFormatEx) {
12589     return This->lpVtbl->GetWaveFormatEx(This,SpeechWaveFormatEx);
12590 }
12591 static FORCEINLINE HRESULT ISpeechAudioFormat_SetWaveFormatEx(ISpeechAudioFormat* This,ISpeechWaveFormatEx *SpeechWaveFormatEx) {
12592     return This->lpVtbl->SetWaveFormatEx(This,SpeechWaveFormatEx);
12593 }
12594 #endif
12595 #endif
12596 
12597 #endif
12598 
12599 
12600 #endif  /* __ISpeechAudioFormat_INTERFACE_DEFINED__ */
12601 
12602 /*****************************************************************************
12603  * ISpeechBaseStream interface
12604  */
12605 #ifndef __ISpeechBaseStream_INTERFACE_DEFINED__
12606 #define __ISpeechBaseStream_INTERFACE_DEFINED__
12607 
12608 DEFINE_GUID(IID_ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94);
12609 #if defined(__cplusplus) && !defined(CINTERFACE)
12610 MIDL_INTERFACE("6450336f-7d49-4ced-8097-49d6dee37294")
12611 ISpeechBaseStream : public IDispatch
12612 {
12613     virtual HRESULT STDMETHODCALLTYPE get_Format(
12614         ISpeechAudioFormat **AudioFormat) = 0;
12615 
12616     virtual HRESULT STDMETHODCALLTYPE putref_Format(
12617         ISpeechAudioFormat *AudioFormat) = 0;
12618 
12619     virtual HRESULT STDMETHODCALLTYPE Read(
12620         VARIANT *Buffer,
12621         LONG NumberOfBytes,
12622         LONG *BytesRead) = 0;
12623 
12624     virtual HRESULT STDMETHODCALLTYPE Write(
12625         VARIANT Buffer,
12626         LONG *BytesWritten) = 0;
12627 
12628     virtual HRESULT STDMETHODCALLTYPE Seek(
12629         VARIANT Position,
12630         SpeechStreamSeekPositionType Origin,
12631         VARIANT *NewPosition) = 0;
12632 
12633 };
12634 #ifdef __CRT_UUID_DECL
12635 __CRT_UUID_DECL(ISpeechBaseStream, 0x6450336f, 0x7d49, 0x4ced, 0x80,0x97, 0x49,0xd6,0xde,0xe3,0x72,0x94)
12636 #endif
12637 #else
12638 typedef struct ISpeechBaseStreamVtbl {
12639     BEGIN_INTERFACE
12640 
12641     /*** IUnknown methods ***/
12642     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12643         ISpeechBaseStream *This,
12644         REFIID riid,
12645         void **ppvObject);
12646 
12647     ULONG (STDMETHODCALLTYPE *AddRef)(
12648         ISpeechBaseStream *This);
12649 
12650     ULONG (STDMETHODCALLTYPE *Release)(
12651         ISpeechBaseStream *This);
12652 
12653     /*** IDispatch methods ***/
12654     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12655         ISpeechBaseStream *This,
12656         UINT *pctinfo);
12657 
12658     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12659         ISpeechBaseStream *This,
12660         UINT iTInfo,
12661         LCID lcid,
12662         ITypeInfo **ppTInfo);
12663 
12664     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12665         ISpeechBaseStream *This,
12666         REFIID riid,
12667         LPOLESTR *rgszNames,
12668         UINT cNames,
12669         LCID lcid,
12670         DISPID *rgDispId);
12671 
12672     HRESULT (STDMETHODCALLTYPE *Invoke)(
12673         ISpeechBaseStream *This,
12674         DISPID dispIdMember,
12675         REFIID riid,
12676         LCID lcid,
12677         WORD wFlags,
12678         DISPPARAMS *pDispParams,
12679         VARIANT *pVarResult,
12680         EXCEPINFO *pExcepInfo,
12681         UINT *puArgErr);
12682 
12683     /*** ISpeechBaseStream methods ***/
12684     HRESULT (STDMETHODCALLTYPE *get_Format)(
12685         ISpeechBaseStream *This,
12686         ISpeechAudioFormat **AudioFormat);
12687 
12688     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12689         ISpeechBaseStream *This,
12690         ISpeechAudioFormat *AudioFormat);
12691 
12692     HRESULT (STDMETHODCALLTYPE *Read)(
12693         ISpeechBaseStream *This,
12694         VARIANT *Buffer,
12695         LONG NumberOfBytes,
12696         LONG *BytesRead);
12697 
12698     HRESULT (STDMETHODCALLTYPE *Write)(
12699         ISpeechBaseStream *This,
12700         VARIANT Buffer,
12701         LONG *BytesWritten);
12702 
12703     HRESULT (STDMETHODCALLTYPE *Seek)(
12704         ISpeechBaseStream *This,
12705         VARIANT Position,
12706         SpeechStreamSeekPositionType Origin,
12707         VARIANT *NewPosition);
12708 
12709     END_INTERFACE
12710 } ISpeechBaseStreamVtbl;
12711 
12712 interface ISpeechBaseStream {
12713     CONST_VTBL ISpeechBaseStreamVtbl* lpVtbl;
12714 };
12715 
12716 #ifdef COBJMACROS
12717 #ifndef WIDL_C_INLINE_WRAPPERS
12718 /*** IUnknown methods ***/
12719 #define ISpeechBaseStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12720 #define ISpeechBaseStream_AddRef(This) (This)->lpVtbl->AddRef(This)
12721 #define ISpeechBaseStream_Release(This) (This)->lpVtbl->Release(This)
12722 /*** IDispatch methods ***/
12723 #define ISpeechBaseStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12724 #define ISpeechBaseStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12725 #define ISpeechBaseStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12726 #define ISpeechBaseStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12727 /*** ISpeechBaseStream methods ***/
12728 #define ISpeechBaseStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12729 #define ISpeechBaseStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12730 #define ISpeechBaseStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12731 #define ISpeechBaseStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12732 #define ISpeechBaseStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12733 #else
12734 /*** IUnknown methods ***/
12735 static FORCEINLINE HRESULT ISpeechBaseStream_QueryInterface(ISpeechBaseStream* This,REFIID riid,void **ppvObject) {
12736     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12737 }
12738 static FORCEINLINE ULONG ISpeechBaseStream_AddRef(ISpeechBaseStream* This) {
12739     return This->lpVtbl->AddRef(This);
12740 }
12741 static FORCEINLINE ULONG ISpeechBaseStream_Release(ISpeechBaseStream* This) {
12742     return This->lpVtbl->Release(This);
12743 }
12744 /*** IDispatch methods ***/
12745 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfoCount(ISpeechBaseStream* This,UINT *pctinfo) {
12746     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12747 }
12748 static FORCEINLINE HRESULT ISpeechBaseStream_GetTypeInfo(ISpeechBaseStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12749     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12750 }
12751 static FORCEINLINE HRESULT ISpeechBaseStream_GetIDsOfNames(ISpeechBaseStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12752     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12753 }
12754 static FORCEINLINE HRESULT ISpeechBaseStream_Invoke(ISpeechBaseStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12755     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12756 }
12757 /*** ISpeechBaseStream methods ***/
12758 static FORCEINLINE HRESULT ISpeechBaseStream_get_Format(ISpeechBaseStream* This,ISpeechAudioFormat **AudioFormat) {
12759     return This->lpVtbl->get_Format(This,AudioFormat);
12760 }
12761 static FORCEINLINE HRESULT ISpeechBaseStream_putref_Format(ISpeechBaseStream* This,ISpeechAudioFormat *AudioFormat) {
12762     return This->lpVtbl->putref_Format(This,AudioFormat);
12763 }
12764 static FORCEINLINE HRESULT ISpeechBaseStream_Read(ISpeechBaseStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12765     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12766 }
12767 static FORCEINLINE HRESULT ISpeechBaseStream_Write(ISpeechBaseStream* This,VARIANT Buffer,LONG *BytesWritten) {
12768     return This->lpVtbl->Write(This,Buffer,BytesWritten);
12769 }
12770 static FORCEINLINE HRESULT ISpeechBaseStream_Seek(ISpeechBaseStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
12771     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
12772 }
12773 #endif
12774 #endif
12775 
12776 #endif
12777 
12778 
12779 #endif  /* __ISpeechBaseStream_INTERFACE_DEFINED__ */
12780 
12781 /*****************************************************************************
12782  * ISpeechAudio interface
12783  */
12784 #ifndef __ISpeechAudio_INTERFACE_DEFINED__
12785 #define __ISpeechAudio_INTERFACE_DEFINED__
12786 
12787 DEFINE_GUID(IID_ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
12788 #if defined(__cplusplus) && !defined(CINTERFACE)
12789 MIDL_INTERFACE("cff8e175-019e-11d3-a08e-00c04f8ef9b5")
12790 ISpeechAudio : public ISpeechBaseStream
12791 {
12792     virtual HRESULT STDMETHODCALLTYPE get_Status(
12793         ISpeechAudioStatus **Status) = 0;
12794 
12795     virtual HRESULT STDMETHODCALLTYPE get_BufferInfo(
12796         ISpeechAudioBufferInfo **BufferInfo) = 0;
12797 
12798     virtual HRESULT STDMETHODCALLTYPE get_DefaultFormat(
12799         ISpeechAudioFormat **StreamFormat) = 0;
12800 
12801     virtual HRESULT STDMETHODCALLTYPE get_Volume(
12802         LONG *Volume) = 0;
12803 
12804     virtual HRESULT STDMETHODCALLTYPE put_Volume(
12805         LONG Volume) = 0;
12806 
12807     virtual HRESULT STDMETHODCALLTYPE get_BufferNotifySize(
12808         LONG *BufferNotifySize) = 0;
12809 
12810     virtual HRESULT STDMETHODCALLTYPE put_BufferNotifySize(
12811         LONG BufferNotifySize) = 0;
12812 
12813     virtual HRESULT STDMETHODCALLTYPE get_EventHandle(
12814         LONG *EventHandle) = 0;
12815 
12816     virtual HRESULT STDMETHODCALLTYPE SetState(
12817         SpeechAudioState State) = 0;
12818 
12819 };
12820 #ifdef __CRT_UUID_DECL
12821 __CRT_UUID_DECL(ISpeechAudio, 0xcff8e175, 0x019e, 0x11d3, 0xa0,0x8e, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
12822 #endif
12823 #else
12824 typedef struct ISpeechAudioVtbl {
12825     BEGIN_INTERFACE
12826 
12827     /*** IUnknown methods ***/
12828     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12829         ISpeechAudio *This,
12830         REFIID riid,
12831         void **ppvObject);
12832 
12833     ULONG (STDMETHODCALLTYPE *AddRef)(
12834         ISpeechAudio *This);
12835 
12836     ULONG (STDMETHODCALLTYPE *Release)(
12837         ISpeechAudio *This);
12838 
12839     /*** IDispatch methods ***/
12840     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
12841         ISpeechAudio *This,
12842         UINT *pctinfo);
12843 
12844     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
12845         ISpeechAudio *This,
12846         UINT iTInfo,
12847         LCID lcid,
12848         ITypeInfo **ppTInfo);
12849 
12850     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
12851         ISpeechAudio *This,
12852         REFIID riid,
12853         LPOLESTR *rgszNames,
12854         UINT cNames,
12855         LCID lcid,
12856         DISPID *rgDispId);
12857 
12858     HRESULT (STDMETHODCALLTYPE *Invoke)(
12859         ISpeechAudio *This,
12860         DISPID dispIdMember,
12861         REFIID riid,
12862         LCID lcid,
12863         WORD wFlags,
12864         DISPPARAMS *pDispParams,
12865         VARIANT *pVarResult,
12866         EXCEPINFO *pExcepInfo,
12867         UINT *puArgErr);
12868 
12869     /*** ISpeechBaseStream methods ***/
12870     HRESULT (STDMETHODCALLTYPE *get_Format)(
12871         ISpeechAudio *This,
12872         ISpeechAudioFormat **AudioFormat);
12873 
12874     HRESULT (STDMETHODCALLTYPE *putref_Format)(
12875         ISpeechAudio *This,
12876         ISpeechAudioFormat *AudioFormat);
12877 
12878     HRESULT (STDMETHODCALLTYPE *Read)(
12879         ISpeechAudio *This,
12880         VARIANT *Buffer,
12881         LONG NumberOfBytes,
12882         LONG *BytesRead);
12883 
12884     HRESULT (STDMETHODCALLTYPE *Write)(
12885         ISpeechAudio *This,
12886         VARIANT Buffer,
12887         LONG *BytesWritten);
12888 
12889     HRESULT (STDMETHODCALLTYPE *Seek)(
12890         ISpeechAudio *This,
12891         VARIANT Position,
12892         SpeechStreamSeekPositionType Origin,
12893         VARIANT *NewPosition);
12894 
12895     /*** ISpeechAudio methods ***/
12896     HRESULT (STDMETHODCALLTYPE *get_Status)(
12897         ISpeechAudio *This,
12898         ISpeechAudioStatus **Status);
12899 
12900     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
12901         ISpeechAudio *This,
12902         ISpeechAudioBufferInfo **BufferInfo);
12903 
12904     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
12905         ISpeechAudio *This,
12906         ISpeechAudioFormat **StreamFormat);
12907 
12908     HRESULT (STDMETHODCALLTYPE *get_Volume)(
12909         ISpeechAudio *This,
12910         LONG *Volume);
12911 
12912     HRESULT (STDMETHODCALLTYPE *put_Volume)(
12913         ISpeechAudio *This,
12914         LONG Volume);
12915 
12916     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
12917         ISpeechAudio *This,
12918         LONG *BufferNotifySize);
12919 
12920     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
12921         ISpeechAudio *This,
12922         LONG BufferNotifySize);
12923 
12924     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
12925         ISpeechAudio *This,
12926         LONG *EventHandle);
12927 
12928     HRESULT (STDMETHODCALLTYPE *SetState)(
12929         ISpeechAudio *This,
12930         SpeechAudioState State);
12931 
12932     END_INTERFACE
12933 } ISpeechAudioVtbl;
12934 
12935 interface ISpeechAudio {
12936     CONST_VTBL ISpeechAudioVtbl* lpVtbl;
12937 };
12938 
12939 #ifdef COBJMACROS
12940 #ifndef WIDL_C_INLINE_WRAPPERS
12941 /*** IUnknown methods ***/
12942 #define ISpeechAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12943 #define ISpeechAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
12944 #define ISpeechAudio_Release(This) (This)->lpVtbl->Release(This)
12945 /*** IDispatch methods ***/
12946 #define ISpeechAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
12947 #define ISpeechAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
12948 #define ISpeechAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
12949 #define ISpeechAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
12950 /*** ISpeechBaseStream methods ***/
12951 #define ISpeechAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
12952 #define ISpeechAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
12953 #define ISpeechAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
12954 #define ISpeechAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
12955 #define ISpeechAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
12956 /*** ISpeechAudio methods ***/
12957 #define ISpeechAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
12958 #define ISpeechAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
12959 #define ISpeechAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
12960 #define ISpeechAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
12961 #define ISpeechAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
12962 #define ISpeechAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
12963 #define ISpeechAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
12964 #define ISpeechAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
12965 #define ISpeechAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
12966 #else
12967 /*** IUnknown methods ***/
12968 static FORCEINLINE HRESULT ISpeechAudio_QueryInterface(ISpeechAudio* This,REFIID riid,void **ppvObject) {
12969     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12970 }
12971 static FORCEINLINE ULONG ISpeechAudio_AddRef(ISpeechAudio* This) {
12972     return This->lpVtbl->AddRef(This);
12973 }
12974 static FORCEINLINE ULONG ISpeechAudio_Release(ISpeechAudio* This) {
12975     return This->lpVtbl->Release(This);
12976 }
12977 /*** IDispatch methods ***/
12978 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfoCount(ISpeechAudio* This,UINT *pctinfo) {
12979     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
12980 }
12981 static FORCEINLINE HRESULT ISpeechAudio_GetTypeInfo(ISpeechAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
12982     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
12983 }
12984 static FORCEINLINE HRESULT ISpeechAudio_GetIDsOfNames(ISpeechAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
12985     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
12986 }
12987 static FORCEINLINE HRESULT ISpeechAudio_Invoke(ISpeechAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
12988     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
12989 }
12990 /*** ISpeechBaseStream methods ***/
12991 static FORCEINLINE HRESULT ISpeechAudio_get_Format(ISpeechAudio* This,ISpeechAudioFormat **AudioFormat) {
12992     return This->lpVtbl->get_Format(This,AudioFormat);
12993 }
12994 static FORCEINLINE HRESULT ISpeechAudio_putref_Format(ISpeechAudio* This,ISpeechAudioFormat *AudioFormat) {
12995     return This->lpVtbl->putref_Format(This,AudioFormat);
12996 }
12997 static FORCEINLINE HRESULT ISpeechAudio_Read(ISpeechAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
12998     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
12999 }
13000 static FORCEINLINE HRESULT ISpeechAudio_Write(ISpeechAudio* This,VARIANT Buffer,LONG *BytesWritten) {
13001     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13002 }
13003 static FORCEINLINE HRESULT ISpeechAudio_Seek(ISpeechAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13004     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13005 }
13006 /*** ISpeechAudio methods ***/
13007 static FORCEINLINE HRESULT ISpeechAudio_get_Status(ISpeechAudio* This,ISpeechAudioStatus **Status) {
13008     return This->lpVtbl->get_Status(This,Status);
13009 }
13010 static FORCEINLINE HRESULT ISpeechAudio_get_BufferInfo(ISpeechAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
13011     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
13012 }
13013 static FORCEINLINE HRESULT ISpeechAudio_get_DefaultFormat(ISpeechAudio* This,ISpeechAudioFormat **StreamFormat) {
13014     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
13015 }
13016 static FORCEINLINE HRESULT ISpeechAudio_get_Volume(ISpeechAudio* This,LONG *Volume) {
13017     return This->lpVtbl->get_Volume(This,Volume);
13018 }
13019 static FORCEINLINE HRESULT ISpeechAudio_put_Volume(ISpeechAudio* This,LONG Volume) {
13020     return This->lpVtbl->put_Volume(This,Volume);
13021 }
13022 static FORCEINLINE HRESULT ISpeechAudio_get_BufferNotifySize(ISpeechAudio* This,LONG *BufferNotifySize) {
13023     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
13024 }
13025 static FORCEINLINE HRESULT ISpeechAudio_put_BufferNotifySize(ISpeechAudio* This,LONG BufferNotifySize) {
13026     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
13027 }
13028 static FORCEINLINE HRESULT ISpeechAudio_get_EventHandle(ISpeechAudio* This,LONG *EventHandle) {
13029     return This->lpVtbl->get_EventHandle(This,EventHandle);
13030 }
13031 static FORCEINLINE HRESULT ISpeechAudio_SetState(ISpeechAudio* This,SpeechAudioState State) {
13032     return This->lpVtbl->SetState(This,State);
13033 }
13034 #endif
13035 #endif
13036 
13037 #endif
13038 
13039 
13040 #endif  /* __ISpeechAudio_INTERFACE_DEFINED__ */
13041 
13042 /*****************************************************************************
13043  * ISpeechMMSysAudio interface
13044  */
13045 #ifndef __ISpeechMMSysAudio_INTERFACE_DEFINED__
13046 #define __ISpeechMMSysAudio_INTERFACE_DEFINED__
13047 
13048 DEFINE_GUID(IID_ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44);
13049 #if defined(__cplusplus) && !defined(CINTERFACE)
13050 MIDL_INTERFACE("3c76af6d-1fd7-4831-81d1-3b71d5a13c44")
13051 ISpeechMMSysAudio : public ISpeechAudio
13052 {
13053     virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
13054         LONG *DeviceId) = 0;
13055 
13056     virtual HRESULT STDMETHODCALLTYPE put_DeviceId(
13057         LONG DeviceId) = 0;
13058 
13059     virtual HRESULT STDMETHODCALLTYPE get_LineId(
13060         LONG *LineId) = 0;
13061 
13062     virtual HRESULT STDMETHODCALLTYPE put_LineId(
13063         LONG LineId) = 0;
13064 
13065     virtual HRESULT STDMETHODCALLTYPE get_MMHandle(
13066         LONG *Handle) = 0;
13067 
13068 };
13069 #ifdef __CRT_UUID_DECL
13070 __CRT_UUID_DECL(ISpeechMMSysAudio, 0x3c76af6d, 0x1fd7, 0x4831, 0x81,0xd1, 0x3b,0x71,0xd5,0xa1,0x3c,0x44)
13071 #endif
13072 #else
13073 typedef struct ISpeechMMSysAudioVtbl {
13074     BEGIN_INTERFACE
13075 
13076     /*** IUnknown methods ***/
13077     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13078         ISpeechMMSysAudio *This,
13079         REFIID riid,
13080         void **ppvObject);
13081 
13082     ULONG (STDMETHODCALLTYPE *AddRef)(
13083         ISpeechMMSysAudio *This);
13084 
13085     ULONG (STDMETHODCALLTYPE *Release)(
13086         ISpeechMMSysAudio *This);
13087 
13088     /*** IDispatch methods ***/
13089     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13090         ISpeechMMSysAudio *This,
13091         UINT *pctinfo);
13092 
13093     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13094         ISpeechMMSysAudio *This,
13095         UINT iTInfo,
13096         LCID lcid,
13097         ITypeInfo **ppTInfo);
13098 
13099     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13100         ISpeechMMSysAudio *This,
13101         REFIID riid,
13102         LPOLESTR *rgszNames,
13103         UINT cNames,
13104         LCID lcid,
13105         DISPID *rgDispId);
13106 
13107     HRESULT (STDMETHODCALLTYPE *Invoke)(
13108         ISpeechMMSysAudio *This,
13109         DISPID dispIdMember,
13110         REFIID riid,
13111         LCID lcid,
13112         WORD wFlags,
13113         DISPPARAMS *pDispParams,
13114         VARIANT *pVarResult,
13115         EXCEPINFO *pExcepInfo,
13116         UINT *puArgErr);
13117 
13118     /*** ISpeechBaseStream methods ***/
13119     HRESULT (STDMETHODCALLTYPE *get_Format)(
13120         ISpeechMMSysAudio *This,
13121         ISpeechAudioFormat **AudioFormat);
13122 
13123     HRESULT (STDMETHODCALLTYPE *putref_Format)(
13124         ISpeechMMSysAudio *This,
13125         ISpeechAudioFormat *AudioFormat);
13126 
13127     HRESULT (STDMETHODCALLTYPE *Read)(
13128         ISpeechMMSysAudio *This,
13129         VARIANT *Buffer,
13130         LONG NumberOfBytes,
13131         LONG *BytesRead);
13132 
13133     HRESULT (STDMETHODCALLTYPE *Write)(
13134         ISpeechMMSysAudio *This,
13135         VARIANT Buffer,
13136         LONG *BytesWritten);
13137 
13138     HRESULT (STDMETHODCALLTYPE *Seek)(
13139         ISpeechMMSysAudio *This,
13140         VARIANT Position,
13141         SpeechStreamSeekPositionType Origin,
13142         VARIANT *NewPosition);
13143 
13144     /*** ISpeechAudio methods ***/
13145     HRESULT (STDMETHODCALLTYPE *get_Status)(
13146         ISpeechMMSysAudio *This,
13147         ISpeechAudioStatus **Status);
13148 
13149     HRESULT (STDMETHODCALLTYPE *get_BufferInfo)(
13150         ISpeechMMSysAudio *This,
13151         ISpeechAudioBufferInfo **BufferInfo);
13152 
13153     HRESULT (STDMETHODCALLTYPE *get_DefaultFormat)(
13154         ISpeechMMSysAudio *This,
13155         ISpeechAudioFormat **StreamFormat);
13156 
13157     HRESULT (STDMETHODCALLTYPE *get_Volume)(
13158         ISpeechMMSysAudio *This,
13159         LONG *Volume);
13160 
13161     HRESULT (STDMETHODCALLTYPE *put_Volume)(
13162         ISpeechMMSysAudio *This,
13163         LONG Volume);
13164 
13165     HRESULT (STDMETHODCALLTYPE *get_BufferNotifySize)(
13166         ISpeechMMSysAudio *This,
13167         LONG *BufferNotifySize);
13168 
13169     HRESULT (STDMETHODCALLTYPE *put_BufferNotifySize)(
13170         ISpeechMMSysAudio *This,
13171         LONG BufferNotifySize);
13172 
13173     HRESULT (STDMETHODCALLTYPE *get_EventHandle)(
13174         ISpeechMMSysAudio *This,
13175         LONG *EventHandle);
13176 
13177     HRESULT (STDMETHODCALLTYPE *SetState)(
13178         ISpeechMMSysAudio *This,
13179         SpeechAudioState State);
13180 
13181     /*** ISpeechMMSysAudio methods ***/
13182     HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
13183         ISpeechMMSysAudio *This,
13184         LONG *DeviceId);
13185 
13186     HRESULT (STDMETHODCALLTYPE *put_DeviceId)(
13187         ISpeechMMSysAudio *This,
13188         LONG DeviceId);
13189 
13190     HRESULT (STDMETHODCALLTYPE *get_LineId)(
13191         ISpeechMMSysAudio *This,
13192         LONG *LineId);
13193 
13194     HRESULT (STDMETHODCALLTYPE *put_LineId)(
13195         ISpeechMMSysAudio *This,
13196         LONG LineId);
13197 
13198     HRESULT (STDMETHODCALLTYPE *get_MMHandle)(
13199         ISpeechMMSysAudio *This,
13200         LONG *Handle);
13201 
13202     END_INTERFACE
13203 } ISpeechMMSysAudioVtbl;
13204 
13205 interface ISpeechMMSysAudio {
13206     CONST_VTBL ISpeechMMSysAudioVtbl* lpVtbl;
13207 };
13208 
13209 #ifdef COBJMACROS
13210 #ifndef WIDL_C_INLINE_WRAPPERS
13211 /*** IUnknown methods ***/
13212 #define ISpeechMMSysAudio_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13213 #define ISpeechMMSysAudio_AddRef(This) (This)->lpVtbl->AddRef(This)
13214 #define ISpeechMMSysAudio_Release(This) (This)->lpVtbl->Release(This)
13215 /*** IDispatch methods ***/
13216 #define ISpeechMMSysAudio_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13217 #define ISpeechMMSysAudio_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13218 #define ISpeechMMSysAudio_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13219 #define ISpeechMMSysAudio_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13220 /*** ISpeechBaseStream methods ***/
13221 #define ISpeechMMSysAudio_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13222 #define ISpeechMMSysAudio_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13223 #define ISpeechMMSysAudio_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13224 #define ISpeechMMSysAudio_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13225 #define ISpeechMMSysAudio_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13226 /*** ISpeechAudio methods ***/
13227 #define ISpeechMMSysAudio_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
13228 #define ISpeechMMSysAudio_get_BufferInfo(This,BufferInfo) (This)->lpVtbl->get_BufferInfo(This,BufferInfo)
13229 #define ISpeechMMSysAudio_get_DefaultFormat(This,StreamFormat) (This)->lpVtbl->get_DefaultFormat(This,StreamFormat)
13230 #define ISpeechMMSysAudio_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
13231 #define ISpeechMMSysAudio_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
13232 #define ISpeechMMSysAudio_get_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->get_BufferNotifySize(This,BufferNotifySize)
13233 #define ISpeechMMSysAudio_put_BufferNotifySize(This,BufferNotifySize) (This)->lpVtbl->put_BufferNotifySize(This,BufferNotifySize)
13234 #define ISpeechMMSysAudio_get_EventHandle(This,EventHandle) (This)->lpVtbl->get_EventHandle(This,EventHandle)
13235 #define ISpeechMMSysAudio_SetState(This,State) (This)->lpVtbl->SetState(This,State)
13236 /*** ISpeechMMSysAudio methods ***/
13237 #define ISpeechMMSysAudio_get_DeviceId(This,DeviceId) (This)->lpVtbl->get_DeviceId(This,DeviceId)
13238 #define ISpeechMMSysAudio_put_DeviceId(This,DeviceId) (This)->lpVtbl->put_DeviceId(This,DeviceId)
13239 #define ISpeechMMSysAudio_get_LineId(This,LineId) (This)->lpVtbl->get_LineId(This,LineId)
13240 #define ISpeechMMSysAudio_put_LineId(This,LineId) (This)->lpVtbl->put_LineId(This,LineId)
13241 #define ISpeechMMSysAudio_get_MMHandle(This,Handle) (This)->lpVtbl->get_MMHandle(This,Handle)
13242 #else
13243 /*** IUnknown methods ***/
13244 static FORCEINLINE HRESULT ISpeechMMSysAudio_QueryInterface(ISpeechMMSysAudio* This,REFIID riid,void **ppvObject) {
13245     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13246 }
13247 static FORCEINLINE ULONG ISpeechMMSysAudio_AddRef(ISpeechMMSysAudio* This) {
13248     return This->lpVtbl->AddRef(This);
13249 }
13250 static FORCEINLINE ULONG ISpeechMMSysAudio_Release(ISpeechMMSysAudio* This) {
13251     return This->lpVtbl->Release(This);
13252 }
13253 /*** IDispatch methods ***/
13254 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfoCount(ISpeechMMSysAudio* This,UINT *pctinfo) {
13255     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13256 }
13257 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetTypeInfo(ISpeechMMSysAudio* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13258     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13259 }
13260 static FORCEINLINE HRESULT ISpeechMMSysAudio_GetIDsOfNames(ISpeechMMSysAudio* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13261     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13262 }
13263 static FORCEINLINE HRESULT ISpeechMMSysAudio_Invoke(ISpeechMMSysAudio* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13264     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13265 }
13266 /*** ISpeechBaseStream methods ***/
13267 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat **AudioFormat) {
13268     return This->lpVtbl->get_Format(This,AudioFormat);
13269 }
13270 static FORCEINLINE HRESULT ISpeechMMSysAudio_putref_Format(ISpeechMMSysAudio* This,ISpeechAudioFormat *AudioFormat) {
13271     return This->lpVtbl->putref_Format(This,AudioFormat);
13272 }
13273 static FORCEINLINE HRESULT ISpeechMMSysAudio_Read(ISpeechMMSysAudio* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13274     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13275 }
13276 static FORCEINLINE HRESULT ISpeechMMSysAudio_Write(ISpeechMMSysAudio* This,VARIANT Buffer,LONG *BytesWritten) {
13277     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13278 }
13279 static FORCEINLINE HRESULT ISpeechMMSysAudio_Seek(ISpeechMMSysAudio* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13280     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13281 }
13282 /*** ISpeechAudio methods ***/
13283 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Status(ISpeechMMSysAudio* This,ISpeechAudioStatus **Status) {
13284     return This->lpVtbl->get_Status(This,Status);
13285 }
13286 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferInfo(ISpeechMMSysAudio* This,ISpeechAudioBufferInfo **BufferInfo) {
13287     return This->lpVtbl->get_BufferInfo(This,BufferInfo);
13288 }
13289 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DefaultFormat(ISpeechMMSysAudio* This,ISpeechAudioFormat **StreamFormat) {
13290     return This->lpVtbl->get_DefaultFormat(This,StreamFormat);
13291 }
13292 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_Volume(ISpeechMMSysAudio* This,LONG *Volume) {
13293     return This->lpVtbl->get_Volume(This,Volume);
13294 }
13295 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_Volume(ISpeechMMSysAudio* This,LONG Volume) {
13296     return This->lpVtbl->put_Volume(This,Volume);
13297 }
13298 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_BufferNotifySize(ISpeechMMSysAudio* This,LONG *BufferNotifySize) {
13299     return This->lpVtbl->get_BufferNotifySize(This,BufferNotifySize);
13300 }
13301 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_BufferNotifySize(ISpeechMMSysAudio* This,LONG BufferNotifySize) {
13302     return This->lpVtbl->put_BufferNotifySize(This,BufferNotifySize);
13303 }
13304 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_EventHandle(ISpeechMMSysAudio* This,LONG *EventHandle) {
13305     return This->lpVtbl->get_EventHandle(This,EventHandle);
13306 }
13307 static FORCEINLINE HRESULT ISpeechMMSysAudio_SetState(ISpeechMMSysAudio* This,SpeechAudioState State) {
13308     return This->lpVtbl->SetState(This,State);
13309 }
13310 /*** ISpeechMMSysAudio methods ***/
13311 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_DeviceId(ISpeechMMSysAudio* This,LONG *DeviceId) {
13312     return This->lpVtbl->get_DeviceId(This,DeviceId);
13313 }
13314 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_DeviceId(ISpeechMMSysAudio* This,LONG DeviceId) {
13315     return This->lpVtbl->put_DeviceId(This,DeviceId);
13316 }
13317 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_LineId(ISpeechMMSysAudio* This,LONG *LineId) {
13318     return This->lpVtbl->get_LineId(This,LineId);
13319 }
13320 static FORCEINLINE HRESULT ISpeechMMSysAudio_put_LineId(ISpeechMMSysAudio* This,LONG LineId) {
13321     return This->lpVtbl->put_LineId(This,LineId);
13322 }
13323 static FORCEINLINE HRESULT ISpeechMMSysAudio_get_MMHandle(ISpeechMMSysAudio* This,LONG *Handle) {
13324     return This->lpVtbl->get_MMHandle(This,Handle);
13325 }
13326 #endif
13327 #endif
13328 
13329 #endif
13330 
13331 
13332 #endif  /* __ISpeechMMSysAudio_INTERFACE_DEFINED__ */
13333 
13334 /*****************************************************************************
13335  * ISpeechFileStream interface
13336  */
13337 #ifndef __ISpeechFileStream_INTERFACE_DEFINED__
13338 #define __ISpeechFileStream_INTERFACE_DEFINED__
13339 
13340 DEFINE_GUID(IID_ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7);
13341 #if defined(__cplusplus) && !defined(CINTERFACE)
13342 MIDL_INTERFACE("af67f125-ab39-4e93-b4a2-cc2e66e182a7")
13343 ISpeechFileStream : public ISpeechBaseStream
13344 {
13345     virtual HRESULT STDMETHODCALLTYPE Open(
13346         BSTR FileName,
13347         SpeechStreamFileMode FileMode = SSFMOpenForRead,
13348         VARIANT_BOOL DoEvents = 0) = 0;
13349 
13350     virtual HRESULT STDMETHODCALLTYPE Close(
13351         ) = 0;
13352 
13353 };
13354 #ifdef __CRT_UUID_DECL
13355 __CRT_UUID_DECL(ISpeechFileStream, 0xaf67f125, 0xab39, 0x4e93, 0xb4,0xa2, 0xcc,0x2e,0x66,0xe1,0x82,0xa7)
13356 #endif
13357 #else
13358 typedef struct ISpeechFileStreamVtbl {
13359     BEGIN_INTERFACE
13360 
13361     /*** IUnknown methods ***/
13362     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13363         ISpeechFileStream *This,
13364         REFIID riid,
13365         void **ppvObject);
13366 
13367     ULONG (STDMETHODCALLTYPE *AddRef)(
13368         ISpeechFileStream *This);
13369 
13370     ULONG (STDMETHODCALLTYPE *Release)(
13371         ISpeechFileStream *This);
13372 
13373     /*** IDispatch methods ***/
13374     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13375         ISpeechFileStream *This,
13376         UINT *pctinfo);
13377 
13378     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13379         ISpeechFileStream *This,
13380         UINT iTInfo,
13381         LCID lcid,
13382         ITypeInfo **ppTInfo);
13383 
13384     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13385         ISpeechFileStream *This,
13386         REFIID riid,
13387         LPOLESTR *rgszNames,
13388         UINT cNames,
13389         LCID lcid,
13390         DISPID *rgDispId);
13391 
13392     HRESULT (STDMETHODCALLTYPE *Invoke)(
13393         ISpeechFileStream *This,
13394         DISPID dispIdMember,
13395         REFIID riid,
13396         LCID lcid,
13397         WORD wFlags,
13398         DISPPARAMS *pDispParams,
13399         VARIANT *pVarResult,
13400         EXCEPINFO *pExcepInfo,
13401         UINT *puArgErr);
13402 
13403     /*** ISpeechBaseStream methods ***/
13404     HRESULT (STDMETHODCALLTYPE *get_Format)(
13405         ISpeechFileStream *This,
13406         ISpeechAudioFormat **AudioFormat);
13407 
13408     HRESULT (STDMETHODCALLTYPE *putref_Format)(
13409         ISpeechFileStream *This,
13410         ISpeechAudioFormat *AudioFormat);
13411 
13412     HRESULT (STDMETHODCALLTYPE *Read)(
13413         ISpeechFileStream *This,
13414         VARIANT *Buffer,
13415         LONG NumberOfBytes,
13416         LONG *BytesRead);
13417 
13418     HRESULT (STDMETHODCALLTYPE *Write)(
13419         ISpeechFileStream *This,
13420         VARIANT Buffer,
13421         LONG *BytesWritten);
13422 
13423     HRESULT (STDMETHODCALLTYPE *Seek)(
13424         ISpeechFileStream *This,
13425         VARIANT Position,
13426         SpeechStreamSeekPositionType Origin,
13427         VARIANT *NewPosition);
13428 
13429     /*** ISpeechFileStream methods ***/
13430     HRESULT (STDMETHODCALLTYPE *Open)(
13431         ISpeechFileStream *This,
13432         BSTR FileName,
13433         SpeechStreamFileMode FileMode,
13434         VARIANT_BOOL DoEvents);
13435 
13436     HRESULT (STDMETHODCALLTYPE *Close)(
13437         ISpeechFileStream *This);
13438 
13439     END_INTERFACE
13440 } ISpeechFileStreamVtbl;
13441 
13442 interface ISpeechFileStream {
13443     CONST_VTBL ISpeechFileStreamVtbl* lpVtbl;
13444 };
13445 
13446 #ifdef COBJMACROS
13447 #ifndef WIDL_C_INLINE_WRAPPERS
13448 /*** IUnknown methods ***/
13449 #define ISpeechFileStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13450 #define ISpeechFileStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13451 #define ISpeechFileStream_Release(This) (This)->lpVtbl->Release(This)
13452 /*** IDispatch methods ***/
13453 #define ISpeechFileStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13454 #define ISpeechFileStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13455 #define ISpeechFileStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13456 #define ISpeechFileStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13457 /*** ISpeechBaseStream methods ***/
13458 #define ISpeechFileStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13459 #define ISpeechFileStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13460 #define ISpeechFileStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13461 #define ISpeechFileStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13462 #define ISpeechFileStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13463 /*** ISpeechFileStream methods ***/
13464 #define ISpeechFileStream_Open(This,FileName,FileMode,DoEvents) (This)->lpVtbl->Open(This,FileName,FileMode,DoEvents)
13465 #define ISpeechFileStream_Close(This) (This)->lpVtbl->Close(This)
13466 #else
13467 /*** IUnknown methods ***/
13468 static FORCEINLINE HRESULT ISpeechFileStream_QueryInterface(ISpeechFileStream* This,REFIID riid,void **ppvObject) {
13469     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13470 }
13471 static FORCEINLINE ULONG ISpeechFileStream_AddRef(ISpeechFileStream* This) {
13472     return This->lpVtbl->AddRef(This);
13473 }
13474 static FORCEINLINE ULONG ISpeechFileStream_Release(ISpeechFileStream* This) {
13475     return This->lpVtbl->Release(This);
13476 }
13477 /*** IDispatch methods ***/
13478 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfoCount(ISpeechFileStream* This,UINT *pctinfo) {
13479     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13480 }
13481 static FORCEINLINE HRESULT ISpeechFileStream_GetTypeInfo(ISpeechFileStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13482     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13483 }
13484 static FORCEINLINE HRESULT ISpeechFileStream_GetIDsOfNames(ISpeechFileStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13485     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13486 }
13487 static FORCEINLINE HRESULT ISpeechFileStream_Invoke(ISpeechFileStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13488     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13489 }
13490 /*** ISpeechBaseStream methods ***/
13491 static FORCEINLINE HRESULT ISpeechFileStream_get_Format(ISpeechFileStream* This,ISpeechAudioFormat **AudioFormat) {
13492     return This->lpVtbl->get_Format(This,AudioFormat);
13493 }
13494 static FORCEINLINE HRESULT ISpeechFileStream_putref_Format(ISpeechFileStream* This,ISpeechAudioFormat *AudioFormat) {
13495     return This->lpVtbl->putref_Format(This,AudioFormat);
13496 }
13497 static FORCEINLINE HRESULT ISpeechFileStream_Read(ISpeechFileStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13498     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13499 }
13500 static FORCEINLINE HRESULT ISpeechFileStream_Write(ISpeechFileStream* This,VARIANT Buffer,LONG *BytesWritten) {
13501     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13502 }
13503 static FORCEINLINE HRESULT ISpeechFileStream_Seek(ISpeechFileStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13504     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13505 }
13506 /*** ISpeechFileStream methods ***/
13507 static FORCEINLINE HRESULT ISpeechFileStream_Open(ISpeechFileStream* This,BSTR FileName,SpeechStreamFileMode FileMode,VARIANT_BOOL DoEvents) {
13508     return This->lpVtbl->Open(This,FileName,FileMode,DoEvents);
13509 }
13510 static FORCEINLINE HRESULT ISpeechFileStream_Close(ISpeechFileStream* This) {
13511     return This->lpVtbl->Close(This);
13512 }
13513 #endif
13514 #endif
13515 
13516 #endif
13517 
13518 
13519 #endif  /* __ISpeechFileStream_INTERFACE_DEFINED__ */
13520 
13521 /*****************************************************************************
13522  * ISpeechCustomStream interface
13523  */
13524 #ifndef __ISpeechCustomStream_INTERFACE_DEFINED__
13525 #define __ISpeechCustomStream_INTERFACE_DEFINED__
13526 
13527 DEFINE_GUID(IID_ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae);
13528 #if defined(__cplusplus) && !defined(CINTERFACE)
13529 MIDL_INTERFACE("1a9e9f4f-104f-4db8-a115-efd7fd0c97ae")
13530 ISpeechCustomStream : public ISpeechBaseStream
13531 {
13532     virtual HRESULT STDMETHODCALLTYPE get_BaseStream(
13533         IUnknown **ppUnkStream) = 0;
13534 
13535     virtual HRESULT STDMETHODCALLTYPE putref_BaseStream(
13536         IUnknown *pUnkStream) = 0;
13537 
13538 };
13539 #ifdef __CRT_UUID_DECL
13540 __CRT_UUID_DECL(ISpeechCustomStream, 0x1a9e9f4f, 0x104f, 0x4db8, 0xa1,0x15, 0xef,0xd7,0xfd,0x0c,0x97,0xae)
13541 #endif
13542 #else
13543 typedef struct ISpeechCustomStreamVtbl {
13544     BEGIN_INTERFACE
13545 
13546     /*** IUnknown methods ***/
13547     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13548         ISpeechCustomStream *This,
13549         REFIID riid,
13550         void **ppvObject);
13551 
13552     ULONG (STDMETHODCALLTYPE *AddRef)(
13553         ISpeechCustomStream *This);
13554 
13555     ULONG (STDMETHODCALLTYPE *Release)(
13556         ISpeechCustomStream *This);
13557 
13558     /*** IDispatch methods ***/
13559     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13560         ISpeechCustomStream *This,
13561         UINT *pctinfo);
13562 
13563     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13564         ISpeechCustomStream *This,
13565         UINT iTInfo,
13566         LCID lcid,
13567         ITypeInfo **ppTInfo);
13568 
13569     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13570         ISpeechCustomStream *This,
13571         REFIID riid,
13572         LPOLESTR *rgszNames,
13573         UINT cNames,
13574         LCID lcid,
13575         DISPID *rgDispId);
13576 
13577     HRESULT (STDMETHODCALLTYPE *Invoke)(
13578         ISpeechCustomStream *This,
13579         DISPID dispIdMember,
13580         REFIID riid,
13581         LCID lcid,
13582         WORD wFlags,
13583         DISPPARAMS *pDispParams,
13584         VARIANT *pVarResult,
13585         EXCEPINFO *pExcepInfo,
13586         UINT *puArgErr);
13587 
13588     /*** ISpeechBaseStream methods ***/
13589     HRESULT (STDMETHODCALLTYPE *get_Format)(
13590         ISpeechCustomStream *This,
13591         ISpeechAudioFormat **AudioFormat);
13592 
13593     HRESULT (STDMETHODCALLTYPE *putref_Format)(
13594         ISpeechCustomStream *This,
13595         ISpeechAudioFormat *AudioFormat);
13596 
13597     HRESULT (STDMETHODCALLTYPE *Read)(
13598         ISpeechCustomStream *This,
13599         VARIANT *Buffer,
13600         LONG NumberOfBytes,
13601         LONG *BytesRead);
13602 
13603     HRESULT (STDMETHODCALLTYPE *Write)(
13604         ISpeechCustomStream *This,
13605         VARIANT Buffer,
13606         LONG *BytesWritten);
13607 
13608     HRESULT (STDMETHODCALLTYPE *Seek)(
13609         ISpeechCustomStream *This,
13610         VARIANT Position,
13611         SpeechStreamSeekPositionType Origin,
13612         VARIANT *NewPosition);
13613 
13614     /*** ISpeechCustomStream methods ***/
13615     HRESULT (STDMETHODCALLTYPE *get_BaseStream)(
13616         ISpeechCustomStream *This,
13617         IUnknown **ppUnkStream);
13618 
13619     HRESULT (STDMETHODCALLTYPE *putref_BaseStream)(
13620         ISpeechCustomStream *This,
13621         IUnknown *pUnkStream);
13622 
13623     END_INTERFACE
13624 } ISpeechCustomStreamVtbl;
13625 
13626 interface ISpeechCustomStream {
13627     CONST_VTBL ISpeechCustomStreamVtbl* lpVtbl;
13628 };
13629 
13630 #ifdef COBJMACROS
13631 #ifndef WIDL_C_INLINE_WRAPPERS
13632 /*** IUnknown methods ***/
13633 #define ISpeechCustomStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13634 #define ISpeechCustomStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13635 #define ISpeechCustomStream_Release(This) (This)->lpVtbl->Release(This)
13636 /*** IDispatch methods ***/
13637 #define ISpeechCustomStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13638 #define ISpeechCustomStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13639 #define ISpeechCustomStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13640 #define ISpeechCustomStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13641 /*** ISpeechBaseStream methods ***/
13642 #define ISpeechCustomStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13643 #define ISpeechCustomStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13644 #define ISpeechCustomStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13645 #define ISpeechCustomStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13646 #define ISpeechCustomStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13647 /*** ISpeechCustomStream methods ***/
13648 #define ISpeechCustomStream_get_BaseStream(This,ppUnkStream) (This)->lpVtbl->get_BaseStream(This,ppUnkStream)
13649 #define ISpeechCustomStream_putref_BaseStream(This,pUnkStream) (This)->lpVtbl->putref_BaseStream(This,pUnkStream)
13650 #else
13651 /*** IUnknown methods ***/
13652 static FORCEINLINE HRESULT ISpeechCustomStream_QueryInterface(ISpeechCustomStream* This,REFIID riid,void **ppvObject) {
13653     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13654 }
13655 static FORCEINLINE ULONG ISpeechCustomStream_AddRef(ISpeechCustomStream* This) {
13656     return This->lpVtbl->AddRef(This);
13657 }
13658 static FORCEINLINE ULONG ISpeechCustomStream_Release(ISpeechCustomStream* This) {
13659     return This->lpVtbl->Release(This);
13660 }
13661 /*** IDispatch methods ***/
13662 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfoCount(ISpeechCustomStream* This,UINT *pctinfo) {
13663     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13664 }
13665 static FORCEINLINE HRESULT ISpeechCustomStream_GetTypeInfo(ISpeechCustomStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13666     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13667 }
13668 static FORCEINLINE HRESULT ISpeechCustomStream_GetIDsOfNames(ISpeechCustomStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13669     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13670 }
13671 static FORCEINLINE HRESULT ISpeechCustomStream_Invoke(ISpeechCustomStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13672     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13673 }
13674 /*** ISpeechBaseStream methods ***/
13675 static FORCEINLINE HRESULT ISpeechCustomStream_get_Format(ISpeechCustomStream* This,ISpeechAudioFormat **AudioFormat) {
13676     return This->lpVtbl->get_Format(This,AudioFormat);
13677 }
13678 static FORCEINLINE HRESULT ISpeechCustomStream_putref_Format(ISpeechCustomStream* This,ISpeechAudioFormat *AudioFormat) {
13679     return This->lpVtbl->putref_Format(This,AudioFormat);
13680 }
13681 static FORCEINLINE HRESULT ISpeechCustomStream_Read(ISpeechCustomStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13682     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13683 }
13684 static FORCEINLINE HRESULT ISpeechCustomStream_Write(ISpeechCustomStream* This,VARIANT Buffer,LONG *BytesWritten) {
13685     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13686 }
13687 static FORCEINLINE HRESULT ISpeechCustomStream_Seek(ISpeechCustomStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13688     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13689 }
13690 /*** ISpeechCustomStream methods ***/
13691 static FORCEINLINE HRESULT ISpeechCustomStream_get_BaseStream(ISpeechCustomStream* This,IUnknown **ppUnkStream) {
13692     return This->lpVtbl->get_BaseStream(This,ppUnkStream);
13693 }
13694 static FORCEINLINE HRESULT ISpeechCustomStream_putref_BaseStream(ISpeechCustomStream* This,IUnknown *pUnkStream) {
13695     return This->lpVtbl->putref_BaseStream(This,pUnkStream);
13696 }
13697 #endif
13698 #endif
13699 
13700 #endif
13701 
13702 
13703 #endif  /* __ISpeechCustomStream_INTERFACE_DEFINED__ */
13704 
13705 /*****************************************************************************
13706  * ISpeechMemoryStream interface
13707  */
13708 #ifndef __ISpeechMemoryStream_INTERFACE_DEFINED__
13709 #define __ISpeechMemoryStream_INTERFACE_DEFINED__
13710 
13711 DEFINE_GUID(IID_ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08);
13712 #if defined(__cplusplus) && !defined(CINTERFACE)
13713 MIDL_INTERFACE("eeb14b68-808b-4abe-a5ea-b51da7588008")
13714 ISpeechMemoryStream : public ISpeechBaseStream
13715 {
13716     virtual HRESULT STDMETHODCALLTYPE SetData(
13717         VARIANT Data) = 0;
13718 
13719     virtual HRESULT STDMETHODCALLTYPE GetData(
13720         VARIANT *pData) = 0;
13721 
13722 };
13723 #ifdef __CRT_UUID_DECL
13724 __CRT_UUID_DECL(ISpeechMemoryStream, 0xeeb14b68, 0x808b, 0x4abe, 0xa5,0xea, 0xb5,0x1d,0xa7,0x58,0x80,0x08)
13725 #endif
13726 #else
13727 typedef struct ISpeechMemoryStreamVtbl {
13728     BEGIN_INTERFACE
13729 
13730     /*** IUnknown methods ***/
13731     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13732         ISpeechMemoryStream *This,
13733         REFIID riid,
13734         void **ppvObject);
13735 
13736     ULONG (STDMETHODCALLTYPE *AddRef)(
13737         ISpeechMemoryStream *This);
13738 
13739     ULONG (STDMETHODCALLTYPE *Release)(
13740         ISpeechMemoryStream *This);
13741 
13742     /*** IDispatch methods ***/
13743     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13744         ISpeechMemoryStream *This,
13745         UINT *pctinfo);
13746 
13747     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13748         ISpeechMemoryStream *This,
13749         UINT iTInfo,
13750         LCID lcid,
13751         ITypeInfo **ppTInfo);
13752 
13753     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13754         ISpeechMemoryStream *This,
13755         REFIID riid,
13756         LPOLESTR *rgszNames,
13757         UINT cNames,
13758         LCID lcid,
13759         DISPID *rgDispId);
13760 
13761     HRESULT (STDMETHODCALLTYPE *Invoke)(
13762         ISpeechMemoryStream *This,
13763         DISPID dispIdMember,
13764         REFIID riid,
13765         LCID lcid,
13766         WORD wFlags,
13767         DISPPARAMS *pDispParams,
13768         VARIANT *pVarResult,
13769         EXCEPINFO *pExcepInfo,
13770         UINT *puArgErr);
13771 
13772     /*** ISpeechBaseStream methods ***/
13773     HRESULT (STDMETHODCALLTYPE *get_Format)(
13774         ISpeechMemoryStream *This,
13775         ISpeechAudioFormat **AudioFormat);
13776 
13777     HRESULT (STDMETHODCALLTYPE *putref_Format)(
13778         ISpeechMemoryStream *This,
13779         ISpeechAudioFormat *AudioFormat);
13780 
13781     HRESULT (STDMETHODCALLTYPE *Read)(
13782         ISpeechMemoryStream *This,
13783         VARIANT *Buffer,
13784         LONG NumberOfBytes,
13785         LONG *BytesRead);
13786 
13787     HRESULT (STDMETHODCALLTYPE *Write)(
13788         ISpeechMemoryStream *This,
13789         VARIANT Buffer,
13790         LONG *BytesWritten);
13791 
13792     HRESULT (STDMETHODCALLTYPE *Seek)(
13793         ISpeechMemoryStream *This,
13794         VARIANT Position,
13795         SpeechStreamSeekPositionType Origin,
13796         VARIANT *NewPosition);
13797 
13798     /*** ISpeechMemoryStream methods ***/
13799     HRESULT (STDMETHODCALLTYPE *SetData)(
13800         ISpeechMemoryStream *This,
13801         VARIANT Data);
13802 
13803     HRESULT (STDMETHODCALLTYPE *GetData)(
13804         ISpeechMemoryStream *This,
13805         VARIANT *pData);
13806 
13807     END_INTERFACE
13808 } ISpeechMemoryStreamVtbl;
13809 
13810 interface ISpeechMemoryStream {
13811     CONST_VTBL ISpeechMemoryStreamVtbl* lpVtbl;
13812 };
13813 
13814 #ifdef COBJMACROS
13815 #ifndef WIDL_C_INLINE_WRAPPERS
13816 /*** IUnknown methods ***/
13817 #define ISpeechMemoryStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13818 #define ISpeechMemoryStream_AddRef(This) (This)->lpVtbl->AddRef(This)
13819 #define ISpeechMemoryStream_Release(This) (This)->lpVtbl->Release(This)
13820 /*** IDispatch methods ***/
13821 #define ISpeechMemoryStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
13822 #define ISpeechMemoryStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
13823 #define ISpeechMemoryStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
13824 #define ISpeechMemoryStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
13825 /*** ISpeechBaseStream methods ***/
13826 #define ISpeechMemoryStream_get_Format(This,AudioFormat) (This)->lpVtbl->get_Format(This,AudioFormat)
13827 #define ISpeechMemoryStream_putref_Format(This,AudioFormat) (This)->lpVtbl->putref_Format(This,AudioFormat)
13828 #define ISpeechMemoryStream_Read(This,Buffer,NumberOfBytes,BytesRead) (This)->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead)
13829 #define ISpeechMemoryStream_Write(This,Buffer,BytesWritten) (This)->lpVtbl->Write(This,Buffer,BytesWritten)
13830 #define ISpeechMemoryStream_Seek(This,Position,Origin,NewPosition) (This)->lpVtbl->Seek(This,Position,Origin,NewPosition)
13831 /*** ISpeechMemoryStream methods ***/
13832 #define ISpeechMemoryStream_SetData(This,Data) (This)->lpVtbl->SetData(This,Data)
13833 #define ISpeechMemoryStream_GetData(This,pData) (This)->lpVtbl->GetData(This,pData)
13834 #else
13835 /*** IUnknown methods ***/
13836 static FORCEINLINE HRESULT ISpeechMemoryStream_QueryInterface(ISpeechMemoryStream* This,REFIID riid,void **ppvObject) {
13837     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13838 }
13839 static FORCEINLINE ULONG ISpeechMemoryStream_AddRef(ISpeechMemoryStream* This) {
13840     return This->lpVtbl->AddRef(This);
13841 }
13842 static FORCEINLINE ULONG ISpeechMemoryStream_Release(ISpeechMemoryStream* This) {
13843     return This->lpVtbl->Release(This);
13844 }
13845 /*** IDispatch methods ***/
13846 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfoCount(ISpeechMemoryStream* This,UINT *pctinfo) {
13847     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
13848 }
13849 static FORCEINLINE HRESULT ISpeechMemoryStream_GetTypeInfo(ISpeechMemoryStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
13850     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
13851 }
13852 static FORCEINLINE HRESULT ISpeechMemoryStream_GetIDsOfNames(ISpeechMemoryStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
13853     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
13854 }
13855 static FORCEINLINE HRESULT ISpeechMemoryStream_Invoke(ISpeechMemoryStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
13856     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
13857 }
13858 /*** ISpeechBaseStream methods ***/
13859 static FORCEINLINE HRESULT ISpeechMemoryStream_get_Format(ISpeechMemoryStream* This,ISpeechAudioFormat **AudioFormat) {
13860     return This->lpVtbl->get_Format(This,AudioFormat);
13861 }
13862 static FORCEINLINE HRESULT ISpeechMemoryStream_putref_Format(ISpeechMemoryStream* This,ISpeechAudioFormat *AudioFormat) {
13863     return This->lpVtbl->putref_Format(This,AudioFormat);
13864 }
13865 static FORCEINLINE HRESULT ISpeechMemoryStream_Read(ISpeechMemoryStream* This,VARIANT *Buffer,LONG NumberOfBytes,LONG *BytesRead) {
13866     return This->lpVtbl->Read(This,Buffer,NumberOfBytes,BytesRead);
13867 }
13868 static FORCEINLINE HRESULT ISpeechMemoryStream_Write(ISpeechMemoryStream* This,VARIANT Buffer,LONG *BytesWritten) {
13869     return This->lpVtbl->Write(This,Buffer,BytesWritten);
13870 }
13871 static FORCEINLINE HRESULT ISpeechMemoryStream_Seek(ISpeechMemoryStream* This,VARIANT Position,SpeechStreamSeekPositionType Origin,VARIANT *NewPosition) {
13872     return This->lpVtbl->Seek(This,Position,Origin,NewPosition);
13873 }
13874 /*** ISpeechMemoryStream methods ***/
13875 static FORCEINLINE HRESULT ISpeechMemoryStream_SetData(ISpeechMemoryStream* This,VARIANT Data) {
13876     return This->lpVtbl->SetData(This,Data);
13877 }
13878 static FORCEINLINE HRESULT ISpeechMemoryStream_GetData(ISpeechMemoryStream* This,VARIANT *pData) {
13879     return This->lpVtbl->GetData(This,pData);
13880 }
13881 #endif
13882 #endif
13883 
13884 #endif
13885 
13886 
13887 #endif  /* __ISpeechMemoryStream_INTERFACE_DEFINED__ */
13888 
13889 /*****************************************************************************
13890  * ISpeechAudioStatus interface
13891  */
13892 #ifndef __ISpeechAudioStatus_INTERFACE_DEFINED__
13893 #define __ISpeechAudioStatus_INTERFACE_DEFINED__
13894 
13895 DEFINE_GUID(IID_ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78);
13896 #if defined(__cplusplus) && !defined(CINTERFACE)
13897 MIDL_INTERFACE("c62d9c91-7458-47f6-862d-1ef86fb0b278")
13898 ISpeechAudioStatus : public IDispatch
13899 {
13900     virtual HRESULT STDMETHODCALLTYPE get_FreeBufferSpace(
13901         LONG *FreeBufferSpace) = 0;
13902 
13903     virtual HRESULT STDMETHODCALLTYPE get_NonBlockingIO(
13904         LONG *NonBlockingIO) = 0;
13905 
13906     virtual HRESULT STDMETHODCALLTYPE get_State(
13907         SpeechAudioState *State) = 0;
13908 
13909     virtual HRESULT STDMETHODCALLTYPE get_CurrentSeekPosition(
13910         VARIANT *CurrentSeekPosition) = 0;
13911 
13912     virtual HRESULT STDMETHODCALLTYPE get_CurrentDevicePosition(
13913         VARIANT *CurrentDevicePosition) = 0;
13914 
13915 };
13916 #ifdef __CRT_UUID_DECL
13917 __CRT_UUID_DECL(ISpeechAudioStatus, 0xc62d9c91, 0x7458, 0x47f6, 0x86,0x2d, 0x1e,0xf8,0x6f,0xb0,0xb2,0x78)
13918 #endif
13919 #else
13920 typedef struct ISpeechAudioStatusVtbl {
13921     BEGIN_INTERFACE
13922 
13923     /*** IUnknown methods ***/
13924     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13925         ISpeechAudioStatus *This,
13926         REFIID riid,
13927         void **ppvObject);
13928 
13929     ULONG (STDMETHODCALLTYPE *AddRef)(
13930         ISpeechAudioStatus *This);
13931 
13932     ULONG (STDMETHODCALLTYPE *Release)(
13933         ISpeechAudioStatus *This);
13934 
13935     /*** IDispatch methods ***/
13936     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
13937         ISpeechAudioStatus *This,
13938         UINT *pctinfo);
13939 
13940     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
13941         ISpeechAudioStatus *This,
13942         UINT iTInfo,
13943         LCID lcid,
13944         ITypeInfo **ppTInfo);
13945 
13946     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
13947         ISpeechAudioStatus *This,
13948         REFIID riid,
13949         LPOLESTR *rgszNames,
13950         UINT cNames,
13951         LCID lcid,
13952         DISPID *rgDispId);
13953 
13954     HRESULT (STDMETHODCALLTYPE *Invoke)(
13955         ISpeechAudioStatus *This,
13956         DISPID dispIdMember,
13957         REFIID riid,
13958         LCID lcid,
13959         WORD wFlags,
13960         DISPPARAMS *pDispParams,
13961         VARIANT *pVarResult,
13962         EXCEPINFO *pExcepInfo,
13963         UINT *puArgErr);
13964 
13965     /*** ISpeechAudioStatus methods ***/
13966     HRESULT (STDMETHODCALLTYPE *get_FreeBufferSpace)(
13967         ISpeechAudioStatus *This,
13968         LONG *FreeBufferSpace);
13969 
13970     HRESULT (STDMETHODCALLTYPE *get_NonBlockingIO)(
13971         ISpeechAudioStatus *This,
13972         LONG *NonBlockingIO);
13973 
13974     HRESULT (STDMETHODCALLTYPE *get_State)(
13975         ISpeechAudioStatus *This,
13976         SpeechAudioState *State);
13977 
13978     HRESULT (STDMETHODCALLTYPE *get_CurrentSeekPosition)(
13979         ISpeechAudioStatus *This,
13980         VARIANT *CurrentSeekPosition);
13981 
13982     HRESULT (STDMETHODCALLTYPE *get_CurrentDevicePosition)(
13983         ISpeechAudioStatus *This,
13984         VARIANT *CurrentDevicePosition);
13985 
13986     END_INTERFACE
13987 } ISpeechAudioStatusVtbl;
13988 
13989 interface ISpeechAudioStatus {
13990     CONST_VTBL ISpeechAudioStatusVtbl* lpVtbl;
13991 };
13992 
13993 #ifdef COBJMACROS
13994 #ifndef WIDL_C_INLINE_WRAPPERS
13995 /*** IUnknown methods ***/
13996 #define ISpeechAudioStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13997 #define ISpeechAudioStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
13998 #define ISpeechAudioStatus_Release(This) (This)->lpVtbl->Release(This)
13999 /*** IDispatch methods ***/
14000 #define ISpeechAudioStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14001 #define ISpeechAudioStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14002 #define ISpeechAudioStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14003 #define ISpeechAudioStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14004 /*** ISpeechAudioStatus methods ***/
14005 #define ISpeechAudioStatus_get_FreeBufferSpace(This,FreeBufferSpace) (This)->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace)
14006 #define ISpeechAudioStatus_get_NonBlockingIO(This,NonBlockingIO) (This)->lpVtbl->get_NonBlockingIO(This,NonBlockingIO)
14007 #define ISpeechAudioStatus_get_State(This,State) (This)->lpVtbl->get_State(This,State)
14008 #define ISpeechAudioStatus_get_CurrentSeekPosition(This,CurrentSeekPosition) (This)->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition)
14009 #define ISpeechAudioStatus_get_CurrentDevicePosition(This,CurrentDevicePosition) (This)->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition)
14010 #else
14011 /*** IUnknown methods ***/
14012 static FORCEINLINE HRESULT ISpeechAudioStatus_QueryInterface(ISpeechAudioStatus* This,REFIID riid,void **ppvObject) {
14013     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14014 }
14015 static FORCEINLINE ULONG ISpeechAudioStatus_AddRef(ISpeechAudioStatus* This) {
14016     return This->lpVtbl->AddRef(This);
14017 }
14018 static FORCEINLINE ULONG ISpeechAudioStatus_Release(ISpeechAudioStatus* This) {
14019     return This->lpVtbl->Release(This);
14020 }
14021 /*** IDispatch methods ***/
14022 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfoCount(ISpeechAudioStatus* This,UINT *pctinfo) {
14023     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14024 }
14025 static FORCEINLINE HRESULT ISpeechAudioStatus_GetTypeInfo(ISpeechAudioStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14026     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14027 }
14028 static FORCEINLINE HRESULT ISpeechAudioStatus_GetIDsOfNames(ISpeechAudioStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14029     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14030 }
14031 static FORCEINLINE HRESULT ISpeechAudioStatus_Invoke(ISpeechAudioStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14032     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14033 }
14034 /*** ISpeechAudioStatus methods ***/
14035 static FORCEINLINE HRESULT ISpeechAudioStatus_get_FreeBufferSpace(ISpeechAudioStatus* This,LONG *FreeBufferSpace) {
14036     return This->lpVtbl->get_FreeBufferSpace(This,FreeBufferSpace);
14037 }
14038 static FORCEINLINE HRESULT ISpeechAudioStatus_get_NonBlockingIO(ISpeechAudioStatus* This,LONG *NonBlockingIO) {
14039     return This->lpVtbl->get_NonBlockingIO(This,NonBlockingIO);
14040 }
14041 static FORCEINLINE HRESULT ISpeechAudioStatus_get_State(ISpeechAudioStatus* This,SpeechAudioState *State) {
14042     return This->lpVtbl->get_State(This,State);
14043 }
14044 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentSeekPosition(ISpeechAudioStatus* This,VARIANT *CurrentSeekPosition) {
14045     return This->lpVtbl->get_CurrentSeekPosition(This,CurrentSeekPosition);
14046 }
14047 static FORCEINLINE HRESULT ISpeechAudioStatus_get_CurrentDevicePosition(ISpeechAudioStatus* This,VARIANT *CurrentDevicePosition) {
14048     return This->lpVtbl->get_CurrentDevicePosition(This,CurrentDevicePosition);
14049 }
14050 #endif
14051 #endif
14052 
14053 #endif
14054 
14055 
14056 #endif  /* __ISpeechAudioStatus_INTERFACE_DEFINED__ */
14057 
14058 /*****************************************************************************
14059  * ISpeechAudioBufferInfo interface
14060  */
14061 #ifndef __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
14062 #define __ISpeechAudioBufferInfo_INTERFACE_DEFINED__
14063 
14064 DEFINE_GUID(IID_ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc);
14065 #if defined(__cplusplus) && !defined(CINTERFACE)
14066 MIDL_INTERFACE("11b103d8-1142-4edf-a093-82fb3915f8cc")
14067 ISpeechAudioBufferInfo : public IDispatch
14068 {
14069     virtual HRESULT STDMETHODCALLTYPE get_MinNotification(
14070         LONG *MinNotification) = 0;
14071 
14072     virtual HRESULT STDMETHODCALLTYPE put_MinNotification(
14073         LONG MinNotification) = 0;
14074 
14075     virtual HRESULT STDMETHODCALLTYPE get_BufferSize(
14076         LONG *BufferSize) = 0;
14077 
14078     virtual HRESULT STDMETHODCALLTYPE put_BufferSize(
14079         LONG BufferSize) = 0;
14080 
14081     virtual HRESULT STDMETHODCALLTYPE get_EventBias(
14082         LONG *EventBias) = 0;
14083 
14084     virtual HRESULT STDMETHODCALLTYPE put_EventBias(
14085         LONG EventBias) = 0;
14086 
14087 };
14088 #ifdef __CRT_UUID_DECL
14089 __CRT_UUID_DECL(ISpeechAudioBufferInfo, 0x11b103d8, 0x1142, 0x4edf, 0xa0,0x93, 0x82,0xfb,0x39,0x15,0xf8,0xcc)
14090 #endif
14091 #else
14092 typedef struct ISpeechAudioBufferInfoVtbl {
14093     BEGIN_INTERFACE
14094 
14095     /*** IUnknown methods ***/
14096     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14097         ISpeechAudioBufferInfo *This,
14098         REFIID riid,
14099         void **ppvObject);
14100 
14101     ULONG (STDMETHODCALLTYPE *AddRef)(
14102         ISpeechAudioBufferInfo *This);
14103 
14104     ULONG (STDMETHODCALLTYPE *Release)(
14105         ISpeechAudioBufferInfo *This);
14106 
14107     /*** IDispatch methods ***/
14108     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14109         ISpeechAudioBufferInfo *This,
14110         UINT *pctinfo);
14111 
14112     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14113         ISpeechAudioBufferInfo *This,
14114         UINT iTInfo,
14115         LCID lcid,
14116         ITypeInfo **ppTInfo);
14117 
14118     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14119         ISpeechAudioBufferInfo *This,
14120         REFIID riid,
14121         LPOLESTR *rgszNames,
14122         UINT cNames,
14123         LCID lcid,
14124         DISPID *rgDispId);
14125 
14126     HRESULT (STDMETHODCALLTYPE *Invoke)(
14127         ISpeechAudioBufferInfo *This,
14128         DISPID dispIdMember,
14129         REFIID riid,
14130         LCID lcid,
14131         WORD wFlags,
14132         DISPPARAMS *pDispParams,
14133         VARIANT *pVarResult,
14134         EXCEPINFO *pExcepInfo,
14135         UINT *puArgErr);
14136 
14137     /*** ISpeechAudioBufferInfo methods ***/
14138     HRESULT (STDMETHODCALLTYPE *get_MinNotification)(
14139         ISpeechAudioBufferInfo *This,
14140         LONG *MinNotification);
14141 
14142     HRESULT (STDMETHODCALLTYPE *put_MinNotification)(
14143         ISpeechAudioBufferInfo *This,
14144         LONG MinNotification);
14145 
14146     HRESULT (STDMETHODCALLTYPE *get_BufferSize)(
14147         ISpeechAudioBufferInfo *This,
14148         LONG *BufferSize);
14149 
14150     HRESULT (STDMETHODCALLTYPE *put_BufferSize)(
14151         ISpeechAudioBufferInfo *This,
14152         LONG BufferSize);
14153 
14154     HRESULT (STDMETHODCALLTYPE *get_EventBias)(
14155         ISpeechAudioBufferInfo *This,
14156         LONG *EventBias);
14157 
14158     HRESULT (STDMETHODCALLTYPE *put_EventBias)(
14159         ISpeechAudioBufferInfo *This,
14160         LONG EventBias);
14161 
14162     END_INTERFACE
14163 } ISpeechAudioBufferInfoVtbl;
14164 
14165 interface ISpeechAudioBufferInfo {
14166     CONST_VTBL ISpeechAudioBufferInfoVtbl* lpVtbl;
14167 };
14168 
14169 #ifdef COBJMACROS
14170 #ifndef WIDL_C_INLINE_WRAPPERS
14171 /*** IUnknown methods ***/
14172 #define ISpeechAudioBufferInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14173 #define ISpeechAudioBufferInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
14174 #define ISpeechAudioBufferInfo_Release(This) (This)->lpVtbl->Release(This)
14175 /*** IDispatch methods ***/
14176 #define ISpeechAudioBufferInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14177 #define ISpeechAudioBufferInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14178 #define ISpeechAudioBufferInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14179 #define ISpeechAudioBufferInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14180 /*** ISpeechAudioBufferInfo methods ***/
14181 #define ISpeechAudioBufferInfo_get_MinNotification(This,MinNotification) (This)->lpVtbl->get_MinNotification(This,MinNotification)
14182 #define ISpeechAudioBufferInfo_put_MinNotification(This,MinNotification) (This)->lpVtbl->put_MinNotification(This,MinNotification)
14183 #define ISpeechAudioBufferInfo_get_BufferSize(This,BufferSize) (This)->lpVtbl->get_BufferSize(This,BufferSize)
14184 #define ISpeechAudioBufferInfo_put_BufferSize(This,BufferSize) (This)->lpVtbl->put_BufferSize(This,BufferSize)
14185 #define ISpeechAudioBufferInfo_get_EventBias(This,EventBias) (This)->lpVtbl->get_EventBias(This,EventBias)
14186 #define ISpeechAudioBufferInfo_put_EventBias(This,EventBias) (This)->lpVtbl->put_EventBias(This,EventBias)
14187 #else
14188 /*** IUnknown methods ***/
14189 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_QueryInterface(ISpeechAudioBufferInfo* This,REFIID riid,void **ppvObject) {
14190     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14191 }
14192 static FORCEINLINE ULONG ISpeechAudioBufferInfo_AddRef(ISpeechAudioBufferInfo* This) {
14193     return This->lpVtbl->AddRef(This);
14194 }
14195 static FORCEINLINE ULONG ISpeechAudioBufferInfo_Release(ISpeechAudioBufferInfo* This) {
14196     return This->lpVtbl->Release(This);
14197 }
14198 /*** IDispatch methods ***/
14199 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfoCount(ISpeechAudioBufferInfo* This,UINT *pctinfo) {
14200     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14201 }
14202 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetTypeInfo(ISpeechAudioBufferInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14203     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14204 }
14205 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_GetIDsOfNames(ISpeechAudioBufferInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14206     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14207 }
14208 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_Invoke(ISpeechAudioBufferInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14209     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14210 }
14211 /*** ISpeechAudioBufferInfo methods ***/
14212 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_MinNotification(ISpeechAudioBufferInfo* This,LONG *MinNotification) {
14213     return This->lpVtbl->get_MinNotification(This,MinNotification);
14214 }
14215 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_MinNotification(ISpeechAudioBufferInfo* This,LONG MinNotification) {
14216     return This->lpVtbl->put_MinNotification(This,MinNotification);
14217 }
14218 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_BufferSize(ISpeechAudioBufferInfo* This,LONG *BufferSize) {
14219     return This->lpVtbl->get_BufferSize(This,BufferSize);
14220 }
14221 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_BufferSize(ISpeechAudioBufferInfo* This,LONG BufferSize) {
14222     return This->lpVtbl->put_BufferSize(This,BufferSize);
14223 }
14224 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_get_EventBias(ISpeechAudioBufferInfo* This,LONG *EventBias) {
14225     return This->lpVtbl->get_EventBias(This,EventBias);
14226 }
14227 static FORCEINLINE HRESULT ISpeechAudioBufferInfo_put_EventBias(ISpeechAudioBufferInfo* This,LONG EventBias) {
14228     return This->lpVtbl->put_EventBias(This,EventBias);
14229 }
14230 #endif
14231 #endif
14232 
14233 #endif
14234 
14235 
14236 #endif  /* __ISpeechAudioBufferInfo_INTERFACE_DEFINED__ */
14237 
14238 /*****************************************************************************
14239  * ISpeechWaveFormatEx interface
14240  */
14241 #ifndef __ISpeechWaveFormatEx_INTERFACE_DEFINED__
14242 #define __ISpeechWaveFormatEx_INTERFACE_DEFINED__
14243 
14244 DEFINE_GUID(IID_ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10);
14245 #if defined(__cplusplus) && !defined(CINTERFACE)
14246 MIDL_INTERFACE("7a1ef0d5-1581-4741-88e4-209a49f11a10")
14247 ISpeechWaveFormatEx : public IDispatch
14248 {
14249     virtual HRESULT STDMETHODCALLTYPE get_FormatTag(
14250         short *FormatTag) = 0;
14251 
14252     virtual HRESULT STDMETHODCALLTYPE put_FormatTag(
14253         short FormatTag) = 0;
14254 
14255     virtual HRESULT STDMETHODCALLTYPE get_Channels(
14256         short *Channels) = 0;
14257 
14258     virtual HRESULT STDMETHODCALLTYPE put_Channels(
14259         short Channels) = 0;
14260 
14261     virtual HRESULT STDMETHODCALLTYPE get_SamplesPerSec(
14262         LONG *SamplesPerSec) = 0;
14263 
14264     virtual HRESULT STDMETHODCALLTYPE put_SamplesPerSec(
14265         LONG SamplesPerSec) = 0;
14266 
14267     virtual HRESULT STDMETHODCALLTYPE get_AvgBytesPerSec(
14268         LONG *AvgBytesPerSec) = 0;
14269 
14270     virtual HRESULT STDMETHODCALLTYPE put_AvgBytesPerSec(
14271         LONG AvgBytesPerSec) = 0;
14272 
14273     virtual HRESULT STDMETHODCALLTYPE get_BlockAlign(
14274         short *BlockAlign) = 0;
14275 
14276     virtual HRESULT STDMETHODCALLTYPE put_BlockAlign(
14277         short BlockAlign) = 0;
14278 
14279     virtual HRESULT STDMETHODCALLTYPE get_BitsPerSample(
14280         short *BitsPerSample) = 0;
14281 
14282     virtual HRESULT STDMETHODCALLTYPE put_BitsPerSample(
14283         short BitsPerSample) = 0;
14284 
14285     virtual HRESULT STDMETHODCALLTYPE get_ExtraData(
14286         VARIANT *ExtraData) = 0;
14287 
14288     virtual HRESULT STDMETHODCALLTYPE put_ExtraData(
14289         VARIANT ExtraData) = 0;
14290 
14291 };
14292 #ifdef __CRT_UUID_DECL
14293 __CRT_UUID_DECL(ISpeechWaveFormatEx, 0x7a1ef0d5, 0x1581, 0x4741, 0x88,0xe4, 0x20,0x9a,0x49,0xf1,0x1a,0x10)
14294 #endif
14295 #else
14296 typedef struct ISpeechWaveFormatExVtbl {
14297     BEGIN_INTERFACE
14298 
14299     /*** IUnknown methods ***/
14300     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14301         ISpeechWaveFormatEx *This,
14302         REFIID riid,
14303         void **ppvObject);
14304 
14305     ULONG (STDMETHODCALLTYPE *AddRef)(
14306         ISpeechWaveFormatEx *This);
14307 
14308     ULONG (STDMETHODCALLTYPE *Release)(
14309         ISpeechWaveFormatEx *This);
14310 
14311     /*** IDispatch methods ***/
14312     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14313         ISpeechWaveFormatEx *This,
14314         UINT *pctinfo);
14315 
14316     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14317         ISpeechWaveFormatEx *This,
14318         UINT iTInfo,
14319         LCID lcid,
14320         ITypeInfo **ppTInfo);
14321 
14322     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14323         ISpeechWaveFormatEx *This,
14324         REFIID riid,
14325         LPOLESTR *rgszNames,
14326         UINT cNames,
14327         LCID lcid,
14328         DISPID *rgDispId);
14329 
14330     HRESULT (STDMETHODCALLTYPE *Invoke)(
14331         ISpeechWaveFormatEx *This,
14332         DISPID dispIdMember,
14333         REFIID riid,
14334         LCID lcid,
14335         WORD wFlags,
14336         DISPPARAMS *pDispParams,
14337         VARIANT *pVarResult,
14338         EXCEPINFO *pExcepInfo,
14339         UINT *puArgErr);
14340 
14341     /*** ISpeechWaveFormatEx methods ***/
14342     HRESULT (STDMETHODCALLTYPE *get_FormatTag)(
14343         ISpeechWaveFormatEx *This,
14344         short *FormatTag);
14345 
14346     HRESULT (STDMETHODCALLTYPE *put_FormatTag)(
14347         ISpeechWaveFormatEx *This,
14348         short FormatTag);
14349 
14350     HRESULT (STDMETHODCALLTYPE *get_Channels)(
14351         ISpeechWaveFormatEx *This,
14352         short *Channels);
14353 
14354     HRESULT (STDMETHODCALLTYPE *put_Channels)(
14355         ISpeechWaveFormatEx *This,
14356         short Channels);
14357 
14358     HRESULT (STDMETHODCALLTYPE *get_SamplesPerSec)(
14359         ISpeechWaveFormatEx *This,
14360         LONG *SamplesPerSec);
14361 
14362     HRESULT (STDMETHODCALLTYPE *put_SamplesPerSec)(
14363         ISpeechWaveFormatEx *This,
14364         LONG SamplesPerSec);
14365 
14366     HRESULT (STDMETHODCALLTYPE *get_AvgBytesPerSec)(
14367         ISpeechWaveFormatEx *This,
14368         LONG *AvgBytesPerSec);
14369 
14370     HRESULT (STDMETHODCALLTYPE *put_AvgBytesPerSec)(
14371         ISpeechWaveFormatEx *This,
14372         LONG AvgBytesPerSec);
14373 
14374     HRESULT (STDMETHODCALLTYPE *get_BlockAlign)(
14375         ISpeechWaveFormatEx *This,
14376         short *BlockAlign);
14377 
14378     HRESULT (STDMETHODCALLTYPE *put_BlockAlign)(
14379         ISpeechWaveFormatEx *This,
14380         short BlockAlign);
14381 
14382     HRESULT (STDMETHODCALLTYPE *get_BitsPerSample)(
14383         ISpeechWaveFormatEx *This,
14384         short *BitsPerSample);
14385 
14386     HRESULT (STDMETHODCALLTYPE *put_BitsPerSample)(
14387         ISpeechWaveFormatEx *This,
14388         short BitsPerSample);
14389 
14390     HRESULT (STDMETHODCALLTYPE *get_ExtraData)(
14391         ISpeechWaveFormatEx *This,
14392         VARIANT *ExtraData);
14393 
14394     HRESULT (STDMETHODCALLTYPE *put_ExtraData)(
14395         ISpeechWaveFormatEx *This,
14396         VARIANT ExtraData);
14397 
14398     END_INTERFACE
14399 } ISpeechWaveFormatExVtbl;
14400 
14401 interface ISpeechWaveFormatEx {
14402     CONST_VTBL ISpeechWaveFormatExVtbl* lpVtbl;
14403 };
14404 
14405 #ifdef COBJMACROS
14406 #ifndef WIDL_C_INLINE_WRAPPERS
14407 /*** IUnknown methods ***/
14408 #define ISpeechWaveFormatEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14409 #define ISpeechWaveFormatEx_AddRef(This) (This)->lpVtbl->AddRef(This)
14410 #define ISpeechWaveFormatEx_Release(This) (This)->lpVtbl->Release(This)
14411 /*** IDispatch methods ***/
14412 #define ISpeechWaveFormatEx_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14413 #define ISpeechWaveFormatEx_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14414 #define ISpeechWaveFormatEx_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14415 #define ISpeechWaveFormatEx_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14416 /*** ISpeechWaveFormatEx methods ***/
14417 #define ISpeechWaveFormatEx_get_FormatTag(This,FormatTag) (This)->lpVtbl->get_FormatTag(This,FormatTag)
14418 #define ISpeechWaveFormatEx_put_FormatTag(This,FormatTag) (This)->lpVtbl->put_FormatTag(This,FormatTag)
14419 #define ISpeechWaveFormatEx_get_Channels(This,Channels) (This)->lpVtbl->get_Channels(This,Channels)
14420 #define ISpeechWaveFormatEx_put_Channels(This,Channels) (This)->lpVtbl->put_Channels(This,Channels)
14421 #define ISpeechWaveFormatEx_get_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->get_SamplesPerSec(This,SamplesPerSec)
14422 #define ISpeechWaveFormatEx_put_SamplesPerSec(This,SamplesPerSec) (This)->lpVtbl->put_SamplesPerSec(This,SamplesPerSec)
14423 #define ISpeechWaveFormatEx_get_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec)
14424 #define ISpeechWaveFormatEx_put_AvgBytesPerSec(This,AvgBytesPerSec) (This)->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec)
14425 #define ISpeechWaveFormatEx_get_BlockAlign(This,BlockAlign) (This)->lpVtbl->get_BlockAlign(This,BlockAlign)
14426 #define ISpeechWaveFormatEx_put_BlockAlign(This,BlockAlign) (This)->lpVtbl->put_BlockAlign(This,BlockAlign)
14427 #define ISpeechWaveFormatEx_get_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->get_BitsPerSample(This,BitsPerSample)
14428 #define ISpeechWaveFormatEx_put_BitsPerSample(This,BitsPerSample) (This)->lpVtbl->put_BitsPerSample(This,BitsPerSample)
14429 #define ISpeechWaveFormatEx_get_ExtraData(This,ExtraData) (This)->lpVtbl->get_ExtraData(This,ExtraData)
14430 #define ISpeechWaveFormatEx_put_ExtraData(This,ExtraData) (This)->lpVtbl->put_ExtraData(This,ExtraData)
14431 #else
14432 /*** IUnknown methods ***/
14433 static FORCEINLINE HRESULT ISpeechWaveFormatEx_QueryInterface(ISpeechWaveFormatEx* This,REFIID riid,void **ppvObject) {
14434     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14435 }
14436 static FORCEINLINE ULONG ISpeechWaveFormatEx_AddRef(ISpeechWaveFormatEx* This) {
14437     return This->lpVtbl->AddRef(This);
14438 }
14439 static FORCEINLINE ULONG ISpeechWaveFormatEx_Release(ISpeechWaveFormatEx* This) {
14440     return This->lpVtbl->Release(This);
14441 }
14442 /*** IDispatch methods ***/
14443 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfoCount(ISpeechWaveFormatEx* This,UINT *pctinfo) {
14444     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14445 }
14446 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetTypeInfo(ISpeechWaveFormatEx* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14447     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14448 }
14449 static FORCEINLINE HRESULT ISpeechWaveFormatEx_GetIDsOfNames(ISpeechWaveFormatEx* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14450     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14451 }
14452 static FORCEINLINE HRESULT ISpeechWaveFormatEx_Invoke(ISpeechWaveFormatEx* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14453     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14454 }
14455 /*** ISpeechWaveFormatEx methods ***/
14456 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_FormatTag(ISpeechWaveFormatEx* This,short *FormatTag) {
14457     return This->lpVtbl->get_FormatTag(This,FormatTag);
14458 }
14459 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_FormatTag(ISpeechWaveFormatEx* This,short FormatTag) {
14460     return This->lpVtbl->put_FormatTag(This,FormatTag);
14461 }
14462 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_Channels(ISpeechWaveFormatEx* This,short *Channels) {
14463     return This->lpVtbl->get_Channels(This,Channels);
14464 }
14465 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_Channels(ISpeechWaveFormatEx* This,short Channels) {
14466     return This->lpVtbl->put_Channels(This,Channels);
14467 }
14468 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_SamplesPerSec(ISpeechWaveFormatEx* This,LONG *SamplesPerSec) {
14469     return This->lpVtbl->get_SamplesPerSec(This,SamplesPerSec);
14470 }
14471 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_SamplesPerSec(ISpeechWaveFormatEx* This,LONG SamplesPerSec) {
14472     return This->lpVtbl->put_SamplesPerSec(This,SamplesPerSec);
14473 }
14474 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG *AvgBytesPerSec) {
14475     return This->lpVtbl->get_AvgBytesPerSec(This,AvgBytesPerSec);
14476 }
14477 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_AvgBytesPerSec(ISpeechWaveFormatEx* This,LONG AvgBytesPerSec) {
14478     return This->lpVtbl->put_AvgBytesPerSec(This,AvgBytesPerSec);
14479 }
14480 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BlockAlign(ISpeechWaveFormatEx* This,short *BlockAlign) {
14481     return This->lpVtbl->get_BlockAlign(This,BlockAlign);
14482 }
14483 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BlockAlign(ISpeechWaveFormatEx* This,short BlockAlign) {
14484     return This->lpVtbl->put_BlockAlign(This,BlockAlign);
14485 }
14486 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_BitsPerSample(ISpeechWaveFormatEx* This,short *BitsPerSample) {
14487     return This->lpVtbl->get_BitsPerSample(This,BitsPerSample);
14488 }
14489 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_BitsPerSample(ISpeechWaveFormatEx* This,short BitsPerSample) {
14490     return This->lpVtbl->put_BitsPerSample(This,BitsPerSample);
14491 }
14492 static FORCEINLINE HRESULT ISpeechWaveFormatEx_get_ExtraData(ISpeechWaveFormatEx* This,VARIANT *ExtraData) {
14493     return This->lpVtbl->get_ExtraData(This,ExtraData);
14494 }
14495 static FORCEINLINE HRESULT ISpeechWaveFormatEx_put_ExtraData(ISpeechWaveFormatEx* This,VARIANT ExtraData) {
14496     return This->lpVtbl->put_ExtraData(This,ExtraData);
14497 }
14498 #endif
14499 #endif
14500 
14501 #endif
14502 
14503 
14504 #endif  /* __ISpeechWaveFormatEx_INTERFACE_DEFINED__ */
14505 
14506 /*****************************************************************************
14507  * ISpeechVoice interface
14508  */
14509 #ifndef __ISpeechVoice_INTERFACE_DEFINED__
14510 #define __ISpeechVoice_INTERFACE_DEFINED__
14511 
14512 DEFINE_GUID(IID_ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
14513 #if defined(__cplusplus) && !defined(CINTERFACE)
14514 MIDL_INTERFACE("269316d8-57bd-11d2-9eee-00c04f797396")
14515 ISpeechVoice : public IDispatch
14516 {
14517     virtual HRESULT STDMETHODCALLTYPE get_Status(
14518         ISpeechVoiceStatus **Status) = 0;
14519 
14520     virtual HRESULT STDMETHODCALLTYPE get_Voice(
14521         ISpeechObjectToken **Voice) = 0;
14522 
14523     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
14524         ISpeechObjectToken *Voice) = 0;
14525 
14526     virtual HRESULT STDMETHODCALLTYPE get_AudioOutput(
14527         ISpeechObjectToken **AudioOutput) = 0;
14528 
14529     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutput(
14530         ISpeechObjectToken *AudioOutput) = 0;
14531 
14532     virtual HRESULT STDMETHODCALLTYPE get_AudioOutputStream(
14533         ISpeechBaseStream **AudioOutputStream) = 0;
14534 
14535     virtual HRESULT STDMETHODCALLTYPE putref_AudioOutputStream(
14536         ISpeechBaseStream *AudioOutputStream) = 0;
14537 
14538     virtual HRESULT STDMETHODCALLTYPE get_Rate(
14539         LONG *Rate) = 0;
14540 
14541     virtual HRESULT STDMETHODCALLTYPE put_Rate(
14542         LONG Rate) = 0;
14543 
14544     virtual HRESULT STDMETHODCALLTYPE get_Volume(
14545         LONG *Volume) = 0;
14546 
14547     virtual HRESULT STDMETHODCALLTYPE put_Volume(
14548         LONG Volume) = 0;
14549 
14550     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioOutputFormatChangesOnNextSet(
14551         VARIANT_BOOL Allow) = 0;
14552 
14553     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioOutputFormatChangesOnNextSet(
14554         VARIANT_BOOL *Allow) = 0;
14555 
14556     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
14557         SpeechVoiceEvents *EventInterestFlags) = 0;
14558 
14559     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
14560         SpeechVoiceEvents EventInterestFlags) = 0;
14561 
14562     virtual HRESULT STDMETHODCALLTYPE put_Priority(
14563         SpeechVoicePriority Priority) = 0;
14564 
14565     virtual HRESULT STDMETHODCALLTYPE get_Priority(
14566         SpeechVoicePriority *Priority) = 0;
14567 
14568     virtual HRESULT STDMETHODCALLTYPE put_AlertBoundary(
14569         SpeechVoiceEvents Boundary) = 0;
14570 
14571     virtual HRESULT STDMETHODCALLTYPE get_AlertBoundary(
14572         SpeechVoiceEvents *Boundary) = 0;
14573 
14574     virtual HRESULT STDMETHODCALLTYPE put_SynchronousSpeakTimeout(
14575         LONG msTimeout) = 0;
14576 
14577     virtual HRESULT STDMETHODCALLTYPE get_SynchronousSpeakTimeout(
14578         LONG *msTimeout) = 0;
14579 
14580     virtual HRESULT STDMETHODCALLTYPE Speak(
14581         BSTR Text,
14582         SpeechVoiceSpeakFlags Flags,
14583         LONG *StreamNumber) = 0;
14584 
14585     virtual HRESULT STDMETHODCALLTYPE SpeakStream(
14586         ISpeechBaseStream *Stream,
14587         SpeechVoiceSpeakFlags Flags,
14588         LONG *StreamNumber) = 0;
14589 
14590     virtual HRESULT STDMETHODCALLTYPE Pause(
14591         ) = 0;
14592 
14593     virtual HRESULT STDMETHODCALLTYPE Resume(
14594         ) = 0;
14595 
14596     virtual HRESULT STDMETHODCALLTYPE Skip(
14597         const BSTR Type,
14598         LONG NumItems,
14599         LONG *NumSkipped) = 0;
14600 
14601     virtual HRESULT STDMETHODCALLTYPE GetVoices(
14602         BSTR RequiredAttributes,
14603         BSTR OptionalAttributes,
14604         ISpeechObjectTokens **ObjectTokens) = 0;
14605 
14606     virtual HRESULT STDMETHODCALLTYPE GetAudioOutputs(
14607         BSTR RequiredAttributes,
14608         BSTR OptionalAttributes,
14609         ISpeechObjectTokens **ObjectTokens) = 0;
14610 
14611     virtual HRESULT STDMETHODCALLTYPE WaitUntilDone(
14612         LONG msTimeout,
14613         VARIANT_BOOL *Done) = 0;
14614 
14615     virtual HRESULT STDMETHODCALLTYPE SpeakCompleteEvent(
14616         LONG *Handle) = 0;
14617 
14618     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
14619         const BSTR TypeOfUI,
14620         const VARIANT *ExtraData,
14621         VARIANT_BOOL *Supported) = 0;
14622 
14623     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
14624         LONG hWndParent,
14625         BSTR Title,
14626         const BSTR TypeOfUI,
14627         const VARIANT *ExtraData = 0) = 0;
14628 
14629 };
14630 #ifdef __CRT_UUID_DECL
14631 __CRT_UUID_DECL(ISpeechVoice, 0x269316d8, 0x57bd, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
14632 #endif
14633 #else
14634 typedef struct ISpeechVoiceVtbl {
14635     BEGIN_INTERFACE
14636 
14637     /*** IUnknown methods ***/
14638     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14639         ISpeechVoice *This,
14640         REFIID riid,
14641         void **ppvObject);
14642 
14643     ULONG (STDMETHODCALLTYPE *AddRef)(
14644         ISpeechVoice *This);
14645 
14646     ULONG (STDMETHODCALLTYPE *Release)(
14647         ISpeechVoice *This);
14648 
14649     /*** IDispatch methods ***/
14650     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
14651         ISpeechVoice *This,
14652         UINT *pctinfo);
14653 
14654     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
14655         ISpeechVoice *This,
14656         UINT iTInfo,
14657         LCID lcid,
14658         ITypeInfo **ppTInfo);
14659 
14660     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
14661         ISpeechVoice *This,
14662         REFIID riid,
14663         LPOLESTR *rgszNames,
14664         UINT cNames,
14665         LCID lcid,
14666         DISPID *rgDispId);
14667 
14668     HRESULT (STDMETHODCALLTYPE *Invoke)(
14669         ISpeechVoice *This,
14670         DISPID dispIdMember,
14671         REFIID riid,
14672         LCID lcid,
14673         WORD wFlags,
14674         DISPPARAMS *pDispParams,
14675         VARIANT *pVarResult,
14676         EXCEPINFO *pExcepInfo,
14677         UINT *puArgErr);
14678 
14679     /*** ISpeechVoice methods ***/
14680     HRESULT (STDMETHODCALLTYPE *get_Status)(
14681         ISpeechVoice *This,
14682         ISpeechVoiceStatus **Status);
14683 
14684     HRESULT (STDMETHODCALLTYPE *get_Voice)(
14685         ISpeechVoice *This,
14686         ISpeechObjectToken **Voice);
14687 
14688     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
14689         ISpeechVoice *This,
14690         ISpeechObjectToken *Voice);
14691 
14692     HRESULT (STDMETHODCALLTYPE *get_AudioOutput)(
14693         ISpeechVoice *This,
14694         ISpeechObjectToken **AudioOutput);
14695 
14696     HRESULT (STDMETHODCALLTYPE *putref_AudioOutput)(
14697         ISpeechVoice *This,
14698         ISpeechObjectToken *AudioOutput);
14699 
14700     HRESULT (STDMETHODCALLTYPE *get_AudioOutputStream)(
14701         ISpeechVoice *This,
14702         ISpeechBaseStream **AudioOutputStream);
14703 
14704     HRESULT (STDMETHODCALLTYPE *putref_AudioOutputStream)(
14705         ISpeechVoice *This,
14706         ISpeechBaseStream *AudioOutputStream);
14707 
14708     HRESULT (STDMETHODCALLTYPE *get_Rate)(
14709         ISpeechVoice *This,
14710         LONG *Rate);
14711 
14712     HRESULT (STDMETHODCALLTYPE *put_Rate)(
14713         ISpeechVoice *This,
14714         LONG Rate);
14715 
14716     HRESULT (STDMETHODCALLTYPE *get_Volume)(
14717         ISpeechVoice *This,
14718         LONG *Volume);
14719 
14720     HRESULT (STDMETHODCALLTYPE *put_Volume)(
14721         ISpeechVoice *This,
14722         LONG Volume);
14723 
14724     HRESULT (STDMETHODCALLTYPE *put_AllowAudioOutputFormatChangesOnNextSet)(
14725         ISpeechVoice *This,
14726         VARIANT_BOOL Allow);
14727 
14728     HRESULT (STDMETHODCALLTYPE *get_AllowAudioOutputFormatChangesOnNextSet)(
14729         ISpeechVoice *This,
14730         VARIANT_BOOL *Allow);
14731 
14732     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
14733         ISpeechVoice *This,
14734         SpeechVoiceEvents *EventInterestFlags);
14735 
14736     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
14737         ISpeechVoice *This,
14738         SpeechVoiceEvents EventInterestFlags);
14739 
14740     HRESULT (STDMETHODCALLTYPE *put_Priority)(
14741         ISpeechVoice *This,
14742         SpeechVoicePriority Priority);
14743 
14744     HRESULT (STDMETHODCALLTYPE *get_Priority)(
14745         ISpeechVoice *This,
14746         SpeechVoicePriority *Priority);
14747 
14748     HRESULT (STDMETHODCALLTYPE *put_AlertBoundary)(
14749         ISpeechVoice *This,
14750         SpeechVoiceEvents Boundary);
14751 
14752     HRESULT (STDMETHODCALLTYPE *get_AlertBoundary)(
14753         ISpeechVoice *This,
14754         SpeechVoiceEvents *Boundary);
14755 
14756     HRESULT (STDMETHODCALLTYPE *put_SynchronousSpeakTimeout)(
14757         ISpeechVoice *This,
14758         LONG msTimeout);
14759 
14760     HRESULT (STDMETHODCALLTYPE *get_SynchronousSpeakTimeout)(
14761         ISpeechVoice *This,
14762         LONG *msTimeout);
14763 
14764     HRESULT (STDMETHODCALLTYPE *Speak)(
14765         ISpeechVoice *This,
14766         BSTR Text,
14767         SpeechVoiceSpeakFlags Flags,
14768         LONG *StreamNumber);
14769 
14770     HRESULT (STDMETHODCALLTYPE *SpeakStream)(
14771         ISpeechVoice *This,
14772         ISpeechBaseStream *Stream,
14773         SpeechVoiceSpeakFlags Flags,
14774         LONG *StreamNumber);
14775 
14776     HRESULT (STDMETHODCALLTYPE *Pause)(
14777         ISpeechVoice *This);
14778 
14779     HRESULT (STDMETHODCALLTYPE *Resume)(
14780         ISpeechVoice *This);
14781 
14782     HRESULT (STDMETHODCALLTYPE *Skip)(
14783         ISpeechVoice *This,
14784         const BSTR Type,
14785         LONG NumItems,
14786         LONG *NumSkipped);
14787 
14788     HRESULT (STDMETHODCALLTYPE *GetVoices)(
14789         ISpeechVoice *This,
14790         BSTR RequiredAttributes,
14791         BSTR OptionalAttributes,
14792         ISpeechObjectTokens **ObjectTokens);
14793 
14794     HRESULT (STDMETHODCALLTYPE *GetAudioOutputs)(
14795         ISpeechVoice *This,
14796         BSTR RequiredAttributes,
14797         BSTR OptionalAttributes,
14798         ISpeechObjectTokens **ObjectTokens);
14799 
14800     HRESULT (STDMETHODCALLTYPE *WaitUntilDone)(
14801         ISpeechVoice *This,
14802         LONG msTimeout,
14803         VARIANT_BOOL *Done);
14804 
14805     HRESULT (STDMETHODCALLTYPE *SpeakCompleteEvent)(
14806         ISpeechVoice *This,
14807         LONG *Handle);
14808 
14809     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
14810         ISpeechVoice *This,
14811         const BSTR TypeOfUI,
14812         const VARIANT *ExtraData,
14813         VARIANT_BOOL *Supported);
14814 
14815     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
14816         ISpeechVoice *This,
14817         LONG hWndParent,
14818         BSTR Title,
14819         const BSTR TypeOfUI,
14820         const VARIANT *ExtraData);
14821 
14822     END_INTERFACE
14823 } ISpeechVoiceVtbl;
14824 
14825 interface ISpeechVoice {
14826     CONST_VTBL ISpeechVoiceVtbl* lpVtbl;
14827 };
14828 
14829 #ifdef COBJMACROS
14830 #ifndef WIDL_C_INLINE_WRAPPERS
14831 /*** IUnknown methods ***/
14832 #define ISpeechVoice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14833 #define ISpeechVoice_AddRef(This) (This)->lpVtbl->AddRef(This)
14834 #define ISpeechVoice_Release(This) (This)->lpVtbl->Release(This)
14835 /*** IDispatch methods ***/
14836 #define ISpeechVoice_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
14837 #define ISpeechVoice_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
14838 #define ISpeechVoice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
14839 #define ISpeechVoice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
14840 /*** ISpeechVoice methods ***/
14841 #define ISpeechVoice_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
14842 #define ISpeechVoice_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
14843 #define ISpeechVoice_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
14844 #define ISpeechVoice_get_AudioOutput(This,AudioOutput) (This)->lpVtbl->get_AudioOutput(This,AudioOutput)
14845 #define ISpeechVoice_putref_AudioOutput(This,AudioOutput) (This)->lpVtbl->putref_AudioOutput(This,AudioOutput)
14846 #define ISpeechVoice_get_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->get_AudioOutputStream(This,AudioOutputStream)
14847 #define ISpeechVoice_putref_AudioOutputStream(This,AudioOutputStream) (This)->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream)
14848 #define ISpeechVoice_get_Rate(This,Rate) (This)->lpVtbl->get_Rate(This,Rate)
14849 #define ISpeechVoice_put_Rate(This,Rate) (This)->lpVtbl->put_Rate(This,Rate)
14850 #define ISpeechVoice_get_Volume(This,Volume) (This)->lpVtbl->get_Volume(This,Volume)
14851 #define ISpeechVoice_put_Volume(This,Volume) (This)->lpVtbl->put_Volume(This,Volume)
14852 #define ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14853 #define ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow)
14854 #define ISpeechVoice_get_EventInterests(This,EventInterestFlags) (This)->lpVtbl->get_EventInterests(This,EventInterestFlags)
14855 #define ISpeechVoice_put_EventInterests(This,EventInterestFlags) (This)->lpVtbl->put_EventInterests(This,EventInterestFlags)
14856 #define ISpeechVoice_put_Priority(This,Priority) (This)->lpVtbl->put_Priority(This,Priority)
14857 #define ISpeechVoice_get_Priority(This,Priority) (This)->lpVtbl->get_Priority(This,Priority)
14858 #define ISpeechVoice_put_AlertBoundary(This,Boundary) (This)->lpVtbl->put_AlertBoundary(This,Boundary)
14859 #define ISpeechVoice_get_AlertBoundary(This,Boundary) (This)->lpVtbl->get_AlertBoundary(This,Boundary)
14860 #define ISpeechVoice_put_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout)
14861 #define ISpeechVoice_get_SynchronousSpeakTimeout(This,msTimeout) (This)->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout)
14862 #define ISpeechVoice_Speak(This,Text,Flags,StreamNumber) (This)->lpVtbl->Speak(This,Text,Flags,StreamNumber)
14863 #define ISpeechVoice_SpeakStream(This,Stream,Flags,StreamNumber) (This)->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber)
14864 #define ISpeechVoice_Pause(This) (This)->lpVtbl->Pause(This)
14865 #define ISpeechVoice_Resume(This) (This)->lpVtbl->Resume(This)
14866 #define ISpeechVoice_Skip(This,Type,NumItems,NumSkipped) (This)->lpVtbl->Skip(This,Type,NumItems,NumSkipped)
14867 #define ISpeechVoice_GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14868 #define ISpeechVoice_GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
14869 #define ISpeechVoice_WaitUntilDone(This,msTimeout,Done) (This)->lpVtbl->WaitUntilDone(This,msTimeout,Done)
14870 #define ISpeechVoice_SpeakCompleteEvent(This,Handle) (This)->lpVtbl->SpeakCompleteEvent(This,Handle)
14871 #define ISpeechVoice_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
14872 #define ISpeechVoice_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
14873 #else
14874 /*** IUnknown methods ***/
14875 static FORCEINLINE HRESULT ISpeechVoice_QueryInterface(ISpeechVoice* This,REFIID riid,void **ppvObject) {
14876     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14877 }
14878 static FORCEINLINE ULONG ISpeechVoice_AddRef(ISpeechVoice* This) {
14879     return This->lpVtbl->AddRef(This);
14880 }
14881 static FORCEINLINE ULONG ISpeechVoice_Release(ISpeechVoice* This) {
14882     return This->lpVtbl->Release(This);
14883 }
14884 /*** IDispatch methods ***/
14885 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfoCount(ISpeechVoice* This,UINT *pctinfo) {
14886     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
14887 }
14888 static FORCEINLINE HRESULT ISpeechVoice_GetTypeInfo(ISpeechVoice* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
14889     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
14890 }
14891 static FORCEINLINE HRESULT ISpeechVoice_GetIDsOfNames(ISpeechVoice* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
14892     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
14893 }
14894 static FORCEINLINE HRESULT ISpeechVoice_Invoke(ISpeechVoice* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
14895     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
14896 }
14897 /*** ISpeechVoice methods ***/
14898 static FORCEINLINE HRESULT ISpeechVoice_get_Status(ISpeechVoice* This,ISpeechVoiceStatus **Status) {
14899     return This->lpVtbl->get_Status(This,Status);
14900 }
14901 static FORCEINLINE HRESULT ISpeechVoice_get_Voice(ISpeechVoice* This,ISpeechObjectToken **Voice) {
14902     return This->lpVtbl->get_Voice(This,Voice);
14903 }
14904 static FORCEINLINE HRESULT ISpeechVoice_putref_Voice(ISpeechVoice* This,ISpeechObjectToken *Voice) {
14905     return This->lpVtbl->putref_Voice(This,Voice);
14906 }
14907 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutput(ISpeechVoice* This,ISpeechObjectToken **AudioOutput) {
14908     return This->lpVtbl->get_AudioOutput(This,AudioOutput);
14909 }
14910 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutput(ISpeechVoice* This,ISpeechObjectToken *AudioOutput) {
14911     return This->lpVtbl->putref_AudioOutput(This,AudioOutput);
14912 }
14913 static FORCEINLINE HRESULT ISpeechVoice_get_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream **AudioOutputStream) {
14914     return This->lpVtbl->get_AudioOutputStream(This,AudioOutputStream);
14915 }
14916 static FORCEINLINE HRESULT ISpeechVoice_putref_AudioOutputStream(ISpeechVoice* This,ISpeechBaseStream *AudioOutputStream) {
14917     return This->lpVtbl->putref_AudioOutputStream(This,AudioOutputStream);
14918 }
14919 static FORCEINLINE HRESULT ISpeechVoice_get_Rate(ISpeechVoice* This,LONG *Rate) {
14920     return This->lpVtbl->get_Rate(This,Rate);
14921 }
14922 static FORCEINLINE HRESULT ISpeechVoice_put_Rate(ISpeechVoice* This,LONG Rate) {
14923     return This->lpVtbl->put_Rate(This,Rate);
14924 }
14925 static FORCEINLINE HRESULT ISpeechVoice_get_Volume(ISpeechVoice* This,LONG *Volume) {
14926     return This->lpVtbl->get_Volume(This,Volume);
14927 }
14928 static FORCEINLINE HRESULT ISpeechVoice_put_Volume(ISpeechVoice* This,LONG Volume) {
14929     return This->lpVtbl->put_Volume(This,Volume);
14930 }
14931 static FORCEINLINE HRESULT ISpeechVoice_put_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL Allow) {
14932     return This->lpVtbl->put_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
14933 }
14934 static FORCEINLINE HRESULT ISpeechVoice_get_AllowAudioOutputFormatChangesOnNextSet(ISpeechVoice* This,VARIANT_BOOL *Allow) {
14935     return This->lpVtbl->get_AllowAudioOutputFormatChangesOnNextSet(This,Allow);
14936 }
14937 static FORCEINLINE HRESULT ISpeechVoice_get_EventInterests(ISpeechVoice* This,SpeechVoiceEvents *EventInterestFlags) {
14938     return This->lpVtbl->get_EventInterests(This,EventInterestFlags);
14939 }
14940 static FORCEINLINE HRESULT ISpeechVoice_put_EventInterests(ISpeechVoice* This,SpeechVoiceEvents EventInterestFlags) {
14941     return This->lpVtbl->put_EventInterests(This,EventInterestFlags);
14942 }
14943 static FORCEINLINE HRESULT ISpeechVoice_put_Priority(ISpeechVoice* This,SpeechVoicePriority Priority) {
14944     return This->lpVtbl->put_Priority(This,Priority);
14945 }
14946 static FORCEINLINE HRESULT ISpeechVoice_get_Priority(ISpeechVoice* This,SpeechVoicePriority *Priority) {
14947     return This->lpVtbl->get_Priority(This,Priority);
14948 }
14949 static FORCEINLINE HRESULT ISpeechVoice_put_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents Boundary) {
14950     return This->lpVtbl->put_AlertBoundary(This,Boundary);
14951 }
14952 static FORCEINLINE HRESULT ISpeechVoice_get_AlertBoundary(ISpeechVoice* This,SpeechVoiceEvents *Boundary) {
14953     return This->lpVtbl->get_AlertBoundary(This,Boundary);
14954 }
14955 static FORCEINLINE HRESULT ISpeechVoice_put_SynchronousSpeakTimeout(ISpeechVoice* This,LONG msTimeout) {
14956     return This->lpVtbl->put_SynchronousSpeakTimeout(This,msTimeout);
14957 }
14958 static FORCEINLINE HRESULT ISpeechVoice_get_SynchronousSpeakTimeout(ISpeechVoice* This,LONG *msTimeout) {
14959     return This->lpVtbl->get_SynchronousSpeakTimeout(This,msTimeout);
14960 }
14961 static FORCEINLINE HRESULT ISpeechVoice_Speak(ISpeechVoice* This,BSTR Text,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
14962     return This->lpVtbl->Speak(This,Text,Flags,StreamNumber);
14963 }
14964 static FORCEINLINE HRESULT ISpeechVoice_SpeakStream(ISpeechVoice* This,ISpeechBaseStream *Stream,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
14965     return This->lpVtbl->SpeakStream(This,Stream,Flags,StreamNumber);
14966 }
14967 static FORCEINLINE HRESULT ISpeechVoice_Pause(ISpeechVoice* This) {
14968     return This->lpVtbl->Pause(This);
14969 }
14970 static FORCEINLINE HRESULT ISpeechVoice_Resume(ISpeechVoice* This) {
14971     return This->lpVtbl->Resume(This);
14972 }
14973 static FORCEINLINE HRESULT ISpeechVoice_Skip(ISpeechVoice* This,const BSTR Type,LONG NumItems,LONG *NumSkipped) {
14974     return This->lpVtbl->Skip(This,Type,NumItems,NumSkipped);
14975 }
14976 static FORCEINLINE HRESULT ISpeechVoice_GetVoices(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
14977     return This->lpVtbl->GetVoices(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
14978 }
14979 static FORCEINLINE HRESULT ISpeechVoice_GetAudioOutputs(ISpeechVoice* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
14980     return This->lpVtbl->GetAudioOutputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
14981 }
14982 static FORCEINLINE HRESULT ISpeechVoice_WaitUntilDone(ISpeechVoice* This,LONG msTimeout,VARIANT_BOOL *Done) {
14983     return This->lpVtbl->WaitUntilDone(This,msTimeout,Done);
14984 }
14985 static FORCEINLINE HRESULT ISpeechVoice_SpeakCompleteEvent(ISpeechVoice* This,LONG *Handle) {
14986     return This->lpVtbl->SpeakCompleteEvent(This,Handle);
14987 }
14988 static FORCEINLINE HRESULT ISpeechVoice_IsUISupported(ISpeechVoice* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
14989     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
14990 }
14991 static FORCEINLINE HRESULT ISpeechVoice_DisplayUI(ISpeechVoice* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
14992     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
14993 }
14994 #endif
14995 #endif
14996 
14997 #endif
14998 
14999 
15000 #endif  /* __ISpeechVoice_INTERFACE_DEFINED__ */
15001 
15002 /*****************************************************************************
15003  * ISpeechVoiceStatus interface
15004  */
15005 #ifndef __ISpeechVoiceStatus_INTERFACE_DEFINED__
15006 #define __ISpeechVoiceStatus_INTERFACE_DEFINED__
15007 
15008 DEFINE_GUID(IID_ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96);
15009 #if defined(__cplusplus) && !defined(CINTERFACE)
15010 MIDL_INTERFACE("8be47b07-57f6-11d2-9eee-00c04f797396")
15011 ISpeechVoiceStatus : public IDispatch
15012 {
15013     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
15014         LONG *StreamNumber) = 0;
15015 
15016     virtual HRESULT STDMETHODCALLTYPE get_LastStreamNumberQueued(
15017         LONG *StreamNumber) = 0;
15018 
15019     virtual HRESULT STDMETHODCALLTYPE get_LastHResult(
15020         LONG *HResult) = 0;
15021 
15022     virtual HRESULT STDMETHODCALLTYPE get_RunningState(
15023         SpeechRunState *State) = 0;
15024 
15025     virtual HRESULT STDMETHODCALLTYPE get_InputWordPosition(
15026         LONG *Position) = 0;
15027 
15028     virtual HRESULT STDMETHODCALLTYPE get_InputWordLength(
15029         LONG *Length) = 0;
15030 
15031     virtual HRESULT STDMETHODCALLTYPE get_InputSentencePosition(
15032         LONG *Position) = 0;
15033 
15034     virtual HRESULT STDMETHODCALLTYPE get_InputSentenceLength(
15035         LONG *Length) = 0;
15036 
15037     virtual HRESULT STDMETHODCALLTYPE get_LastBookmark(
15038         BSTR *Bookmark) = 0;
15039 
15040     virtual HRESULT STDMETHODCALLTYPE get_LastBookmarkId(
15041         LONG *BookmarkId) = 0;
15042 
15043     virtual HRESULT STDMETHODCALLTYPE get_PhonemeId(
15044         short *PhoneId) = 0;
15045 
15046     virtual HRESULT STDMETHODCALLTYPE get_VisemeId(
15047         short *VisemeId) = 0;
15048 
15049 };
15050 #ifdef __CRT_UUID_DECL
15051 __CRT_UUID_DECL(ISpeechVoiceStatus, 0x8be47b07, 0x57f6, 0x11d2, 0x9e,0xee, 0x00,0xc0,0x4f,0x79,0x73,0x96)
15052 #endif
15053 #else
15054 typedef struct ISpeechVoiceStatusVtbl {
15055     BEGIN_INTERFACE
15056 
15057     /*** IUnknown methods ***/
15058     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15059         ISpeechVoiceStatus *This,
15060         REFIID riid,
15061         void **ppvObject);
15062 
15063     ULONG (STDMETHODCALLTYPE *AddRef)(
15064         ISpeechVoiceStatus *This);
15065 
15066     ULONG (STDMETHODCALLTYPE *Release)(
15067         ISpeechVoiceStatus *This);
15068 
15069     /*** IDispatch methods ***/
15070     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15071         ISpeechVoiceStatus *This,
15072         UINT *pctinfo);
15073 
15074     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15075         ISpeechVoiceStatus *This,
15076         UINT iTInfo,
15077         LCID lcid,
15078         ITypeInfo **ppTInfo);
15079 
15080     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15081         ISpeechVoiceStatus *This,
15082         REFIID riid,
15083         LPOLESTR *rgszNames,
15084         UINT cNames,
15085         LCID lcid,
15086         DISPID *rgDispId);
15087 
15088     HRESULT (STDMETHODCALLTYPE *Invoke)(
15089         ISpeechVoiceStatus *This,
15090         DISPID dispIdMember,
15091         REFIID riid,
15092         LCID lcid,
15093         WORD wFlags,
15094         DISPPARAMS *pDispParams,
15095         VARIANT *pVarResult,
15096         EXCEPINFO *pExcepInfo,
15097         UINT *puArgErr);
15098 
15099     /*** ISpeechVoiceStatus methods ***/
15100     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
15101         ISpeechVoiceStatus *This,
15102         LONG *StreamNumber);
15103 
15104     HRESULT (STDMETHODCALLTYPE *get_LastStreamNumberQueued)(
15105         ISpeechVoiceStatus *This,
15106         LONG *StreamNumber);
15107 
15108     HRESULT (STDMETHODCALLTYPE *get_LastHResult)(
15109         ISpeechVoiceStatus *This,
15110         LONG *HResult);
15111 
15112     HRESULT (STDMETHODCALLTYPE *get_RunningState)(
15113         ISpeechVoiceStatus *This,
15114         SpeechRunState *State);
15115 
15116     HRESULT (STDMETHODCALLTYPE *get_InputWordPosition)(
15117         ISpeechVoiceStatus *This,
15118         LONG *Position);
15119 
15120     HRESULT (STDMETHODCALLTYPE *get_InputWordLength)(
15121         ISpeechVoiceStatus *This,
15122         LONG *Length);
15123 
15124     HRESULT (STDMETHODCALLTYPE *get_InputSentencePosition)(
15125         ISpeechVoiceStatus *This,
15126         LONG *Position);
15127 
15128     HRESULT (STDMETHODCALLTYPE *get_InputSentenceLength)(
15129         ISpeechVoiceStatus *This,
15130         LONG *Length);
15131 
15132     HRESULT (STDMETHODCALLTYPE *get_LastBookmark)(
15133         ISpeechVoiceStatus *This,
15134         BSTR *Bookmark);
15135 
15136     HRESULT (STDMETHODCALLTYPE *get_LastBookmarkId)(
15137         ISpeechVoiceStatus *This,
15138         LONG *BookmarkId);
15139 
15140     HRESULT (STDMETHODCALLTYPE *get_PhonemeId)(
15141         ISpeechVoiceStatus *This,
15142         short *PhoneId);
15143 
15144     HRESULT (STDMETHODCALLTYPE *get_VisemeId)(
15145         ISpeechVoiceStatus *This,
15146         short *VisemeId);
15147 
15148     END_INTERFACE
15149 } ISpeechVoiceStatusVtbl;
15150 
15151 interface ISpeechVoiceStatus {
15152     CONST_VTBL ISpeechVoiceStatusVtbl* lpVtbl;
15153 };
15154 
15155 #ifdef COBJMACROS
15156 #ifndef WIDL_C_INLINE_WRAPPERS
15157 /*** IUnknown methods ***/
15158 #define ISpeechVoiceStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15159 #define ISpeechVoiceStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
15160 #define ISpeechVoiceStatus_Release(This) (This)->lpVtbl->Release(This)
15161 /*** IDispatch methods ***/
15162 #define ISpeechVoiceStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15163 #define ISpeechVoiceStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15164 #define ISpeechVoiceStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15165 #define ISpeechVoiceStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15166 /*** ISpeechVoiceStatus methods ***/
15167 #define ISpeechVoiceStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
15168 #define ISpeechVoiceStatus_get_LastStreamNumberQueued(This,StreamNumber) (This)->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber)
15169 #define ISpeechVoiceStatus_get_LastHResult(This,HResult) (This)->lpVtbl->get_LastHResult(This,HResult)
15170 #define ISpeechVoiceStatus_get_RunningState(This,State) (This)->lpVtbl->get_RunningState(This,State)
15171 #define ISpeechVoiceStatus_get_InputWordPosition(This,Position) (This)->lpVtbl->get_InputWordPosition(This,Position)
15172 #define ISpeechVoiceStatus_get_InputWordLength(This,Length) (This)->lpVtbl->get_InputWordLength(This,Length)
15173 #define ISpeechVoiceStatus_get_InputSentencePosition(This,Position) (This)->lpVtbl->get_InputSentencePosition(This,Position)
15174 #define ISpeechVoiceStatus_get_InputSentenceLength(This,Length) (This)->lpVtbl->get_InputSentenceLength(This,Length)
15175 #define ISpeechVoiceStatus_get_LastBookmark(This,Bookmark) (This)->lpVtbl->get_LastBookmark(This,Bookmark)
15176 #define ISpeechVoiceStatus_get_LastBookmarkId(This,BookmarkId) (This)->lpVtbl->get_LastBookmarkId(This,BookmarkId)
15177 #define ISpeechVoiceStatus_get_PhonemeId(This,PhoneId) (This)->lpVtbl->get_PhonemeId(This,PhoneId)
15178 #define ISpeechVoiceStatus_get_VisemeId(This,VisemeId) (This)->lpVtbl->get_VisemeId(This,VisemeId)
15179 #else
15180 /*** IUnknown methods ***/
15181 static FORCEINLINE HRESULT ISpeechVoiceStatus_QueryInterface(ISpeechVoiceStatus* This,REFIID riid,void **ppvObject) {
15182     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15183 }
15184 static FORCEINLINE ULONG ISpeechVoiceStatus_AddRef(ISpeechVoiceStatus* This) {
15185     return This->lpVtbl->AddRef(This);
15186 }
15187 static FORCEINLINE ULONG ISpeechVoiceStatus_Release(ISpeechVoiceStatus* This) {
15188     return This->lpVtbl->Release(This);
15189 }
15190 /*** IDispatch methods ***/
15191 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfoCount(ISpeechVoiceStatus* This,UINT *pctinfo) {
15192     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15193 }
15194 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetTypeInfo(ISpeechVoiceStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15195     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15196 }
15197 static FORCEINLINE HRESULT ISpeechVoiceStatus_GetIDsOfNames(ISpeechVoiceStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15198     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15199 }
15200 static FORCEINLINE HRESULT ISpeechVoiceStatus_Invoke(ISpeechVoiceStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15201     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15202 }
15203 /*** ISpeechVoiceStatus methods ***/
15204 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_CurrentStreamNumber(ISpeechVoiceStatus* This,LONG *StreamNumber) {
15205     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
15206 }
15207 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastStreamNumberQueued(ISpeechVoiceStatus* This,LONG *StreamNumber) {
15208     return This->lpVtbl->get_LastStreamNumberQueued(This,StreamNumber);
15209 }
15210 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastHResult(ISpeechVoiceStatus* This,LONG *HResult) {
15211     return This->lpVtbl->get_LastHResult(This,HResult);
15212 }
15213 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_RunningState(ISpeechVoiceStatus* This,SpeechRunState *State) {
15214     return This->lpVtbl->get_RunningState(This,State);
15215 }
15216 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordPosition(ISpeechVoiceStatus* This,LONG *Position) {
15217     return This->lpVtbl->get_InputWordPosition(This,Position);
15218 }
15219 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputWordLength(ISpeechVoiceStatus* This,LONG *Length) {
15220     return This->lpVtbl->get_InputWordLength(This,Length);
15221 }
15222 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentencePosition(ISpeechVoiceStatus* This,LONG *Position) {
15223     return This->lpVtbl->get_InputSentencePosition(This,Position);
15224 }
15225 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_InputSentenceLength(ISpeechVoiceStatus* This,LONG *Length) {
15226     return This->lpVtbl->get_InputSentenceLength(This,Length);
15227 }
15228 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmark(ISpeechVoiceStatus* This,BSTR *Bookmark) {
15229     return This->lpVtbl->get_LastBookmark(This,Bookmark);
15230 }
15231 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_LastBookmarkId(ISpeechVoiceStatus* This,LONG *BookmarkId) {
15232     return This->lpVtbl->get_LastBookmarkId(This,BookmarkId);
15233 }
15234 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_PhonemeId(ISpeechVoiceStatus* This,short *PhoneId) {
15235     return This->lpVtbl->get_PhonemeId(This,PhoneId);
15236 }
15237 static FORCEINLINE HRESULT ISpeechVoiceStatus_get_VisemeId(ISpeechVoiceStatus* This,short *VisemeId) {
15238     return This->lpVtbl->get_VisemeId(This,VisemeId);
15239 }
15240 #endif
15241 #endif
15242 
15243 #endif
15244 
15245 
15246 #endif  /* __ISpeechVoiceStatus_INTERFACE_DEFINED__ */
15247 
15248 typedef enum SpeechVisemeType {
15249     SVP_0 = 0,
15250     SVP_1 = 1,
15251     SVP_2 = 2,
15252     SVP_3 = 3,
15253     SVP_4 = 4,
15254     SVP_5 = 5,
15255     SVP_6 = 6,
15256     SVP_7 = 7,
15257     SVP_8 = 8,
15258     SVP_9 = 9,
15259     SVP_10 = 10,
15260     SVP_11 = 11,
15261     SVP_12 = 12,
15262     SVP_13 = 13,
15263     SVP_14 = 14,
15264     SVP_15 = 15,
15265     SVP_16 = 16,
15266     SVP_17 = 17,
15267     SVP_18 = 18,
15268     SVP_19 = 19,
15269     SVP_20 = 20,
15270     SVP_21 = 21
15271 } SpeechVisemeType;
15272 typedef enum SpeechVisemeFeature {
15273     SVF_None = 0,
15274     SVF_Stressed = SPVFEATURE_STRESSED,
15275     SVF_Emphasis = SPVFEATURE_EMPHASIS
15276 } SpeechVisemeFeature;
15277 typedef enum DISPID_SpeechVoiceEvent {
15278     DISPID_SVEStreamStart = 1,
15279     DISPID_SVEStreamEnd = 2,
15280     DISPID_SVEVoiceChange = 3,
15281     DISPID_SVEBookmark = 4,
15282     DISPID_SVEWord = 5,
15283     DISPID_SVEPhoneme = 6,
15284     DISPID_SVESentenceBoundary = 7,
15285     DISPID_SVEViseme = 8,
15286     DISPID_SVEAudioLevel = 9,
15287     DISPID_SVEEnginePrivate = 10
15288 } DISPID_SpeechVoiceEvent;
15289 typedef enum DISPID_SpeechRecognizer {
15290     DISPID_SRRecognizer = 1,
15291     DISPID_SRAllowAudioInputFormatChangesOnNextSet = 2,
15292     DISPID_SRAudioInput = 3,
15293     DISPID_SRAudioInputStream = 4,
15294     DISPID_SRIsShared = 5,
15295     DISPID_SRState = 6,
15296     DISPID_SRStatus = 7,
15297     DISPID_SRProfile = 8,
15298     DISPID_SREmulateRecognition = 9,
15299     DISPID_SRCreateRecoContext = 10,
15300     DISPID_SRGetFormat = 11,
15301     DISPID_SRSetPropertyNumber = 12,
15302     DISPID_SRGetPropertyNumber = 13,
15303     DISPID_SRSetPropertyString = 14,
15304     DISPID_SRGetPropertyString = 15,
15305     DISPID_SRIsUISupported = 16,
15306     DISPID_SRDisplayUI = 17,
15307     DISPID_SRGetRecognizers = 18,
15308     DISPID_SVGetAudioInputs = 19,
15309     DISPID_SVGetProfiles = 20
15310 } DISPID_SpeechRecognizer;
15311 typedef enum SpeechRecognizerState {
15312     SRSInactive = SPRST_INACTIVE,
15313     SRSActive = SPRST_ACTIVE,
15314     SRSActiveAlways = SPRST_ACTIVE_ALWAYS,
15315     SRSInactiveWithPurge = SPRST_INACTIVE_WITH_PURGE
15316 } SpeechRecognizerState;
15317 typedef enum SpeechDisplayAttributes {
15318     SDA_No_Trailing_Space = 0,
15319     SDA_One_Trailing_Space = SPAF_ONE_TRAILING_SPACE,
15320     SDA_Two_Trailing_Spaces = SPAF_TWO_TRAILING_SPACES,
15321     SDA_Consume_Leading_Spaces = SPAF_CONSUME_LEADING_SPACES
15322 } SpeechDisplayAttributes;
15323 typedef enum SpeechFormatType {
15324     SFTInput = SPWF_INPUT,
15325     SFTSREngine = SPWF_SRENGINE
15326 } SpeechFormatType;
15327 typedef enum DISPID_SpeechRecognizerStatus {
15328     DISPID_SRSAudioStatus = 1,
15329     DISPID_SRSCurrentStreamPosition = 2,
15330     DISPID_SRSCurrentStreamNumber = 3,
15331     DISPID_SRSNumberOfActiveRules = 4,
15332     DISPID_SRSClsidEngine = 5,
15333     DISPID_SRSSupportedLanguages = 6
15334 } DISPID_SpeechRecognizerStatus;
15335 typedef enum DISPID_SpeechRecoContext {
15336     DISPID_SRCRecognizer = 1,
15337     DISPID_SRCAudioInInterferenceStatus = 2,
15338     DISPID_SRCRequestedUIType = 3,
15339     DISPID_SRCVoice = 4,
15340     DISPID_SRAllowVoiceFormatMatchingOnNextSet = 5,
15341     DISPID_SRCVoicePurgeEvent = 6,
15342     DISPID_SRCEventInterests = 7,
15343     DISPID_SRCCmdMaxAlternates = 8,
15344     DISPID_SRCState = 9,
15345     DISPID_SRCRetainedAudio = 10,
15346     DISPID_SRCRetainedAudioFormat = 11,
15347     DISPID_SRCPause = 12,
15348     DISPID_SRCResume = 13,
15349     DISPID_SRCCreateGrammar = 14,
15350     DISPID_SRCCreateResultFromMemory = 15,
15351     DISPID_SRCBookmark = 16,
15352     DISPID_SRCSetAdaptationData = 17
15353 } DISPID_SpeechRecoContext;
15354 typedef enum SpeechRetainedAudioOptions {
15355     SRAONone = SPAO_NONE,
15356     SRAORetainAudio = SPAO_RETAIN_AUDIO
15357 } SpeechRetainedAudioOptions;
15358 typedef enum SpeechBookmarkOptions {
15359     SBONone = SPBO_NONE,
15360     SBOPause = SPBO_PAUSE
15361 } SpeechBookmarkOptions;
15362 typedef enum SpeechInterference {
15363     SINone = SPINTERFERENCE_NONE,
15364     SINoise = SPINTERFERENCE_NOISE,
15365     SINoSignal = SPINTERFERENCE_NOSIGNAL,
15366     SITooLoud = SPINTERFERENCE_TOOLOUD,
15367     SITooQuiet = SPINTERFERENCE_TOOQUIET,
15368     SITooFast = SPINTERFERENCE_TOOFAST,
15369     SITooSlow = SPINTERFERENCE_TOOSLOW
15370 } SpeechInterference;
15371 typedef enum SpeechRecoEvents {
15372     SREStreamEnd = 0x1,
15373     SRESoundStart = 0x2,
15374     SRESoundEnd = 0x4,
15375     SREPhraseStart = 0x8,
15376     SRERecognition = 0x10,
15377     SREHypothesis = 0x20,
15378     SREBookmark = 0x40,
15379     SREPropertyNumChange = 0x80,
15380     SREPropertyStringChange = 0x100,
15381     SREFalseRecognition = 0x200,
15382     SREInterference = 0x400,
15383     SRERequestUI = 0x800,
15384     SREStateChange = 0x1000,
15385     SREAdaptation = 0x2000,
15386     SREStreamStart = 0x4000,
15387     SRERecoOtherContext = 0x8000,
15388     SREAudioLevel = 0x10000,
15389     SREPrivate = 0x40000,
15390     SREAllEvents = 0x5ffff
15391 } SpeechRecoEvents;
15392 typedef enum SpeechRecoContextState {
15393     SRCS_Disabled = SPCS_DISABLED,
15394     SRCS_Enabled = SPCS_ENABLED
15395 } SpeechRecoContextState;
15396 typedef enum DISPIDSPRG {
15397     DISPID_SRGId = 1,
15398     DISPID_SRGRecoContext = 2,
15399     DISPID_SRGState = 3,
15400     DISPID_SRGRules = 4,
15401     DISPID_SRGReset = 5,
15402     DISPID_SRGCommit = 6,
15403     DISPID_SRGCmdLoadFromFile = 7,
15404     DISPID_SRGCmdLoadFromObject = 8,
15405     DISPID_SRGCmdLoadFromResource = 9,
15406     DISPID_SRGCmdLoadFromMemory = 10,
15407     DISPID_SRGCmdLoadFromProprietaryGrammar = 11,
15408     DISPID_SRGCmdSetRuleState = 12,
15409     DISPID_SRGCmdSetRuleIdState = 13,
15410     DISPID_SRGDictationLoad = 14,
15411     DISPID_SRGDictationUnload = 15,
15412     DISPID_SRGDictationSetState = 16,
15413     DISPID_SRGSetWordSequenceData = 17,
15414     DISPID_SRGSetTextSelection = 18,
15415     DISPID_SRGIsPronounceable = 19
15416 } DISPIDSPRG;
15417 typedef enum SpeechLoadOption {
15418     SLOStatic = SPLO_STATIC,
15419     SLODynamic = SPLO_DYNAMIC
15420 } SpeechLoadOption;
15421 typedef enum SpeechWordPronounceable {
15422     SWPUnknownWordUnpronounceable = SPWP_UNKNOWN_WORD_UNPRONOUNCEABLE,
15423     SWPUnknownWordPronounceable = SPWP_UNKNOWN_WORD_PRONOUNCEABLE,
15424     SWPKnownWordPronounceable = SPWP_KNOWN_WORD_PRONOUNCEABLE
15425 } SpeechWordPronounceable;
15426 typedef enum SpeechGrammarState {
15427     SGSEnabled = SPGS_ENABLED,
15428     SGSDisabled = SPGS_DISABLED,
15429     SGSExclusive = SPGS_EXCLUSIVE
15430 } SpeechGrammarState;
15431 typedef enum SpeechRuleState {
15432     SGDSInactive = SPRS_INACTIVE,
15433     SGDSActive = SPRS_ACTIVE,
15434     SGDSActiveWithAutoPause = SPRS_ACTIVE_WITH_AUTO_PAUSE,
15435     SGDSActiveUserDelimited = SPRS_ACTIVE_USER_DELIMITED
15436 } SpeechRuleState;
15437 typedef enum SpeechRuleAttributes {
15438     SRATopLevel = SPRAF_TopLevel,
15439     SRADefaultToActive = SPRAF_Active,
15440     SRAExport = SPRAF_Export,
15441     SRAImport = SPRAF_Import,
15442     SRAInterpreter = SPRAF_Interpreter,
15443     SRADynamic = SPRAF_Dynamic,
15444     SRARoot = SPRAF_Root
15445 } SpeechRuleAttributes;
15446 typedef enum SpeechGrammarWordType {
15447     SGDisplay = SPWT_DISPLAY,
15448     SGLexical = SPWT_LEXICAL,
15449     SGPronounciation = SPWT_PRONUNCIATION,
15450     SGLexicalNoSpecialChars = SPWT_LEXICAL_NO_SPECIAL_CHARS
15451 } SpeechGrammarWordType;
15452 typedef enum DISPID_SpeechRecoContextEvents {
15453     DISPID_SRCEStartStream = 1,
15454     DISPID_SRCEEndStream = 2,
15455     DISPID_SRCEBookmark = 3,
15456     DISPID_SRCESoundStart = 4,
15457     DISPID_SRCESoundEnd = 5,
15458     DISPID_SRCEPhraseStart = 6,
15459     DISPID_SRCERecognition = 7,
15460     DISPID_SRCEHypothesis = 8,
15461     DISPID_SRCEPropertyNumberChange = 9,
15462     DISPID_SRCEPropertyStringChange = 10,
15463     DISPID_SRCEFalseRecognition = 11,
15464     DISPID_SRCEInterference = 12,
15465     DISPID_SRCERequestUI = 13,
15466     DISPID_SRCERecognizerStateChange = 14,
15467     DISPID_SRCEAdaptation = 15,
15468     DISPID_SRCERecognitionForOtherContext = 16,
15469     DISPID_SRCEAudioLevel = 17,
15470     DISPID_SRCEEnginePrivate = 18
15471 } DISPID_SpeechRecoContextEvents;
15472 typedef enum SpeechRecognitionType {
15473     SRTStandard = 0,
15474     SRTAutopause = SPREF_AutoPause,
15475     SRTEmulated = SPREF_Emulated,
15476     SRTSMLTimeout = SPREF_SMLTimeout,
15477     SRTExtendableParse = SPREF_ExtendableParse,
15478     SRTReSent = SPREF_ReSent
15479 } SpeechRecognitionType;
15480 typedef enum DISPID_SpeechGrammarRule {
15481     DISPID_SGRAttributes = 1,
15482     DISPID_SGRInitialState = 2,
15483     DISPID_SGRName = 3,
15484     DISPID_SGRId = 4,
15485     DISPID_SGRClear = 5,
15486     DISPID_SGRAddResource = 6,
15487     DISPID_SGRAddState = 7
15488 } DISPID_SpeechGrammarRule;
15489 typedef enum DISPID_SpeechGrammarRules {
15490     DISPID_SGRsCount = 1,
15491     DISPID_SGRsDynamic = 2,
15492     DISPID_SGRsAdd = 3,
15493     DISPID_SGRsCommit = 4,
15494     DISPID_SGRsCommitAndSave = 5,
15495     DISPID_SGRsFindRule = 6,
15496     DISPID_SGRsItem = DISPID_VALUE,
15497     DISPID_SGRs_NewEnum = DISPID_NEWENUM
15498 } DISPID_SpeechGrammarRules;
15499 typedef enum DISPID_SpeechGrammarRuleState {
15500     DISPID_SGRSRule = 1,
15501     DISPID_SGRSTransitions = 2,
15502     DISPID_SGRSAddWordTransition = 3,
15503     DISPID_SGRSAddRuleTransition = 4,
15504     DISPID_SGRSAddSpecialTransition = 5
15505 } DISPID_SpeechGrammarRuleState;
15506 typedef enum SpeechSpecialTransitionType {
15507     SSTTWildcard = 1,
15508     SSTTDictation = 2,
15509     SSTTTextBuffer = 3
15510 } SpeechSpecialTransitionType;
15511 typedef enum DISPID_SpeechGrammarRuleStateTransitions {
15512     DISPID_SGRSTsCount = 1,
15513     DISPID_SGRSTsItem = DISPID_VALUE,
15514     DISPID_SGRSTs_NewEnum = DISPID_NEWENUM
15515 } DISPID_SpeechGrammarRuleStateTransitions;
15516 typedef enum DISPID_SpeechGrammarRuleStateTransition {
15517     DISPID_SGRSTType = 1,
15518     DISPID_SGRSTText = 2,
15519     DISPID_SGRSTRule = 3,
15520     DISPID_SGRSTWeight = 4,
15521     DISPID_SGRSTPropertyName = 5,
15522     DISPID_SGRSTPropertyId = 6,
15523     DISPID_SGRSTPropertyValue = 7,
15524     DISPID_SGRSTNextState = 8
15525 } DISPID_SpeechGrammarRuleStateTransition;
15526 typedef enum SpeechGrammarRuleStateTransitionType {
15527     SGRSTTEpsilon = 0,
15528     SGRSTTWord = 1,
15529     SGRSTTRule = 2,
15530     SGRSTTDictation = 3,
15531     SGRSTTWildcard = 4,
15532     SGRSTTTextBuffer = 5
15533 } SpeechGrammarRuleStateTransitionType;
15534 typedef enum DISPIDSPTSI {
15535     DISPIDSPTSI_ActiveOffset = 1,
15536     DISPIDSPTSI_ActiveLength = 2,
15537     DISPIDSPTSI_SelectionOffset = 3,
15538     DISPIDSPTSI_SelectionLength = 4
15539 } DISPIDSPTSI;
15540 typedef enum DISPID_SpeechRecoResult {
15541     DISPID_SRRRecoContext = 1,
15542     DISPID_SRRTimes = 2,
15543     DISPID_SRRAudioFormat = 3,
15544     DISPID_SRRPhraseInfo = 4,
15545     DISPID_SRRAlternates = 5,
15546     DISPID_SRRAudio = 6,
15547     DISPID_SRRSpeakAudio = 7,
15548     DISPID_SRRSaveToMemory = 8,
15549     DISPID_SRRDiscardResultInfo = 9
15550 } DISPID_SpeechRecoResult;
15551 typedef enum SpeechDiscardType {
15552     SDTProperty = SPDF_PROPERTY,
15553     SDTReplacement = SPDF_REPLACEMENT,
15554     SDTRule = SPDF_RULE,
15555     SDTDisplayText = SPDF_DISPLAYTEXT,
15556     SDTLexicalForm = SPDF_LEXICALFORM,
15557     SDTPronunciation = SPDF_PRONUNCIATION,
15558     SDTAudio = SPDF_AUDIO,
15559     SDTAlternates = SPDF_ALTERNATES,
15560     SDTAll = SPDF_ALL
15561 } SpeechDiscardType;
15562 typedef enum SpeechEmulationCompareFlags {
15563     SECFIgnoreCase = 0x1,
15564     SECFIgnoreKanaType = 0x10000,
15565     SECFIgnoreWidth = 0x20000,
15566     SECFNoSpecialChars = 0x20000000,
15567     SECFEmulateResult = 0x40000000,
15568     SECFDefault = (SECFIgnoreCase | SECFIgnoreKanaType) | SECFIgnoreWidth
15569 } SpeechEmulationCompareFlags;
15570 typedef enum DISPID_SpeechXMLRecoResult {
15571     DISPID_SRRGetXMLResult = DISPID_SRRDiscardResultInfo + 1,
15572     DISPID_SRRGetXMLErrorInfo = DISPID_SRRGetXMLResult + 1
15573 } DISPID_SpeechXMLRecoResult;
15574 typedef enum DISPID_SpeechRecoResult2 {
15575     DISPID_SRRSetTextFeedback = DISPID_SRRGetXMLErrorInfo + 1
15576 } DISPID_SpeechRecoResult2;
15577 typedef enum DISPID_SpeechPhraseBuilder {
15578     DISPID_SPPBRestorePhraseFromMemory = 1
15579 } DISPID_SpeechPhraseBuilder;
15580 typedef enum DISPID_SpeechRecoResultTimes {
15581     DISPID_SRRTStreamTime = 1,
15582     DISPID_SRRTLength = 2,
15583     DISPID_SRRTTickCount = 3,
15584     DISPID_SRRTOffsetFromStart = 4
15585 } DISPID_SpeechRecoResultTimes;
15586 typedef enum DISPID_SpeechPhraseAlternate {
15587     DISPID_SPARecoResult = 1,
15588     DISPID_SPAStartElementInResult = 2,
15589     DISPID_SPANumberOfElementsInResult = 3,
15590     DISPID_SPAPhraseInfo = 4,
15591     DISPID_SPACommit = 5
15592 } DISPID_SpeechPhraseAlternate;
15593 typedef enum DISPID_SpeechPhraseAlternates {
15594     DISPID_SPAsCount = 1,
15595     DISPID_SPAsItem = DISPID_VALUE,
15596     DISPID_SPAs_NewEnum = DISPID_NEWENUM
15597 } DISPID_SpeechPhraseAlternates;
15598 typedef enum DISPID_SpeechPhraseInfo {
15599     DISPID_SPILanguageId = 1,
15600     DISPID_SPIGrammarId = 2,
15601     DISPID_SPIStartTime = 3,
15602     DISPID_SPIAudioStreamPosition = 4,
15603     DISPID_SPIAudioSizeBytes = 5,
15604     DISPID_SPIRetainedSizeBytes = 6,
15605     DISPID_SPIAudioSizeTime = 7,
15606     DISPID_SPIRule = 8,
15607     DISPID_SPIProperties = 9,
15608     DISPID_SPIElements = 10,
15609     DISPID_SPIReplacements = 11,
15610     DISPID_SPIEngineId = 12,
15611     DISPID_SPIEnginePrivateData = 13,
15612     DISPID_SPISaveToMemory = 14,
15613     DISPID_SPIGetText = 15,
15614     DISPID_SPIGetDisplayAttributes = 16
15615 } DISPID_SpeechPhraseInfo;
15616 typedef enum DISPID_SpeechPhraseElement {
15617     DISPID_SPEAudioTimeOffset = 1,
15618     DISPID_SPEAudioSizeTime = 2,
15619     DISPID_SPEAudioStreamOffset = 3,
15620     DISPID_SPEAudioSizeBytes = 4,
15621     DISPID_SPERetainedStreamOffset = 5,
15622     DISPID_SPERetainedSizeBytes = 6,
15623     DISPID_SPEDisplayText = 7,
15624     DISPID_SPELexicalForm = 8,
15625     DISPID_SPEPronunciation = 9,
15626     DISPID_SPEDisplayAttributes = 10,
15627     DISPID_SPERequiredConfidence = 11,
15628     DISPID_SPEActualConfidence = 12,
15629     DISPID_SPEEngineConfidence = 13
15630 } DISPID_SpeechPhraseElement;
15631 typedef enum SpeechEngineConfidence {
15632     SECLowConfidence = -1,
15633     SECNormalConfidence = 0,
15634     SECHighConfidence = 1
15635 } SpeechEngineConfidence;
15636 typedef enum DISPID_SpeechPhraseElements {
15637     DISPID_SPEsCount = 1,
15638     DISPID_SPEsItem = DISPID_VALUE,
15639     DISPID_SPEs_NewEnum = DISPID_NEWENUM
15640 } DISPID_SpeechPhraseElements;
15641 typedef enum DISPID_SpeechPhraseReplacement {
15642     DISPID_SPRDisplayAttributes = 1,
15643     DISPID_SPRText = 2,
15644     DISPID_SPRFirstElement = 3,
15645     DISPID_SPRNumberOfElements = 4
15646 } DISPID_SpeechPhraseReplacement;
15647 typedef enum DISPID_SpeechPhraseReplacements {
15648     DISPID_SPRsCount = 1,
15649     DISPID_SPRsItem = DISPID_VALUE,
15650     DISPID_SPRs_NewEnum = DISPID_NEWENUM
15651 } DISPID_SpeechPhraseReplacements;
15652 typedef enum DISPID_SpeechPhraseProperty {
15653     DISPID_SPPName = 1,
15654     DISPID_SPPId = 2,
15655     DISPID_SPPValue = 3,
15656     DISPID_SPPFirstElement = 4,
15657     DISPID_SPPNumberOfElements = 5,
15658     DISPID_SPPEngineConfidence = 6,
15659     DISPID_SPPConfidence = 7,
15660     DISPID_SPPParent = 8,
15661     DISPID_SPPChildren = 9
15662 } DISPID_SpeechPhraseProperty;
15663 typedef enum DISPID_SpeechPhraseProperties {
15664     DISPID_SPPsCount = 1,
15665     DISPID_SPPsItem = DISPID_VALUE,
15666     DISPID_SPPs_NewEnum = DISPID_NEWENUM
15667 } DISPID_SpeechPhraseProperties;
15668 typedef enum DISPID_SpeechPhraseRule {
15669     DISPID_SPRuleName = 1,
15670     DISPID_SPRuleId = 2,
15671     DISPID_SPRuleFirstElement = 3,
15672     DISPID_SPRuleNumberOfElements = 4,
15673     DISPID_SPRuleParent = 5,
15674     DISPID_SPRuleChildren = 6,
15675     DISPID_SPRuleConfidence = 7,
15676     DISPID_SPRuleEngineConfidence = 8
15677 } DISPID_SpeechPhraseRule;
15678 typedef enum DISPID_SpeechPhraseRules {
15679     DISPID_SPRulesCount = 1,
15680     DISPID_SPRulesItem = DISPID_VALUE,
15681     DISPID_SPRules_NewEnum = DISPID_NEWENUM
15682 } DISPID_SpeechPhraseRules;
15683 typedef enum DISPID_SpeechLexicon {
15684     DISPID_SLGenerationId = 1,
15685     DISPID_SLGetWords = 2,
15686     DISPID_SLAddPronunciation = 3,
15687     DISPID_SLAddPronunciationByPhoneIds = 4,
15688     DISPID_SLRemovePronunciation = 5,
15689     DISPID_SLRemovePronunciationByPhoneIds = 6,
15690     DISPID_SLGetPronunciations = 7,
15691     DISPID_SLGetGenerationChange = 8
15692 } DISPID_SpeechLexicon;
15693 typedef enum SpeechLexiconType {
15694     SLTUser = eLEXTYPE_USER,
15695     SLTApp = eLEXTYPE_APP
15696 } SpeechLexiconType;
15697 typedef enum SpeechPartOfSpeech {
15698     SPSNotOverriden = SPPS_NotOverriden,
15699     SPSUnknown = SPPS_Unknown,
15700     SPSNoun = SPPS_Noun,
15701     SPSVerb = SPPS_Verb,
15702     SPSModifier = SPPS_Modifier,
15703     SPSFunction = SPPS_Function,
15704     SPSInterjection = SPPS_Interjection,
15705     SPSLMA = SPPS_LMA,
15706     SPSSuppressWord = SPPS_SuppressWord
15707 } SpeechPartOfSpeech;
15708 typedef enum DISPID_SpeechLexiconWords {
15709     DISPID_SLWsCount = 1,
15710     DISPID_SLWsItem = DISPID_VALUE,
15711     DISPID_SLWs_NewEnum = DISPID_NEWENUM
15712 } DISPID_SpeechLexiconWords;
15713 typedef enum SpeechWordType {
15714     SWTAdded = eWORDTYPE_ADDED,
15715     SWTDeleted = eWORDTYPE_DELETED
15716 } SpeechWordType;
15717 typedef enum DISPID_SpeechLexiconWord {
15718     DISPID_SLWLangId = 1,
15719     DISPID_SLWType = 2,
15720     DISPID_SLWWord = 3,
15721     DISPID_SLWPronunciations = 4
15722 } DISPID_SpeechLexiconWord;
15723 typedef enum DISPID_SpeechLexiconProns {
15724     DISPID_SLPsCount = 1,
15725     DISPID_SLPsItem = DISPID_VALUE,
15726     DISPID_SLPs_NewEnum = DISPID_NEWENUM
15727 } DISPID_SpeechLexiconProns;
15728 typedef enum DISPID_SpeechLexiconPronunciation {
15729     DISPID_SLPType = 1,
15730     DISPID_SLPLangId = 2,
15731     DISPID_SLPPartOfSpeech = 3,
15732     DISPID_SLPPhoneIds = 4,
15733     DISPID_SLPSymbolic = 5
15734 } DISPID_SpeechLexiconPronunciation;
15735 typedef enum DISPID_SpeechPhoneConverter {
15736     DISPID_SPCLangId = 1,
15737     DISPID_SPCPhoneToId = 2,
15738     DISPID_SPCIdToPhone = 3
15739 } DISPID_SpeechPhoneConverter;
15740 /*****************************************************************************
15741  * _ISpeechVoiceEvents dispinterface
15742  */
15743 #ifndef ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15744 #define ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__
15745 
15746 DEFINE_GUID(DIID__ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8);
15747 #if defined(__cplusplus) && !defined(CINTERFACE)
15748 MIDL_INTERFACE("a372acd1-3bef-4bbd-8ffb-cb3e2b416af8")
15749 _ISpeechVoiceEvents : public IDispatch
15750 {
15751 };
15752 #ifdef __CRT_UUID_DECL
15753 __CRT_UUID_DECL(_ISpeechVoiceEvents, 0xa372acd1, 0x3bef, 0x4bbd, 0x8f,0xfb, 0xcb,0x3e,0x2b,0x41,0x6a,0xf8)
15754 #endif
15755 #else
15756 typedef struct _ISpeechVoiceEventsVtbl {
15757     BEGIN_INTERFACE
15758 
15759     /*** IUnknown methods ***/
15760     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15761         _ISpeechVoiceEvents *This,
15762         REFIID riid,
15763         void **ppvObject);
15764 
15765     ULONG (STDMETHODCALLTYPE *AddRef)(
15766         _ISpeechVoiceEvents *This);
15767 
15768     ULONG (STDMETHODCALLTYPE *Release)(
15769         _ISpeechVoiceEvents *This);
15770 
15771     /*** IDispatch methods ***/
15772     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15773         _ISpeechVoiceEvents *This,
15774         UINT *pctinfo);
15775 
15776     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15777         _ISpeechVoiceEvents *This,
15778         UINT iTInfo,
15779         LCID lcid,
15780         ITypeInfo **ppTInfo);
15781 
15782     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15783         _ISpeechVoiceEvents *This,
15784         REFIID riid,
15785         LPOLESTR *rgszNames,
15786         UINT cNames,
15787         LCID lcid,
15788         DISPID *rgDispId);
15789 
15790     HRESULT (STDMETHODCALLTYPE *Invoke)(
15791         _ISpeechVoiceEvents *This,
15792         DISPID dispIdMember,
15793         REFIID riid,
15794         LCID lcid,
15795         WORD wFlags,
15796         DISPPARAMS *pDispParams,
15797         VARIANT *pVarResult,
15798         EXCEPINFO *pExcepInfo,
15799         UINT *puArgErr);
15800 
15801     END_INTERFACE
15802 } _ISpeechVoiceEventsVtbl;
15803 
15804 interface _ISpeechVoiceEvents {
15805     CONST_VTBL _ISpeechVoiceEventsVtbl* lpVtbl;
15806 };
15807 
15808 #ifdef COBJMACROS
15809 #ifndef WIDL_C_INLINE_WRAPPERS
15810 /*** IUnknown methods ***/
15811 #define _ISpeechVoiceEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15812 #define _ISpeechVoiceEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
15813 #define _ISpeechVoiceEvents_Release(This) (This)->lpVtbl->Release(This)
15814 /*** IDispatch methods ***/
15815 #define _ISpeechVoiceEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
15816 #define _ISpeechVoiceEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
15817 #define _ISpeechVoiceEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
15818 #define _ISpeechVoiceEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
15819 #else
15820 /*** IUnknown methods ***/
15821 static FORCEINLINE HRESULT _ISpeechVoiceEvents_QueryInterface(_ISpeechVoiceEvents* This,REFIID riid,void **ppvObject) {
15822     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15823 }
15824 static FORCEINLINE ULONG _ISpeechVoiceEvents_AddRef(_ISpeechVoiceEvents* This) {
15825     return This->lpVtbl->AddRef(This);
15826 }
15827 static FORCEINLINE ULONG _ISpeechVoiceEvents_Release(_ISpeechVoiceEvents* This) {
15828     return This->lpVtbl->Release(This);
15829 }
15830 /*** IDispatch methods ***/
15831 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfoCount(_ISpeechVoiceEvents* This,UINT *pctinfo) {
15832     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
15833 }
15834 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetTypeInfo(_ISpeechVoiceEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
15835     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
15836 }
15837 static FORCEINLINE HRESULT _ISpeechVoiceEvents_GetIDsOfNames(_ISpeechVoiceEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
15838     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
15839 }
15840 static FORCEINLINE HRESULT _ISpeechVoiceEvents_Invoke(_ISpeechVoiceEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
15841     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
15842 }
15843 #endif
15844 #endif
15845 
15846 #endif
15847 
15848 #endif  /* ___ISpeechVoiceEvents_DISPINTERFACE_DEFINED__ */
15849 
15850 /*****************************************************************************
15851  * ISpeechRecognizer interface
15852  */
15853 #ifndef __ISpeechRecognizer_INTERFACE_DEFINED__
15854 #define __ISpeechRecognizer_INTERFACE_DEFINED__
15855 
15856 DEFINE_GUID(IID_ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c);
15857 #if defined(__cplusplus) && !defined(CINTERFACE)
15858 MIDL_INTERFACE("2d5f1c0c-bd75-4b08-9478-3b11fea2586c")
15859 ISpeechRecognizer : public IDispatch
15860 {
15861     virtual HRESULT STDMETHODCALLTYPE putref_Recognizer(
15862         ISpeechObjectToken *Recognizer) = 0;
15863 
15864     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
15865         ISpeechObjectToken **Recognizer) = 0;
15866 
15867     virtual HRESULT STDMETHODCALLTYPE put_AllowAudioInputFormatChangesOnNextSet(
15868         VARIANT_BOOL Allow) = 0;
15869 
15870     virtual HRESULT STDMETHODCALLTYPE get_AllowAudioInputFormatChangesOnNextSet(
15871         VARIANT_BOOL *Allow) = 0;
15872 
15873     virtual HRESULT STDMETHODCALLTYPE putref_AudioInput(
15874         ISpeechObjectToken *AudioInput = 0) = 0;
15875 
15876     virtual HRESULT STDMETHODCALLTYPE get_AudioInput(
15877         ISpeechObjectToken **AudioInput) = 0;
15878 
15879     virtual HRESULT STDMETHODCALLTYPE putref_AudioInputStream(
15880         ISpeechBaseStream *AudioInputStream = 0) = 0;
15881 
15882     virtual HRESULT STDMETHODCALLTYPE get_AudioInputStream(
15883         ISpeechBaseStream **AudioInputStream) = 0;
15884 
15885     virtual HRESULT STDMETHODCALLTYPE get_IsShared(
15886         VARIANT_BOOL *Shared) = 0;
15887 
15888     virtual HRESULT STDMETHODCALLTYPE put_State(
15889         SpeechRecognizerState State) = 0;
15890 
15891     virtual HRESULT STDMETHODCALLTYPE get_State(
15892         SpeechRecognizerState *State) = 0;
15893 
15894     virtual HRESULT STDMETHODCALLTYPE get_Status(
15895         ISpeechRecognizerStatus **Status) = 0;
15896 
15897     virtual HRESULT STDMETHODCALLTYPE putref_Profile(
15898         ISpeechObjectToken *Profile = 0) = 0;
15899 
15900     virtual HRESULT STDMETHODCALLTYPE get_Profile(
15901         ISpeechObjectToken **Profile) = 0;
15902 
15903     virtual HRESULT STDMETHODCALLTYPE EmulateRecognition(
15904         VARIANT TextElements,
15905         VARIANT *ElementDisplayAttributes = 0,
15906         LONG LanguageId = 0) = 0;
15907 
15908     virtual HRESULT STDMETHODCALLTYPE CreateRecoContext(
15909         ISpeechRecoContext **NewContext) = 0;
15910 
15911     virtual HRESULT STDMETHODCALLTYPE GetFormat(
15912         SpeechFormatType Type,
15913         ISpeechAudioFormat **Format) = 0;
15914 
15915     virtual HRESULT STDMETHODCALLTYPE SetPropertyNumber(
15916         const BSTR Name,
15917         LONG Value,
15918         VARIANT_BOOL *Supported) = 0;
15919 
15920     virtual HRESULT STDMETHODCALLTYPE GetPropertyNumber(
15921         const BSTR Name,
15922         LONG *Value,
15923         VARIANT_BOOL *Supported) = 0;
15924 
15925     virtual HRESULT STDMETHODCALLTYPE SetPropertyString(
15926         const BSTR Name,
15927         const BSTR Value,
15928         VARIANT_BOOL *Supported) = 0;
15929 
15930     virtual HRESULT STDMETHODCALLTYPE GetPropertyString(
15931         const BSTR Name,
15932         BSTR *Value,
15933         VARIANT_BOOL *Supported) = 0;
15934 
15935     virtual HRESULT STDMETHODCALLTYPE IsUISupported(
15936         const BSTR TypeOfUI,
15937         const VARIANT *ExtraData,
15938         VARIANT_BOOL *Supported) = 0;
15939 
15940     virtual HRESULT STDMETHODCALLTYPE DisplayUI(
15941         LONG hWndParent,
15942         BSTR Title,
15943         const BSTR TypeOfUI,
15944         const VARIANT *ExtraData = 0) = 0;
15945 
15946     virtual HRESULT STDMETHODCALLTYPE GetRecognizers(
15947         BSTR RequiredAttributes,
15948         BSTR OptionalAttributes,
15949         ISpeechObjectTokens **ObjectTokens) = 0;
15950 
15951     virtual HRESULT STDMETHODCALLTYPE GetAudioInputs(
15952         BSTR RequiredAttributes,
15953         BSTR OptionalAttributes,
15954         ISpeechObjectTokens **ObjectTokens) = 0;
15955 
15956     virtual HRESULT STDMETHODCALLTYPE GetProfiles(
15957         BSTR RequiredAttributes,
15958         BSTR OptionalAttributes,
15959         ISpeechObjectTokens **ObjectTokens) = 0;
15960 
15961 };
15962 #ifdef __CRT_UUID_DECL
15963 __CRT_UUID_DECL(ISpeechRecognizer, 0x2d5f1c0c, 0xbd75, 0x4b08, 0x94,0x78, 0x3b,0x11,0xfe,0xa2,0x58,0x6c)
15964 #endif
15965 #else
15966 typedef struct ISpeechRecognizerVtbl {
15967     BEGIN_INTERFACE
15968 
15969     /*** IUnknown methods ***/
15970     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15971         ISpeechRecognizer *This,
15972         REFIID riid,
15973         void **ppvObject);
15974 
15975     ULONG (STDMETHODCALLTYPE *AddRef)(
15976         ISpeechRecognizer *This);
15977 
15978     ULONG (STDMETHODCALLTYPE *Release)(
15979         ISpeechRecognizer *This);
15980 
15981     /*** IDispatch methods ***/
15982     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
15983         ISpeechRecognizer *This,
15984         UINT *pctinfo);
15985 
15986     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
15987         ISpeechRecognizer *This,
15988         UINT iTInfo,
15989         LCID lcid,
15990         ITypeInfo **ppTInfo);
15991 
15992     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
15993         ISpeechRecognizer *This,
15994         REFIID riid,
15995         LPOLESTR *rgszNames,
15996         UINT cNames,
15997         LCID lcid,
15998         DISPID *rgDispId);
15999 
16000     HRESULT (STDMETHODCALLTYPE *Invoke)(
16001         ISpeechRecognizer *This,
16002         DISPID dispIdMember,
16003         REFIID riid,
16004         LCID lcid,
16005         WORD wFlags,
16006         DISPPARAMS *pDispParams,
16007         VARIANT *pVarResult,
16008         EXCEPINFO *pExcepInfo,
16009         UINT *puArgErr);
16010 
16011     /*** ISpeechRecognizer methods ***/
16012     HRESULT (STDMETHODCALLTYPE *putref_Recognizer)(
16013         ISpeechRecognizer *This,
16014         ISpeechObjectToken *Recognizer);
16015 
16016     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
16017         ISpeechRecognizer *This,
16018         ISpeechObjectToken **Recognizer);
16019 
16020     HRESULT (STDMETHODCALLTYPE *put_AllowAudioInputFormatChangesOnNextSet)(
16021         ISpeechRecognizer *This,
16022         VARIANT_BOOL Allow);
16023 
16024     HRESULT (STDMETHODCALLTYPE *get_AllowAudioInputFormatChangesOnNextSet)(
16025         ISpeechRecognizer *This,
16026         VARIANT_BOOL *Allow);
16027 
16028     HRESULT (STDMETHODCALLTYPE *putref_AudioInput)(
16029         ISpeechRecognizer *This,
16030         ISpeechObjectToken *AudioInput);
16031 
16032     HRESULT (STDMETHODCALLTYPE *get_AudioInput)(
16033         ISpeechRecognizer *This,
16034         ISpeechObjectToken **AudioInput);
16035 
16036     HRESULT (STDMETHODCALLTYPE *putref_AudioInputStream)(
16037         ISpeechRecognizer *This,
16038         ISpeechBaseStream *AudioInputStream);
16039 
16040     HRESULT (STDMETHODCALLTYPE *get_AudioInputStream)(
16041         ISpeechRecognizer *This,
16042         ISpeechBaseStream **AudioInputStream);
16043 
16044     HRESULT (STDMETHODCALLTYPE *get_IsShared)(
16045         ISpeechRecognizer *This,
16046         VARIANT_BOOL *Shared);
16047 
16048     HRESULT (STDMETHODCALLTYPE *put_State)(
16049         ISpeechRecognizer *This,
16050         SpeechRecognizerState State);
16051 
16052     HRESULT (STDMETHODCALLTYPE *get_State)(
16053         ISpeechRecognizer *This,
16054         SpeechRecognizerState *State);
16055 
16056     HRESULT (STDMETHODCALLTYPE *get_Status)(
16057         ISpeechRecognizer *This,
16058         ISpeechRecognizerStatus **Status);
16059 
16060     HRESULT (STDMETHODCALLTYPE *putref_Profile)(
16061         ISpeechRecognizer *This,
16062         ISpeechObjectToken *Profile);
16063 
16064     HRESULT (STDMETHODCALLTYPE *get_Profile)(
16065         ISpeechRecognizer *This,
16066         ISpeechObjectToken **Profile);
16067 
16068     HRESULT (STDMETHODCALLTYPE *EmulateRecognition)(
16069         ISpeechRecognizer *This,
16070         VARIANT TextElements,
16071         VARIANT *ElementDisplayAttributes,
16072         LONG LanguageId);
16073 
16074     HRESULT (STDMETHODCALLTYPE *CreateRecoContext)(
16075         ISpeechRecognizer *This,
16076         ISpeechRecoContext **NewContext);
16077 
16078     HRESULT (STDMETHODCALLTYPE *GetFormat)(
16079         ISpeechRecognizer *This,
16080         SpeechFormatType Type,
16081         ISpeechAudioFormat **Format);
16082 
16083     HRESULT (STDMETHODCALLTYPE *SetPropertyNumber)(
16084         ISpeechRecognizer *This,
16085         const BSTR Name,
16086         LONG Value,
16087         VARIANT_BOOL *Supported);
16088 
16089     HRESULT (STDMETHODCALLTYPE *GetPropertyNumber)(
16090         ISpeechRecognizer *This,
16091         const BSTR Name,
16092         LONG *Value,
16093         VARIANT_BOOL *Supported);
16094 
16095     HRESULT (STDMETHODCALLTYPE *SetPropertyString)(
16096         ISpeechRecognizer *This,
16097         const BSTR Name,
16098         const BSTR Value,
16099         VARIANT_BOOL *Supported);
16100 
16101     HRESULT (STDMETHODCALLTYPE *GetPropertyString)(
16102         ISpeechRecognizer *This,
16103         const BSTR Name,
16104         BSTR *Value,
16105         VARIANT_BOOL *Supported);
16106 
16107     HRESULT (STDMETHODCALLTYPE *IsUISupported)(
16108         ISpeechRecognizer *This,
16109         const BSTR TypeOfUI,
16110         const VARIANT *ExtraData,
16111         VARIANT_BOOL *Supported);
16112 
16113     HRESULT (STDMETHODCALLTYPE *DisplayUI)(
16114         ISpeechRecognizer *This,
16115         LONG hWndParent,
16116         BSTR Title,
16117         const BSTR TypeOfUI,
16118         const VARIANT *ExtraData);
16119 
16120     HRESULT (STDMETHODCALLTYPE *GetRecognizers)(
16121         ISpeechRecognizer *This,
16122         BSTR RequiredAttributes,
16123         BSTR OptionalAttributes,
16124         ISpeechObjectTokens **ObjectTokens);
16125 
16126     HRESULT (STDMETHODCALLTYPE *GetAudioInputs)(
16127         ISpeechRecognizer *This,
16128         BSTR RequiredAttributes,
16129         BSTR OptionalAttributes,
16130         ISpeechObjectTokens **ObjectTokens);
16131 
16132     HRESULT (STDMETHODCALLTYPE *GetProfiles)(
16133         ISpeechRecognizer *This,
16134         BSTR RequiredAttributes,
16135         BSTR OptionalAttributes,
16136         ISpeechObjectTokens **ObjectTokens);
16137 
16138     END_INTERFACE
16139 } ISpeechRecognizerVtbl;
16140 
16141 interface ISpeechRecognizer {
16142     CONST_VTBL ISpeechRecognizerVtbl* lpVtbl;
16143 };
16144 
16145 #ifdef COBJMACROS
16146 #ifndef WIDL_C_INLINE_WRAPPERS
16147 /*** IUnknown methods ***/
16148 #define ISpeechRecognizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16149 #define ISpeechRecognizer_AddRef(This) (This)->lpVtbl->AddRef(This)
16150 #define ISpeechRecognizer_Release(This) (This)->lpVtbl->Release(This)
16151 /*** IDispatch methods ***/
16152 #define ISpeechRecognizer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16153 #define ISpeechRecognizer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16154 #define ISpeechRecognizer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16155 #define ISpeechRecognizer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16156 /*** ISpeechRecognizer methods ***/
16157 #define ISpeechRecognizer_putref_Recognizer(This,Recognizer) (This)->lpVtbl->putref_Recognizer(This,Recognizer)
16158 #define ISpeechRecognizer_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
16159 #define ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow)
16160 #define ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(This,Allow) (This)->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow)
16161 #define ISpeechRecognizer_putref_AudioInput(This,AudioInput) (This)->lpVtbl->putref_AudioInput(This,AudioInput)
16162 #define ISpeechRecognizer_get_AudioInput(This,AudioInput) (This)->lpVtbl->get_AudioInput(This,AudioInput)
16163 #define ISpeechRecognizer_putref_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->putref_AudioInputStream(This,AudioInputStream)
16164 #define ISpeechRecognizer_get_AudioInputStream(This,AudioInputStream) (This)->lpVtbl->get_AudioInputStream(This,AudioInputStream)
16165 #define ISpeechRecognizer_get_IsShared(This,Shared) (This)->lpVtbl->get_IsShared(This,Shared)
16166 #define ISpeechRecognizer_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16167 #define ISpeechRecognizer_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16168 #define ISpeechRecognizer_get_Status(This,Status) (This)->lpVtbl->get_Status(This,Status)
16169 #define ISpeechRecognizer_putref_Profile(This,Profile) (This)->lpVtbl->putref_Profile(This,Profile)
16170 #define ISpeechRecognizer_get_Profile(This,Profile) (This)->lpVtbl->get_Profile(This,Profile)
16171 #define ISpeechRecognizer_EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId) (This)->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId)
16172 #define ISpeechRecognizer_CreateRecoContext(This,NewContext) (This)->lpVtbl->CreateRecoContext(This,NewContext)
16173 #define ISpeechRecognizer_GetFormat(This,Type,Format) (This)->lpVtbl->GetFormat(This,Type,Format)
16174 #define ISpeechRecognizer_SetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyNumber(This,Name,Value,Supported)
16175 #define ISpeechRecognizer_GetPropertyNumber(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyNumber(This,Name,Value,Supported)
16176 #define ISpeechRecognizer_SetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->SetPropertyString(This,Name,Value,Supported)
16177 #define ISpeechRecognizer_GetPropertyString(This,Name,Value,Supported) (This)->lpVtbl->GetPropertyString(This,Name,Value,Supported)
16178 #define ISpeechRecognizer_IsUISupported(This,TypeOfUI,ExtraData,Supported) (This)->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported)
16179 #define ISpeechRecognizer_DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData) (This)->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData)
16180 #define ISpeechRecognizer_GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16181 #define ISpeechRecognizer_GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16182 #define ISpeechRecognizer_GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens) (This)->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens)
16183 #else
16184 /*** IUnknown methods ***/
16185 static FORCEINLINE HRESULT ISpeechRecognizer_QueryInterface(ISpeechRecognizer* This,REFIID riid,void **ppvObject) {
16186     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16187 }
16188 static FORCEINLINE ULONG ISpeechRecognizer_AddRef(ISpeechRecognizer* This) {
16189     return This->lpVtbl->AddRef(This);
16190 }
16191 static FORCEINLINE ULONG ISpeechRecognizer_Release(ISpeechRecognizer* This) {
16192     return This->lpVtbl->Release(This);
16193 }
16194 /*** IDispatch methods ***/
16195 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfoCount(ISpeechRecognizer* This,UINT *pctinfo) {
16196     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16197 }
16198 static FORCEINLINE HRESULT ISpeechRecognizer_GetTypeInfo(ISpeechRecognizer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16199     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16200 }
16201 static FORCEINLINE HRESULT ISpeechRecognizer_GetIDsOfNames(ISpeechRecognizer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16202     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16203 }
16204 static FORCEINLINE HRESULT ISpeechRecognizer_Invoke(ISpeechRecognizer* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16205     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16206 }
16207 /*** ISpeechRecognizer methods ***/
16208 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken *Recognizer) {
16209     return This->lpVtbl->putref_Recognizer(This,Recognizer);
16210 }
16211 static FORCEINLINE HRESULT ISpeechRecognizer_get_Recognizer(ISpeechRecognizer* This,ISpeechObjectToken **Recognizer) {
16212     return This->lpVtbl->get_Recognizer(This,Recognizer);
16213 }
16214 static FORCEINLINE HRESULT ISpeechRecognizer_put_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL Allow) {
16215     return This->lpVtbl->put_AllowAudioInputFormatChangesOnNextSet(This,Allow);
16216 }
16217 static FORCEINLINE HRESULT ISpeechRecognizer_get_AllowAudioInputFormatChangesOnNextSet(ISpeechRecognizer* This,VARIANT_BOOL *Allow) {
16218     return This->lpVtbl->get_AllowAudioInputFormatChangesOnNextSet(This,Allow);
16219 }
16220 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken *AudioInput) {
16221     return This->lpVtbl->putref_AudioInput(This,AudioInput);
16222 }
16223 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInput(ISpeechRecognizer* This,ISpeechObjectToken **AudioInput) {
16224     return This->lpVtbl->get_AudioInput(This,AudioInput);
16225 }
16226 static FORCEINLINE HRESULT ISpeechRecognizer_putref_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream *AudioInputStream) {
16227     return This->lpVtbl->putref_AudioInputStream(This,AudioInputStream);
16228 }
16229 static FORCEINLINE HRESULT ISpeechRecognizer_get_AudioInputStream(ISpeechRecognizer* This,ISpeechBaseStream **AudioInputStream) {
16230     return This->lpVtbl->get_AudioInputStream(This,AudioInputStream);
16231 }
16232 static FORCEINLINE HRESULT ISpeechRecognizer_get_IsShared(ISpeechRecognizer* This,VARIANT_BOOL *Shared) {
16233     return This->lpVtbl->get_IsShared(This,Shared);
16234 }
16235 static FORCEINLINE HRESULT ISpeechRecognizer_put_State(ISpeechRecognizer* This,SpeechRecognizerState State) {
16236     return This->lpVtbl->put_State(This,State);
16237 }
16238 static FORCEINLINE HRESULT ISpeechRecognizer_get_State(ISpeechRecognizer* This,SpeechRecognizerState *State) {
16239     return This->lpVtbl->get_State(This,State);
16240 }
16241 static FORCEINLINE HRESULT ISpeechRecognizer_get_Status(ISpeechRecognizer* This,ISpeechRecognizerStatus **Status) {
16242     return This->lpVtbl->get_Status(This,Status);
16243 }
16244 static FORCEINLINE HRESULT ISpeechRecognizer_putref_Profile(ISpeechRecognizer* This,ISpeechObjectToken *Profile) {
16245     return This->lpVtbl->putref_Profile(This,Profile);
16246 }
16247 static FORCEINLINE HRESULT ISpeechRecognizer_get_Profile(ISpeechRecognizer* This,ISpeechObjectToken **Profile) {
16248     return This->lpVtbl->get_Profile(This,Profile);
16249 }
16250 static FORCEINLINE HRESULT ISpeechRecognizer_EmulateRecognition(ISpeechRecognizer* This,VARIANT TextElements,VARIANT *ElementDisplayAttributes,LONG LanguageId) {
16251     return This->lpVtbl->EmulateRecognition(This,TextElements,ElementDisplayAttributes,LanguageId);
16252 }
16253 static FORCEINLINE HRESULT ISpeechRecognizer_CreateRecoContext(ISpeechRecognizer* This,ISpeechRecoContext **NewContext) {
16254     return This->lpVtbl->CreateRecoContext(This,NewContext);
16255 }
16256 static FORCEINLINE HRESULT ISpeechRecognizer_GetFormat(ISpeechRecognizer* This,SpeechFormatType Type,ISpeechAudioFormat **Format) {
16257     return This->lpVtbl->GetFormat(This,Type,Format);
16258 }
16259 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG Value,VARIANT_BOOL *Supported) {
16260     return This->lpVtbl->SetPropertyNumber(This,Name,Value,Supported);
16261 }
16262 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyNumber(ISpeechRecognizer* This,const BSTR Name,LONG *Value,VARIANT_BOOL *Supported) {
16263     return This->lpVtbl->GetPropertyNumber(This,Name,Value,Supported);
16264 }
16265 static FORCEINLINE HRESULT ISpeechRecognizer_SetPropertyString(ISpeechRecognizer* This,const BSTR Name,const BSTR Value,VARIANT_BOOL *Supported) {
16266     return This->lpVtbl->SetPropertyString(This,Name,Value,Supported);
16267 }
16268 static FORCEINLINE HRESULT ISpeechRecognizer_GetPropertyString(ISpeechRecognizer* This,const BSTR Name,BSTR *Value,VARIANT_BOOL *Supported) {
16269     return This->lpVtbl->GetPropertyString(This,Name,Value,Supported);
16270 }
16271 static FORCEINLINE HRESULT ISpeechRecognizer_IsUISupported(ISpeechRecognizer* This,const BSTR TypeOfUI,const VARIANT *ExtraData,VARIANT_BOOL *Supported) {
16272     return This->lpVtbl->IsUISupported(This,TypeOfUI,ExtraData,Supported);
16273 }
16274 static FORCEINLINE HRESULT ISpeechRecognizer_DisplayUI(ISpeechRecognizer* This,LONG hWndParent,BSTR Title,const BSTR TypeOfUI,const VARIANT *ExtraData) {
16275     return This->lpVtbl->DisplayUI(This,hWndParent,Title,TypeOfUI,ExtraData);
16276 }
16277 static FORCEINLINE HRESULT ISpeechRecognizer_GetRecognizers(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16278     return This->lpVtbl->GetRecognizers(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16279 }
16280 static FORCEINLINE HRESULT ISpeechRecognizer_GetAudioInputs(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16281     return This->lpVtbl->GetAudioInputs(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16282 }
16283 static FORCEINLINE HRESULT ISpeechRecognizer_GetProfiles(ISpeechRecognizer* This,BSTR RequiredAttributes,BSTR OptionalAttributes,ISpeechObjectTokens **ObjectTokens) {
16284     return This->lpVtbl->GetProfiles(This,RequiredAttributes,OptionalAttributes,ObjectTokens);
16285 }
16286 #endif
16287 #endif
16288 
16289 #endif
16290 
16291 
16292 #endif  /* __ISpeechRecognizer_INTERFACE_DEFINED__ */
16293 
16294 /*****************************************************************************
16295  * ISpeechRecognizerStatus interface
16296  */
16297 #ifndef __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16298 #define __ISpeechRecognizerStatus_INTERFACE_DEFINED__
16299 
16300 DEFINE_GUID(IID_ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c);
16301 #if defined(__cplusplus) && !defined(CINTERFACE)
16302 MIDL_INTERFACE("bff9e781-53ec-484e-bb8a-0e1b5551e35c")
16303 ISpeechRecognizerStatus : public IDispatch
16304 {
16305     virtual HRESULT STDMETHODCALLTYPE get_AudioStatus(
16306         ISpeechAudioStatus **AudioStatus) = 0;
16307 
16308     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamPosition(
16309         VARIANT *pCurrentStreamPos) = 0;
16310 
16311     virtual HRESULT STDMETHODCALLTYPE get_CurrentStreamNumber(
16312         LONG *StreamNumber) = 0;
16313 
16314     virtual HRESULT STDMETHODCALLTYPE get_NumberOfActiveRules(
16315         LONG *NumberOfActiveRules) = 0;
16316 
16317     virtual HRESULT STDMETHODCALLTYPE get_ClsidEngine(
16318         BSTR *ClsidEngine) = 0;
16319 
16320     virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
16321         VARIANT *SupportedLanguages) = 0;
16322 
16323 };
16324 #ifdef __CRT_UUID_DECL
16325 __CRT_UUID_DECL(ISpeechRecognizerStatus, 0xbff9e781, 0x53ec, 0x484e, 0xbb,0x8a, 0x0e,0x1b,0x55,0x51,0xe3,0x5c)
16326 #endif
16327 #else
16328 typedef struct ISpeechRecognizerStatusVtbl {
16329     BEGIN_INTERFACE
16330 
16331     /*** IUnknown methods ***/
16332     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16333         ISpeechRecognizerStatus *This,
16334         REFIID riid,
16335         void **ppvObject);
16336 
16337     ULONG (STDMETHODCALLTYPE *AddRef)(
16338         ISpeechRecognizerStatus *This);
16339 
16340     ULONG (STDMETHODCALLTYPE *Release)(
16341         ISpeechRecognizerStatus *This);
16342 
16343     /*** IDispatch methods ***/
16344     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16345         ISpeechRecognizerStatus *This,
16346         UINT *pctinfo);
16347 
16348     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16349         ISpeechRecognizerStatus *This,
16350         UINT iTInfo,
16351         LCID lcid,
16352         ITypeInfo **ppTInfo);
16353 
16354     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16355         ISpeechRecognizerStatus *This,
16356         REFIID riid,
16357         LPOLESTR *rgszNames,
16358         UINT cNames,
16359         LCID lcid,
16360         DISPID *rgDispId);
16361 
16362     HRESULT (STDMETHODCALLTYPE *Invoke)(
16363         ISpeechRecognizerStatus *This,
16364         DISPID dispIdMember,
16365         REFIID riid,
16366         LCID lcid,
16367         WORD wFlags,
16368         DISPPARAMS *pDispParams,
16369         VARIANT *pVarResult,
16370         EXCEPINFO *pExcepInfo,
16371         UINT *puArgErr);
16372 
16373     /*** ISpeechRecognizerStatus methods ***/
16374     HRESULT (STDMETHODCALLTYPE *get_AudioStatus)(
16375         ISpeechRecognizerStatus *This,
16376         ISpeechAudioStatus **AudioStatus);
16377 
16378     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamPosition)(
16379         ISpeechRecognizerStatus *This,
16380         VARIANT *pCurrentStreamPos);
16381 
16382     HRESULT (STDMETHODCALLTYPE *get_CurrentStreamNumber)(
16383         ISpeechRecognizerStatus *This,
16384         LONG *StreamNumber);
16385 
16386     HRESULT (STDMETHODCALLTYPE *get_NumberOfActiveRules)(
16387         ISpeechRecognizerStatus *This,
16388         LONG *NumberOfActiveRules);
16389 
16390     HRESULT (STDMETHODCALLTYPE *get_ClsidEngine)(
16391         ISpeechRecognizerStatus *This,
16392         BSTR *ClsidEngine);
16393 
16394     HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
16395         ISpeechRecognizerStatus *This,
16396         VARIANT *SupportedLanguages);
16397 
16398     END_INTERFACE
16399 } ISpeechRecognizerStatusVtbl;
16400 
16401 interface ISpeechRecognizerStatus {
16402     CONST_VTBL ISpeechRecognizerStatusVtbl* lpVtbl;
16403 };
16404 
16405 #ifdef COBJMACROS
16406 #ifndef WIDL_C_INLINE_WRAPPERS
16407 /*** IUnknown methods ***/
16408 #define ISpeechRecognizerStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16409 #define ISpeechRecognizerStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
16410 #define ISpeechRecognizerStatus_Release(This) (This)->lpVtbl->Release(This)
16411 /*** IDispatch methods ***/
16412 #define ISpeechRecognizerStatus_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16413 #define ISpeechRecognizerStatus_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16414 #define ISpeechRecognizerStatus_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16415 #define ISpeechRecognizerStatus_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16416 /*** ISpeechRecognizerStatus methods ***/
16417 #define ISpeechRecognizerStatus_get_AudioStatus(This,AudioStatus) (This)->lpVtbl->get_AudioStatus(This,AudioStatus)
16418 #define ISpeechRecognizerStatus_get_CurrentStreamPosition(This,pCurrentStreamPos) (This)->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos)
16419 #define ISpeechRecognizerStatus_get_CurrentStreamNumber(This,StreamNumber) (This)->lpVtbl->get_CurrentStreamNumber(This,StreamNumber)
16420 #define ISpeechRecognizerStatus_get_NumberOfActiveRules(This,NumberOfActiveRules) (This)->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules)
16421 #define ISpeechRecognizerStatus_get_ClsidEngine(This,ClsidEngine) (This)->lpVtbl->get_ClsidEngine(This,ClsidEngine)
16422 #define ISpeechRecognizerStatus_get_SupportedLanguages(This,SupportedLanguages) (This)->lpVtbl->get_SupportedLanguages(This,SupportedLanguages)
16423 #else
16424 /*** IUnknown methods ***/
16425 static FORCEINLINE HRESULT ISpeechRecognizerStatus_QueryInterface(ISpeechRecognizerStatus* This,REFIID riid,void **ppvObject) {
16426     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16427 }
16428 static FORCEINLINE ULONG ISpeechRecognizerStatus_AddRef(ISpeechRecognizerStatus* This) {
16429     return This->lpVtbl->AddRef(This);
16430 }
16431 static FORCEINLINE ULONG ISpeechRecognizerStatus_Release(ISpeechRecognizerStatus* This) {
16432     return This->lpVtbl->Release(This);
16433 }
16434 /*** IDispatch methods ***/
16435 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfoCount(ISpeechRecognizerStatus* This,UINT *pctinfo) {
16436     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16437 }
16438 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetTypeInfo(ISpeechRecognizerStatus* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16439     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16440 }
16441 static FORCEINLINE HRESULT ISpeechRecognizerStatus_GetIDsOfNames(ISpeechRecognizerStatus* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16442     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16443 }
16444 static FORCEINLINE HRESULT ISpeechRecognizerStatus_Invoke(ISpeechRecognizerStatus* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16445     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16446 }
16447 /*** ISpeechRecognizerStatus methods ***/
16448 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_AudioStatus(ISpeechRecognizerStatus* This,ISpeechAudioStatus **AudioStatus) {
16449     return This->lpVtbl->get_AudioStatus(This,AudioStatus);
16450 }
16451 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamPosition(ISpeechRecognizerStatus* This,VARIANT *pCurrentStreamPos) {
16452     return This->lpVtbl->get_CurrentStreamPosition(This,pCurrentStreamPos);
16453 }
16454 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_CurrentStreamNumber(ISpeechRecognizerStatus* This,LONG *StreamNumber) {
16455     return This->lpVtbl->get_CurrentStreamNumber(This,StreamNumber);
16456 }
16457 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_NumberOfActiveRules(ISpeechRecognizerStatus* This,LONG *NumberOfActiveRules) {
16458     return This->lpVtbl->get_NumberOfActiveRules(This,NumberOfActiveRules);
16459 }
16460 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_ClsidEngine(ISpeechRecognizerStatus* This,BSTR *ClsidEngine) {
16461     return This->lpVtbl->get_ClsidEngine(This,ClsidEngine);
16462 }
16463 static FORCEINLINE HRESULT ISpeechRecognizerStatus_get_SupportedLanguages(ISpeechRecognizerStatus* This,VARIANT *SupportedLanguages) {
16464     return This->lpVtbl->get_SupportedLanguages(This,SupportedLanguages);
16465 }
16466 #endif
16467 #endif
16468 
16469 #endif
16470 
16471 
16472 #endif  /* __ISpeechRecognizerStatus_INTERFACE_DEFINED__ */
16473 
16474 /*****************************************************************************
16475  * ISpeechRecoContext interface
16476  */
16477 #ifndef __ISpeechRecoContext_INTERFACE_DEFINED__
16478 #define __ISpeechRecoContext_INTERFACE_DEFINED__
16479 
16480 DEFINE_GUID(IID_ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8);
16481 #if defined(__cplusplus) && !defined(CINTERFACE)
16482 MIDL_INTERFACE("580aa49d-7e1e-4809-b8e2-57da806104b8")
16483 ISpeechRecoContext : public IDispatch
16484 {
16485     virtual HRESULT STDMETHODCALLTYPE get_Recognizer(
16486         ISpeechRecognizer **Recognizer) = 0;
16487 
16488     virtual HRESULT STDMETHODCALLTYPE get_AudioInputInterferenceStatus(
16489         SpeechInterference *Interference) = 0;
16490 
16491     virtual HRESULT STDMETHODCALLTYPE get_RequestedUIType(
16492         BSTR *UIType) = 0;
16493 
16494     virtual HRESULT STDMETHODCALLTYPE putref_Voice(
16495         ISpeechVoice *Voice) = 0;
16496 
16497     virtual HRESULT STDMETHODCALLTYPE get_Voice(
16498         ISpeechVoice **Voice) = 0;
16499 
16500     virtual HRESULT STDMETHODCALLTYPE put_AllowVoiceFormatMatchingOnNextSet(
16501         VARIANT_BOOL Allow) = 0;
16502 
16503     virtual HRESULT STDMETHODCALLTYPE get_AllowVoiceFormatMatchingOnNextSet(
16504         VARIANT_BOOL *pAllow) = 0;
16505 
16506     virtual HRESULT STDMETHODCALLTYPE put_VoicePurgeEvent(
16507         SpeechRecoEvents EventInterest) = 0;
16508 
16509     virtual HRESULT STDMETHODCALLTYPE get_VoicePurgeEvent(
16510         SpeechRecoEvents *EventInterest) = 0;
16511 
16512     virtual HRESULT STDMETHODCALLTYPE put_EventInterests(
16513         SpeechRecoEvents EventInterest) = 0;
16514 
16515     virtual HRESULT STDMETHODCALLTYPE get_EventInterests(
16516         SpeechRecoEvents *EventInterest) = 0;
16517 
16518     virtual HRESULT STDMETHODCALLTYPE put_CmdMaxAlternates(
16519         LONG MaxAlternates) = 0;
16520 
16521     virtual HRESULT STDMETHODCALLTYPE get_CmdMaxAlternates(
16522         LONG *MaxAlternates) = 0;
16523 
16524     virtual HRESULT STDMETHODCALLTYPE put_State(
16525         SpeechRecoContextState State) = 0;
16526 
16527     virtual HRESULT STDMETHODCALLTYPE get_State(
16528         SpeechRecoContextState *State) = 0;
16529 
16530     virtual HRESULT STDMETHODCALLTYPE put_RetainedAudio(
16531         SpeechRetainedAudioOptions Option) = 0;
16532 
16533     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudio(
16534         SpeechRetainedAudioOptions *Option) = 0;
16535 
16536     virtual HRESULT STDMETHODCALLTYPE putref_RetainedAudioFormat(
16537         ISpeechAudioFormat *Format) = 0;
16538 
16539     virtual HRESULT STDMETHODCALLTYPE get_RetainedAudioFormat(
16540         ISpeechAudioFormat **Format) = 0;
16541 
16542     virtual HRESULT STDMETHODCALLTYPE Pause(
16543         ) = 0;
16544 
16545     virtual HRESULT STDMETHODCALLTYPE Resume(
16546         ) = 0;
16547 
16548     virtual HRESULT STDMETHODCALLTYPE CreateGrammar(
16549         VARIANT GrammarId,
16550         ISpeechRecoGrammar **Grammar) = 0;
16551 
16552     virtual HRESULT STDMETHODCALLTYPE CreateResultFromMemory(
16553         VARIANT *ResultBlock,
16554         ISpeechRecoResult **Result) = 0;
16555 
16556     virtual HRESULT STDMETHODCALLTYPE Bookmark(
16557         SpeechBookmarkOptions Options,
16558         VARIANT StreamPos,
16559         VARIANT BookmarkId) = 0;
16560 
16561     virtual HRESULT STDMETHODCALLTYPE SetAdaptationData(
16562         BSTR AdaptationString) = 0;
16563 
16564 };
16565 #ifdef __CRT_UUID_DECL
16566 __CRT_UUID_DECL(ISpeechRecoContext, 0x580aa49d, 0x7e1e, 0x4809, 0xb8,0xe2, 0x57,0xda,0x80,0x61,0x04,0xb8)
16567 #endif
16568 #else
16569 typedef struct ISpeechRecoContextVtbl {
16570     BEGIN_INTERFACE
16571 
16572     /*** IUnknown methods ***/
16573     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16574         ISpeechRecoContext *This,
16575         REFIID riid,
16576         void **ppvObject);
16577 
16578     ULONG (STDMETHODCALLTYPE *AddRef)(
16579         ISpeechRecoContext *This);
16580 
16581     ULONG (STDMETHODCALLTYPE *Release)(
16582         ISpeechRecoContext *This);
16583 
16584     /*** IDispatch methods ***/
16585     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16586         ISpeechRecoContext *This,
16587         UINT *pctinfo);
16588 
16589     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16590         ISpeechRecoContext *This,
16591         UINT iTInfo,
16592         LCID lcid,
16593         ITypeInfo **ppTInfo);
16594 
16595     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16596         ISpeechRecoContext *This,
16597         REFIID riid,
16598         LPOLESTR *rgszNames,
16599         UINT cNames,
16600         LCID lcid,
16601         DISPID *rgDispId);
16602 
16603     HRESULT (STDMETHODCALLTYPE *Invoke)(
16604         ISpeechRecoContext *This,
16605         DISPID dispIdMember,
16606         REFIID riid,
16607         LCID lcid,
16608         WORD wFlags,
16609         DISPPARAMS *pDispParams,
16610         VARIANT *pVarResult,
16611         EXCEPINFO *pExcepInfo,
16612         UINT *puArgErr);
16613 
16614     /*** ISpeechRecoContext methods ***/
16615     HRESULT (STDMETHODCALLTYPE *get_Recognizer)(
16616         ISpeechRecoContext *This,
16617         ISpeechRecognizer **Recognizer);
16618 
16619     HRESULT (STDMETHODCALLTYPE *get_AudioInputInterferenceStatus)(
16620         ISpeechRecoContext *This,
16621         SpeechInterference *Interference);
16622 
16623     HRESULT (STDMETHODCALLTYPE *get_RequestedUIType)(
16624         ISpeechRecoContext *This,
16625         BSTR *UIType);
16626 
16627     HRESULT (STDMETHODCALLTYPE *putref_Voice)(
16628         ISpeechRecoContext *This,
16629         ISpeechVoice *Voice);
16630 
16631     HRESULT (STDMETHODCALLTYPE *get_Voice)(
16632         ISpeechRecoContext *This,
16633         ISpeechVoice **Voice);
16634 
16635     HRESULT (STDMETHODCALLTYPE *put_AllowVoiceFormatMatchingOnNextSet)(
16636         ISpeechRecoContext *This,
16637         VARIANT_BOOL Allow);
16638 
16639     HRESULT (STDMETHODCALLTYPE *get_AllowVoiceFormatMatchingOnNextSet)(
16640         ISpeechRecoContext *This,
16641         VARIANT_BOOL *pAllow);
16642 
16643     HRESULT (STDMETHODCALLTYPE *put_VoicePurgeEvent)(
16644         ISpeechRecoContext *This,
16645         SpeechRecoEvents EventInterest);
16646 
16647     HRESULT (STDMETHODCALLTYPE *get_VoicePurgeEvent)(
16648         ISpeechRecoContext *This,
16649         SpeechRecoEvents *EventInterest);
16650 
16651     HRESULT (STDMETHODCALLTYPE *put_EventInterests)(
16652         ISpeechRecoContext *This,
16653         SpeechRecoEvents EventInterest);
16654 
16655     HRESULT (STDMETHODCALLTYPE *get_EventInterests)(
16656         ISpeechRecoContext *This,
16657         SpeechRecoEvents *EventInterest);
16658 
16659     HRESULT (STDMETHODCALLTYPE *put_CmdMaxAlternates)(
16660         ISpeechRecoContext *This,
16661         LONG MaxAlternates);
16662 
16663     HRESULT (STDMETHODCALLTYPE *get_CmdMaxAlternates)(
16664         ISpeechRecoContext *This,
16665         LONG *MaxAlternates);
16666 
16667     HRESULT (STDMETHODCALLTYPE *put_State)(
16668         ISpeechRecoContext *This,
16669         SpeechRecoContextState State);
16670 
16671     HRESULT (STDMETHODCALLTYPE *get_State)(
16672         ISpeechRecoContext *This,
16673         SpeechRecoContextState *State);
16674 
16675     HRESULT (STDMETHODCALLTYPE *put_RetainedAudio)(
16676         ISpeechRecoContext *This,
16677         SpeechRetainedAudioOptions Option);
16678 
16679     HRESULT (STDMETHODCALLTYPE *get_RetainedAudio)(
16680         ISpeechRecoContext *This,
16681         SpeechRetainedAudioOptions *Option);
16682 
16683     HRESULT (STDMETHODCALLTYPE *putref_RetainedAudioFormat)(
16684         ISpeechRecoContext *This,
16685         ISpeechAudioFormat *Format);
16686 
16687     HRESULT (STDMETHODCALLTYPE *get_RetainedAudioFormat)(
16688         ISpeechRecoContext *This,
16689         ISpeechAudioFormat **Format);
16690 
16691     HRESULT (STDMETHODCALLTYPE *Pause)(
16692         ISpeechRecoContext *This);
16693 
16694     HRESULT (STDMETHODCALLTYPE *Resume)(
16695         ISpeechRecoContext *This);
16696 
16697     HRESULT (STDMETHODCALLTYPE *CreateGrammar)(
16698         ISpeechRecoContext *This,
16699         VARIANT GrammarId,
16700         ISpeechRecoGrammar **Grammar);
16701 
16702     HRESULT (STDMETHODCALLTYPE *CreateResultFromMemory)(
16703         ISpeechRecoContext *This,
16704         VARIANT *ResultBlock,
16705         ISpeechRecoResult **Result);
16706 
16707     HRESULT (STDMETHODCALLTYPE *Bookmark)(
16708         ISpeechRecoContext *This,
16709         SpeechBookmarkOptions Options,
16710         VARIANT StreamPos,
16711         VARIANT BookmarkId);
16712 
16713     HRESULT (STDMETHODCALLTYPE *SetAdaptationData)(
16714         ISpeechRecoContext *This,
16715         BSTR AdaptationString);
16716 
16717     END_INTERFACE
16718 } ISpeechRecoContextVtbl;
16719 
16720 interface ISpeechRecoContext {
16721     CONST_VTBL ISpeechRecoContextVtbl* lpVtbl;
16722 };
16723 
16724 #ifdef COBJMACROS
16725 #ifndef WIDL_C_INLINE_WRAPPERS
16726 /*** IUnknown methods ***/
16727 #define ISpeechRecoContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16728 #define ISpeechRecoContext_AddRef(This) (This)->lpVtbl->AddRef(This)
16729 #define ISpeechRecoContext_Release(This) (This)->lpVtbl->Release(This)
16730 /*** IDispatch methods ***/
16731 #define ISpeechRecoContext_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
16732 #define ISpeechRecoContext_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
16733 #define ISpeechRecoContext_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
16734 #define ISpeechRecoContext_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
16735 /*** ISpeechRecoContext methods ***/
16736 #define ISpeechRecoContext_get_Recognizer(This,Recognizer) (This)->lpVtbl->get_Recognizer(This,Recognizer)
16737 #define ISpeechRecoContext_get_AudioInputInterferenceStatus(This,Interference) (This)->lpVtbl->get_AudioInputInterferenceStatus(This,Interference)
16738 #define ISpeechRecoContext_get_RequestedUIType(This,UIType) (This)->lpVtbl->get_RequestedUIType(This,UIType)
16739 #define ISpeechRecoContext_putref_Voice(This,Voice) (This)->lpVtbl->putref_Voice(This,Voice)
16740 #define ISpeechRecoContext_get_Voice(This,Voice) (This)->lpVtbl->get_Voice(This,Voice)
16741 #define ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(This,Allow) (This)->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow)
16742 #define ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(This,pAllow) (This)->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow)
16743 #define ISpeechRecoContext_put_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->put_VoicePurgeEvent(This,EventInterest)
16744 #define ISpeechRecoContext_get_VoicePurgeEvent(This,EventInterest) (This)->lpVtbl->get_VoicePurgeEvent(This,EventInterest)
16745 #define ISpeechRecoContext_put_EventInterests(This,EventInterest) (This)->lpVtbl->put_EventInterests(This,EventInterest)
16746 #define ISpeechRecoContext_get_EventInterests(This,EventInterest) (This)->lpVtbl->get_EventInterests(This,EventInterest)
16747 #define ISpeechRecoContext_put_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates)
16748 #define ISpeechRecoContext_get_CmdMaxAlternates(This,MaxAlternates) (This)->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates)
16749 #define ISpeechRecoContext_put_State(This,State) (This)->lpVtbl->put_State(This,State)
16750 #define ISpeechRecoContext_get_State(This,State) (This)->lpVtbl->get_State(This,State)
16751 #define ISpeechRecoContext_put_RetainedAudio(This,Option) (This)->lpVtbl->put_RetainedAudio(This,Option)
16752 #define ISpeechRecoContext_get_RetainedAudio(This,Option) (This)->lpVtbl->get_RetainedAudio(This,Option)
16753 #define ISpeechRecoContext_putref_RetainedAudioFormat(This,Format) (This)->lpVtbl->putref_RetainedAudioFormat(This,Format)
16754 #define ISpeechRecoContext_get_RetainedAudioFormat(This,Format) (This)->lpVtbl->get_RetainedAudioFormat(This,Format)
16755 #define ISpeechRecoContext_Pause(This) (This)->lpVtbl->Pause(This)
16756 #define ISpeechRecoContext_Resume(This) (This)->lpVtbl->Resume(This)
16757 #define ISpeechRecoContext_CreateGrammar(This,GrammarId,Grammar) (This)->lpVtbl->CreateGrammar(This,GrammarId,Grammar)
16758 #define ISpeechRecoContext_CreateResultFromMemory(This,ResultBlock,Result) (This)->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result)
16759 #define ISpeechRecoContext_Bookmark(This,Options,StreamPos,BookmarkId) (This)->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId)
16760 #define ISpeechRecoContext_SetAdaptationData(This,AdaptationString) (This)->lpVtbl->SetAdaptationData(This,AdaptationString)
16761 #else
16762 /*** IUnknown methods ***/
16763 static FORCEINLINE HRESULT ISpeechRecoContext_QueryInterface(ISpeechRecoContext* This,REFIID riid,void **ppvObject) {
16764     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16765 }
16766 static FORCEINLINE ULONG ISpeechRecoContext_AddRef(ISpeechRecoContext* This) {
16767     return This->lpVtbl->AddRef(This);
16768 }
16769 static FORCEINLINE ULONG ISpeechRecoContext_Release(ISpeechRecoContext* This) {
16770     return This->lpVtbl->Release(This);
16771 }
16772 /*** IDispatch methods ***/
16773 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfoCount(ISpeechRecoContext* This,UINT *pctinfo) {
16774     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
16775 }
16776 static FORCEINLINE HRESULT ISpeechRecoContext_GetTypeInfo(ISpeechRecoContext* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
16777     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
16778 }
16779 static FORCEINLINE HRESULT ISpeechRecoContext_GetIDsOfNames(ISpeechRecoContext* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
16780     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
16781 }
16782 static FORCEINLINE HRESULT ISpeechRecoContext_Invoke(ISpeechRecoContext* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
16783     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
16784 }
16785 /*** ISpeechRecoContext methods ***/
16786 static FORCEINLINE HRESULT ISpeechRecoContext_get_Recognizer(ISpeechRecoContext* This,ISpeechRecognizer **Recognizer) {
16787     return This->lpVtbl->get_Recognizer(This,Recognizer);
16788 }
16789 static FORCEINLINE HRESULT ISpeechRecoContext_get_AudioInputInterferenceStatus(ISpeechRecoContext* This,SpeechInterference *Interference) {
16790     return This->lpVtbl->get_AudioInputInterferenceStatus(This,Interference);
16791 }
16792 static FORCEINLINE HRESULT ISpeechRecoContext_get_RequestedUIType(ISpeechRecoContext* This,BSTR *UIType) {
16793     return This->lpVtbl->get_RequestedUIType(This,UIType);
16794 }
16795 static FORCEINLINE HRESULT ISpeechRecoContext_putref_Voice(ISpeechRecoContext* This,ISpeechVoice *Voice) {
16796     return This->lpVtbl->putref_Voice(This,Voice);
16797 }
16798 static FORCEINLINE HRESULT ISpeechRecoContext_get_Voice(ISpeechRecoContext* This,ISpeechVoice **Voice) {
16799     return This->lpVtbl->get_Voice(This,Voice);
16800 }
16801 static FORCEINLINE HRESULT ISpeechRecoContext_put_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL Allow) {
16802     return This->lpVtbl->put_AllowVoiceFormatMatchingOnNextSet(This,Allow);
16803 }
16804 static FORCEINLINE HRESULT ISpeechRecoContext_get_AllowVoiceFormatMatchingOnNextSet(ISpeechRecoContext* This,VARIANT_BOOL *pAllow) {
16805     return This->lpVtbl->get_AllowVoiceFormatMatchingOnNextSet(This,pAllow);
16806 }
16807 static FORCEINLINE HRESULT ISpeechRecoContext_put_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16808     return This->lpVtbl->put_VoicePurgeEvent(This,EventInterest);
16809 }
16810 static FORCEINLINE HRESULT ISpeechRecoContext_get_VoicePurgeEvent(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16811     return This->lpVtbl->get_VoicePurgeEvent(This,EventInterest);
16812 }
16813 static FORCEINLINE HRESULT ISpeechRecoContext_put_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents EventInterest) {
16814     return This->lpVtbl->put_EventInterests(This,EventInterest);
16815 }
16816 static FORCEINLINE HRESULT ISpeechRecoContext_get_EventInterests(ISpeechRecoContext* This,SpeechRecoEvents *EventInterest) {
16817     return This->lpVtbl->get_EventInterests(This,EventInterest);
16818 }
16819 static FORCEINLINE HRESULT ISpeechRecoContext_put_CmdMaxAlternates(ISpeechRecoContext* This,LONG MaxAlternates) {
16820     return This->lpVtbl->put_CmdMaxAlternates(This,MaxAlternates);
16821 }
16822 static FORCEINLINE HRESULT ISpeechRecoContext_get_CmdMaxAlternates(ISpeechRecoContext* This,LONG *MaxAlternates) {
16823     return This->lpVtbl->get_CmdMaxAlternates(This,MaxAlternates);
16824 }
16825 static FORCEINLINE HRESULT ISpeechRecoContext_put_State(ISpeechRecoContext* This,SpeechRecoContextState State) {
16826     return This->lpVtbl->put_State(This,State);
16827 }
16828 static FORCEINLINE HRESULT ISpeechRecoContext_get_State(ISpeechRecoContext* This,SpeechRecoContextState *State) {
16829     return This->lpVtbl->get_State(This,State);
16830 }
16831 static FORCEINLINE HRESULT ISpeechRecoContext_put_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions Option) {
16832     return This->lpVtbl->put_RetainedAudio(This,Option);
16833 }
16834 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudio(ISpeechRecoContext* This,SpeechRetainedAudioOptions *Option) {
16835     return This->lpVtbl->get_RetainedAudio(This,Option);
16836 }
16837 static FORCEINLINE HRESULT ISpeechRecoContext_putref_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat *Format) {
16838     return This->lpVtbl->putref_RetainedAudioFormat(This,Format);
16839 }
16840 static FORCEINLINE HRESULT ISpeechRecoContext_get_RetainedAudioFormat(ISpeechRecoContext* This,ISpeechAudioFormat **Format) {
16841     return This->lpVtbl->get_RetainedAudioFormat(This,Format);
16842 }
16843 static FORCEINLINE HRESULT ISpeechRecoContext_Pause(ISpeechRecoContext* This) {
16844     return This->lpVtbl->Pause(This);
16845 }
16846 static FORCEINLINE HRESULT ISpeechRecoContext_Resume(ISpeechRecoContext* This) {
16847     return This->lpVtbl->Resume(This);
16848 }
16849 static FORCEINLINE HRESULT ISpeechRecoContext_CreateGrammar(ISpeechRecoContext* This,VARIANT GrammarId,ISpeechRecoGrammar **Grammar) {
16850     return This->lpVtbl->CreateGrammar(This,GrammarId,Grammar);
16851 }
16852 static FORCEINLINE HRESULT ISpeechRecoContext_CreateResultFromMemory(ISpeechRecoContext* This,VARIANT *ResultBlock,ISpeechRecoResult **Result) {
16853     return This->lpVtbl->CreateResultFromMemory(This,ResultBlock,Result);
16854 }
16855 static FORCEINLINE HRESULT ISpeechRecoContext_Bookmark(ISpeechRecoContext* This,SpeechBookmarkOptions Options,VARIANT StreamPos,VARIANT BookmarkId) {
16856     return This->lpVtbl->Bookmark(This,Options,StreamPos,BookmarkId);
16857 }
16858 static FORCEINLINE HRESULT ISpeechRecoContext_SetAdaptationData(ISpeechRecoContext* This,BSTR AdaptationString) {
16859     return This->lpVtbl->SetAdaptationData(This,AdaptationString);
16860 }
16861 #endif
16862 #endif
16863 
16864 #endif
16865 
16866 
16867 #endif  /* __ISpeechRecoContext_INTERFACE_DEFINED__ */
16868 
16869 /*****************************************************************************
16870  * ISpeechRecoGrammar interface
16871  */
16872 #ifndef __ISpeechRecoGrammar_INTERFACE_DEFINED__
16873 #define __ISpeechRecoGrammar_INTERFACE_DEFINED__
16874 
16875 DEFINE_GUID(IID_ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09);
16876 #if defined(__cplusplus) && !defined(CINTERFACE)
16877 MIDL_INTERFACE("b6d6f79f-2158-4e50-b5bc-9a9ccd852a09")
16878 ISpeechRecoGrammar : public IDispatch
16879 {
16880     virtual HRESULT STDMETHODCALLTYPE get_Id(
16881         VARIANT *Id) = 0;
16882 
16883     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
16884         ISpeechRecoContext **RecoContext) = 0;
16885 
16886     virtual HRESULT STDMETHODCALLTYPE put_State(
16887         SpeechGrammarState State) = 0;
16888 
16889     virtual HRESULT STDMETHODCALLTYPE get_State(
16890         SpeechGrammarState *State) = 0;
16891 
16892     virtual HRESULT STDMETHODCALLTYPE get_Rules(
16893         ISpeechGrammarRules **Rules) = 0;
16894 
16895     virtual HRESULT STDMETHODCALLTYPE Reset(
16896         SpeechLanguageId NewLanguage = 0) = 0;
16897 
16898     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromFile(
16899         const BSTR FileName,
16900         SpeechLoadOption LoadOption = SLOStatic) = 0;
16901 
16902     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromObject(
16903         const BSTR ClassId,
16904         const BSTR GrammarName,
16905         SpeechLoadOption LoadOption = SLOStatic) = 0;
16906 
16907     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromResource(
16908         LONG hModule,
16909         VARIANT ResourceName,
16910         VARIANT ResourceType,
16911         SpeechLanguageId LanguageId,
16912         SpeechLoadOption LoadOption = SLOStatic) = 0;
16913 
16914     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromMemory(
16915         VARIANT GrammarData,
16916         SpeechLoadOption LoadOption = SLOStatic) = 0;
16917 
16918     virtual HRESULT STDMETHODCALLTYPE CmdLoadFromProprietaryGrammar(
16919         const BSTR ProprietaryGuid,
16920         const BSTR ProprietaryString,
16921         VARIANT ProprietaryData,
16922         SpeechLoadOption LoadOption = SLOStatic) = 0;
16923 
16924     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleState(
16925         const BSTR Name,
16926         SpeechRuleState State) = 0;
16927 
16928     virtual HRESULT STDMETHODCALLTYPE CmdSetRuleIdState(
16929         LONG RuleId,
16930         SpeechRuleState State) = 0;
16931 
16932     virtual HRESULT STDMETHODCALLTYPE DictationLoad(
16933         const BSTR TopicName = L"",
16934         SpeechLoadOption LoadOption = SLOStatic) = 0;
16935 
16936     virtual HRESULT STDMETHODCALLTYPE DictationUnload(
16937         ) = 0;
16938 
16939     virtual HRESULT STDMETHODCALLTYPE DictationSetState(
16940         SpeechRuleState State) = 0;
16941 
16942     virtual HRESULT STDMETHODCALLTYPE SetWordSequenceData(
16943         const BSTR Text,
16944         LONG TextLength,
16945         ISpeechTextSelectionInformation *Info) = 0;
16946 
16947     virtual HRESULT STDMETHODCALLTYPE SetTextSelection(
16948         ISpeechTextSelectionInformation *Info) = 0;
16949 
16950     virtual HRESULT STDMETHODCALLTYPE IsPronounceable(
16951         const BSTR Word,
16952         SpeechWordPronounceable *WordPronounceable) = 0;
16953 
16954 };
16955 #ifdef __CRT_UUID_DECL
16956 __CRT_UUID_DECL(ISpeechRecoGrammar, 0xb6d6f79f, 0x2158, 0x4e50, 0xb5,0xbc, 0x9a,0x9c,0xcd,0x85,0x2a,0x09)
16957 #endif
16958 #else
16959 typedef struct ISpeechRecoGrammarVtbl {
16960     BEGIN_INTERFACE
16961 
16962     /*** IUnknown methods ***/
16963     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16964         ISpeechRecoGrammar *This,
16965         REFIID riid,
16966         void **ppvObject);
16967 
16968     ULONG (STDMETHODCALLTYPE *AddRef)(
16969         ISpeechRecoGrammar *This);
16970 
16971     ULONG (STDMETHODCALLTYPE *Release)(
16972         ISpeechRecoGrammar *This);
16973 
16974     /*** IDispatch methods ***/
16975     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
16976         ISpeechRecoGrammar *This,
16977         UINT *pctinfo);
16978 
16979     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
16980         ISpeechRecoGrammar *This,
16981         UINT iTInfo,
16982         LCID lcid,
16983         ITypeInfo **ppTInfo);
16984 
16985     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
16986         ISpeechRecoGrammar *This,
16987         REFIID riid,
16988         LPOLESTR *rgszNames,
16989         UINT cNames,
16990         LCID lcid,
16991         DISPID *rgDispId);
16992 
16993     HRESULT (STDMETHODCALLTYPE *Invoke)(
16994         ISpeechRecoGrammar *This,
16995         DISPID dispIdMember,
16996         REFIID riid,
16997         LCID lcid,
16998         WORD wFlags,
16999         DISPPARAMS *pDispParams,
17000         VARIANT *pVarResult,
17001         EXCEPINFO *pExcepInfo,
17002         UINT *puArgErr);
17003 
17004     /*** ISpeechRecoGrammar methods ***/
17005     HRESULT (STDMETHODCALLTYPE *get_Id)(
17006         ISpeechRecoGrammar *This,
17007         VARIANT *Id);
17008 
17009     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
17010         ISpeechRecoGrammar *This,
17011         ISpeechRecoContext **RecoContext);
17012 
17013     HRESULT (STDMETHODCALLTYPE *put_State)(
17014         ISpeechRecoGrammar *This,
17015         SpeechGrammarState State);
17016 
17017     HRESULT (STDMETHODCALLTYPE *get_State)(
17018         ISpeechRecoGrammar *This,
17019         SpeechGrammarState *State);
17020 
17021     HRESULT (STDMETHODCALLTYPE *get_Rules)(
17022         ISpeechRecoGrammar *This,
17023         ISpeechGrammarRules **Rules);
17024 
17025     HRESULT (STDMETHODCALLTYPE *Reset)(
17026         ISpeechRecoGrammar *This,
17027         SpeechLanguageId NewLanguage);
17028 
17029     HRESULT (STDMETHODCALLTYPE *CmdLoadFromFile)(
17030         ISpeechRecoGrammar *This,
17031         const BSTR FileName,
17032         SpeechLoadOption LoadOption);
17033 
17034     HRESULT (STDMETHODCALLTYPE *CmdLoadFromObject)(
17035         ISpeechRecoGrammar *This,
17036         const BSTR ClassId,
17037         const BSTR GrammarName,
17038         SpeechLoadOption LoadOption);
17039 
17040     HRESULT (STDMETHODCALLTYPE *CmdLoadFromResource)(
17041         ISpeechRecoGrammar *This,
17042         LONG hModule,
17043         VARIANT ResourceName,
17044         VARIANT ResourceType,
17045         SpeechLanguageId LanguageId,
17046         SpeechLoadOption LoadOption);
17047 
17048     HRESULT (STDMETHODCALLTYPE *CmdLoadFromMemory)(
17049         ISpeechRecoGrammar *This,
17050         VARIANT GrammarData,
17051         SpeechLoadOption LoadOption);
17052 
17053     HRESULT (STDMETHODCALLTYPE *CmdLoadFromProprietaryGrammar)(
17054         ISpeechRecoGrammar *This,
17055         const BSTR ProprietaryGuid,
17056         const BSTR ProprietaryString,
17057         VARIANT ProprietaryData,
17058         SpeechLoadOption LoadOption);
17059 
17060     HRESULT (STDMETHODCALLTYPE *CmdSetRuleState)(
17061         ISpeechRecoGrammar *This,
17062         const BSTR Name,
17063         SpeechRuleState State);
17064 
17065     HRESULT (STDMETHODCALLTYPE *CmdSetRuleIdState)(
17066         ISpeechRecoGrammar *This,
17067         LONG RuleId,
17068         SpeechRuleState State);
17069 
17070     HRESULT (STDMETHODCALLTYPE *DictationLoad)(
17071         ISpeechRecoGrammar *This,
17072         const BSTR TopicName,
17073         SpeechLoadOption LoadOption);
17074 
17075     HRESULT (STDMETHODCALLTYPE *DictationUnload)(
17076         ISpeechRecoGrammar *This);
17077 
17078     HRESULT (STDMETHODCALLTYPE *DictationSetState)(
17079         ISpeechRecoGrammar *This,
17080         SpeechRuleState State);
17081 
17082     HRESULT (STDMETHODCALLTYPE *SetWordSequenceData)(
17083         ISpeechRecoGrammar *This,
17084         const BSTR Text,
17085         LONG TextLength,
17086         ISpeechTextSelectionInformation *Info);
17087 
17088     HRESULT (STDMETHODCALLTYPE *SetTextSelection)(
17089         ISpeechRecoGrammar *This,
17090         ISpeechTextSelectionInformation *Info);
17091 
17092     HRESULT (STDMETHODCALLTYPE *IsPronounceable)(
17093         ISpeechRecoGrammar *This,
17094         const BSTR Word,
17095         SpeechWordPronounceable *WordPronounceable);
17096 
17097     END_INTERFACE
17098 } ISpeechRecoGrammarVtbl;
17099 
17100 interface ISpeechRecoGrammar {
17101     CONST_VTBL ISpeechRecoGrammarVtbl* lpVtbl;
17102 };
17103 
17104 #ifdef COBJMACROS
17105 #ifndef WIDL_C_INLINE_WRAPPERS
17106 /*** IUnknown methods ***/
17107 #define ISpeechRecoGrammar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17108 #define ISpeechRecoGrammar_AddRef(This) (This)->lpVtbl->AddRef(This)
17109 #define ISpeechRecoGrammar_Release(This) (This)->lpVtbl->Release(This)
17110 /*** IDispatch methods ***/
17111 #define ISpeechRecoGrammar_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17112 #define ISpeechRecoGrammar_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17113 #define ISpeechRecoGrammar_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17114 #define ISpeechRecoGrammar_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17115 /*** ISpeechRecoGrammar methods ***/
17116 #define ISpeechRecoGrammar_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17117 #define ISpeechRecoGrammar_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
17118 #define ISpeechRecoGrammar_put_State(This,State) (This)->lpVtbl->put_State(This,State)
17119 #define ISpeechRecoGrammar_get_State(This,State) (This)->lpVtbl->get_State(This,State)
17120 #define ISpeechRecoGrammar_get_Rules(This,Rules) (This)->lpVtbl->get_Rules(This,Rules)
17121 #define ISpeechRecoGrammar_Reset(This,NewLanguage) (This)->lpVtbl->Reset(This,NewLanguage)
17122 #define ISpeechRecoGrammar_CmdLoadFromFile(This,FileName,LoadOption) (This)->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption)
17123 #define ISpeechRecoGrammar_CmdLoadFromObject(This,ClassId,GrammarName,LoadOption) (This)->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption)
17124 #define ISpeechRecoGrammar_CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption) (This)->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption)
17125 #define ISpeechRecoGrammar_CmdLoadFromMemory(This,GrammarData,LoadOption) (This)->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption)
17126 #define ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption) (This)->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption)
17127 #define ISpeechRecoGrammar_CmdSetRuleState(This,Name,State) (This)->lpVtbl->CmdSetRuleState(This,Name,State)
17128 #define ISpeechRecoGrammar_CmdSetRuleIdState(This,RuleId,State) (This)->lpVtbl->CmdSetRuleIdState(This,RuleId,State)
17129 #define ISpeechRecoGrammar_DictationLoad(This,TopicName,LoadOption) (This)->lpVtbl->DictationLoad(This,TopicName,LoadOption)
17130 #define ISpeechRecoGrammar_DictationUnload(This) (This)->lpVtbl->DictationUnload(This)
17131 #define ISpeechRecoGrammar_DictationSetState(This,State) (This)->lpVtbl->DictationSetState(This,State)
17132 #define ISpeechRecoGrammar_SetWordSequenceData(This,Text,TextLength,Info) (This)->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info)
17133 #define ISpeechRecoGrammar_SetTextSelection(This,Info) (This)->lpVtbl->SetTextSelection(This,Info)
17134 #define ISpeechRecoGrammar_IsPronounceable(This,Word,WordPronounceable) (This)->lpVtbl->IsPronounceable(This,Word,WordPronounceable)
17135 #else
17136 /*** IUnknown methods ***/
17137 static FORCEINLINE HRESULT ISpeechRecoGrammar_QueryInterface(ISpeechRecoGrammar* This,REFIID riid,void **ppvObject) {
17138     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17139 }
17140 static FORCEINLINE ULONG ISpeechRecoGrammar_AddRef(ISpeechRecoGrammar* This) {
17141     return This->lpVtbl->AddRef(This);
17142 }
17143 static FORCEINLINE ULONG ISpeechRecoGrammar_Release(ISpeechRecoGrammar* This) {
17144     return This->lpVtbl->Release(This);
17145 }
17146 /*** IDispatch methods ***/
17147 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfoCount(ISpeechRecoGrammar* This,UINT *pctinfo) {
17148     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17149 }
17150 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetTypeInfo(ISpeechRecoGrammar* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17151     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17152 }
17153 static FORCEINLINE HRESULT ISpeechRecoGrammar_GetIDsOfNames(ISpeechRecoGrammar* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17154     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17155 }
17156 static FORCEINLINE HRESULT ISpeechRecoGrammar_Invoke(ISpeechRecoGrammar* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17157     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17158 }
17159 /*** ISpeechRecoGrammar methods ***/
17160 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Id(ISpeechRecoGrammar* This,VARIANT *Id) {
17161     return This->lpVtbl->get_Id(This,Id);
17162 }
17163 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_RecoContext(ISpeechRecoGrammar* This,ISpeechRecoContext **RecoContext) {
17164     return This->lpVtbl->get_RecoContext(This,RecoContext);
17165 }
17166 static FORCEINLINE HRESULT ISpeechRecoGrammar_put_State(ISpeechRecoGrammar* This,SpeechGrammarState State) {
17167     return This->lpVtbl->put_State(This,State);
17168 }
17169 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_State(ISpeechRecoGrammar* This,SpeechGrammarState *State) {
17170     return This->lpVtbl->get_State(This,State);
17171 }
17172 static FORCEINLINE HRESULT ISpeechRecoGrammar_get_Rules(ISpeechRecoGrammar* This,ISpeechGrammarRules **Rules) {
17173     return This->lpVtbl->get_Rules(This,Rules);
17174 }
17175 static FORCEINLINE HRESULT ISpeechRecoGrammar_Reset(ISpeechRecoGrammar* This,SpeechLanguageId NewLanguage) {
17176     return This->lpVtbl->Reset(This,NewLanguage);
17177 }
17178 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromFile(ISpeechRecoGrammar* This,const BSTR FileName,SpeechLoadOption LoadOption) {
17179     return This->lpVtbl->CmdLoadFromFile(This,FileName,LoadOption);
17180 }
17181 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromObject(ISpeechRecoGrammar* This,const BSTR ClassId,const BSTR GrammarName,SpeechLoadOption LoadOption) {
17182     return This->lpVtbl->CmdLoadFromObject(This,ClassId,GrammarName,LoadOption);
17183 }
17184 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromResource(ISpeechRecoGrammar* This,LONG hModule,VARIANT ResourceName,VARIANT ResourceType,SpeechLanguageId LanguageId,SpeechLoadOption LoadOption) {
17185     return This->lpVtbl->CmdLoadFromResource(This,hModule,ResourceName,ResourceType,LanguageId,LoadOption);
17186 }
17187 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromMemory(ISpeechRecoGrammar* This,VARIANT GrammarData,SpeechLoadOption LoadOption) {
17188     return This->lpVtbl->CmdLoadFromMemory(This,GrammarData,LoadOption);
17189 }
17190 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdLoadFromProprietaryGrammar(ISpeechRecoGrammar* This,const BSTR ProprietaryGuid,const BSTR ProprietaryString,VARIANT ProprietaryData,SpeechLoadOption LoadOption) {
17191     return This->lpVtbl->CmdLoadFromProprietaryGrammar(This,ProprietaryGuid,ProprietaryString,ProprietaryData,LoadOption);
17192 }
17193 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleState(ISpeechRecoGrammar* This,const BSTR Name,SpeechRuleState State) {
17194     return This->lpVtbl->CmdSetRuleState(This,Name,State);
17195 }
17196 static FORCEINLINE HRESULT ISpeechRecoGrammar_CmdSetRuleIdState(ISpeechRecoGrammar* This,LONG RuleId,SpeechRuleState State) {
17197     return This->lpVtbl->CmdSetRuleIdState(This,RuleId,State);
17198 }
17199 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationLoad(ISpeechRecoGrammar* This,const BSTR TopicName,SpeechLoadOption LoadOption) {
17200     return This->lpVtbl->DictationLoad(This,TopicName,LoadOption);
17201 }
17202 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationUnload(ISpeechRecoGrammar* This) {
17203     return This->lpVtbl->DictationUnload(This);
17204 }
17205 static FORCEINLINE HRESULT ISpeechRecoGrammar_DictationSetState(ISpeechRecoGrammar* This,SpeechRuleState State) {
17206     return This->lpVtbl->DictationSetState(This,State);
17207 }
17208 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetWordSequenceData(ISpeechRecoGrammar* This,const BSTR Text,LONG TextLength,ISpeechTextSelectionInformation *Info) {
17209     return This->lpVtbl->SetWordSequenceData(This,Text,TextLength,Info);
17210 }
17211 static FORCEINLINE HRESULT ISpeechRecoGrammar_SetTextSelection(ISpeechRecoGrammar* This,ISpeechTextSelectionInformation *Info) {
17212     return This->lpVtbl->SetTextSelection(This,Info);
17213 }
17214 static FORCEINLINE HRESULT ISpeechRecoGrammar_IsPronounceable(ISpeechRecoGrammar* This,const BSTR Word,SpeechWordPronounceable *WordPronounceable) {
17215     return This->lpVtbl->IsPronounceable(This,Word,WordPronounceable);
17216 }
17217 #endif
17218 #endif
17219 
17220 #endif
17221 
17222 
17223 #endif  /* __ISpeechRecoGrammar_INTERFACE_DEFINED__ */
17224 
17225 /*****************************************************************************
17226  * _ISpeechRecoContextEvents dispinterface
17227  */
17228 #ifndef ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
17229 #define ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__
17230 
17231 DEFINE_GUID(DIID__ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d);
17232 #if defined(__cplusplus) && !defined(CINTERFACE)
17233 MIDL_INTERFACE("7b8fcb42-0e9d-4f00-a048-7b04d6179d3d")
17234 _ISpeechRecoContextEvents : public IDispatch
17235 {
17236 };
17237 #ifdef __CRT_UUID_DECL
17238 __CRT_UUID_DECL(_ISpeechRecoContextEvents, 0x7b8fcb42, 0x0e9d, 0x4f00, 0xa0,0x48, 0x7b,0x04,0xd6,0x17,0x9d,0x3d)
17239 #endif
17240 #else
17241 typedef struct _ISpeechRecoContextEventsVtbl {
17242     BEGIN_INTERFACE
17243 
17244     /*** IUnknown methods ***/
17245     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17246         _ISpeechRecoContextEvents *This,
17247         REFIID riid,
17248         void **ppvObject);
17249 
17250     ULONG (STDMETHODCALLTYPE *AddRef)(
17251         _ISpeechRecoContextEvents *This);
17252 
17253     ULONG (STDMETHODCALLTYPE *Release)(
17254         _ISpeechRecoContextEvents *This);
17255 
17256     /*** IDispatch methods ***/
17257     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17258         _ISpeechRecoContextEvents *This,
17259         UINT *pctinfo);
17260 
17261     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17262         _ISpeechRecoContextEvents *This,
17263         UINT iTInfo,
17264         LCID lcid,
17265         ITypeInfo **ppTInfo);
17266 
17267     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17268         _ISpeechRecoContextEvents *This,
17269         REFIID riid,
17270         LPOLESTR *rgszNames,
17271         UINT cNames,
17272         LCID lcid,
17273         DISPID *rgDispId);
17274 
17275     HRESULT (STDMETHODCALLTYPE *Invoke)(
17276         _ISpeechRecoContextEvents *This,
17277         DISPID dispIdMember,
17278         REFIID riid,
17279         LCID lcid,
17280         WORD wFlags,
17281         DISPPARAMS *pDispParams,
17282         VARIANT *pVarResult,
17283         EXCEPINFO *pExcepInfo,
17284         UINT *puArgErr);
17285 
17286     END_INTERFACE
17287 } _ISpeechRecoContextEventsVtbl;
17288 
17289 interface _ISpeechRecoContextEvents {
17290     CONST_VTBL _ISpeechRecoContextEventsVtbl* lpVtbl;
17291 };
17292 
17293 #ifdef COBJMACROS
17294 #ifndef WIDL_C_INLINE_WRAPPERS
17295 /*** IUnknown methods ***/
17296 #define _ISpeechRecoContextEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17297 #define _ISpeechRecoContextEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
17298 #define _ISpeechRecoContextEvents_Release(This) (This)->lpVtbl->Release(This)
17299 /*** IDispatch methods ***/
17300 #define _ISpeechRecoContextEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17301 #define _ISpeechRecoContextEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17302 #define _ISpeechRecoContextEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17303 #define _ISpeechRecoContextEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17304 #else
17305 /*** IUnknown methods ***/
17306 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_QueryInterface(_ISpeechRecoContextEvents* This,REFIID riid,void **ppvObject) {
17307     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17308 }
17309 static FORCEINLINE ULONG _ISpeechRecoContextEvents_AddRef(_ISpeechRecoContextEvents* This) {
17310     return This->lpVtbl->AddRef(This);
17311 }
17312 static FORCEINLINE ULONG _ISpeechRecoContextEvents_Release(_ISpeechRecoContextEvents* This) {
17313     return This->lpVtbl->Release(This);
17314 }
17315 /*** IDispatch methods ***/
17316 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfoCount(_ISpeechRecoContextEvents* This,UINT *pctinfo) {
17317     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17318 }
17319 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetTypeInfo(_ISpeechRecoContextEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17320     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17321 }
17322 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_GetIDsOfNames(_ISpeechRecoContextEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17323     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17324 }
17325 static FORCEINLINE HRESULT _ISpeechRecoContextEvents_Invoke(_ISpeechRecoContextEvents* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17326     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17327 }
17328 #endif
17329 #endif
17330 
17331 #endif
17332 
17333 #endif  /* ___ISpeechRecoContextEvents_DISPINTERFACE_DEFINED__ */
17334 
17335 /*****************************************************************************
17336  * ISpeechGrammarRule interface
17337  */
17338 #ifndef __ISpeechGrammarRule_INTERFACE_DEFINED__
17339 #define __ISpeechGrammarRule_INTERFACE_DEFINED__
17340 
17341 DEFINE_GUID(IID_ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc);
17342 #if defined(__cplusplus) && !defined(CINTERFACE)
17343 MIDL_INTERFACE("afe719cf-5dd1-44f2-999c-7a399f1cfccc")
17344 ISpeechGrammarRule : public IDispatch
17345 {
17346     virtual HRESULT STDMETHODCALLTYPE get_Attributes(
17347         SpeechRuleAttributes *Attributes) = 0;
17348 
17349     virtual HRESULT STDMETHODCALLTYPE get_InitialState(
17350         ISpeechGrammarRuleState **State) = 0;
17351 
17352     virtual HRESULT STDMETHODCALLTYPE get_Name(
17353         BSTR *Name) = 0;
17354 
17355     virtual HRESULT STDMETHODCALLTYPE get_Id(
17356         LONG *Id) = 0;
17357 
17358     virtual HRESULT STDMETHODCALLTYPE Clear(
17359         ) = 0;
17360 
17361     virtual HRESULT STDMETHODCALLTYPE AddResource(
17362         const BSTR ResourceName,
17363         const BSTR ResourceValue) = 0;
17364 
17365     virtual HRESULT STDMETHODCALLTYPE AddState(
17366         ISpeechGrammarRuleState **State) = 0;
17367 
17368 };
17369 #ifdef __CRT_UUID_DECL
17370 __CRT_UUID_DECL(ISpeechGrammarRule, 0xafe719cf, 0x5dd1, 0x44f2, 0x99,0x9c, 0x7a,0x39,0x9f,0x1c,0xfc,0xcc)
17371 #endif
17372 #else
17373 typedef struct ISpeechGrammarRuleVtbl {
17374     BEGIN_INTERFACE
17375 
17376     /*** IUnknown methods ***/
17377     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17378         ISpeechGrammarRule *This,
17379         REFIID riid,
17380         void **ppvObject);
17381 
17382     ULONG (STDMETHODCALLTYPE *AddRef)(
17383         ISpeechGrammarRule *This);
17384 
17385     ULONG (STDMETHODCALLTYPE *Release)(
17386         ISpeechGrammarRule *This);
17387 
17388     /*** IDispatch methods ***/
17389     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17390         ISpeechGrammarRule *This,
17391         UINT *pctinfo);
17392 
17393     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17394         ISpeechGrammarRule *This,
17395         UINT iTInfo,
17396         LCID lcid,
17397         ITypeInfo **ppTInfo);
17398 
17399     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17400         ISpeechGrammarRule *This,
17401         REFIID riid,
17402         LPOLESTR *rgszNames,
17403         UINT cNames,
17404         LCID lcid,
17405         DISPID *rgDispId);
17406 
17407     HRESULT (STDMETHODCALLTYPE *Invoke)(
17408         ISpeechGrammarRule *This,
17409         DISPID dispIdMember,
17410         REFIID riid,
17411         LCID lcid,
17412         WORD wFlags,
17413         DISPPARAMS *pDispParams,
17414         VARIANT *pVarResult,
17415         EXCEPINFO *pExcepInfo,
17416         UINT *puArgErr);
17417 
17418     /*** ISpeechGrammarRule methods ***/
17419     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
17420         ISpeechGrammarRule *This,
17421         SpeechRuleAttributes *Attributes);
17422 
17423     HRESULT (STDMETHODCALLTYPE *get_InitialState)(
17424         ISpeechGrammarRule *This,
17425         ISpeechGrammarRuleState **State);
17426 
17427     HRESULT (STDMETHODCALLTYPE *get_Name)(
17428         ISpeechGrammarRule *This,
17429         BSTR *Name);
17430 
17431     HRESULT (STDMETHODCALLTYPE *get_Id)(
17432         ISpeechGrammarRule *This,
17433         LONG *Id);
17434 
17435     HRESULT (STDMETHODCALLTYPE *Clear)(
17436         ISpeechGrammarRule *This);
17437 
17438     HRESULT (STDMETHODCALLTYPE *AddResource)(
17439         ISpeechGrammarRule *This,
17440         const BSTR ResourceName,
17441         const BSTR ResourceValue);
17442 
17443     HRESULT (STDMETHODCALLTYPE *AddState)(
17444         ISpeechGrammarRule *This,
17445         ISpeechGrammarRuleState **State);
17446 
17447     END_INTERFACE
17448 } ISpeechGrammarRuleVtbl;
17449 
17450 interface ISpeechGrammarRule {
17451     CONST_VTBL ISpeechGrammarRuleVtbl* lpVtbl;
17452 };
17453 
17454 #ifdef COBJMACROS
17455 #ifndef WIDL_C_INLINE_WRAPPERS
17456 /*** IUnknown methods ***/
17457 #define ISpeechGrammarRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17458 #define ISpeechGrammarRule_AddRef(This) (This)->lpVtbl->AddRef(This)
17459 #define ISpeechGrammarRule_Release(This) (This)->lpVtbl->Release(This)
17460 /*** IDispatch methods ***/
17461 #define ISpeechGrammarRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17462 #define ISpeechGrammarRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17463 #define ISpeechGrammarRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17464 #define ISpeechGrammarRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17465 /*** ISpeechGrammarRule methods ***/
17466 #define ISpeechGrammarRule_get_Attributes(This,Attributes) (This)->lpVtbl->get_Attributes(This,Attributes)
17467 #define ISpeechGrammarRule_get_InitialState(This,State) (This)->lpVtbl->get_InitialState(This,State)
17468 #define ISpeechGrammarRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
17469 #define ISpeechGrammarRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
17470 #define ISpeechGrammarRule_Clear(This) (This)->lpVtbl->Clear(This)
17471 #define ISpeechGrammarRule_AddResource(This,ResourceName,ResourceValue) (This)->lpVtbl->AddResource(This,ResourceName,ResourceValue)
17472 #define ISpeechGrammarRule_AddState(This,State) (This)->lpVtbl->AddState(This,State)
17473 #else
17474 /*** IUnknown methods ***/
17475 static FORCEINLINE HRESULT ISpeechGrammarRule_QueryInterface(ISpeechGrammarRule* This,REFIID riid,void **ppvObject) {
17476     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17477 }
17478 static FORCEINLINE ULONG ISpeechGrammarRule_AddRef(ISpeechGrammarRule* This) {
17479     return This->lpVtbl->AddRef(This);
17480 }
17481 static FORCEINLINE ULONG ISpeechGrammarRule_Release(ISpeechGrammarRule* This) {
17482     return This->lpVtbl->Release(This);
17483 }
17484 /*** IDispatch methods ***/
17485 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfoCount(ISpeechGrammarRule* This,UINT *pctinfo) {
17486     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17487 }
17488 static FORCEINLINE HRESULT ISpeechGrammarRule_GetTypeInfo(ISpeechGrammarRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17489     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17490 }
17491 static FORCEINLINE HRESULT ISpeechGrammarRule_GetIDsOfNames(ISpeechGrammarRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17492     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17493 }
17494 static FORCEINLINE HRESULT ISpeechGrammarRule_Invoke(ISpeechGrammarRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17495     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17496 }
17497 /*** ISpeechGrammarRule methods ***/
17498 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Attributes(ISpeechGrammarRule* This,SpeechRuleAttributes *Attributes) {
17499     return This->lpVtbl->get_Attributes(This,Attributes);
17500 }
17501 static FORCEINLINE HRESULT ISpeechGrammarRule_get_InitialState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17502     return This->lpVtbl->get_InitialState(This,State);
17503 }
17504 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Name(ISpeechGrammarRule* This,BSTR *Name) {
17505     return This->lpVtbl->get_Name(This,Name);
17506 }
17507 static FORCEINLINE HRESULT ISpeechGrammarRule_get_Id(ISpeechGrammarRule* This,LONG *Id) {
17508     return This->lpVtbl->get_Id(This,Id);
17509 }
17510 static FORCEINLINE HRESULT ISpeechGrammarRule_Clear(ISpeechGrammarRule* This) {
17511     return This->lpVtbl->Clear(This);
17512 }
17513 static FORCEINLINE HRESULT ISpeechGrammarRule_AddResource(ISpeechGrammarRule* This,const BSTR ResourceName,const BSTR ResourceValue) {
17514     return This->lpVtbl->AddResource(This,ResourceName,ResourceValue);
17515 }
17516 static FORCEINLINE HRESULT ISpeechGrammarRule_AddState(ISpeechGrammarRule* This,ISpeechGrammarRuleState **State) {
17517     return This->lpVtbl->AddState(This,State);
17518 }
17519 #endif
17520 #endif
17521 
17522 #endif
17523 
17524 
17525 #endif  /* __ISpeechGrammarRule_INTERFACE_DEFINED__ */
17526 
17527 /*****************************************************************************
17528  * ISpeechGrammarRules interface
17529  */
17530 #ifndef __ISpeechGrammarRules_INTERFACE_DEFINED__
17531 #define __ISpeechGrammarRules_INTERFACE_DEFINED__
17532 
17533 DEFINE_GUID(IID_ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1);
17534 #if defined(__cplusplus) && !defined(CINTERFACE)
17535 MIDL_INTERFACE("6ffa3b44-fc2d-40d1-8afc-32911c7f1ad1")
17536 ISpeechGrammarRules : public IDispatch
17537 {
17538     virtual HRESULT STDMETHODCALLTYPE get_Count(
17539         LONG *Count) = 0;
17540 
17541     virtual HRESULT STDMETHODCALLTYPE FindRule(
17542         VARIANT RuleNameOrId,
17543         ISpeechGrammarRule **Rule) = 0;
17544 
17545     virtual HRESULT STDMETHODCALLTYPE Item(
17546         LONG Index,
17547         ISpeechGrammarRule **Rule) = 0;
17548 
17549     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17550         IUnknown **EnumVARIANT) = 0;
17551 
17552     virtual HRESULT STDMETHODCALLTYPE get_Dynamic(
17553         VARIANT_BOOL *Dynamic) = 0;
17554 
17555     virtual HRESULT STDMETHODCALLTYPE Add(
17556         BSTR RuleName,
17557         SpeechRuleAttributes Attributes,
17558         LONG RuleId,
17559         ISpeechGrammarRule **Rule) = 0;
17560 
17561     virtual HRESULT STDMETHODCALLTYPE Commit(
17562         ) = 0;
17563 
17564     virtual HRESULT STDMETHODCALLTYPE CommitAndSave(
17565         BSTR *ErrorText,
17566         VARIANT *SaveStream) = 0;
17567 
17568 };
17569 #ifdef __CRT_UUID_DECL
17570 __CRT_UUID_DECL(ISpeechGrammarRules, 0x6ffa3b44, 0xfc2d, 0x40d1, 0x8a,0xfc, 0x32,0x91,0x1c,0x7f,0x1a,0xd1)
17571 #endif
17572 #else
17573 typedef struct ISpeechGrammarRulesVtbl {
17574     BEGIN_INTERFACE
17575 
17576     /*** IUnknown methods ***/
17577     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17578         ISpeechGrammarRules *This,
17579         REFIID riid,
17580         void **ppvObject);
17581 
17582     ULONG (STDMETHODCALLTYPE *AddRef)(
17583         ISpeechGrammarRules *This);
17584 
17585     ULONG (STDMETHODCALLTYPE *Release)(
17586         ISpeechGrammarRules *This);
17587 
17588     /*** IDispatch methods ***/
17589     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17590         ISpeechGrammarRules *This,
17591         UINT *pctinfo);
17592 
17593     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17594         ISpeechGrammarRules *This,
17595         UINT iTInfo,
17596         LCID lcid,
17597         ITypeInfo **ppTInfo);
17598 
17599     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17600         ISpeechGrammarRules *This,
17601         REFIID riid,
17602         LPOLESTR *rgszNames,
17603         UINT cNames,
17604         LCID lcid,
17605         DISPID *rgDispId);
17606 
17607     HRESULT (STDMETHODCALLTYPE *Invoke)(
17608         ISpeechGrammarRules *This,
17609         DISPID dispIdMember,
17610         REFIID riid,
17611         LCID lcid,
17612         WORD wFlags,
17613         DISPPARAMS *pDispParams,
17614         VARIANT *pVarResult,
17615         EXCEPINFO *pExcepInfo,
17616         UINT *puArgErr);
17617 
17618     /*** ISpeechGrammarRules methods ***/
17619     HRESULT (STDMETHODCALLTYPE *get_Count)(
17620         ISpeechGrammarRules *This,
17621         LONG *Count);
17622 
17623     HRESULT (STDMETHODCALLTYPE *FindRule)(
17624         ISpeechGrammarRules *This,
17625         VARIANT RuleNameOrId,
17626         ISpeechGrammarRule **Rule);
17627 
17628     HRESULT (STDMETHODCALLTYPE *Item)(
17629         ISpeechGrammarRules *This,
17630         LONG Index,
17631         ISpeechGrammarRule **Rule);
17632 
17633     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
17634         ISpeechGrammarRules *This,
17635         IUnknown **EnumVARIANT);
17636 
17637     HRESULT (STDMETHODCALLTYPE *get_Dynamic)(
17638         ISpeechGrammarRules *This,
17639         VARIANT_BOOL *Dynamic);
17640 
17641     HRESULT (STDMETHODCALLTYPE *Add)(
17642         ISpeechGrammarRules *This,
17643         BSTR RuleName,
17644         SpeechRuleAttributes Attributes,
17645         LONG RuleId,
17646         ISpeechGrammarRule **Rule);
17647 
17648     HRESULT (STDMETHODCALLTYPE *Commit)(
17649         ISpeechGrammarRules *This);
17650 
17651     HRESULT (STDMETHODCALLTYPE *CommitAndSave)(
17652         ISpeechGrammarRules *This,
17653         BSTR *ErrorText,
17654         VARIANT *SaveStream);
17655 
17656     END_INTERFACE
17657 } ISpeechGrammarRulesVtbl;
17658 
17659 interface ISpeechGrammarRules {
17660     CONST_VTBL ISpeechGrammarRulesVtbl* lpVtbl;
17661 };
17662 
17663 #ifdef COBJMACROS
17664 #ifndef WIDL_C_INLINE_WRAPPERS
17665 /*** IUnknown methods ***/
17666 #define ISpeechGrammarRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17667 #define ISpeechGrammarRules_AddRef(This) (This)->lpVtbl->AddRef(This)
17668 #define ISpeechGrammarRules_Release(This) (This)->lpVtbl->Release(This)
17669 /*** IDispatch methods ***/
17670 #define ISpeechGrammarRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17671 #define ISpeechGrammarRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17672 #define ISpeechGrammarRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17673 #define ISpeechGrammarRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17674 /*** ISpeechGrammarRules methods ***/
17675 #define ISpeechGrammarRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
17676 #define ISpeechGrammarRules_FindRule(This,RuleNameOrId,Rule) (This)->lpVtbl->FindRule(This,RuleNameOrId,Rule)
17677 #define ISpeechGrammarRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
17678 #define ISpeechGrammarRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
17679 #define ISpeechGrammarRules_get_Dynamic(This,Dynamic) (This)->lpVtbl->get_Dynamic(This,Dynamic)
17680 #define ISpeechGrammarRules_Add(This,RuleName,Attributes,RuleId,Rule) (This)->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule)
17681 #define ISpeechGrammarRules_Commit(This) (This)->lpVtbl->Commit(This)
17682 #define ISpeechGrammarRules_CommitAndSave(This,ErrorText,SaveStream) (This)->lpVtbl->CommitAndSave(This,ErrorText,SaveStream)
17683 #else
17684 /*** IUnknown methods ***/
17685 static FORCEINLINE HRESULT ISpeechGrammarRules_QueryInterface(ISpeechGrammarRules* This,REFIID riid,void **ppvObject) {
17686     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17687 }
17688 static FORCEINLINE ULONG ISpeechGrammarRules_AddRef(ISpeechGrammarRules* This) {
17689     return This->lpVtbl->AddRef(This);
17690 }
17691 static FORCEINLINE ULONG ISpeechGrammarRules_Release(ISpeechGrammarRules* This) {
17692     return This->lpVtbl->Release(This);
17693 }
17694 /*** IDispatch methods ***/
17695 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfoCount(ISpeechGrammarRules* This,UINT *pctinfo) {
17696     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17697 }
17698 static FORCEINLINE HRESULT ISpeechGrammarRules_GetTypeInfo(ISpeechGrammarRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17699     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17700 }
17701 static FORCEINLINE HRESULT ISpeechGrammarRules_GetIDsOfNames(ISpeechGrammarRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17702     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17703 }
17704 static FORCEINLINE HRESULT ISpeechGrammarRules_Invoke(ISpeechGrammarRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17705     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17706 }
17707 /*** ISpeechGrammarRules methods ***/
17708 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Count(ISpeechGrammarRules* This,LONG *Count) {
17709     return This->lpVtbl->get_Count(This,Count);
17710 }
17711 static FORCEINLINE HRESULT ISpeechGrammarRules_FindRule(ISpeechGrammarRules* This,VARIANT RuleNameOrId,ISpeechGrammarRule **Rule) {
17712     return This->lpVtbl->FindRule(This,RuleNameOrId,Rule);
17713 }
17714 static FORCEINLINE HRESULT ISpeechGrammarRules_Item(ISpeechGrammarRules* This,LONG Index,ISpeechGrammarRule **Rule) {
17715     return This->lpVtbl->Item(This,Index,Rule);
17716 }
17717 static FORCEINLINE HRESULT ISpeechGrammarRules_get__NewEnum(ISpeechGrammarRules* This,IUnknown **EnumVARIANT) {
17718     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
17719 }
17720 static FORCEINLINE HRESULT ISpeechGrammarRules_get_Dynamic(ISpeechGrammarRules* This,VARIANT_BOOL *Dynamic) {
17721     return This->lpVtbl->get_Dynamic(This,Dynamic);
17722 }
17723 static FORCEINLINE HRESULT ISpeechGrammarRules_Add(ISpeechGrammarRules* This,BSTR RuleName,SpeechRuleAttributes Attributes,LONG RuleId,ISpeechGrammarRule **Rule) {
17724     return This->lpVtbl->Add(This,RuleName,Attributes,RuleId,Rule);
17725 }
17726 static FORCEINLINE HRESULT ISpeechGrammarRules_Commit(ISpeechGrammarRules* This) {
17727     return This->lpVtbl->Commit(This);
17728 }
17729 static FORCEINLINE HRESULT ISpeechGrammarRules_CommitAndSave(ISpeechGrammarRules* This,BSTR *ErrorText,VARIANT *SaveStream) {
17730     return This->lpVtbl->CommitAndSave(This,ErrorText,SaveStream);
17731 }
17732 #endif
17733 #endif
17734 
17735 #endif
17736 
17737 
17738 #endif  /* __ISpeechGrammarRules_INTERFACE_DEFINED__ */
17739 
17740 /*****************************************************************************
17741  * ISpeechGrammarRuleState interface
17742  */
17743 #ifndef __ISpeechGrammarRuleState_INTERFACE_DEFINED__
17744 #define __ISpeechGrammarRuleState_INTERFACE_DEFINED__
17745 
17746 DEFINE_GUID(IID_ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda);
17747 #if defined(__cplusplus) && !defined(CINTERFACE)
17748 MIDL_INTERFACE("d4286f2c-ee67-45ae-b928-28d695362eda")
17749 ISpeechGrammarRuleState : public IDispatch
17750 {
17751     virtual HRESULT STDMETHODCALLTYPE get_Rule(
17752         ISpeechGrammarRule **Rule) = 0;
17753 
17754     virtual HRESULT STDMETHODCALLTYPE get_Transitions(
17755         ISpeechGrammarRuleStateTransitions **Transitions) = 0;
17756 
17757     virtual HRESULT STDMETHODCALLTYPE AddWordTransition(
17758         ISpeechGrammarRuleState *DestState,
17759         const BSTR Words,
17760         const BSTR Separators = L" ",
17761         SpeechGrammarWordType Type = SGLexical,
17762         const BSTR PropertyName = L"",
17763         LONG PropertyId = 0,
17764         VARIANT *PropertyValue = 0,
17765         float Weight = 1) = 0;
17766 
17767     virtual HRESULT STDMETHODCALLTYPE AddRuleTransition(
17768         ISpeechGrammarRuleState *DestinationState,
17769         ISpeechGrammarRule *Rule,
17770         const BSTR PropertyName = L"",
17771         LONG PropertyId = 0,
17772         VARIANT *PropertyValue = 0,
17773         float Weight = 1) = 0;
17774 
17775     virtual HRESULT STDMETHODCALLTYPE AddSpecialTransition(
17776         ISpeechGrammarRuleState *DestinationState,
17777         SpeechSpecialTransitionType Type,
17778         const BSTR PropertyName = L"",
17779         LONG PropertyId = 0,
17780         VARIANT *PropertyValue = 0,
17781         float Weight = 1) = 0;
17782 
17783 };
17784 #ifdef __CRT_UUID_DECL
17785 __CRT_UUID_DECL(ISpeechGrammarRuleState, 0xd4286f2c, 0xee67, 0x45ae, 0xb9,0x28, 0x28,0xd6,0x95,0x36,0x2e,0xda)
17786 #endif
17787 #else
17788 typedef struct ISpeechGrammarRuleStateVtbl {
17789     BEGIN_INTERFACE
17790 
17791     /*** IUnknown methods ***/
17792     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17793         ISpeechGrammarRuleState *This,
17794         REFIID riid,
17795         void **ppvObject);
17796 
17797     ULONG (STDMETHODCALLTYPE *AddRef)(
17798         ISpeechGrammarRuleState *This);
17799 
17800     ULONG (STDMETHODCALLTYPE *Release)(
17801         ISpeechGrammarRuleState *This);
17802 
17803     /*** IDispatch methods ***/
17804     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17805         ISpeechGrammarRuleState *This,
17806         UINT *pctinfo);
17807 
17808     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17809         ISpeechGrammarRuleState *This,
17810         UINT iTInfo,
17811         LCID lcid,
17812         ITypeInfo **ppTInfo);
17813 
17814     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17815         ISpeechGrammarRuleState *This,
17816         REFIID riid,
17817         LPOLESTR *rgszNames,
17818         UINT cNames,
17819         LCID lcid,
17820         DISPID *rgDispId);
17821 
17822     HRESULT (STDMETHODCALLTYPE *Invoke)(
17823         ISpeechGrammarRuleState *This,
17824         DISPID dispIdMember,
17825         REFIID riid,
17826         LCID lcid,
17827         WORD wFlags,
17828         DISPPARAMS *pDispParams,
17829         VARIANT *pVarResult,
17830         EXCEPINFO *pExcepInfo,
17831         UINT *puArgErr);
17832 
17833     /*** ISpeechGrammarRuleState methods ***/
17834     HRESULT (STDMETHODCALLTYPE *get_Rule)(
17835         ISpeechGrammarRuleState *This,
17836         ISpeechGrammarRule **Rule);
17837 
17838     HRESULT (STDMETHODCALLTYPE *get_Transitions)(
17839         ISpeechGrammarRuleState *This,
17840         ISpeechGrammarRuleStateTransitions **Transitions);
17841 
17842     HRESULT (STDMETHODCALLTYPE *AddWordTransition)(
17843         ISpeechGrammarRuleState *This,
17844         ISpeechGrammarRuleState *DestState,
17845         const BSTR Words,
17846         const BSTR Separators,
17847         SpeechGrammarWordType Type,
17848         const BSTR PropertyName,
17849         LONG PropertyId,
17850         VARIANT *PropertyValue,
17851         float Weight);
17852 
17853     HRESULT (STDMETHODCALLTYPE *AddRuleTransition)(
17854         ISpeechGrammarRuleState *This,
17855         ISpeechGrammarRuleState *DestinationState,
17856         ISpeechGrammarRule *Rule,
17857         const BSTR PropertyName,
17858         LONG PropertyId,
17859         VARIANT *PropertyValue,
17860         float Weight);
17861 
17862     HRESULT (STDMETHODCALLTYPE *AddSpecialTransition)(
17863         ISpeechGrammarRuleState *This,
17864         ISpeechGrammarRuleState *DestinationState,
17865         SpeechSpecialTransitionType Type,
17866         const BSTR PropertyName,
17867         LONG PropertyId,
17868         VARIANT *PropertyValue,
17869         float Weight);
17870 
17871     END_INTERFACE
17872 } ISpeechGrammarRuleStateVtbl;
17873 
17874 interface ISpeechGrammarRuleState {
17875     CONST_VTBL ISpeechGrammarRuleStateVtbl* lpVtbl;
17876 };
17877 
17878 #ifdef COBJMACROS
17879 #ifndef WIDL_C_INLINE_WRAPPERS
17880 /*** IUnknown methods ***/
17881 #define ISpeechGrammarRuleState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17882 #define ISpeechGrammarRuleState_AddRef(This) (This)->lpVtbl->AddRef(This)
17883 #define ISpeechGrammarRuleState_Release(This) (This)->lpVtbl->Release(This)
17884 /*** IDispatch methods ***/
17885 #define ISpeechGrammarRuleState_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
17886 #define ISpeechGrammarRuleState_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
17887 #define ISpeechGrammarRuleState_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
17888 #define ISpeechGrammarRuleState_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
17889 /*** ISpeechGrammarRuleState methods ***/
17890 #define ISpeechGrammarRuleState_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
17891 #define ISpeechGrammarRuleState_get_Transitions(This,Transitions) (This)->lpVtbl->get_Transitions(This,Transitions)
17892 #define ISpeechGrammarRuleState_AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight)
17893 #define ISpeechGrammarRuleState_AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight)
17894 #define ISpeechGrammarRuleState_AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight) (This)->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight)
17895 #else
17896 /*** IUnknown methods ***/
17897 static FORCEINLINE HRESULT ISpeechGrammarRuleState_QueryInterface(ISpeechGrammarRuleState* This,REFIID riid,void **ppvObject) {
17898     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17899 }
17900 static FORCEINLINE ULONG ISpeechGrammarRuleState_AddRef(ISpeechGrammarRuleState* This) {
17901     return This->lpVtbl->AddRef(This);
17902 }
17903 static FORCEINLINE ULONG ISpeechGrammarRuleState_Release(ISpeechGrammarRuleState* This) {
17904     return This->lpVtbl->Release(This);
17905 }
17906 /*** IDispatch methods ***/
17907 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfoCount(ISpeechGrammarRuleState* This,UINT *pctinfo) {
17908     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
17909 }
17910 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetTypeInfo(ISpeechGrammarRuleState* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
17911     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
17912 }
17913 static FORCEINLINE HRESULT ISpeechGrammarRuleState_GetIDsOfNames(ISpeechGrammarRuleState* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
17914     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
17915 }
17916 static FORCEINLINE HRESULT ISpeechGrammarRuleState_Invoke(ISpeechGrammarRuleState* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
17917     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
17918 }
17919 /*** ISpeechGrammarRuleState methods ***/
17920 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Rule(ISpeechGrammarRuleState* This,ISpeechGrammarRule **Rule) {
17921     return This->lpVtbl->get_Rule(This,Rule);
17922 }
17923 static FORCEINLINE HRESULT ISpeechGrammarRuleState_get_Transitions(ISpeechGrammarRuleState* This,ISpeechGrammarRuleStateTransitions **Transitions) {
17924     return This->lpVtbl->get_Transitions(This,Transitions);
17925 }
17926 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddWordTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestState,const BSTR Words,const BSTR Separators,SpeechGrammarWordType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
17927     return This->lpVtbl->AddWordTransition(This,DestState,Words,Separators,Type,PropertyName,PropertyId,PropertyValue,Weight);
17928 }
17929 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddRuleTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,ISpeechGrammarRule *Rule,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
17930     return This->lpVtbl->AddRuleTransition(This,DestinationState,Rule,PropertyName,PropertyId,PropertyValue,Weight);
17931 }
17932 static FORCEINLINE HRESULT ISpeechGrammarRuleState_AddSpecialTransition(ISpeechGrammarRuleState* This,ISpeechGrammarRuleState *DestinationState,SpeechSpecialTransitionType Type,const BSTR PropertyName,LONG PropertyId,VARIANT *PropertyValue,float Weight) {
17933     return This->lpVtbl->AddSpecialTransition(This,DestinationState,Type,PropertyName,PropertyId,PropertyValue,Weight);
17934 }
17935 #endif
17936 #endif
17937 
17938 #endif
17939 
17940 
17941 #endif  /* __ISpeechGrammarRuleState_INTERFACE_DEFINED__ */
17942 
17943 /*****************************************************************************
17944  * ISpeechGrammarRuleStateTransitions interface
17945  */
17946 #ifndef __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
17947 #define __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__
17948 
17949 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63);
17950 #if defined(__cplusplus) && !defined(CINTERFACE)
17951 MIDL_INTERFACE("eabce657-75bc-44a2-aa7f-c56476742963")
17952 ISpeechGrammarRuleStateTransitions : public IDispatch
17953 {
17954     virtual HRESULT STDMETHODCALLTYPE get_Count(
17955         LONG *Count) = 0;
17956 
17957     virtual HRESULT STDMETHODCALLTYPE Item(
17958         LONG Index,
17959         ISpeechGrammarRuleStateTransition **Transition) = 0;
17960 
17961     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
17962         IUnknown **EnumVARIANT) = 0;
17963 
17964 };
17965 #ifdef __CRT_UUID_DECL
17966 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransitions, 0xeabce657, 0x75bc, 0x44a2, 0xaa,0x7f, 0xc5,0x64,0x76,0x74,0x29,0x63)
17967 #endif
17968 #else
17969 typedef struct ISpeechGrammarRuleStateTransitionsVtbl {
17970     BEGIN_INTERFACE
17971 
17972     /*** IUnknown methods ***/
17973     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17974         ISpeechGrammarRuleStateTransitions *This,
17975         REFIID riid,
17976         void **ppvObject);
17977 
17978     ULONG (STDMETHODCALLTYPE *AddRef)(
17979         ISpeechGrammarRuleStateTransitions *This);
17980 
17981     ULONG (STDMETHODCALLTYPE *Release)(
17982         ISpeechGrammarRuleStateTransitions *This);
17983 
17984     /*** IDispatch methods ***/
17985     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
17986         ISpeechGrammarRuleStateTransitions *This,
17987         UINT *pctinfo);
17988 
17989     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
17990         ISpeechGrammarRuleStateTransitions *This,
17991         UINT iTInfo,
17992         LCID lcid,
17993         ITypeInfo **ppTInfo);
17994 
17995     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
17996         ISpeechGrammarRuleStateTransitions *This,
17997         REFIID riid,
17998         LPOLESTR *rgszNames,
17999         UINT cNames,
18000         LCID lcid,
18001         DISPID *rgDispId);
18002 
18003     HRESULT (STDMETHODCALLTYPE *Invoke)(
18004         ISpeechGrammarRuleStateTransitions *This,
18005         DISPID dispIdMember,
18006         REFIID riid,
18007         LCID lcid,
18008         WORD wFlags,
18009         DISPPARAMS *pDispParams,
18010         VARIANT *pVarResult,
18011         EXCEPINFO *pExcepInfo,
18012         UINT *puArgErr);
18013 
18014     /*** ISpeechGrammarRuleStateTransitions methods ***/
18015     HRESULT (STDMETHODCALLTYPE *get_Count)(
18016         ISpeechGrammarRuleStateTransitions *This,
18017         LONG *Count);
18018 
18019     HRESULT (STDMETHODCALLTYPE *Item)(
18020         ISpeechGrammarRuleStateTransitions *This,
18021         LONG Index,
18022         ISpeechGrammarRuleStateTransition **Transition);
18023 
18024     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
18025         ISpeechGrammarRuleStateTransitions *This,
18026         IUnknown **EnumVARIANT);
18027 
18028     END_INTERFACE
18029 } ISpeechGrammarRuleStateTransitionsVtbl;
18030 
18031 interface ISpeechGrammarRuleStateTransitions {
18032     CONST_VTBL ISpeechGrammarRuleStateTransitionsVtbl* lpVtbl;
18033 };
18034 
18035 #ifdef COBJMACROS
18036 #ifndef WIDL_C_INLINE_WRAPPERS
18037 /*** IUnknown methods ***/
18038 #define ISpeechGrammarRuleStateTransitions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18039 #define ISpeechGrammarRuleStateTransitions_AddRef(This) (This)->lpVtbl->AddRef(This)
18040 #define ISpeechGrammarRuleStateTransitions_Release(This) (This)->lpVtbl->Release(This)
18041 /*** IDispatch methods ***/
18042 #define ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18043 #define ISpeechGrammarRuleStateTransitions_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18044 #define ISpeechGrammarRuleStateTransitions_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18045 #define ISpeechGrammarRuleStateTransitions_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18046 /*** ISpeechGrammarRuleStateTransitions methods ***/
18047 #define ISpeechGrammarRuleStateTransitions_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
18048 #define ISpeechGrammarRuleStateTransitions_Item(This,Index,Transition) (This)->lpVtbl->Item(This,Index,Transition)
18049 #define ISpeechGrammarRuleStateTransitions_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
18050 #else
18051 /*** IUnknown methods ***/
18052 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_QueryInterface(ISpeechGrammarRuleStateTransitions* This,REFIID riid,void **ppvObject) {
18053     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18054 }
18055 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_AddRef(ISpeechGrammarRuleStateTransitions* This) {
18056     return This->lpVtbl->AddRef(This);
18057 }
18058 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransitions_Release(ISpeechGrammarRuleStateTransitions* This) {
18059     return This->lpVtbl->Release(This);
18060 }
18061 /*** IDispatch methods ***/
18062 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfoCount(ISpeechGrammarRuleStateTransitions* This,UINT *pctinfo) {
18063     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18064 }
18065 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetTypeInfo(ISpeechGrammarRuleStateTransitions* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18066     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18067 }
18068 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_GetIDsOfNames(ISpeechGrammarRuleStateTransitions* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18069     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18070 }
18071 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Invoke(ISpeechGrammarRuleStateTransitions* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18072     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18073 }
18074 /*** ISpeechGrammarRuleStateTransitions methods ***/
18075 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get_Count(ISpeechGrammarRuleStateTransitions* This,LONG *Count) {
18076     return This->lpVtbl->get_Count(This,Count);
18077 }
18078 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_Item(ISpeechGrammarRuleStateTransitions* This,LONG Index,ISpeechGrammarRuleStateTransition **Transition) {
18079     return This->lpVtbl->Item(This,Index,Transition);
18080 }
18081 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransitions_get__NewEnum(ISpeechGrammarRuleStateTransitions* This,IUnknown **EnumVARIANT) {
18082     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
18083 }
18084 #endif
18085 #endif
18086 
18087 #endif
18088 
18089 
18090 #endif  /* __ISpeechGrammarRuleStateTransitions_INTERFACE_DEFINED__ */
18091 
18092 /*****************************************************************************
18093  * ISpeechGrammarRuleStateTransition interface
18094  */
18095 #ifndef __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
18096 #define __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__
18097 
18098 DEFINE_GUID(IID_ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a);
18099 #if defined(__cplusplus) && !defined(CINTERFACE)
18100 MIDL_INTERFACE("cafd1db1-41d1-4a06-9863-e2e81da17a9a")
18101 ISpeechGrammarRuleStateTransition : public IDispatch
18102 {
18103     virtual HRESULT STDMETHODCALLTYPE get_Type(
18104         SpeechGrammarRuleStateTransitionType *Type) = 0;
18105 
18106     virtual HRESULT STDMETHODCALLTYPE get_Text(
18107         BSTR *Text) = 0;
18108 
18109     virtual HRESULT STDMETHODCALLTYPE get_Rule(
18110         ISpeechGrammarRule **Rule) = 0;
18111 
18112     virtual HRESULT STDMETHODCALLTYPE get_Weight(
18113         VARIANT *Weight) = 0;
18114 
18115     virtual HRESULT STDMETHODCALLTYPE get_PropertyName(
18116         BSTR *PropertyName) = 0;
18117 
18118     virtual HRESULT STDMETHODCALLTYPE get_PropertyId(
18119         LONG *PropertyId) = 0;
18120 
18121     virtual HRESULT STDMETHODCALLTYPE get_PropertyValue(
18122         VARIANT *PropertyValue) = 0;
18123 
18124     virtual HRESULT STDMETHODCALLTYPE get_NextState(
18125         ISpeechGrammarRuleState **NextState) = 0;
18126 
18127 };
18128 #ifdef __CRT_UUID_DECL
18129 __CRT_UUID_DECL(ISpeechGrammarRuleStateTransition, 0xcafd1db1, 0x41d1, 0x4a06, 0x98,0x63, 0xe2,0xe8,0x1d,0xa1,0x7a,0x9a)
18130 #endif
18131 #else
18132 typedef struct ISpeechGrammarRuleStateTransitionVtbl {
18133     BEGIN_INTERFACE
18134 
18135     /*** IUnknown methods ***/
18136     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18137         ISpeechGrammarRuleStateTransition *This,
18138         REFIID riid,
18139         void **ppvObject);
18140 
18141     ULONG (STDMETHODCALLTYPE *AddRef)(
18142         ISpeechGrammarRuleStateTransition *This);
18143 
18144     ULONG (STDMETHODCALLTYPE *Release)(
18145         ISpeechGrammarRuleStateTransition *This);
18146 
18147     /*** IDispatch methods ***/
18148     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18149         ISpeechGrammarRuleStateTransition *This,
18150         UINT *pctinfo);
18151 
18152     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18153         ISpeechGrammarRuleStateTransition *This,
18154         UINT iTInfo,
18155         LCID lcid,
18156         ITypeInfo **ppTInfo);
18157 
18158     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18159         ISpeechGrammarRuleStateTransition *This,
18160         REFIID riid,
18161         LPOLESTR *rgszNames,
18162         UINT cNames,
18163         LCID lcid,
18164         DISPID *rgDispId);
18165 
18166     HRESULT (STDMETHODCALLTYPE *Invoke)(
18167         ISpeechGrammarRuleStateTransition *This,
18168         DISPID dispIdMember,
18169         REFIID riid,
18170         LCID lcid,
18171         WORD wFlags,
18172         DISPPARAMS *pDispParams,
18173         VARIANT *pVarResult,
18174         EXCEPINFO *pExcepInfo,
18175         UINT *puArgErr);
18176 
18177     /*** ISpeechGrammarRuleStateTransition methods ***/
18178     HRESULT (STDMETHODCALLTYPE *get_Type)(
18179         ISpeechGrammarRuleStateTransition *This,
18180         SpeechGrammarRuleStateTransitionType *Type);
18181 
18182     HRESULT (STDMETHODCALLTYPE *get_Text)(
18183         ISpeechGrammarRuleStateTransition *This,
18184         BSTR *Text);
18185 
18186     HRESULT (STDMETHODCALLTYPE *get_Rule)(
18187         ISpeechGrammarRuleStateTransition *This,
18188         ISpeechGrammarRule **Rule);
18189 
18190     HRESULT (STDMETHODCALLTYPE *get_Weight)(
18191         ISpeechGrammarRuleStateTransition *This,
18192         VARIANT *Weight);
18193 
18194     HRESULT (STDMETHODCALLTYPE *get_PropertyName)(
18195         ISpeechGrammarRuleStateTransition *This,
18196         BSTR *PropertyName);
18197 
18198     HRESULT (STDMETHODCALLTYPE *get_PropertyId)(
18199         ISpeechGrammarRuleStateTransition *This,
18200         LONG *PropertyId);
18201 
18202     HRESULT (STDMETHODCALLTYPE *get_PropertyValue)(
18203         ISpeechGrammarRuleStateTransition *This,
18204         VARIANT *PropertyValue);
18205 
18206     HRESULT (STDMETHODCALLTYPE *get_NextState)(
18207         ISpeechGrammarRuleStateTransition *This,
18208         ISpeechGrammarRuleState **NextState);
18209 
18210     END_INTERFACE
18211 } ISpeechGrammarRuleStateTransitionVtbl;
18212 
18213 interface ISpeechGrammarRuleStateTransition {
18214     CONST_VTBL ISpeechGrammarRuleStateTransitionVtbl* lpVtbl;
18215 };
18216 
18217 #ifdef COBJMACROS
18218 #ifndef WIDL_C_INLINE_WRAPPERS
18219 /*** IUnknown methods ***/
18220 #define ISpeechGrammarRuleStateTransition_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18221 #define ISpeechGrammarRuleStateTransition_AddRef(This) (This)->lpVtbl->AddRef(This)
18222 #define ISpeechGrammarRuleStateTransition_Release(This) (This)->lpVtbl->Release(This)
18223 /*** IDispatch methods ***/
18224 #define ISpeechGrammarRuleStateTransition_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18225 #define ISpeechGrammarRuleStateTransition_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18226 #define ISpeechGrammarRuleStateTransition_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18227 #define ISpeechGrammarRuleStateTransition_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18228 /*** ISpeechGrammarRuleStateTransition methods ***/
18229 #define ISpeechGrammarRuleStateTransition_get_Type(This,Type) (This)->lpVtbl->get_Type(This,Type)
18230 #define ISpeechGrammarRuleStateTransition_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
18231 #define ISpeechGrammarRuleStateTransition_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
18232 #define ISpeechGrammarRuleStateTransition_get_Weight(This,Weight) (This)->lpVtbl->get_Weight(This,Weight)
18233 #define ISpeechGrammarRuleStateTransition_get_PropertyName(This,PropertyName) (This)->lpVtbl->get_PropertyName(This,PropertyName)
18234 #define ISpeechGrammarRuleStateTransition_get_PropertyId(This,PropertyId) (This)->lpVtbl->get_PropertyId(This,PropertyId)
18235 #define ISpeechGrammarRuleStateTransition_get_PropertyValue(This,PropertyValue) (This)->lpVtbl->get_PropertyValue(This,PropertyValue)
18236 #define ISpeechGrammarRuleStateTransition_get_NextState(This,NextState) (This)->lpVtbl->get_NextState(This,NextState)
18237 #else
18238 /*** IUnknown methods ***/
18239 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_QueryInterface(ISpeechGrammarRuleStateTransition* This,REFIID riid,void **ppvObject) {
18240     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18241 }
18242 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_AddRef(ISpeechGrammarRuleStateTransition* This) {
18243     return This->lpVtbl->AddRef(This);
18244 }
18245 static FORCEINLINE ULONG ISpeechGrammarRuleStateTransition_Release(ISpeechGrammarRuleStateTransition* This) {
18246     return This->lpVtbl->Release(This);
18247 }
18248 /*** IDispatch methods ***/
18249 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfoCount(ISpeechGrammarRuleStateTransition* This,UINT *pctinfo) {
18250     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18251 }
18252 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetTypeInfo(ISpeechGrammarRuleStateTransition* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18253     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18254 }
18255 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_GetIDsOfNames(ISpeechGrammarRuleStateTransition* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18256     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18257 }
18258 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_Invoke(ISpeechGrammarRuleStateTransition* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18259     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18260 }
18261 /*** ISpeechGrammarRuleStateTransition methods ***/
18262 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Type(ISpeechGrammarRuleStateTransition* This,SpeechGrammarRuleStateTransitionType *Type) {
18263     return This->lpVtbl->get_Type(This,Type);
18264 }
18265 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Text(ISpeechGrammarRuleStateTransition* This,BSTR *Text) {
18266     return This->lpVtbl->get_Text(This,Text);
18267 }
18268 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Rule(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRule **Rule) {
18269     return This->lpVtbl->get_Rule(This,Rule);
18270 }
18271 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_Weight(ISpeechGrammarRuleStateTransition* This,VARIANT *Weight) {
18272     return This->lpVtbl->get_Weight(This,Weight);
18273 }
18274 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyName(ISpeechGrammarRuleStateTransition* This,BSTR *PropertyName) {
18275     return This->lpVtbl->get_PropertyName(This,PropertyName);
18276 }
18277 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyId(ISpeechGrammarRuleStateTransition* This,LONG *PropertyId) {
18278     return This->lpVtbl->get_PropertyId(This,PropertyId);
18279 }
18280 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_PropertyValue(ISpeechGrammarRuleStateTransition* This,VARIANT *PropertyValue) {
18281     return This->lpVtbl->get_PropertyValue(This,PropertyValue);
18282 }
18283 static FORCEINLINE HRESULT ISpeechGrammarRuleStateTransition_get_NextState(ISpeechGrammarRuleStateTransition* This,ISpeechGrammarRuleState **NextState) {
18284     return This->lpVtbl->get_NextState(This,NextState);
18285 }
18286 #endif
18287 #endif
18288 
18289 #endif
18290 
18291 
18292 #endif  /* __ISpeechGrammarRuleStateTransition_INTERFACE_DEFINED__ */
18293 
18294 /*****************************************************************************
18295  * ISpeechTextSelectionInformation interface
18296  */
18297 #ifndef __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18298 #define __ISpeechTextSelectionInformation_INTERFACE_DEFINED__
18299 
18300 DEFINE_GUID(IID_ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe);
18301 #if defined(__cplusplus) && !defined(CINTERFACE)
18302 MIDL_INTERFACE("3b9c7e7a-6eee-4ded-9092-11657279adbe")
18303 ISpeechTextSelectionInformation : public IDispatch
18304 {
18305     virtual HRESULT STDMETHODCALLTYPE put_ActiveOffset(
18306         LONG ActiveOffset) = 0;
18307 
18308     virtual HRESULT STDMETHODCALLTYPE get_ActiveOffset(
18309         LONG *ActiveOffset) = 0;
18310 
18311     virtual HRESULT STDMETHODCALLTYPE put_ActiveLength(
18312         LONG ActiveLength) = 0;
18313 
18314     virtual HRESULT STDMETHODCALLTYPE get_ActiveLength(
18315         LONG *ActiveLength) = 0;
18316 
18317     virtual HRESULT STDMETHODCALLTYPE put_SelectionOffset(
18318         LONG SelectionOffset) = 0;
18319 
18320     virtual HRESULT STDMETHODCALLTYPE get_SelectionOffset(
18321         LONG *SelectionOffset) = 0;
18322 
18323     virtual HRESULT STDMETHODCALLTYPE put_SelectionLength(
18324         LONG SelectionLength) = 0;
18325 
18326     virtual HRESULT STDMETHODCALLTYPE get_SelectionLength(
18327         LONG *SelectionLength) = 0;
18328 
18329 };
18330 #ifdef __CRT_UUID_DECL
18331 __CRT_UUID_DECL(ISpeechTextSelectionInformation, 0x3b9c7e7a, 0x6eee, 0x4ded, 0x90,0x92, 0x11,0x65,0x72,0x79,0xad,0xbe)
18332 #endif
18333 #else
18334 typedef struct ISpeechTextSelectionInformationVtbl {
18335     BEGIN_INTERFACE
18336 
18337     /*** IUnknown methods ***/
18338     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18339         ISpeechTextSelectionInformation *This,
18340         REFIID riid,
18341         void **ppvObject);
18342 
18343     ULONG (STDMETHODCALLTYPE *AddRef)(
18344         ISpeechTextSelectionInformation *This);
18345 
18346     ULONG (STDMETHODCALLTYPE *Release)(
18347         ISpeechTextSelectionInformation *This);
18348 
18349     /*** IDispatch methods ***/
18350     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18351         ISpeechTextSelectionInformation *This,
18352         UINT *pctinfo);
18353 
18354     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18355         ISpeechTextSelectionInformation *This,
18356         UINT iTInfo,
18357         LCID lcid,
18358         ITypeInfo **ppTInfo);
18359 
18360     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18361         ISpeechTextSelectionInformation *This,
18362         REFIID riid,
18363         LPOLESTR *rgszNames,
18364         UINT cNames,
18365         LCID lcid,
18366         DISPID *rgDispId);
18367 
18368     HRESULT (STDMETHODCALLTYPE *Invoke)(
18369         ISpeechTextSelectionInformation *This,
18370         DISPID dispIdMember,
18371         REFIID riid,
18372         LCID lcid,
18373         WORD wFlags,
18374         DISPPARAMS *pDispParams,
18375         VARIANT *pVarResult,
18376         EXCEPINFO *pExcepInfo,
18377         UINT *puArgErr);
18378 
18379     /*** ISpeechTextSelectionInformation methods ***/
18380     HRESULT (STDMETHODCALLTYPE *put_ActiveOffset)(
18381         ISpeechTextSelectionInformation *This,
18382         LONG ActiveOffset);
18383 
18384     HRESULT (STDMETHODCALLTYPE *get_ActiveOffset)(
18385         ISpeechTextSelectionInformation *This,
18386         LONG *ActiveOffset);
18387 
18388     HRESULT (STDMETHODCALLTYPE *put_ActiveLength)(
18389         ISpeechTextSelectionInformation *This,
18390         LONG ActiveLength);
18391 
18392     HRESULT (STDMETHODCALLTYPE *get_ActiveLength)(
18393         ISpeechTextSelectionInformation *This,
18394         LONG *ActiveLength);
18395 
18396     HRESULT (STDMETHODCALLTYPE *put_SelectionOffset)(
18397         ISpeechTextSelectionInformation *This,
18398         LONG SelectionOffset);
18399 
18400     HRESULT (STDMETHODCALLTYPE *get_SelectionOffset)(
18401         ISpeechTextSelectionInformation *This,
18402         LONG *SelectionOffset);
18403 
18404     HRESULT (STDMETHODCALLTYPE *put_SelectionLength)(
18405         ISpeechTextSelectionInformation *This,
18406         LONG SelectionLength);
18407 
18408     HRESULT (STDMETHODCALLTYPE *get_SelectionLength)(
18409         ISpeechTextSelectionInformation *This,
18410         LONG *SelectionLength);
18411 
18412     END_INTERFACE
18413 } ISpeechTextSelectionInformationVtbl;
18414 
18415 interface ISpeechTextSelectionInformation {
18416     CONST_VTBL ISpeechTextSelectionInformationVtbl* lpVtbl;
18417 };
18418 
18419 #ifdef COBJMACROS
18420 #ifndef WIDL_C_INLINE_WRAPPERS
18421 /*** IUnknown methods ***/
18422 #define ISpeechTextSelectionInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18423 #define ISpeechTextSelectionInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
18424 #define ISpeechTextSelectionInformation_Release(This) (This)->lpVtbl->Release(This)
18425 /*** IDispatch methods ***/
18426 #define ISpeechTextSelectionInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18427 #define ISpeechTextSelectionInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18428 #define ISpeechTextSelectionInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18429 #define ISpeechTextSelectionInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18430 /*** ISpeechTextSelectionInformation methods ***/
18431 #define ISpeechTextSelectionInformation_put_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->put_ActiveOffset(This,ActiveOffset)
18432 #define ISpeechTextSelectionInformation_get_ActiveOffset(This,ActiveOffset) (This)->lpVtbl->get_ActiveOffset(This,ActiveOffset)
18433 #define ISpeechTextSelectionInformation_put_ActiveLength(This,ActiveLength) (This)->lpVtbl->put_ActiveLength(This,ActiveLength)
18434 #define ISpeechTextSelectionInformation_get_ActiveLength(This,ActiveLength) (This)->lpVtbl->get_ActiveLength(This,ActiveLength)
18435 #define ISpeechTextSelectionInformation_put_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->put_SelectionOffset(This,SelectionOffset)
18436 #define ISpeechTextSelectionInformation_get_SelectionOffset(This,SelectionOffset) (This)->lpVtbl->get_SelectionOffset(This,SelectionOffset)
18437 #define ISpeechTextSelectionInformation_put_SelectionLength(This,SelectionLength) (This)->lpVtbl->put_SelectionLength(This,SelectionLength)
18438 #define ISpeechTextSelectionInformation_get_SelectionLength(This,SelectionLength) (This)->lpVtbl->get_SelectionLength(This,SelectionLength)
18439 #else
18440 /*** IUnknown methods ***/
18441 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_QueryInterface(ISpeechTextSelectionInformation* This,REFIID riid,void **ppvObject) {
18442     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18443 }
18444 static FORCEINLINE ULONG ISpeechTextSelectionInformation_AddRef(ISpeechTextSelectionInformation* This) {
18445     return This->lpVtbl->AddRef(This);
18446 }
18447 static FORCEINLINE ULONG ISpeechTextSelectionInformation_Release(ISpeechTextSelectionInformation* This) {
18448     return This->lpVtbl->Release(This);
18449 }
18450 /*** IDispatch methods ***/
18451 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfoCount(ISpeechTextSelectionInformation* This,UINT *pctinfo) {
18452     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18453 }
18454 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetTypeInfo(ISpeechTextSelectionInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18455     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18456 }
18457 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_GetIDsOfNames(ISpeechTextSelectionInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18458     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18459 }
18460 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_Invoke(ISpeechTextSelectionInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18461     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18462 }
18463 /*** ISpeechTextSelectionInformation methods ***/
18464 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveOffset(ISpeechTextSelectionInformation* This,LONG ActiveOffset) {
18465     return This->lpVtbl->put_ActiveOffset(This,ActiveOffset);
18466 }
18467 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveOffset(ISpeechTextSelectionInformation* This,LONG *ActiveOffset) {
18468     return This->lpVtbl->get_ActiveOffset(This,ActiveOffset);
18469 }
18470 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_ActiveLength(ISpeechTextSelectionInformation* This,LONG ActiveLength) {
18471     return This->lpVtbl->put_ActiveLength(This,ActiveLength);
18472 }
18473 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_ActiveLength(ISpeechTextSelectionInformation* This,LONG *ActiveLength) {
18474     return This->lpVtbl->get_ActiveLength(This,ActiveLength);
18475 }
18476 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionOffset(ISpeechTextSelectionInformation* This,LONG SelectionOffset) {
18477     return This->lpVtbl->put_SelectionOffset(This,SelectionOffset);
18478 }
18479 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionOffset(ISpeechTextSelectionInformation* This,LONG *SelectionOffset) {
18480     return This->lpVtbl->get_SelectionOffset(This,SelectionOffset);
18481 }
18482 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_put_SelectionLength(ISpeechTextSelectionInformation* This,LONG SelectionLength) {
18483     return This->lpVtbl->put_SelectionLength(This,SelectionLength);
18484 }
18485 static FORCEINLINE HRESULT ISpeechTextSelectionInformation_get_SelectionLength(ISpeechTextSelectionInformation* This,LONG *SelectionLength) {
18486     return This->lpVtbl->get_SelectionLength(This,SelectionLength);
18487 }
18488 #endif
18489 #endif
18490 
18491 #endif
18492 
18493 
18494 #endif  /* __ISpeechTextSelectionInformation_INTERFACE_DEFINED__ */
18495 
18496 /*****************************************************************************
18497  * ISpeechRecoResult interface
18498  */
18499 #ifndef __ISpeechRecoResult_INTERFACE_DEFINED__
18500 #define __ISpeechRecoResult_INTERFACE_DEFINED__
18501 
18502 DEFINE_GUID(IID_ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d);
18503 #if defined(__cplusplus) && !defined(CINTERFACE)
18504 MIDL_INTERFACE("ed2879cf-ced9-4ee6-a534-de0191d5468d")
18505 ISpeechRecoResult : public IDispatch
18506 {
18507     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
18508         ISpeechRecoContext **RecoContext) = 0;
18509 
18510     virtual HRESULT STDMETHODCALLTYPE get_Times(
18511         ISpeechRecoResultTimes **Times) = 0;
18512 
18513     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
18514         ISpeechAudioFormat *Format) = 0;
18515 
18516     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
18517         ISpeechAudioFormat **Format) = 0;
18518 
18519     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
18520         ISpeechPhraseInfo **PhraseInfo) = 0;
18521 
18522     virtual HRESULT STDMETHODCALLTYPE Alternates(
18523         LONG RequestCount,
18524         LONG StartElement,
18525         LONG Elements,
18526         ISpeechPhraseAlternates **Alternates) = 0;
18527 
18528     virtual HRESULT STDMETHODCALLTYPE Audio(
18529         LONG StartElement,
18530         LONG Elements,
18531         ISpeechMemoryStream **Stream) = 0;
18532 
18533     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
18534         LONG StartElement,
18535         LONG Elements,
18536         SpeechVoiceSpeakFlags Flags,
18537         LONG *StreamNumber) = 0;
18538 
18539     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
18540         VARIANT *ResultBlock) = 0;
18541 
18542     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
18543         SpeechDiscardType ValueTypes) = 0;
18544 
18545 };
18546 #ifdef __CRT_UUID_DECL
18547 __CRT_UUID_DECL(ISpeechRecoResult, 0xed2879cf, 0xced9, 0x4ee6, 0xa5,0x34, 0xde,0x01,0x91,0xd5,0x46,0x8d)
18548 #endif
18549 #else
18550 typedef struct ISpeechRecoResultVtbl {
18551     BEGIN_INTERFACE
18552 
18553     /*** IUnknown methods ***/
18554     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18555         ISpeechRecoResult *This,
18556         REFIID riid,
18557         void **ppvObject);
18558 
18559     ULONG (STDMETHODCALLTYPE *AddRef)(
18560         ISpeechRecoResult *This);
18561 
18562     ULONG (STDMETHODCALLTYPE *Release)(
18563         ISpeechRecoResult *This);
18564 
18565     /*** IDispatch methods ***/
18566     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18567         ISpeechRecoResult *This,
18568         UINT *pctinfo);
18569 
18570     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18571         ISpeechRecoResult *This,
18572         UINT iTInfo,
18573         LCID lcid,
18574         ITypeInfo **ppTInfo);
18575 
18576     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18577         ISpeechRecoResult *This,
18578         REFIID riid,
18579         LPOLESTR *rgszNames,
18580         UINT cNames,
18581         LCID lcid,
18582         DISPID *rgDispId);
18583 
18584     HRESULT (STDMETHODCALLTYPE *Invoke)(
18585         ISpeechRecoResult *This,
18586         DISPID dispIdMember,
18587         REFIID riid,
18588         LCID lcid,
18589         WORD wFlags,
18590         DISPPARAMS *pDispParams,
18591         VARIANT *pVarResult,
18592         EXCEPINFO *pExcepInfo,
18593         UINT *puArgErr);
18594 
18595     /*** ISpeechRecoResult methods ***/
18596     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18597         ISpeechRecoResult *This,
18598         ISpeechRecoContext **RecoContext);
18599 
18600     HRESULT (STDMETHODCALLTYPE *get_Times)(
18601         ISpeechRecoResult *This,
18602         ISpeechRecoResultTimes **Times);
18603 
18604     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18605         ISpeechRecoResult *This,
18606         ISpeechAudioFormat *Format);
18607 
18608     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18609         ISpeechRecoResult *This,
18610         ISpeechAudioFormat **Format);
18611 
18612     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18613         ISpeechRecoResult *This,
18614         ISpeechPhraseInfo **PhraseInfo);
18615 
18616     HRESULT (STDMETHODCALLTYPE *Alternates)(
18617         ISpeechRecoResult *This,
18618         LONG RequestCount,
18619         LONG StartElement,
18620         LONG Elements,
18621         ISpeechPhraseAlternates **Alternates);
18622 
18623     HRESULT (STDMETHODCALLTYPE *Audio)(
18624         ISpeechRecoResult *This,
18625         LONG StartElement,
18626         LONG Elements,
18627         ISpeechMemoryStream **Stream);
18628 
18629     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18630         ISpeechRecoResult *This,
18631         LONG StartElement,
18632         LONG Elements,
18633         SpeechVoiceSpeakFlags Flags,
18634         LONG *StreamNumber);
18635 
18636     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18637         ISpeechRecoResult *This,
18638         VARIANT *ResultBlock);
18639 
18640     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18641         ISpeechRecoResult *This,
18642         SpeechDiscardType ValueTypes);
18643 
18644     END_INTERFACE
18645 } ISpeechRecoResultVtbl;
18646 
18647 interface ISpeechRecoResult {
18648     CONST_VTBL ISpeechRecoResultVtbl* lpVtbl;
18649 };
18650 
18651 #ifdef COBJMACROS
18652 #ifndef WIDL_C_INLINE_WRAPPERS
18653 /*** IUnknown methods ***/
18654 #define ISpeechRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18655 #define ISpeechRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
18656 #define ISpeechRecoResult_Release(This) (This)->lpVtbl->Release(This)
18657 /*** IDispatch methods ***/
18658 #define ISpeechRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18659 #define ISpeechRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18660 #define ISpeechRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18661 #define ISpeechRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18662 /*** ISpeechRecoResult methods ***/
18663 #define ISpeechRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18664 #define ISpeechRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18665 #define ISpeechRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18666 #define ISpeechRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18667 #define ISpeechRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18668 #define ISpeechRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18669 #define ISpeechRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18670 #define ISpeechRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18671 #define ISpeechRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18672 #define ISpeechRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18673 #else
18674 /*** IUnknown methods ***/
18675 static FORCEINLINE HRESULT ISpeechRecoResult_QueryInterface(ISpeechRecoResult* This,REFIID riid,void **ppvObject) {
18676     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18677 }
18678 static FORCEINLINE ULONG ISpeechRecoResult_AddRef(ISpeechRecoResult* This) {
18679     return This->lpVtbl->AddRef(This);
18680 }
18681 static FORCEINLINE ULONG ISpeechRecoResult_Release(ISpeechRecoResult* This) {
18682     return This->lpVtbl->Release(This);
18683 }
18684 /*** IDispatch methods ***/
18685 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfoCount(ISpeechRecoResult* This,UINT *pctinfo) {
18686     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18687 }
18688 static FORCEINLINE HRESULT ISpeechRecoResult_GetTypeInfo(ISpeechRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18689     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18690 }
18691 static FORCEINLINE HRESULT ISpeechRecoResult_GetIDsOfNames(ISpeechRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18692     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18693 }
18694 static FORCEINLINE HRESULT ISpeechRecoResult_Invoke(ISpeechRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18695     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18696 }
18697 /*** ISpeechRecoResult methods ***/
18698 static FORCEINLINE HRESULT ISpeechRecoResult_get_RecoContext(ISpeechRecoResult* This,ISpeechRecoContext **RecoContext) {
18699     return This->lpVtbl->get_RecoContext(This,RecoContext);
18700 }
18701 static FORCEINLINE HRESULT ISpeechRecoResult_get_Times(ISpeechRecoResult* This,ISpeechRecoResultTimes **Times) {
18702     return This->lpVtbl->get_Times(This,Times);
18703 }
18704 static FORCEINLINE HRESULT ISpeechRecoResult_putref_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat *Format) {
18705     return This->lpVtbl->putref_AudioFormat(This,Format);
18706 }
18707 static FORCEINLINE HRESULT ISpeechRecoResult_get_AudioFormat(ISpeechRecoResult* This,ISpeechAudioFormat **Format) {
18708     return This->lpVtbl->get_AudioFormat(This,Format);
18709 }
18710 static FORCEINLINE HRESULT ISpeechRecoResult_get_PhraseInfo(ISpeechRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
18711     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
18712 }
18713 static FORCEINLINE HRESULT ISpeechRecoResult_Alternates(ISpeechRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
18714     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
18715 }
18716 static FORCEINLINE HRESULT ISpeechRecoResult_Audio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
18717     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
18718 }
18719 static FORCEINLINE HRESULT ISpeechRecoResult_SpeakAudio(ISpeechRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
18720     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
18721 }
18722 static FORCEINLINE HRESULT ISpeechRecoResult_SaveToMemory(ISpeechRecoResult* This,VARIANT *ResultBlock) {
18723     return This->lpVtbl->SaveToMemory(This,ResultBlock);
18724 }
18725 static FORCEINLINE HRESULT ISpeechRecoResult_DiscardResultInfo(ISpeechRecoResult* This,SpeechDiscardType ValueTypes) {
18726     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
18727 }
18728 #endif
18729 #endif
18730 
18731 #endif
18732 
18733 
18734 #endif  /* __ISpeechRecoResult_INTERFACE_DEFINED__ */
18735 
18736 /*****************************************************************************
18737  * ISpeechXMLRecoResult interface
18738  */
18739 #ifndef __ISpeechXMLRecoResult_INTERFACE_DEFINED__
18740 #define __ISpeechXMLRecoResult_INTERFACE_DEFINED__
18741 
18742 DEFINE_GUID(IID_ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19);
18743 #if defined(__cplusplus) && !defined(CINTERFACE)
18744 MIDL_INTERFACE("aaec54af-8f85-4924-944d-b79d39d72e19")
18745 ISpeechXMLRecoResult : public ISpeechRecoResult
18746 {
18747     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
18748         SPXMLRESULTOPTIONS Options,
18749         BSTR *pResult) = 0;
18750 
18751     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
18752         LONG *LineNumber,
18753         BSTR *ScriptLine,
18754         BSTR *Source,
18755         BSTR *Description,
18756         LONG *ResultCode,
18757         VARIANT_BOOL *IsError) = 0;
18758 
18759 };
18760 #ifdef __CRT_UUID_DECL
18761 __CRT_UUID_DECL(ISpeechXMLRecoResult, 0xaaec54af, 0x8f85, 0x4924, 0x94,0x4d, 0xb7,0x9d,0x39,0xd7,0x2e,0x19)
18762 #endif
18763 #else
18764 typedef struct ISpeechXMLRecoResultVtbl {
18765     BEGIN_INTERFACE
18766 
18767     /*** IUnknown methods ***/
18768     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18769         ISpeechXMLRecoResult *This,
18770         REFIID riid,
18771         void **ppvObject);
18772 
18773     ULONG (STDMETHODCALLTYPE *AddRef)(
18774         ISpeechXMLRecoResult *This);
18775 
18776     ULONG (STDMETHODCALLTYPE *Release)(
18777         ISpeechXMLRecoResult *This);
18778 
18779     /*** IDispatch methods ***/
18780     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
18781         ISpeechXMLRecoResult *This,
18782         UINT *pctinfo);
18783 
18784     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
18785         ISpeechXMLRecoResult *This,
18786         UINT iTInfo,
18787         LCID lcid,
18788         ITypeInfo **ppTInfo);
18789 
18790     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
18791         ISpeechXMLRecoResult *This,
18792         REFIID riid,
18793         LPOLESTR *rgszNames,
18794         UINT cNames,
18795         LCID lcid,
18796         DISPID *rgDispId);
18797 
18798     HRESULT (STDMETHODCALLTYPE *Invoke)(
18799         ISpeechXMLRecoResult *This,
18800         DISPID dispIdMember,
18801         REFIID riid,
18802         LCID lcid,
18803         WORD wFlags,
18804         DISPPARAMS *pDispParams,
18805         VARIANT *pVarResult,
18806         EXCEPINFO *pExcepInfo,
18807         UINT *puArgErr);
18808 
18809     /*** ISpeechRecoResult methods ***/
18810     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
18811         ISpeechXMLRecoResult *This,
18812         ISpeechRecoContext **RecoContext);
18813 
18814     HRESULT (STDMETHODCALLTYPE *get_Times)(
18815         ISpeechXMLRecoResult *This,
18816         ISpeechRecoResultTimes **Times);
18817 
18818     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
18819         ISpeechXMLRecoResult *This,
18820         ISpeechAudioFormat *Format);
18821 
18822     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
18823         ISpeechXMLRecoResult *This,
18824         ISpeechAudioFormat **Format);
18825 
18826     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
18827         ISpeechXMLRecoResult *This,
18828         ISpeechPhraseInfo **PhraseInfo);
18829 
18830     HRESULT (STDMETHODCALLTYPE *Alternates)(
18831         ISpeechXMLRecoResult *This,
18832         LONG RequestCount,
18833         LONG StartElement,
18834         LONG Elements,
18835         ISpeechPhraseAlternates **Alternates);
18836 
18837     HRESULT (STDMETHODCALLTYPE *Audio)(
18838         ISpeechXMLRecoResult *This,
18839         LONG StartElement,
18840         LONG Elements,
18841         ISpeechMemoryStream **Stream);
18842 
18843     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
18844         ISpeechXMLRecoResult *This,
18845         LONG StartElement,
18846         LONG Elements,
18847         SpeechVoiceSpeakFlags Flags,
18848         LONG *StreamNumber);
18849 
18850     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
18851         ISpeechXMLRecoResult *This,
18852         VARIANT *ResultBlock);
18853 
18854     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
18855         ISpeechXMLRecoResult *This,
18856         SpeechDiscardType ValueTypes);
18857 
18858     /*** ISpeechXMLRecoResult methods ***/
18859     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
18860         ISpeechXMLRecoResult *This,
18861         SPXMLRESULTOPTIONS Options,
18862         BSTR *pResult);
18863 
18864     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
18865         ISpeechXMLRecoResult *This,
18866         LONG *LineNumber,
18867         BSTR *ScriptLine,
18868         BSTR *Source,
18869         BSTR *Description,
18870         LONG *ResultCode,
18871         VARIANT_BOOL *IsError);
18872 
18873     END_INTERFACE
18874 } ISpeechXMLRecoResultVtbl;
18875 
18876 interface ISpeechXMLRecoResult {
18877     CONST_VTBL ISpeechXMLRecoResultVtbl* lpVtbl;
18878 };
18879 
18880 #ifdef COBJMACROS
18881 #ifndef WIDL_C_INLINE_WRAPPERS
18882 /*** IUnknown methods ***/
18883 #define ISpeechXMLRecoResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18884 #define ISpeechXMLRecoResult_AddRef(This) (This)->lpVtbl->AddRef(This)
18885 #define ISpeechXMLRecoResult_Release(This) (This)->lpVtbl->Release(This)
18886 /*** IDispatch methods ***/
18887 #define ISpeechXMLRecoResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
18888 #define ISpeechXMLRecoResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
18889 #define ISpeechXMLRecoResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
18890 #define ISpeechXMLRecoResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
18891 /*** ISpeechRecoResult methods ***/
18892 #define ISpeechXMLRecoResult_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
18893 #define ISpeechXMLRecoResult_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
18894 #define ISpeechXMLRecoResult_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
18895 #define ISpeechXMLRecoResult_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
18896 #define ISpeechXMLRecoResult_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
18897 #define ISpeechXMLRecoResult_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
18898 #define ISpeechXMLRecoResult_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
18899 #define ISpeechXMLRecoResult_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
18900 #define ISpeechXMLRecoResult_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
18901 #define ISpeechXMLRecoResult_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
18902 /*** ISpeechXMLRecoResult methods ***/
18903 #define ISpeechXMLRecoResult_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
18904 #define ISpeechXMLRecoResult_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
18905 #else
18906 /*** IUnknown methods ***/
18907 static FORCEINLINE HRESULT ISpeechXMLRecoResult_QueryInterface(ISpeechXMLRecoResult* This,REFIID riid,void **ppvObject) {
18908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18909 }
18910 static FORCEINLINE ULONG ISpeechXMLRecoResult_AddRef(ISpeechXMLRecoResult* This) {
18911     return This->lpVtbl->AddRef(This);
18912 }
18913 static FORCEINLINE ULONG ISpeechXMLRecoResult_Release(ISpeechXMLRecoResult* This) {
18914     return This->lpVtbl->Release(This);
18915 }
18916 /*** IDispatch methods ***/
18917 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetTypeInfoCount(ISpeechXMLRecoResult* This,UINT *pctinfo) {
18918     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
18919 }
18920 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetTypeInfo(ISpeechXMLRecoResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
18921     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
18922 }
18923 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetIDsOfNames(ISpeechXMLRecoResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
18924     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
18925 }
18926 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Invoke(ISpeechXMLRecoResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
18927     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
18928 }
18929 /*** ISpeechRecoResult methods ***/
18930 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_RecoContext(ISpeechXMLRecoResult* This,ISpeechRecoContext **RecoContext) {
18931     return This->lpVtbl->get_RecoContext(This,RecoContext);
18932 }
18933 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_Times(ISpeechXMLRecoResult* This,ISpeechRecoResultTimes **Times) {
18934     return This->lpVtbl->get_Times(This,Times);
18935 }
18936 static FORCEINLINE HRESULT ISpeechXMLRecoResult_putref_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat *Format) {
18937     return This->lpVtbl->putref_AudioFormat(This,Format);
18938 }
18939 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_AudioFormat(ISpeechXMLRecoResult* This,ISpeechAudioFormat **Format) {
18940     return This->lpVtbl->get_AudioFormat(This,Format);
18941 }
18942 static FORCEINLINE HRESULT ISpeechXMLRecoResult_get_PhraseInfo(ISpeechXMLRecoResult* This,ISpeechPhraseInfo **PhraseInfo) {
18943     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
18944 }
18945 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Alternates(ISpeechXMLRecoResult* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
18946     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
18947 }
18948 static FORCEINLINE HRESULT ISpeechXMLRecoResult_Audio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
18949     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
18950 }
18951 static FORCEINLINE HRESULT ISpeechXMLRecoResult_SpeakAudio(ISpeechXMLRecoResult* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
18952     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
18953 }
18954 static FORCEINLINE HRESULT ISpeechXMLRecoResult_SaveToMemory(ISpeechXMLRecoResult* This,VARIANT *ResultBlock) {
18955     return This->lpVtbl->SaveToMemory(This,ResultBlock);
18956 }
18957 static FORCEINLINE HRESULT ISpeechXMLRecoResult_DiscardResultInfo(ISpeechXMLRecoResult* This,SpeechDiscardType ValueTypes) {
18958     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
18959 }
18960 /*** ISpeechXMLRecoResult methods ***/
18961 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetXMLResult(ISpeechXMLRecoResult* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
18962     return This->lpVtbl->GetXMLResult(This,Options,pResult);
18963 }
18964 static FORCEINLINE HRESULT ISpeechXMLRecoResult_GetXMLErrorInfo(ISpeechXMLRecoResult* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,LONG *ResultCode,VARIANT_BOOL *IsError) {
18965     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
18966 }
18967 #endif
18968 #endif
18969 
18970 #endif
18971 
18972 
18973 #endif  /* __ISpeechXMLRecoResult_INTERFACE_DEFINED__ */
18974 
18975 /*****************************************************************************
18976  * ISpeechRecoResult2 interface
18977  */
18978 #ifndef __ISpeechRecoResult2_INTERFACE_DEFINED__
18979 #define __ISpeechRecoResult2_INTERFACE_DEFINED__
18980 
18981 DEFINE_GUID(IID_ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c);
18982 #if defined(__cplusplus) && !defined(CINTERFACE)
18983 MIDL_INTERFACE("8e0a246d-d3c8-45de-8657-04290c458c3c")
18984 ISpeechRecoResult2 : public ISpeechRecoResult
18985 {
18986     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
18987         BSTR Feedback,
18988         VARIANT_BOOL WasSuccessful) = 0;
18989 
18990 };
18991 #ifdef __CRT_UUID_DECL
18992 __CRT_UUID_DECL(ISpeechRecoResult2, 0x8e0a246d, 0xd3c8, 0x45de, 0x86,0x57, 0x04,0x29,0x0c,0x45,0x8c,0x3c)
18993 #endif
18994 #else
18995 typedef struct ISpeechRecoResult2Vtbl {
18996     BEGIN_INTERFACE
18997 
18998     /*** IUnknown methods ***/
18999     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19000         ISpeechRecoResult2 *This,
19001         REFIID riid,
19002         void **ppvObject);
19003 
19004     ULONG (STDMETHODCALLTYPE *AddRef)(
19005         ISpeechRecoResult2 *This);
19006 
19007     ULONG (STDMETHODCALLTYPE *Release)(
19008         ISpeechRecoResult2 *This);
19009 
19010     /*** IDispatch methods ***/
19011     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19012         ISpeechRecoResult2 *This,
19013         UINT *pctinfo);
19014 
19015     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19016         ISpeechRecoResult2 *This,
19017         UINT iTInfo,
19018         LCID lcid,
19019         ITypeInfo **ppTInfo);
19020 
19021     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19022         ISpeechRecoResult2 *This,
19023         REFIID riid,
19024         LPOLESTR *rgszNames,
19025         UINT cNames,
19026         LCID lcid,
19027         DISPID *rgDispId);
19028 
19029     HRESULT (STDMETHODCALLTYPE *Invoke)(
19030         ISpeechRecoResult2 *This,
19031         DISPID dispIdMember,
19032         REFIID riid,
19033         LCID lcid,
19034         WORD wFlags,
19035         DISPPARAMS *pDispParams,
19036         VARIANT *pVarResult,
19037         EXCEPINFO *pExcepInfo,
19038         UINT *puArgErr);
19039 
19040     /*** ISpeechRecoResult methods ***/
19041     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
19042         ISpeechRecoResult2 *This,
19043         ISpeechRecoContext **RecoContext);
19044 
19045     HRESULT (STDMETHODCALLTYPE *get_Times)(
19046         ISpeechRecoResult2 *This,
19047         ISpeechRecoResultTimes **Times);
19048 
19049     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
19050         ISpeechRecoResult2 *This,
19051         ISpeechAudioFormat *Format);
19052 
19053     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
19054         ISpeechRecoResult2 *This,
19055         ISpeechAudioFormat **Format);
19056 
19057     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19058         ISpeechRecoResult2 *This,
19059         ISpeechPhraseInfo **PhraseInfo);
19060 
19061     HRESULT (STDMETHODCALLTYPE *Alternates)(
19062         ISpeechRecoResult2 *This,
19063         LONG RequestCount,
19064         LONG StartElement,
19065         LONG Elements,
19066         ISpeechPhraseAlternates **Alternates);
19067 
19068     HRESULT (STDMETHODCALLTYPE *Audio)(
19069         ISpeechRecoResult2 *This,
19070         LONG StartElement,
19071         LONG Elements,
19072         ISpeechMemoryStream **Stream);
19073 
19074     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
19075         ISpeechRecoResult2 *This,
19076         LONG StartElement,
19077         LONG Elements,
19078         SpeechVoiceSpeakFlags Flags,
19079         LONG *StreamNumber);
19080 
19081     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
19082         ISpeechRecoResult2 *This,
19083         VARIANT *ResultBlock);
19084 
19085     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
19086         ISpeechRecoResult2 *This,
19087         SpeechDiscardType ValueTypes);
19088 
19089     /*** ISpeechRecoResult2 methods ***/
19090     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
19091         ISpeechRecoResult2 *This,
19092         BSTR Feedback,
19093         VARIANT_BOOL WasSuccessful);
19094 
19095     END_INTERFACE
19096 } ISpeechRecoResult2Vtbl;
19097 
19098 interface ISpeechRecoResult2 {
19099     CONST_VTBL ISpeechRecoResult2Vtbl* lpVtbl;
19100 };
19101 
19102 #ifdef COBJMACROS
19103 #ifndef WIDL_C_INLINE_WRAPPERS
19104 /*** IUnknown methods ***/
19105 #define ISpeechRecoResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19106 #define ISpeechRecoResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
19107 #define ISpeechRecoResult2_Release(This) (This)->lpVtbl->Release(This)
19108 /*** IDispatch methods ***/
19109 #define ISpeechRecoResult2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19110 #define ISpeechRecoResult2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19111 #define ISpeechRecoResult2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19112 #define ISpeechRecoResult2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19113 /*** ISpeechRecoResult methods ***/
19114 #define ISpeechRecoResult2_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
19115 #define ISpeechRecoResult2_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
19116 #define ISpeechRecoResult2_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
19117 #define ISpeechRecoResult2_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
19118 #define ISpeechRecoResult2_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19119 #define ISpeechRecoResult2_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
19120 #define ISpeechRecoResult2_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
19121 #define ISpeechRecoResult2_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
19122 #define ISpeechRecoResult2_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
19123 #define ISpeechRecoResult2_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
19124 /*** ISpeechRecoResult2 methods ***/
19125 #define ISpeechRecoResult2_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
19126 #else
19127 /*** IUnknown methods ***/
19128 static FORCEINLINE HRESULT ISpeechRecoResult2_QueryInterface(ISpeechRecoResult2* This,REFIID riid,void **ppvObject) {
19129     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19130 }
19131 static FORCEINLINE ULONG ISpeechRecoResult2_AddRef(ISpeechRecoResult2* This) {
19132     return This->lpVtbl->AddRef(This);
19133 }
19134 static FORCEINLINE ULONG ISpeechRecoResult2_Release(ISpeechRecoResult2* This) {
19135     return This->lpVtbl->Release(This);
19136 }
19137 /*** IDispatch methods ***/
19138 static FORCEINLINE HRESULT ISpeechRecoResult2_GetTypeInfoCount(ISpeechRecoResult2* This,UINT *pctinfo) {
19139     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19140 }
19141 static FORCEINLINE HRESULT ISpeechRecoResult2_GetTypeInfo(ISpeechRecoResult2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19142     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19143 }
19144 static FORCEINLINE HRESULT ISpeechRecoResult2_GetIDsOfNames(ISpeechRecoResult2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19145     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19146 }
19147 static FORCEINLINE HRESULT ISpeechRecoResult2_Invoke(ISpeechRecoResult2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19148     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19149 }
19150 /*** ISpeechRecoResult methods ***/
19151 static FORCEINLINE HRESULT ISpeechRecoResult2_get_RecoContext(ISpeechRecoResult2* This,ISpeechRecoContext **RecoContext) {
19152     return This->lpVtbl->get_RecoContext(This,RecoContext);
19153 }
19154 static FORCEINLINE HRESULT ISpeechRecoResult2_get_Times(ISpeechRecoResult2* This,ISpeechRecoResultTimes **Times) {
19155     return This->lpVtbl->get_Times(This,Times);
19156 }
19157 static FORCEINLINE HRESULT ISpeechRecoResult2_putref_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat *Format) {
19158     return This->lpVtbl->putref_AudioFormat(This,Format);
19159 }
19160 static FORCEINLINE HRESULT ISpeechRecoResult2_get_AudioFormat(ISpeechRecoResult2* This,ISpeechAudioFormat **Format) {
19161     return This->lpVtbl->get_AudioFormat(This,Format);
19162 }
19163 static FORCEINLINE HRESULT ISpeechRecoResult2_get_PhraseInfo(ISpeechRecoResult2* This,ISpeechPhraseInfo **PhraseInfo) {
19164     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19165 }
19166 static FORCEINLINE HRESULT ISpeechRecoResult2_Alternates(ISpeechRecoResult2* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19167     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19168 }
19169 static FORCEINLINE HRESULT ISpeechRecoResult2_Audio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19170     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19171 }
19172 static FORCEINLINE HRESULT ISpeechRecoResult2_SpeakAudio(ISpeechRecoResult2* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19173     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19174 }
19175 static FORCEINLINE HRESULT ISpeechRecoResult2_SaveToMemory(ISpeechRecoResult2* This,VARIANT *ResultBlock) {
19176     return This->lpVtbl->SaveToMemory(This,ResultBlock);
19177 }
19178 static FORCEINLINE HRESULT ISpeechRecoResult2_DiscardResultInfo(ISpeechRecoResult2* This,SpeechDiscardType ValueTypes) {
19179     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19180 }
19181 /*** ISpeechRecoResult2 methods ***/
19182 static FORCEINLINE HRESULT ISpeechRecoResult2_SetTextFeedback(ISpeechRecoResult2* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
19183     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
19184 }
19185 #endif
19186 #endif
19187 
19188 #endif
19189 
19190 
19191 #endif  /* __ISpeechRecoResult2_INTERFACE_DEFINED__ */
19192 
19193 /*****************************************************************************
19194  * ISpeechRecoResultDispatch interface
19195  */
19196 #ifndef __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
19197 #define __ISpeechRecoResultDispatch_INTERFACE_DEFINED__
19198 
19199 DEFINE_GUID(IID_ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2);
19200 #if defined(__cplusplus) && !defined(CINTERFACE)
19201 MIDL_INTERFACE("6d60eb64-aced-40a6-bbf3-4e557f71dee2")
19202 ISpeechRecoResultDispatch : public IDispatch
19203 {
19204     virtual HRESULT STDMETHODCALLTYPE get_RecoContext(
19205         ISpeechRecoContext **RecoContext) = 0;
19206 
19207     virtual HRESULT STDMETHODCALLTYPE get_Times(
19208         ISpeechRecoResultTimes **Times) = 0;
19209 
19210     virtual HRESULT STDMETHODCALLTYPE putref_AudioFormat(
19211         ISpeechAudioFormat *Format) = 0;
19212 
19213     virtual HRESULT STDMETHODCALLTYPE get_AudioFormat(
19214         ISpeechAudioFormat **Format) = 0;
19215 
19216     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19217         ISpeechPhraseInfo **PhraseInfo) = 0;
19218 
19219     virtual HRESULT STDMETHODCALLTYPE Alternates(
19220         LONG RequestCount,
19221         LONG StartElement,
19222         LONG Elements,
19223         ISpeechPhraseAlternates **Alternates) = 0;
19224 
19225     virtual HRESULT STDMETHODCALLTYPE Audio(
19226         LONG StartElement,
19227         LONG Elements,
19228         ISpeechMemoryStream **Stream) = 0;
19229 
19230     virtual HRESULT STDMETHODCALLTYPE SpeakAudio(
19231         LONG StartElement,
19232         LONG Elements,
19233         SpeechVoiceSpeakFlags Flags,
19234         LONG *StreamNumber) = 0;
19235 
19236     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
19237         VARIANT *ResultBlock) = 0;
19238 
19239     virtual HRESULT STDMETHODCALLTYPE DiscardResultInfo(
19240         SpeechDiscardType ValueTypes) = 0;
19241 
19242     virtual HRESULT STDMETHODCALLTYPE GetXMLResult(
19243         SPXMLRESULTOPTIONS Options,
19244         BSTR *pResult) = 0;
19245 
19246     virtual HRESULT STDMETHODCALLTYPE GetXMLErrorInfo(
19247         LONG *LineNumber,
19248         BSTR *ScriptLine,
19249         BSTR *Source,
19250         BSTR *Description,
19251         HRESULT *ResultCode,
19252         VARIANT_BOOL *IsError) = 0;
19253 
19254     virtual HRESULT STDMETHODCALLTYPE SetTextFeedback(
19255         BSTR Feedback,
19256         VARIANT_BOOL WasSuccessful) = 0;
19257 
19258 };
19259 #ifdef __CRT_UUID_DECL
19260 __CRT_UUID_DECL(ISpeechRecoResultDispatch, 0x6d60eb64, 0xaced, 0x40a6, 0xbb,0xf3, 0x4e,0x55,0x7f,0x71,0xde,0xe2)
19261 #endif
19262 #else
19263 typedef struct ISpeechRecoResultDispatchVtbl {
19264     BEGIN_INTERFACE
19265 
19266     /*** IUnknown methods ***/
19267     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19268         ISpeechRecoResultDispatch *This,
19269         REFIID riid,
19270         void **ppvObject);
19271 
19272     ULONG (STDMETHODCALLTYPE *AddRef)(
19273         ISpeechRecoResultDispatch *This);
19274 
19275     ULONG (STDMETHODCALLTYPE *Release)(
19276         ISpeechRecoResultDispatch *This);
19277 
19278     /*** IDispatch methods ***/
19279     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19280         ISpeechRecoResultDispatch *This,
19281         UINT *pctinfo);
19282 
19283     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19284         ISpeechRecoResultDispatch *This,
19285         UINT iTInfo,
19286         LCID lcid,
19287         ITypeInfo **ppTInfo);
19288 
19289     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19290         ISpeechRecoResultDispatch *This,
19291         REFIID riid,
19292         LPOLESTR *rgszNames,
19293         UINT cNames,
19294         LCID lcid,
19295         DISPID *rgDispId);
19296 
19297     HRESULT (STDMETHODCALLTYPE *Invoke)(
19298         ISpeechRecoResultDispatch *This,
19299         DISPID dispIdMember,
19300         REFIID riid,
19301         LCID lcid,
19302         WORD wFlags,
19303         DISPPARAMS *pDispParams,
19304         VARIANT *pVarResult,
19305         EXCEPINFO *pExcepInfo,
19306         UINT *puArgErr);
19307 
19308     /*** ISpeechRecoResultDispatch methods ***/
19309     HRESULT (STDMETHODCALLTYPE *get_RecoContext)(
19310         ISpeechRecoResultDispatch *This,
19311         ISpeechRecoContext **RecoContext);
19312 
19313     HRESULT (STDMETHODCALLTYPE *get_Times)(
19314         ISpeechRecoResultDispatch *This,
19315         ISpeechRecoResultTimes **Times);
19316 
19317     HRESULT (STDMETHODCALLTYPE *putref_AudioFormat)(
19318         ISpeechRecoResultDispatch *This,
19319         ISpeechAudioFormat *Format);
19320 
19321     HRESULT (STDMETHODCALLTYPE *get_AudioFormat)(
19322         ISpeechRecoResultDispatch *This,
19323         ISpeechAudioFormat **Format);
19324 
19325     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19326         ISpeechRecoResultDispatch *This,
19327         ISpeechPhraseInfo **PhraseInfo);
19328 
19329     HRESULT (STDMETHODCALLTYPE *Alternates)(
19330         ISpeechRecoResultDispatch *This,
19331         LONG RequestCount,
19332         LONG StartElement,
19333         LONG Elements,
19334         ISpeechPhraseAlternates **Alternates);
19335 
19336     HRESULT (STDMETHODCALLTYPE *Audio)(
19337         ISpeechRecoResultDispatch *This,
19338         LONG StartElement,
19339         LONG Elements,
19340         ISpeechMemoryStream **Stream);
19341 
19342     HRESULT (STDMETHODCALLTYPE *SpeakAudio)(
19343         ISpeechRecoResultDispatch *This,
19344         LONG StartElement,
19345         LONG Elements,
19346         SpeechVoiceSpeakFlags Flags,
19347         LONG *StreamNumber);
19348 
19349     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
19350         ISpeechRecoResultDispatch *This,
19351         VARIANT *ResultBlock);
19352 
19353     HRESULT (STDMETHODCALLTYPE *DiscardResultInfo)(
19354         ISpeechRecoResultDispatch *This,
19355         SpeechDiscardType ValueTypes);
19356 
19357     HRESULT (STDMETHODCALLTYPE *GetXMLResult)(
19358         ISpeechRecoResultDispatch *This,
19359         SPXMLRESULTOPTIONS Options,
19360         BSTR *pResult);
19361 
19362     HRESULT (STDMETHODCALLTYPE *GetXMLErrorInfo)(
19363         ISpeechRecoResultDispatch *This,
19364         LONG *LineNumber,
19365         BSTR *ScriptLine,
19366         BSTR *Source,
19367         BSTR *Description,
19368         HRESULT *ResultCode,
19369         VARIANT_BOOL *IsError);
19370 
19371     HRESULT (STDMETHODCALLTYPE *SetTextFeedback)(
19372         ISpeechRecoResultDispatch *This,
19373         BSTR Feedback,
19374         VARIANT_BOOL WasSuccessful);
19375 
19376     END_INTERFACE
19377 } ISpeechRecoResultDispatchVtbl;
19378 
19379 interface ISpeechRecoResultDispatch {
19380     CONST_VTBL ISpeechRecoResultDispatchVtbl* lpVtbl;
19381 };
19382 
19383 #ifdef COBJMACROS
19384 #ifndef WIDL_C_INLINE_WRAPPERS
19385 /*** IUnknown methods ***/
19386 #define ISpeechRecoResultDispatch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19387 #define ISpeechRecoResultDispatch_AddRef(This) (This)->lpVtbl->AddRef(This)
19388 #define ISpeechRecoResultDispatch_Release(This) (This)->lpVtbl->Release(This)
19389 /*** IDispatch methods ***/
19390 #define ISpeechRecoResultDispatch_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19391 #define ISpeechRecoResultDispatch_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19392 #define ISpeechRecoResultDispatch_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19393 #define ISpeechRecoResultDispatch_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19394 /*** ISpeechRecoResultDispatch methods ***/
19395 #define ISpeechRecoResultDispatch_get_RecoContext(This,RecoContext) (This)->lpVtbl->get_RecoContext(This,RecoContext)
19396 #define ISpeechRecoResultDispatch_get_Times(This,Times) (This)->lpVtbl->get_Times(This,Times)
19397 #define ISpeechRecoResultDispatch_putref_AudioFormat(This,Format) (This)->lpVtbl->putref_AudioFormat(This,Format)
19398 #define ISpeechRecoResultDispatch_get_AudioFormat(This,Format) (This)->lpVtbl->get_AudioFormat(This,Format)
19399 #define ISpeechRecoResultDispatch_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19400 #define ISpeechRecoResultDispatch_Alternates(This,RequestCount,StartElement,Elements,Alternates) (This)->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates)
19401 #define ISpeechRecoResultDispatch_Audio(This,StartElement,Elements,Stream) (This)->lpVtbl->Audio(This,StartElement,Elements,Stream)
19402 #define ISpeechRecoResultDispatch_SpeakAudio(This,StartElement,Elements,Flags,StreamNumber) (This)->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber)
19403 #define ISpeechRecoResultDispatch_SaveToMemory(This,ResultBlock) (This)->lpVtbl->SaveToMemory(This,ResultBlock)
19404 #define ISpeechRecoResultDispatch_DiscardResultInfo(This,ValueTypes) (This)->lpVtbl->DiscardResultInfo(This,ValueTypes)
19405 #define ISpeechRecoResultDispatch_GetXMLResult(This,Options,pResult) (This)->lpVtbl->GetXMLResult(This,Options,pResult)
19406 #define ISpeechRecoResultDispatch_GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError) (This)->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError)
19407 #define ISpeechRecoResultDispatch_SetTextFeedback(This,Feedback,WasSuccessful) (This)->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful)
19408 #else
19409 /*** IUnknown methods ***/
19410 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_QueryInterface(ISpeechRecoResultDispatch* This,REFIID riid,void **ppvObject) {
19411     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19412 }
19413 static FORCEINLINE ULONG ISpeechRecoResultDispatch_AddRef(ISpeechRecoResultDispatch* This) {
19414     return This->lpVtbl->AddRef(This);
19415 }
19416 static FORCEINLINE ULONG ISpeechRecoResultDispatch_Release(ISpeechRecoResultDispatch* This) {
19417     return This->lpVtbl->Release(This);
19418 }
19419 /*** IDispatch methods ***/
19420 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetTypeInfoCount(ISpeechRecoResultDispatch* This,UINT *pctinfo) {
19421     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19422 }
19423 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetTypeInfo(ISpeechRecoResultDispatch* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19424     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19425 }
19426 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetIDsOfNames(ISpeechRecoResultDispatch* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19427     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19428 }
19429 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Invoke(ISpeechRecoResultDispatch* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19430     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19431 }
19432 /*** ISpeechRecoResultDispatch methods ***/
19433 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_RecoContext(ISpeechRecoResultDispatch* This,ISpeechRecoContext **RecoContext) {
19434     return This->lpVtbl->get_RecoContext(This,RecoContext);
19435 }
19436 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_Times(ISpeechRecoResultDispatch* This,ISpeechRecoResultTimes **Times) {
19437     return This->lpVtbl->get_Times(This,Times);
19438 }
19439 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_putref_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat *Format) {
19440     return This->lpVtbl->putref_AudioFormat(This,Format);
19441 }
19442 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_AudioFormat(ISpeechRecoResultDispatch* This,ISpeechAudioFormat **Format) {
19443     return This->lpVtbl->get_AudioFormat(This,Format);
19444 }
19445 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_get_PhraseInfo(ISpeechRecoResultDispatch* This,ISpeechPhraseInfo **PhraseInfo) {
19446     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19447 }
19448 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Alternates(ISpeechRecoResultDispatch* This,LONG RequestCount,LONG StartElement,LONG Elements,ISpeechPhraseAlternates **Alternates) {
19449     return This->lpVtbl->Alternates(This,RequestCount,StartElement,Elements,Alternates);
19450 }
19451 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_Audio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,ISpeechMemoryStream **Stream) {
19452     return This->lpVtbl->Audio(This,StartElement,Elements,Stream);
19453 }
19454 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SpeakAudio(ISpeechRecoResultDispatch* This,LONG StartElement,LONG Elements,SpeechVoiceSpeakFlags Flags,LONG *StreamNumber) {
19455     return This->lpVtbl->SpeakAudio(This,StartElement,Elements,Flags,StreamNumber);
19456 }
19457 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SaveToMemory(ISpeechRecoResultDispatch* This,VARIANT *ResultBlock) {
19458     return This->lpVtbl->SaveToMemory(This,ResultBlock);
19459 }
19460 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_DiscardResultInfo(ISpeechRecoResultDispatch* This,SpeechDiscardType ValueTypes) {
19461     return This->lpVtbl->DiscardResultInfo(This,ValueTypes);
19462 }
19463 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetXMLResult(ISpeechRecoResultDispatch* This,SPXMLRESULTOPTIONS Options,BSTR *pResult) {
19464     return This->lpVtbl->GetXMLResult(This,Options,pResult);
19465 }
19466 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_GetXMLErrorInfo(ISpeechRecoResultDispatch* This,LONG *LineNumber,BSTR *ScriptLine,BSTR *Source,BSTR *Description,HRESULT *ResultCode,VARIANT_BOOL *IsError) {
19467     return This->lpVtbl->GetXMLErrorInfo(This,LineNumber,ScriptLine,Source,Description,ResultCode,IsError);
19468 }
19469 static FORCEINLINE HRESULT ISpeechRecoResultDispatch_SetTextFeedback(ISpeechRecoResultDispatch* This,BSTR Feedback,VARIANT_BOOL WasSuccessful) {
19470     return This->lpVtbl->SetTextFeedback(This,Feedback,WasSuccessful);
19471 }
19472 #endif
19473 #endif
19474 
19475 #endif
19476 
19477 
19478 #endif  /* __ISpeechRecoResultDispatch_INTERFACE_DEFINED__ */
19479 
19480 /*****************************************************************************
19481  * ISpeechPhraseInfoBuilder interface
19482  */
19483 #ifndef __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19484 #define __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__
19485 
19486 DEFINE_GUID(IID_ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33);
19487 #if defined(__cplusplus) && !defined(CINTERFACE)
19488 MIDL_INTERFACE("3b151836-df3a-4e0a-846c-d2adc9334333")
19489 ISpeechPhraseInfoBuilder : public IDispatch
19490 {
19491     virtual HRESULT STDMETHODCALLTYPE RestorePhraseFromMemory(
19492         VARIANT *PhraseInMemory,
19493         ISpeechPhraseInfo **PhraseInfo) = 0;
19494 
19495 };
19496 #ifdef __CRT_UUID_DECL
19497 __CRT_UUID_DECL(ISpeechPhraseInfoBuilder, 0x3b151836, 0xdf3a, 0x4e0a, 0x84,0x6c, 0xd2,0xad,0xc9,0x33,0x43,0x33)
19498 #endif
19499 #else
19500 typedef struct ISpeechPhraseInfoBuilderVtbl {
19501     BEGIN_INTERFACE
19502 
19503     /*** IUnknown methods ***/
19504     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19505         ISpeechPhraseInfoBuilder *This,
19506         REFIID riid,
19507         void **ppvObject);
19508 
19509     ULONG (STDMETHODCALLTYPE *AddRef)(
19510         ISpeechPhraseInfoBuilder *This);
19511 
19512     ULONG (STDMETHODCALLTYPE *Release)(
19513         ISpeechPhraseInfoBuilder *This);
19514 
19515     /*** IDispatch methods ***/
19516     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19517         ISpeechPhraseInfoBuilder *This,
19518         UINT *pctinfo);
19519 
19520     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19521         ISpeechPhraseInfoBuilder *This,
19522         UINT iTInfo,
19523         LCID lcid,
19524         ITypeInfo **ppTInfo);
19525 
19526     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19527         ISpeechPhraseInfoBuilder *This,
19528         REFIID riid,
19529         LPOLESTR *rgszNames,
19530         UINT cNames,
19531         LCID lcid,
19532         DISPID *rgDispId);
19533 
19534     HRESULT (STDMETHODCALLTYPE *Invoke)(
19535         ISpeechPhraseInfoBuilder *This,
19536         DISPID dispIdMember,
19537         REFIID riid,
19538         LCID lcid,
19539         WORD wFlags,
19540         DISPPARAMS *pDispParams,
19541         VARIANT *pVarResult,
19542         EXCEPINFO *pExcepInfo,
19543         UINT *puArgErr);
19544 
19545     /*** ISpeechPhraseInfoBuilder methods ***/
19546     HRESULT (STDMETHODCALLTYPE *RestorePhraseFromMemory)(
19547         ISpeechPhraseInfoBuilder *This,
19548         VARIANT *PhraseInMemory,
19549         ISpeechPhraseInfo **PhraseInfo);
19550 
19551     END_INTERFACE
19552 } ISpeechPhraseInfoBuilderVtbl;
19553 
19554 interface ISpeechPhraseInfoBuilder {
19555     CONST_VTBL ISpeechPhraseInfoBuilderVtbl* lpVtbl;
19556 };
19557 
19558 #ifdef COBJMACROS
19559 #ifndef WIDL_C_INLINE_WRAPPERS
19560 /*** IUnknown methods ***/
19561 #define ISpeechPhraseInfoBuilder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19562 #define ISpeechPhraseInfoBuilder_AddRef(This) (This)->lpVtbl->AddRef(This)
19563 #define ISpeechPhraseInfoBuilder_Release(This) (This)->lpVtbl->Release(This)
19564 /*** IDispatch methods ***/
19565 #define ISpeechPhraseInfoBuilder_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19566 #define ISpeechPhraseInfoBuilder_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19567 #define ISpeechPhraseInfoBuilder_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19568 #define ISpeechPhraseInfoBuilder_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19569 /*** ISpeechPhraseInfoBuilder methods ***/
19570 #define ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo) (This)->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo)
19571 #else
19572 /*** IUnknown methods ***/
19573 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_QueryInterface(ISpeechPhraseInfoBuilder* This,REFIID riid,void **ppvObject) {
19574     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19575 }
19576 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_AddRef(ISpeechPhraseInfoBuilder* This) {
19577     return This->lpVtbl->AddRef(This);
19578 }
19579 static FORCEINLINE ULONG ISpeechPhraseInfoBuilder_Release(ISpeechPhraseInfoBuilder* This) {
19580     return This->lpVtbl->Release(This);
19581 }
19582 /*** IDispatch methods ***/
19583 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfoCount(ISpeechPhraseInfoBuilder* This,UINT *pctinfo) {
19584     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19585 }
19586 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetTypeInfo(ISpeechPhraseInfoBuilder* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19587     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19588 }
19589 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_GetIDsOfNames(ISpeechPhraseInfoBuilder* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19590     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19591 }
19592 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_Invoke(ISpeechPhraseInfoBuilder* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19593     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19594 }
19595 /*** ISpeechPhraseInfoBuilder methods ***/
19596 static FORCEINLINE HRESULT ISpeechPhraseInfoBuilder_RestorePhraseFromMemory(ISpeechPhraseInfoBuilder* This,VARIANT *PhraseInMemory,ISpeechPhraseInfo **PhraseInfo) {
19597     return This->lpVtbl->RestorePhraseFromMemory(This,PhraseInMemory,PhraseInfo);
19598 }
19599 #endif
19600 #endif
19601 
19602 #endif
19603 
19604 
19605 #endif  /* __ISpeechPhraseInfoBuilder_INTERFACE_DEFINED__ */
19606 
19607 /*****************************************************************************
19608  * ISpeechRecoResultTimes interface
19609  */
19610 #ifndef __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19611 #define __ISpeechRecoResultTimes_INTERFACE_DEFINED__
19612 
19613 DEFINE_GUID(IID_ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0);
19614 #if defined(__cplusplus) && !defined(CINTERFACE)
19615 MIDL_INTERFACE("62b3b8fb-f6e7-41be-bdcb-056b1c29efc0")
19616 ISpeechRecoResultTimes : public IDispatch
19617 {
19618     virtual HRESULT STDMETHODCALLTYPE get_StreamTime(
19619         VARIANT *Time) = 0;
19620 
19621     virtual HRESULT STDMETHODCALLTYPE get_Length(
19622         VARIANT *Length) = 0;
19623 
19624     virtual HRESULT STDMETHODCALLTYPE get_TickCount(
19625         LONG *TickCount) = 0;
19626 
19627     virtual HRESULT STDMETHODCALLTYPE get_OffsetFromStart(
19628         VARIANT *OffsetFromStart) = 0;
19629 
19630 };
19631 #ifdef __CRT_UUID_DECL
19632 __CRT_UUID_DECL(ISpeechRecoResultTimes, 0x62b3b8fb, 0xf6e7, 0x41be, 0xbd,0xcb, 0x05,0x6b,0x1c,0x29,0xef,0xc0)
19633 #endif
19634 #else
19635 typedef struct ISpeechRecoResultTimesVtbl {
19636     BEGIN_INTERFACE
19637 
19638     /*** IUnknown methods ***/
19639     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19640         ISpeechRecoResultTimes *This,
19641         REFIID riid,
19642         void **ppvObject);
19643 
19644     ULONG (STDMETHODCALLTYPE *AddRef)(
19645         ISpeechRecoResultTimes *This);
19646 
19647     ULONG (STDMETHODCALLTYPE *Release)(
19648         ISpeechRecoResultTimes *This);
19649 
19650     /*** IDispatch methods ***/
19651     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19652         ISpeechRecoResultTimes *This,
19653         UINT *pctinfo);
19654 
19655     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19656         ISpeechRecoResultTimes *This,
19657         UINT iTInfo,
19658         LCID lcid,
19659         ITypeInfo **ppTInfo);
19660 
19661     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19662         ISpeechRecoResultTimes *This,
19663         REFIID riid,
19664         LPOLESTR *rgszNames,
19665         UINT cNames,
19666         LCID lcid,
19667         DISPID *rgDispId);
19668 
19669     HRESULT (STDMETHODCALLTYPE *Invoke)(
19670         ISpeechRecoResultTimes *This,
19671         DISPID dispIdMember,
19672         REFIID riid,
19673         LCID lcid,
19674         WORD wFlags,
19675         DISPPARAMS *pDispParams,
19676         VARIANT *pVarResult,
19677         EXCEPINFO *pExcepInfo,
19678         UINT *puArgErr);
19679 
19680     /*** ISpeechRecoResultTimes methods ***/
19681     HRESULT (STDMETHODCALLTYPE *get_StreamTime)(
19682         ISpeechRecoResultTimes *This,
19683         VARIANT *Time);
19684 
19685     HRESULT (STDMETHODCALLTYPE *get_Length)(
19686         ISpeechRecoResultTimes *This,
19687         VARIANT *Length);
19688 
19689     HRESULT (STDMETHODCALLTYPE *get_TickCount)(
19690         ISpeechRecoResultTimes *This,
19691         LONG *TickCount);
19692 
19693     HRESULT (STDMETHODCALLTYPE *get_OffsetFromStart)(
19694         ISpeechRecoResultTimes *This,
19695         VARIANT *OffsetFromStart);
19696 
19697     END_INTERFACE
19698 } ISpeechRecoResultTimesVtbl;
19699 
19700 interface ISpeechRecoResultTimes {
19701     CONST_VTBL ISpeechRecoResultTimesVtbl* lpVtbl;
19702 };
19703 
19704 #ifdef COBJMACROS
19705 #ifndef WIDL_C_INLINE_WRAPPERS
19706 /*** IUnknown methods ***/
19707 #define ISpeechRecoResultTimes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19708 #define ISpeechRecoResultTimes_AddRef(This) (This)->lpVtbl->AddRef(This)
19709 #define ISpeechRecoResultTimes_Release(This) (This)->lpVtbl->Release(This)
19710 /*** IDispatch methods ***/
19711 #define ISpeechRecoResultTimes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19712 #define ISpeechRecoResultTimes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19713 #define ISpeechRecoResultTimes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19714 #define ISpeechRecoResultTimes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19715 /*** ISpeechRecoResultTimes methods ***/
19716 #define ISpeechRecoResultTimes_get_StreamTime(This,Time) (This)->lpVtbl->get_StreamTime(This,Time)
19717 #define ISpeechRecoResultTimes_get_Length(This,Length) (This)->lpVtbl->get_Length(This,Length)
19718 #define ISpeechRecoResultTimes_get_TickCount(This,TickCount) (This)->lpVtbl->get_TickCount(This,TickCount)
19719 #define ISpeechRecoResultTimes_get_OffsetFromStart(This,OffsetFromStart) (This)->lpVtbl->get_OffsetFromStart(This,OffsetFromStart)
19720 #else
19721 /*** IUnknown methods ***/
19722 static FORCEINLINE HRESULT ISpeechRecoResultTimes_QueryInterface(ISpeechRecoResultTimes* This,REFIID riid,void **ppvObject) {
19723     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19724 }
19725 static FORCEINLINE ULONG ISpeechRecoResultTimes_AddRef(ISpeechRecoResultTimes* This) {
19726     return This->lpVtbl->AddRef(This);
19727 }
19728 static FORCEINLINE ULONG ISpeechRecoResultTimes_Release(ISpeechRecoResultTimes* This) {
19729     return This->lpVtbl->Release(This);
19730 }
19731 /*** IDispatch methods ***/
19732 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfoCount(ISpeechRecoResultTimes* This,UINT *pctinfo) {
19733     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19734 }
19735 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetTypeInfo(ISpeechRecoResultTimes* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19736     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19737 }
19738 static FORCEINLINE HRESULT ISpeechRecoResultTimes_GetIDsOfNames(ISpeechRecoResultTimes* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19739     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19740 }
19741 static FORCEINLINE HRESULT ISpeechRecoResultTimes_Invoke(ISpeechRecoResultTimes* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19742     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19743 }
19744 /*** ISpeechRecoResultTimes methods ***/
19745 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_StreamTime(ISpeechRecoResultTimes* This,VARIANT *Time) {
19746     return This->lpVtbl->get_StreamTime(This,Time);
19747 }
19748 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_Length(ISpeechRecoResultTimes* This,VARIANT *Length) {
19749     return This->lpVtbl->get_Length(This,Length);
19750 }
19751 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_TickCount(ISpeechRecoResultTimes* This,LONG *TickCount) {
19752     return This->lpVtbl->get_TickCount(This,TickCount);
19753 }
19754 static FORCEINLINE HRESULT ISpeechRecoResultTimes_get_OffsetFromStart(ISpeechRecoResultTimes* This,VARIANT *OffsetFromStart) {
19755     return This->lpVtbl->get_OffsetFromStart(This,OffsetFromStart);
19756 }
19757 #endif
19758 #endif
19759 
19760 #endif
19761 
19762 
19763 #endif  /* __ISpeechRecoResultTimes_INTERFACE_DEFINED__ */
19764 
19765 /*****************************************************************************
19766  * ISpeechPhraseAlternate interface
19767  */
19768 #ifndef __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19769 #define __ISpeechPhraseAlternate_INTERFACE_DEFINED__
19770 
19771 DEFINE_GUID(IID_ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73);
19772 #if defined(__cplusplus) && !defined(CINTERFACE)
19773 MIDL_INTERFACE("27864a2a-2b9f-4cb8-92d3-0d2722fd1e73")
19774 ISpeechPhraseAlternate : public IDispatch
19775 {
19776     virtual HRESULT STDMETHODCALLTYPE get_RecoResult(
19777         ISpeechRecoResult **RecoResult) = 0;
19778 
19779     virtual HRESULT STDMETHODCALLTYPE get_StartElementInResult(
19780         LONG *StartElement) = 0;
19781 
19782     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElementsInResult(
19783         LONG *NumberOfElements) = 0;
19784 
19785     virtual HRESULT STDMETHODCALLTYPE get_PhraseInfo(
19786         ISpeechPhraseInfo **PhraseInfo) = 0;
19787 
19788     virtual HRESULT STDMETHODCALLTYPE Commit(
19789         ) = 0;
19790 
19791 };
19792 #ifdef __CRT_UUID_DECL
19793 __CRT_UUID_DECL(ISpeechPhraseAlternate, 0x27864a2a, 0x2b9f, 0x4cb8, 0x92,0xd3, 0x0d,0x27,0x22,0xfd,0x1e,0x73)
19794 #endif
19795 #else
19796 typedef struct ISpeechPhraseAlternateVtbl {
19797     BEGIN_INTERFACE
19798 
19799     /*** IUnknown methods ***/
19800     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19801         ISpeechPhraseAlternate *This,
19802         REFIID riid,
19803         void **ppvObject);
19804 
19805     ULONG (STDMETHODCALLTYPE *AddRef)(
19806         ISpeechPhraseAlternate *This);
19807 
19808     ULONG (STDMETHODCALLTYPE *Release)(
19809         ISpeechPhraseAlternate *This);
19810 
19811     /*** IDispatch methods ***/
19812     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19813         ISpeechPhraseAlternate *This,
19814         UINT *pctinfo);
19815 
19816     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19817         ISpeechPhraseAlternate *This,
19818         UINT iTInfo,
19819         LCID lcid,
19820         ITypeInfo **ppTInfo);
19821 
19822     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19823         ISpeechPhraseAlternate *This,
19824         REFIID riid,
19825         LPOLESTR *rgszNames,
19826         UINT cNames,
19827         LCID lcid,
19828         DISPID *rgDispId);
19829 
19830     HRESULT (STDMETHODCALLTYPE *Invoke)(
19831         ISpeechPhraseAlternate *This,
19832         DISPID dispIdMember,
19833         REFIID riid,
19834         LCID lcid,
19835         WORD wFlags,
19836         DISPPARAMS *pDispParams,
19837         VARIANT *pVarResult,
19838         EXCEPINFO *pExcepInfo,
19839         UINT *puArgErr);
19840 
19841     /*** ISpeechPhraseAlternate methods ***/
19842     HRESULT (STDMETHODCALLTYPE *get_RecoResult)(
19843         ISpeechPhraseAlternate *This,
19844         ISpeechRecoResult **RecoResult);
19845 
19846     HRESULT (STDMETHODCALLTYPE *get_StartElementInResult)(
19847         ISpeechPhraseAlternate *This,
19848         LONG *StartElement);
19849 
19850     HRESULT (STDMETHODCALLTYPE *get_NumberOfElementsInResult)(
19851         ISpeechPhraseAlternate *This,
19852         LONG *NumberOfElements);
19853 
19854     HRESULT (STDMETHODCALLTYPE *get_PhraseInfo)(
19855         ISpeechPhraseAlternate *This,
19856         ISpeechPhraseInfo **PhraseInfo);
19857 
19858     HRESULT (STDMETHODCALLTYPE *Commit)(
19859         ISpeechPhraseAlternate *This);
19860 
19861     END_INTERFACE
19862 } ISpeechPhraseAlternateVtbl;
19863 
19864 interface ISpeechPhraseAlternate {
19865     CONST_VTBL ISpeechPhraseAlternateVtbl* lpVtbl;
19866 };
19867 
19868 #ifdef COBJMACROS
19869 #ifndef WIDL_C_INLINE_WRAPPERS
19870 /*** IUnknown methods ***/
19871 #define ISpeechPhraseAlternate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19872 #define ISpeechPhraseAlternate_AddRef(This) (This)->lpVtbl->AddRef(This)
19873 #define ISpeechPhraseAlternate_Release(This) (This)->lpVtbl->Release(This)
19874 /*** IDispatch methods ***/
19875 #define ISpeechPhraseAlternate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
19876 #define ISpeechPhraseAlternate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
19877 #define ISpeechPhraseAlternate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
19878 #define ISpeechPhraseAlternate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
19879 /*** ISpeechPhraseAlternate methods ***/
19880 #define ISpeechPhraseAlternate_get_RecoResult(This,RecoResult) (This)->lpVtbl->get_RecoResult(This,RecoResult)
19881 #define ISpeechPhraseAlternate_get_StartElementInResult(This,StartElement) (This)->lpVtbl->get_StartElementInResult(This,StartElement)
19882 #define ISpeechPhraseAlternate_get_NumberOfElementsInResult(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements)
19883 #define ISpeechPhraseAlternate_get_PhraseInfo(This,PhraseInfo) (This)->lpVtbl->get_PhraseInfo(This,PhraseInfo)
19884 #define ISpeechPhraseAlternate_Commit(This) (This)->lpVtbl->Commit(This)
19885 #else
19886 /*** IUnknown methods ***/
19887 static FORCEINLINE HRESULT ISpeechPhraseAlternate_QueryInterface(ISpeechPhraseAlternate* This,REFIID riid,void **ppvObject) {
19888     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19889 }
19890 static FORCEINLINE ULONG ISpeechPhraseAlternate_AddRef(ISpeechPhraseAlternate* This) {
19891     return This->lpVtbl->AddRef(This);
19892 }
19893 static FORCEINLINE ULONG ISpeechPhraseAlternate_Release(ISpeechPhraseAlternate* This) {
19894     return This->lpVtbl->Release(This);
19895 }
19896 /*** IDispatch methods ***/
19897 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfoCount(ISpeechPhraseAlternate* This,UINT *pctinfo) {
19898     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
19899 }
19900 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetTypeInfo(ISpeechPhraseAlternate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
19901     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
19902 }
19903 static FORCEINLINE HRESULT ISpeechPhraseAlternate_GetIDsOfNames(ISpeechPhraseAlternate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
19904     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
19905 }
19906 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Invoke(ISpeechPhraseAlternate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
19907     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
19908 }
19909 /*** ISpeechPhraseAlternate methods ***/
19910 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_RecoResult(ISpeechPhraseAlternate* This,ISpeechRecoResult **RecoResult) {
19911     return This->lpVtbl->get_RecoResult(This,RecoResult);
19912 }
19913 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_StartElementInResult(ISpeechPhraseAlternate* This,LONG *StartElement) {
19914     return This->lpVtbl->get_StartElementInResult(This,StartElement);
19915 }
19916 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_NumberOfElementsInResult(ISpeechPhraseAlternate* This,LONG *NumberOfElements) {
19917     return This->lpVtbl->get_NumberOfElementsInResult(This,NumberOfElements);
19918 }
19919 static FORCEINLINE HRESULT ISpeechPhraseAlternate_get_PhraseInfo(ISpeechPhraseAlternate* This,ISpeechPhraseInfo **PhraseInfo) {
19920     return This->lpVtbl->get_PhraseInfo(This,PhraseInfo);
19921 }
19922 static FORCEINLINE HRESULT ISpeechPhraseAlternate_Commit(ISpeechPhraseAlternate* This) {
19923     return This->lpVtbl->Commit(This);
19924 }
19925 #endif
19926 #endif
19927 
19928 #endif
19929 
19930 
19931 #endif  /* __ISpeechPhraseAlternate_INTERFACE_DEFINED__ */
19932 
19933 /*****************************************************************************
19934  * ISpeechPhraseAlternates interface
19935  */
19936 #ifndef __ISpeechPhraseAlternates_INTERFACE_DEFINED__
19937 #define __ISpeechPhraseAlternates_INTERFACE_DEFINED__
19938 
19939 DEFINE_GUID(IID_ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2);
19940 #if defined(__cplusplus) && !defined(CINTERFACE)
19941 MIDL_INTERFACE("b238b6d5-f276-4c3d-a6c1-2974801c3cc2")
19942 ISpeechPhraseAlternates : public IDispatch
19943 {
19944     virtual HRESULT STDMETHODCALLTYPE get_Count(
19945         LONG *Count) = 0;
19946 
19947     virtual HRESULT STDMETHODCALLTYPE Item(
19948         LONG Index,
19949         ISpeechPhraseAlternate **PhraseAlternate) = 0;
19950 
19951     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
19952         IUnknown **EnumVARIANT) = 0;
19953 
19954 };
19955 #ifdef __CRT_UUID_DECL
19956 __CRT_UUID_DECL(ISpeechPhraseAlternates, 0xb238b6d5, 0xf276, 0x4c3d, 0xa6,0xc1, 0x29,0x74,0x80,0x1c,0x3c,0xc2)
19957 #endif
19958 #else
19959 typedef struct ISpeechPhraseAlternatesVtbl {
19960     BEGIN_INTERFACE
19961 
19962     /*** IUnknown methods ***/
19963     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19964         ISpeechPhraseAlternates *This,
19965         REFIID riid,
19966         void **ppvObject);
19967 
19968     ULONG (STDMETHODCALLTYPE *AddRef)(
19969         ISpeechPhraseAlternates *This);
19970 
19971     ULONG (STDMETHODCALLTYPE *Release)(
19972         ISpeechPhraseAlternates *This);
19973 
19974     /*** IDispatch methods ***/
19975     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
19976         ISpeechPhraseAlternates *This,
19977         UINT *pctinfo);
19978 
19979     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
19980         ISpeechPhraseAlternates *This,
19981         UINT iTInfo,
19982         LCID lcid,
19983         ITypeInfo **ppTInfo);
19984 
19985     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
19986         ISpeechPhraseAlternates *This,
19987         REFIID riid,
19988         LPOLESTR *rgszNames,
19989         UINT cNames,
19990         LCID lcid,
19991         DISPID *rgDispId);
19992 
19993     HRESULT (STDMETHODCALLTYPE *Invoke)(
19994         ISpeechPhraseAlternates *This,
19995         DISPID dispIdMember,
19996         REFIID riid,
19997         LCID lcid,
19998         WORD wFlags,
19999         DISPPARAMS *pDispParams,
20000         VARIANT *pVarResult,
20001         EXCEPINFO *pExcepInfo,
20002         UINT *puArgErr);
20003 
20004     /*** ISpeechPhraseAlternates methods ***/
20005     HRESULT (STDMETHODCALLTYPE *get_Count)(
20006         ISpeechPhraseAlternates *This,
20007         LONG *Count);
20008 
20009     HRESULT (STDMETHODCALLTYPE *Item)(
20010         ISpeechPhraseAlternates *This,
20011         LONG Index,
20012         ISpeechPhraseAlternate **PhraseAlternate);
20013 
20014     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20015         ISpeechPhraseAlternates *This,
20016         IUnknown **EnumVARIANT);
20017 
20018     END_INTERFACE
20019 } ISpeechPhraseAlternatesVtbl;
20020 
20021 interface ISpeechPhraseAlternates {
20022     CONST_VTBL ISpeechPhraseAlternatesVtbl* lpVtbl;
20023 };
20024 
20025 #ifdef COBJMACROS
20026 #ifndef WIDL_C_INLINE_WRAPPERS
20027 /*** IUnknown methods ***/
20028 #define ISpeechPhraseAlternates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20029 #define ISpeechPhraseAlternates_AddRef(This) (This)->lpVtbl->AddRef(This)
20030 #define ISpeechPhraseAlternates_Release(This) (This)->lpVtbl->Release(This)
20031 /*** IDispatch methods ***/
20032 #define ISpeechPhraseAlternates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20033 #define ISpeechPhraseAlternates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20034 #define ISpeechPhraseAlternates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20035 #define ISpeechPhraseAlternates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20036 /*** ISpeechPhraseAlternates methods ***/
20037 #define ISpeechPhraseAlternates_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20038 #define ISpeechPhraseAlternates_Item(This,Index,PhraseAlternate) (This)->lpVtbl->Item(This,Index,PhraseAlternate)
20039 #define ISpeechPhraseAlternates_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20040 #else
20041 /*** IUnknown methods ***/
20042 static FORCEINLINE HRESULT ISpeechPhraseAlternates_QueryInterface(ISpeechPhraseAlternates* This,REFIID riid,void **ppvObject) {
20043     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20044 }
20045 static FORCEINLINE ULONG ISpeechPhraseAlternates_AddRef(ISpeechPhraseAlternates* This) {
20046     return This->lpVtbl->AddRef(This);
20047 }
20048 static FORCEINLINE ULONG ISpeechPhraseAlternates_Release(ISpeechPhraseAlternates* This) {
20049     return This->lpVtbl->Release(This);
20050 }
20051 /*** IDispatch methods ***/
20052 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfoCount(ISpeechPhraseAlternates* This,UINT *pctinfo) {
20053     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20054 }
20055 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetTypeInfo(ISpeechPhraseAlternates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20056     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20057 }
20058 static FORCEINLINE HRESULT ISpeechPhraseAlternates_GetIDsOfNames(ISpeechPhraseAlternates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20059     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20060 }
20061 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Invoke(ISpeechPhraseAlternates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20062     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20063 }
20064 /*** ISpeechPhraseAlternates methods ***/
20065 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get_Count(ISpeechPhraseAlternates* This,LONG *Count) {
20066     return This->lpVtbl->get_Count(This,Count);
20067 }
20068 static FORCEINLINE HRESULT ISpeechPhraseAlternates_Item(ISpeechPhraseAlternates* This,LONG Index,ISpeechPhraseAlternate **PhraseAlternate) {
20069     return This->lpVtbl->Item(This,Index,PhraseAlternate);
20070 }
20071 static FORCEINLINE HRESULT ISpeechPhraseAlternates_get__NewEnum(ISpeechPhraseAlternates* This,IUnknown **EnumVARIANT) {
20072     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20073 }
20074 #endif
20075 #endif
20076 
20077 #endif
20078 
20079 
20080 #endif  /* __ISpeechPhraseAlternates_INTERFACE_DEFINED__ */
20081 
20082 /*****************************************************************************
20083  * ISpeechPhraseInfo interface
20084  */
20085 #ifndef __ISpeechPhraseInfo_INTERFACE_DEFINED__
20086 #define __ISpeechPhraseInfo_INTERFACE_DEFINED__
20087 
20088 DEFINE_GUID(IID_ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3);
20089 #if defined(__cplusplus) && !defined(CINTERFACE)
20090 MIDL_INTERFACE("961559cf-4e67-4662-8bf0-d93f1fcd61b3")
20091 ISpeechPhraseInfo : public IDispatch
20092 {
20093     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
20094         LONG *LanguageId) = 0;
20095 
20096     virtual HRESULT STDMETHODCALLTYPE get_GrammarId(
20097         VARIANT *GrammarId) = 0;
20098 
20099     virtual HRESULT STDMETHODCALLTYPE get_StartTime(
20100         VARIANT *StartTime) = 0;
20101 
20102     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamPosition(
20103         VARIANT *AudioStreamPosition) = 0;
20104 
20105     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
20106         LONG *pAudioSizeBytes) = 0;
20107 
20108     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
20109         LONG *RetainedSizeBytes) = 0;
20110 
20111     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
20112         LONG *AudioSizeTime) = 0;
20113 
20114     virtual HRESULT STDMETHODCALLTYPE get_Rule(
20115         ISpeechPhraseRule **Rule) = 0;
20116 
20117     virtual HRESULT STDMETHODCALLTYPE get_Properties(
20118         ISpeechPhraseProperties **Properties) = 0;
20119 
20120     virtual HRESULT STDMETHODCALLTYPE get_Elements(
20121         ISpeechPhraseElements **Elements) = 0;
20122 
20123     virtual HRESULT STDMETHODCALLTYPE get_Replacements(
20124         ISpeechPhraseReplacements **Replacements) = 0;
20125 
20126     virtual HRESULT STDMETHODCALLTYPE get_EngineId(
20127         BSTR *EngineIdGuid) = 0;
20128 
20129     virtual HRESULT STDMETHODCALLTYPE get_EnginePrivateData(
20130         VARIANT *PrivateData) = 0;
20131 
20132     virtual HRESULT STDMETHODCALLTYPE SaveToMemory(
20133         VARIANT *PhraseBlock) = 0;
20134 
20135     virtual HRESULT STDMETHODCALLTYPE GetText(
20136         LONG StartElement,
20137         LONG Elements,
20138         VARIANT_BOOL UseReplacements,
20139         BSTR *Text) = 0;
20140 
20141     virtual HRESULT STDMETHODCALLTYPE GetDisplayAttributes(
20142         LONG StartElement,
20143         LONG Elements,
20144         VARIANT_BOOL UseReplacements,
20145         SpeechDisplayAttributes *DisplayAttributes) = 0;
20146 
20147 };
20148 #ifdef __CRT_UUID_DECL
20149 __CRT_UUID_DECL(ISpeechPhraseInfo, 0x961559cf, 0x4e67, 0x4662, 0x8b,0xf0, 0xd9,0x3f,0x1f,0xcd,0x61,0xb3)
20150 #endif
20151 #else
20152 typedef struct ISpeechPhraseInfoVtbl {
20153     BEGIN_INTERFACE
20154 
20155     /*** IUnknown methods ***/
20156     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20157         ISpeechPhraseInfo *This,
20158         REFIID riid,
20159         void **ppvObject);
20160 
20161     ULONG (STDMETHODCALLTYPE *AddRef)(
20162         ISpeechPhraseInfo *This);
20163 
20164     ULONG (STDMETHODCALLTYPE *Release)(
20165         ISpeechPhraseInfo *This);
20166 
20167     /*** IDispatch methods ***/
20168     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20169         ISpeechPhraseInfo *This,
20170         UINT *pctinfo);
20171 
20172     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20173         ISpeechPhraseInfo *This,
20174         UINT iTInfo,
20175         LCID lcid,
20176         ITypeInfo **ppTInfo);
20177 
20178     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20179         ISpeechPhraseInfo *This,
20180         REFIID riid,
20181         LPOLESTR *rgszNames,
20182         UINT cNames,
20183         LCID lcid,
20184         DISPID *rgDispId);
20185 
20186     HRESULT (STDMETHODCALLTYPE *Invoke)(
20187         ISpeechPhraseInfo *This,
20188         DISPID dispIdMember,
20189         REFIID riid,
20190         LCID lcid,
20191         WORD wFlags,
20192         DISPPARAMS *pDispParams,
20193         VARIANT *pVarResult,
20194         EXCEPINFO *pExcepInfo,
20195         UINT *puArgErr);
20196 
20197     /*** ISpeechPhraseInfo methods ***/
20198     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
20199         ISpeechPhraseInfo *This,
20200         LONG *LanguageId);
20201 
20202     HRESULT (STDMETHODCALLTYPE *get_GrammarId)(
20203         ISpeechPhraseInfo *This,
20204         VARIANT *GrammarId);
20205 
20206     HRESULT (STDMETHODCALLTYPE *get_StartTime)(
20207         ISpeechPhraseInfo *This,
20208         VARIANT *StartTime);
20209 
20210     HRESULT (STDMETHODCALLTYPE *get_AudioStreamPosition)(
20211         ISpeechPhraseInfo *This,
20212         VARIANT *AudioStreamPosition);
20213 
20214     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20215         ISpeechPhraseInfo *This,
20216         LONG *pAudioSizeBytes);
20217 
20218     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20219         ISpeechPhraseInfo *This,
20220         LONG *RetainedSizeBytes);
20221 
20222     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20223         ISpeechPhraseInfo *This,
20224         LONG *AudioSizeTime);
20225 
20226     HRESULT (STDMETHODCALLTYPE *get_Rule)(
20227         ISpeechPhraseInfo *This,
20228         ISpeechPhraseRule **Rule);
20229 
20230     HRESULT (STDMETHODCALLTYPE *get_Properties)(
20231         ISpeechPhraseInfo *This,
20232         ISpeechPhraseProperties **Properties);
20233 
20234     HRESULT (STDMETHODCALLTYPE *get_Elements)(
20235         ISpeechPhraseInfo *This,
20236         ISpeechPhraseElements **Elements);
20237 
20238     HRESULT (STDMETHODCALLTYPE *get_Replacements)(
20239         ISpeechPhraseInfo *This,
20240         ISpeechPhraseReplacements **Replacements);
20241 
20242     HRESULT (STDMETHODCALLTYPE *get_EngineId)(
20243         ISpeechPhraseInfo *This,
20244         BSTR *EngineIdGuid);
20245 
20246     HRESULT (STDMETHODCALLTYPE *get_EnginePrivateData)(
20247         ISpeechPhraseInfo *This,
20248         VARIANT *PrivateData);
20249 
20250     HRESULT (STDMETHODCALLTYPE *SaveToMemory)(
20251         ISpeechPhraseInfo *This,
20252         VARIANT *PhraseBlock);
20253 
20254     HRESULT (STDMETHODCALLTYPE *GetText)(
20255         ISpeechPhraseInfo *This,
20256         LONG StartElement,
20257         LONG Elements,
20258         VARIANT_BOOL UseReplacements,
20259         BSTR *Text);
20260 
20261     HRESULT (STDMETHODCALLTYPE *GetDisplayAttributes)(
20262         ISpeechPhraseInfo *This,
20263         LONG StartElement,
20264         LONG Elements,
20265         VARIANT_BOOL UseReplacements,
20266         SpeechDisplayAttributes *DisplayAttributes);
20267 
20268     END_INTERFACE
20269 } ISpeechPhraseInfoVtbl;
20270 
20271 interface ISpeechPhraseInfo {
20272     CONST_VTBL ISpeechPhraseInfoVtbl* lpVtbl;
20273 };
20274 
20275 #ifdef COBJMACROS
20276 #ifndef WIDL_C_INLINE_WRAPPERS
20277 /*** IUnknown methods ***/
20278 #define ISpeechPhraseInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20279 #define ISpeechPhraseInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
20280 #define ISpeechPhraseInfo_Release(This) (This)->lpVtbl->Release(This)
20281 /*** IDispatch methods ***/
20282 #define ISpeechPhraseInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20283 #define ISpeechPhraseInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20284 #define ISpeechPhraseInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20285 #define ISpeechPhraseInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20286 /*** ISpeechPhraseInfo methods ***/
20287 #define ISpeechPhraseInfo_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
20288 #define ISpeechPhraseInfo_get_GrammarId(This,GrammarId) (This)->lpVtbl->get_GrammarId(This,GrammarId)
20289 #define ISpeechPhraseInfo_get_StartTime(This,StartTime) (This)->lpVtbl->get_StartTime(This,StartTime)
20290 #define ISpeechPhraseInfo_get_AudioStreamPosition(This,AudioStreamPosition) (This)->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition)
20291 #define ISpeechPhraseInfo_get_AudioSizeBytes(This,pAudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes)
20292 #define ISpeechPhraseInfo_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20293 #define ISpeechPhraseInfo_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20294 #define ISpeechPhraseInfo_get_Rule(This,Rule) (This)->lpVtbl->get_Rule(This,Rule)
20295 #define ISpeechPhraseInfo_get_Properties(This,Properties) (This)->lpVtbl->get_Properties(This,Properties)
20296 #define ISpeechPhraseInfo_get_Elements(This,Elements) (This)->lpVtbl->get_Elements(This,Elements)
20297 #define ISpeechPhraseInfo_get_Replacements(This,Replacements) (This)->lpVtbl->get_Replacements(This,Replacements)
20298 #define ISpeechPhraseInfo_get_EngineId(This,EngineIdGuid) (This)->lpVtbl->get_EngineId(This,EngineIdGuid)
20299 #define ISpeechPhraseInfo_get_EnginePrivateData(This,PrivateData) (This)->lpVtbl->get_EnginePrivateData(This,PrivateData)
20300 #define ISpeechPhraseInfo_SaveToMemory(This,PhraseBlock) (This)->lpVtbl->SaveToMemory(This,PhraseBlock)
20301 #define ISpeechPhraseInfo_GetText(This,StartElement,Elements,UseReplacements,Text) (This)->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text)
20302 #define ISpeechPhraseInfo_GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes) (This)->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes)
20303 #else
20304 /*** IUnknown methods ***/
20305 static FORCEINLINE HRESULT ISpeechPhraseInfo_QueryInterface(ISpeechPhraseInfo* This,REFIID riid,void **ppvObject) {
20306     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20307 }
20308 static FORCEINLINE ULONG ISpeechPhraseInfo_AddRef(ISpeechPhraseInfo* This) {
20309     return This->lpVtbl->AddRef(This);
20310 }
20311 static FORCEINLINE ULONG ISpeechPhraseInfo_Release(ISpeechPhraseInfo* This) {
20312     return This->lpVtbl->Release(This);
20313 }
20314 /*** IDispatch methods ***/
20315 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfoCount(ISpeechPhraseInfo* This,UINT *pctinfo) {
20316     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20317 }
20318 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetTypeInfo(ISpeechPhraseInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20319     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20320 }
20321 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetIDsOfNames(ISpeechPhraseInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20322     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20323 }
20324 static FORCEINLINE HRESULT ISpeechPhraseInfo_Invoke(ISpeechPhraseInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20325     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20326 }
20327 /*** ISpeechPhraseInfo methods ***/
20328 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_LanguageId(ISpeechPhraseInfo* This,LONG *LanguageId) {
20329     return This->lpVtbl->get_LanguageId(This,LanguageId);
20330 }
20331 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_GrammarId(ISpeechPhraseInfo* This,VARIANT *GrammarId) {
20332     return This->lpVtbl->get_GrammarId(This,GrammarId);
20333 }
20334 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_StartTime(ISpeechPhraseInfo* This,VARIANT *StartTime) {
20335     return This->lpVtbl->get_StartTime(This,StartTime);
20336 }
20337 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioStreamPosition(ISpeechPhraseInfo* This,VARIANT *AudioStreamPosition) {
20338     return This->lpVtbl->get_AudioStreamPosition(This,AudioStreamPosition);
20339 }
20340 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeBytes(ISpeechPhraseInfo* This,LONG *pAudioSizeBytes) {
20341     return This->lpVtbl->get_AudioSizeBytes(This,pAudioSizeBytes);
20342 }
20343 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_RetainedSizeBytes(ISpeechPhraseInfo* This,LONG *RetainedSizeBytes) {
20344     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20345 }
20346 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_AudioSizeTime(ISpeechPhraseInfo* This,LONG *AudioSizeTime) {
20347     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20348 }
20349 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Rule(ISpeechPhraseInfo* This,ISpeechPhraseRule **Rule) {
20350     return This->lpVtbl->get_Rule(This,Rule);
20351 }
20352 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Properties(ISpeechPhraseInfo* This,ISpeechPhraseProperties **Properties) {
20353     return This->lpVtbl->get_Properties(This,Properties);
20354 }
20355 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Elements(ISpeechPhraseInfo* This,ISpeechPhraseElements **Elements) {
20356     return This->lpVtbl->get_Elements(This,Elements);
20357 }
20358 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_Replacements(ISpeechPhraseInfo* This,ISpeechPhraseReplacements **Replacements) {
20359     return This->lpVtbl->get_Replacements(This,Replacements);
20360 }
20361 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EngineId(ISpeechPhraseInfo* This,BSTR *EngineIdGuid) {
20362     return This->lpVtbl->get_EngineId(This,EngineIdGuid);
20363 }
20364 static FORCEINLINE HRESULT ISpeechPhraseInfo_get_EnginePrivateData(ISpeechPhraseInfo* This,VARIANT *PrivateData) {
20365     return This->lpVtbl->get_EnginePrivateData(This,PrivateData);
20366 }
20367 static FORCEINLINE HRESULT ISpeechPhraseInfo_SaveToMemory(ISpeechPhraseInfo* This,VARIANT *PhraseBlock) {
20368     return This->lpVtbl->SaveToMemory(This,PhraseBlock);
20369 }
20370 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetText(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,BSTR *Text) {
20371     return This->lpVtbl->GetText(This,StartElement,Elements,UseReplacements,Text);
20372 }
20373 static FORCEINLINE HRESULT ISpeechPhraseInfo_GetDisplayAttributes(ISpeechPhraseInfo* This,LONG StartElement,LONG Elements,VARIANT_BOOL UseReplacements,SpeechDisplayAttributes *DisplayAttributes) {
20374     return This->lpVtbl->GetDisplayAttributes(This,StartElement,Elements,UseReplacements,DisplayAttributes);
20375 }
20376 #endif
20377 #endif
20378 
20379 #endif
20380 
20381 
20382 #endif  /* __ISpeechPhraseInfo_INTERFACE_DEFINED__ */
20383 
20384 /*****************************************************************************
20385  * ISpeechPhraseElement interface
20386  */
20387 #ifndef __ISpeechPhraseElement_INTERFACE_DEFINED__
20388 #define __ISpeechPhraseElement_INTERFACE_DEFINED__
20389 
20390 DEFINE_GUID(IID_ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4);
20391 #if defined(__cplusplus) && !defined(CINTERFACE)
20392 MIDL_INTERFACE("e6176f96-e373-4801-b223-3b62c068c0b4")
20393 ISpeechPhraseElement : public IDispatch
20394 {
20395     virtual HRESULT STDMETHODCALLTYPE get_AudioTimeOffset(
20396         LONG *AudioTimeOffset) = 0;
20397 
20398     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeTime(
20399         LONG *AudioSizeTime) = 0;
20400 
20401     virtual HRESULT STDMETHODCALLTYPE get_AudioStreamOffset(
20402         LONG *AudioStreamOffset) = 0;
20403 
20404     virtual HRESULT STDMETHODCALLTYPE get_AudioSizeBytes(
20405         LONG *AudioSizeBytes) = 0;
20406 
20407     virtual HRESULT STDMETHODCALLTYPE get_RetainedStreamOffset(
20408         LONG *RetainedStreamOffset) = 0;
20409 
20410     virtual HRESULT STDMETHODCALLTYPE get_RetainedSizeBytes(
20411         LONG *RetainedSizeBytes) = 0;
20412 
20413     virtual HRESULT STDMETHODCALLTYPE get_DisplayText(
20414         BSTR *DisplayText) = 0;
20415 
20416     virtual HRESULT STDMETHODCALLTYPE get_LexicalForm(
20417         BSTR *LexicalForm) = 0;
20418 
20419     virtual HRESULT STDMETHODCALLTYPE get_Pronunciation(
20420         VARIANT *Pronunciation) = 0;
20421 
20422     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20423         SpeechDisplayAttributes *DisplayAttributes) = 0;
20424 
20425     virtual HRESULT STDMETHODCALLTYPE get_RequiredConfidence(
20426         SpeechEngineConfidence *RequiredConfidence) = 0;
20427 
20428     virtual HRESULT STDMETHODCALLTYPE get_ActualConfidence(
20429         SpeechEngineConfidence *ActualConfidence) = 0;
20430 
20431     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
20432         float *EngineConfidence) = 0;
20433 
20434 };
20435 #ifdef __CRT_UUID_DECL
20436 __CRT_UUID_DECL(ISpeechPhraseElement, 0xe6176f96, 0xe373, 0x4801, 0xb2,0x23, 0x3b,0x62,0xc0,0x68,0xc0,0xb4)
20437 #endif
20438 #else
20439 typedef struct ISpeechPhraseElementVtbl {
20440     BEGIN_INTERFACE
20441 
20442     /*** IUnknown methods ***/
20443     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20444         ISpeechPhraseElement *This,
20445         REFIID riid,
20446         void **ppvObject);
20447 
20448     ULONG (STDMETHODCALLTYPE *AddRef)(
20449         ISpeechPhraseElement *This);
20450 
20451     ULONG (STDMETHODCALLTYPE *Release)(
20452         ISpeechPhraseElement *This);
20453 
20454     /*** IDispatch methods ***/
20455     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20456         ISpeechPhraseElement *This,
20457         UINT *pctinfo);
20458 
20459     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20460         ISpeechPhraseElement *This,
20461         UINT iTInfo,
20462         LCID lcid,
20463         ITypeInfo **ppTInfo);
20464 
20465     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20466         ISpeechPhraseElement *This,
20467         REFIID riid,
20468         LPOLESTR *rgszNames,
20469         UINT cNames,
20470         LCID lcid,
20471         DISPID *rgDispId);
20472 
20473     HRESULT (STDMETHODCALLTYPE *Invoke)(
20474         ISpeechPhraseElement *This,
20475         DISPID dispIdMember,
20476         REFIID riid,
20477         LCID lcid,
20478         WORD wFlags,
20479         DISPPARAMS *pDispParams,
20480         VARIANT *pVarResult,
20481         EXCEPINFO *pExcepInfo,
20482         UINT *puArgErr);
20483 
20484     /*** ISpeechPhraseElement methods ***/
20485     HRESULT (STDMETHODCALLTYPE *get_AudioTimeOffset)(
20486         ISpeechPhraseElement *This,
20487         LONG *AudioTimeOffset);
20488 
20489     HRESULT (STDMETHODCALLTYPE *get_AudioSizeTime)(
20490         ISpeechPhraseElement *This,
20491         LONG *AudioSizeTime);
20492 
20493     HRESULT (STDMETHODCALLTYPE *get_AudioStreamOffset)(
20494         ISpeechPhraseElement *This,
20495         LONG *AudioStreamOffset);
20496 
20497     HRESULT (STDMETHODCALLTYPE *get_AudioSizeBytes)(
20498         ISpeechPhraseElement *This,
20499         LONG *AudioSizeBytes);
20500 
20501     HRESULT (STDMETHODCALLTYPE *get_RetainedStreamOffset)(
20502         ISpeechPhraseElement *This,
20503         LONG *RetainedStreamOffset);
20504 
20505     HRESULT (STDMETHODCALLTYPE *get_RetainedSizeBytes)(
20506         ISpeechPhraseElement *This,
20507         LONG *RetainedSizeBytes);
20508 
20509     HRESULT (STDMETHODCALLTYPE *get_DisplayText)(
20510         ISpeechPhraseElement *This,
20511         BSTR *DisplayText);
20512 
20513     HRESULT (STDMETHODCALLTYPE *get_LexicalForm)(
20514         ISpeechPhraseElement *This,
20515         BSTR *LexicalForm);
20516 
20517     HRESULT (STDMETHODCALLTYPE *get_Pronunciation)(
20518         ISpeechPhraseElement *This,
20519         VARIANT *Pronunciation);
20520 
20521     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20522         ISpeechPhraseElement *This,
20523         SpeechDisplayAttributes *DisplayAttributes);
20524 
20525     HRESULT (STDMETHODCALLTYPE *get_RequiredConfidence)(
20526         ISpeechPhraseElement *This,
20527         SpeechEngineConfidence *RequiredConfidence);
20528 
20529     HRESULT (STDMETHODCALLTYPE *get_ActualConfidence)(
20530         ISpeechPhraseElement *This,
20531         SpeechEngineConfidence *ActualConfidence);
20532 
20533     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
20534         ISpeechPhraseElement *This,
20535         float *EngineConfidence);
20536 
20537     END_INTERFACE
20538 } ISpeechPhraseElementVtbl;
20539 
20540 interface ISpeechPhraseElement {
20541     CONST_VTBL ISpeechPhraseElementVtbl* lpVtbl;
20542 };
20543 
20544 #ifdef COBJMACROS
20545 #ifndef WIDL_C_INLINE_WRAPPERS
20546 /*** IUnknown methods ***/
20547 #define ISpeechPhraseElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20548 #define ISpeechPhraseElement_AddRef(This) (This)->lpVtbl->AddRef(This)
20549 #define ISpeechPhraseElement_Release(This) (This)->lpVtbl->Release(This)
20550 /*** IDispatch methods ***/
20551 #define ISpeechPhraseElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20552 #define ISpeechPhraseElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20553 #define ISpeechPhraseElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20554 #define ISpeechPhraseElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20555 /*** ISpeechPhraseElement methods ***/
20556 #define ISpeechPhraseElement_get_AudioTimeOffset(This,AudioTimeOffset) (This)->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset)
20557 #define ISpeechPhraseElement_get_AudioSizeTime(This,AudioSizeTime) (This)->lpVtbl->get_AudioSizeTime(This,AudioSizeTime)
20558 #define ISpeechPhraseElement_get_AudioStreamOffset(This,AudioStreamOffset) (This)->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset)
20559 #define ISpeechPhraseElement_get_AudioSizeBytes(This,AudioSizeBytes) (This)->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes)
20560 #define ISpeechPhraseElement_get_RetainedStreamOffset(This,RetainedStreamOffset) (This)->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset)
20561 #define ISpeechPhraseElement_get_RetainedSizeBytes(This,RetainedSizeBytes) (This)->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes)
20562 #define ISpeechPhraseElement_get_DisplayText(This,DisplayText) (This)->lpVtbl->get_DisplayText(This,DisplayText)
20563 #define ISpeechPhraseElement_get_LexicalForm(This,LexicalForm) (This)->lpVtbl->get_LexicalForm(This,LexicalForm)
20564 #define ISpeechPhraseElement_get_Pronunciation(This,Pronunciation) (This)->lpVtbl->get_Pronunciation(This,Pronunciation)
20565 #define ISpeechPhraseElement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20566 #define ISpeechPhraseElement_get_RequiredConfidence(This,RequiredConfidence) (This)->lpVtbl->get_RequiredConfidence(This,RequiredConfidence)
20567 #define ISpeechPhraseElement_get_ActualConfidence(This,ActualConfidence) (This)->lpVtbl->get_ActualConfidence(This,ActualConfidence)
20568 #define ISpeechPhraseElement_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
20569 #else
20570 /*** IUnknown methods ***/
20571 static FORCEINLINE HRESULT ISpeechPhraseElement_QueryInterface(ISpeechPhraseElement* This,REFIID riid,void **ppvObject) {
20572     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20573 }
20574 static FORCEINLINE ULONG ISpeechPhraseElement_AddRef(ISpeechPhraseElement* This) {
20575     return This->lpVtbl->AddRef(This);
20576 }
20577 static FORCEINLINE ULONG ISpeechPhraseElement_Release(ISpeechPhraseElement* This) {
20578     return This->lpVtbl->Release(This);
20579 }
20580 /*** IDispatch methods ***/
20581 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfoCount(ISpeechPhraseElement* This,UINT *pctinfo) {
20582     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20583 }
20584 static FORCEINLINE HRESULT ISpeechPhraseElement_GetTypeInfo(ISpeechPhraseElement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20585     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20586 }
20587 static FORCEINLINE HRESULT ISpeechPhraseElement_GetIDsOfNames(ISpeechPhraseElement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20588     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20589 }
20590 static FORCEINLINE HRESULT ISpeechPhraseElement_Invoke(ISpeechPhraseElement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20591     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20592 }
20593 /*** ISpeechPhraseElement methods ***/
20594 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioTimeOffset(ISpeechPhraseElement* This,LONG *AudioTimeOffset) {
20595     return This->lpVtbl->get_AudioTimeOffset(This,AudioTimeOffset);
20596 }
20597 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeTime(ISpeechPhraseElement* This,LONG *AudioSizeTime) {
20598     return This->lpVtbl->get_AudioSizeTime(This,AudioSizeTime);
20599 }
20600 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioStreamOffset(ISpeechPhraseElement* This,LONG *AudioStreamOffset) {
20601     return This->lpVtbl->get_AudioStreamOffset(This,AudioStreamOffset);
20602 }
20603 static FORCEINLINE HRESULT ISpeechPhraseElement_get_AudioSizeBytes(ISpeechPhraseElement* This,LONG *AudioSizeBytes) {
20604     return This->lpVtbl->get_AudioSizeBytes(This,AudioSizeBytes);
20605 }
20606 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedStreamOffset(ISpeechPhraseElement* This,LONG *RetainedStreamOffset) {
20607     return This->lpVtbl->get_RetainedStreamOffset(This,RetainedStreamOffset);
20608 }
20609 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RetainedSizeBytes(ISpeechPhraseElement* This,LONG *RetainedSizeBytes) {
20610     return This->lpVtbl->get_RetainedSizeBytes(This,RetainedSizeBytes);
20611 }
20612 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayText(ISpeechPhraseElement* This,BSTR *DisplayText) {
20613     return This->lpVtbl->get_DisplayText(This,DisplayText);
20614 }
20615 static FORCEINLINE HRESULT ISpeechPhraseElement_get_LexicalForm(ISpeechPhraseElement* This,BSTR *LexicalForm) {
20616     return This->lpVtbl->get_LexicalForm(This,LexicalForm);
20617 }
20618 static FORCEINLINE HRESULT ISpeechPhraseElement_get_Pronunciation(ISpeechPhraseElement* This,VARIANT *Pronunciation) {
20619     return This->lpVtbl->get_Pronunciation(This,Pronunciation);
20620 }
20621 static FORCEINLINE HRESULT ISpeechPhraseElement_get_DisplayAttributes(ISpeechPhraseElement* This,SpeechDisplayAttributes *DisplayAttributes) {
20622     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
20623 }
20624 static FORCEINLINE HRESULT ISpeechPhraseElement_get_RequiredConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *RequiredConfidence) {
20625     return This->lpVtbl->get_RequiredConfidence(This,RequiredConfidence);
20626 }
20627 static FORCEINLINE HRESULT ISpeechPhraseElement_get_ActualConfidence(ISpeechPhraseElement* This,SpeechEngineConfidence *ActualConfidence) {
20628     return This->lpVtbl->get_ActualConfidence(This,ActualConfidence);
20629 }
20630 static FORCEINLINE HRESULT ISpeechPhraseElement_get_EngineConfidence(ISpeechPhraseElement* This,float *EngineConfidence) {
20631     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
20632 }
20633 #endif
20634 #endif
20635 
20636 #endif
20637 
20638 
20639 #endif  /* __ISpeechPhraseElement_INTERFACE_DEFINED__ */
20640 
20641 /*****************************************************************************
20642  * ISpeechPhraseElements interface
20643  */
20644 #ifndef __ISpeechPhraseElements_INTERFACE_DEFINED__
20645 #define __ISpeechPhraseElements_INTERFACE_DEFINED__
20646 
20647 DEFINE_GUID(IID_ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3);
20648 #if defined(__cplusplus) && !defined(CINTERFACE)
20649 MIDL_INTERFACE("0626b328-3478-467d-a0b3-d0853b93dda3")
20650 ISpeechPhraseElements : public IDispatch
20651 {
20652     virtual HRESULT STDMETHODCALLTYPE get_Count(
20653         LONG *Count) = 0;
20654 
20655     virtual HRESULT STDMETHODCALLTYPE Item(
20656         LONG Index,
20657         ISpeechPhraseElement **Element) = 0;
20658 
20659     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20660         IUnknown **EnumVARIANT) = 0;
20661 
20662 };
20663 #ifdef __CRT_UUID_DECL
20664 __CRT_UUID_DECL(ISpeechPhraseElements, 0x0626b328, 0x3478, 0x467d, 0xa0,0xb3, 0xd0,0x85,0x3b,0x93,0xdd,0xa3)
20665 #endif
20666 #else
20667 typedef struct ISpeechPhraseElementsVtbl {
20668     BEGIN_INTERFACE
20669 
20670     /*** IUnknown methods ***/
20671     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20672         ISpeechPhraseElements *This,
20673         REFIID riid,
20674         void **ppvObject);
20675 
20676     ULONG (STDMETHODCALLTYPE *AddRef)(
20677         ISpeechPhraseElements *This);
20678 
20679     ULONG (STDMETHODCALLTYPE *Release)(
20680         ISpeechPhraseElements *This);
20681 
20682     /*** IDispatch methods ***/
20683     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20684         ISpeechPhraseElements *This,
20685         UINT *pctinfo);
20686 
20687     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20688         ISpeechPhraseElements *This,
20689         UINT iTInfo,
20690         LCID lcid,
20691         ITypeInfo **ppTInfo);
20692 
20693     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20694         ISpeechPhraseElements *This,
20695         REFIID riid,
20696         LPOLESTR *rgszNames,
20697         UINT cNames,
20698         LCID lcid,
20699         DISPID *rgDispId);
20700 
20701     HRESULT (STDMETHODCALLTYPE *Invoke)(
20702         ISpeechPhraseElements *This,
20703         DISPID dispIdMember,
20704         REFIID riid,
20705         LCID lcid,
20706         WORD wFlags,
20707         DISPPARAMS *pDispParams,
20708         VARIANT *pVarResult,
20709         EXCEPINFO *pExcepInfo,
20710         UINT *puArgErr);
20711 
20712     /*** ISpeechPhraseElements methods ***/
20713     HRESULT (STDMETHODCALLTYPE *get_Count)(
20714         ISpeechPhraseElements *This,
20715         LONG *Count);
20716 
20717     HRESULT (STDMETHODCALLTYPE *Item)(
20718         ISpeechPhraseElements *This,
20719         LONG Index,
20720         ISpeechPhraseElement **Element);
20721 
20722     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
20723         ISpeechPhraseElements *This,
20724         IUnknown **EnumVARIANT);
20725 
20726     END_INTERFACE
20727 } ISpeechPhraseElementsVtbl;
20728 
20729 interface ISpeechPhraseElements {
20730     CONST_VTBL ISpeechPhraseElementsVtbl* lpVtbl;
20731 };
20732 
20733 #ifdef COBJMACROS
20734 #ifndef WIDL_C_INLINE_WRAPPERS
20735 /*** IUnknown methods ***/
20736 #define ISpeechPhraseElements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20737 #define ISpeechPhraseElements_AddRef(This) (This)->lpVtbl->AddRef(This)
20738 #define ISpeechPhraseElements_Release(This) (This)->lpVtbl->Release(This)
20739 /*** IDispatch methods ***/
20740 #define ISpeechPhraseElements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20741 #define ISpeechPhraseElements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20742 #define ISpeechPhraseElements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20743 #define ISpeechPhraseElements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20744 /*** ISpeechPhraseElements methods ***/
20745 #define ISpeechPhraseElements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
20746 #define ISpeechPhraseElements_Item(This,Index,Element) (This)->lpVtbl->Item(This,Index,Element)
20747 #define ISpeechPhraseElements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
20748 #else
20749 /*** IUnknown methods ***/
20750 static FORCEINLINE HRESULT ISpeechPhraseElements_QueryInterface(ISpeechPhraseElements* This,REFIID riid,void **ppvObject) {
20751     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20752 }
20753 static FORCEINLINE ULONG ISpeechPhraseElements_AddRef(ISpeechPhraseElements* This) {
20754     return This->lpVtbl->AddRef(This);
20755 }
20756 static FORCEINLINE ULONG ISpeechPhraseElements_Release(ISpeechPhraseElements* This) {
20757     return This->lpVtbl->Release(This);
20758 }
20759 /*** IDispatch methods ***/
20760 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfoCount(ISpeechPhraseElements* This,UINT *pctinfo) {
20761     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20762 }
20763 static FORCEINLINE HRESULT ISpeechPhraseElements_GetTypeInfo(ISpeechPhraseElements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20764     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20765 }
20766 static FORCEINLINE HRESULT ISpeechPhraseElements_GetIDsOfNames(ISpeechPhraseElements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20767     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20768 }
20769 static FORCEINLINE HRESULT ISpeechPhraseElements_Invoke(ISpeechPhraseElements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20770     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20771 }
20772 /*** ISpeechPhraseElements methods ***/
20773 static FORCEINLINE HRESULT ISpeechPhraseElements_get_Count(ISpeechPhraseElements* This,LONG *Count) {
20774     return This->lpVtbl->get_Count(This,Count);
20775 }
20776 static FORCEINLINE HRESULT ISpeechPhraseElements_Item(ISpeechPhraseElements* This,LONG Index,ISpeechPhraseElement **Element) {
20777     return This->lpVtbl->Item(This,Index,Element);
20778 }
20779 static FORCEINLINE HRESULT ISpeechPhraseElements_get__NewEnum(ISpeechPhraseElements* This,IUnknown **EnumVARIANT) {
20780     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
20781 }
20782 #endif
20783 #endif
20784 
20785 #endif
20786 
20787 
20788 #endif  /* __ISpeechPhraseElements_INTERFACE_DEFINED__ */
20789 
20790 /*****************************************************************************
20791  * ISpeechPhraseReplacement interface
20792  */
20793 #ifndef __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20794 #define __ISpeechPhraseReplacement_INTERFACE_DEFINED__
20795 
20796 DEFINE_GUID(IID_ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02);
20797 #if defined(__cplusplus) && !defined(CINTERFACE)
20798 MIDL_INTERFACE("2890a410-53a7-4fb5-94ec-06d4998e3d02")
20799 ISpeechPhraseReplacement : public IDispatch
20800 {
20801     virtual HRESULT STDMETHODCALLTYPE get_DisplayAttributes(
20802         SpeechDisplayAttributes *DisplayAttributes) = 0;
20803 
20804     virtual HRESULT STDMETHODCALLTYPE get_Text(
20805         BSTR *Text) = 0;
20806 
20807     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
20808         LONG *FirstElement) = 0;
20809 
20810     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
20811         LONG *NumberOfElements) = 0;
20812 
20813 };
20814 #ifdef __CRT_UUID_DECL
20815 __CRT_UUID_DECL(ISpeechPhraseReplacement, 0x2890a410, 0x53a7, 0x4fb5, 0x94,0xec, 0x06,0xd4,0x99,0x8e,0x3d,0x02)
20816 #endif
20817 #else
20818 typedef struct ISpeechPhraseReplacementVtbl {
20819     BEGIN_INTERFACE
20820 
20821     /*** IUnknown methods ***/
20822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20823         ISpeechPhraseReplacement *This,
20824         REFIID riid,
20825         void **ppvObject);
20826 
20827     ULONG (STDMETHODCALLTYPE *AddRef)(
20828         ISpeechPhraseReplacement *This);
20829 
20830     ULONG (STDMETHODCALLTYPE *Release)(
20831         ISpeechPhraseReplacement *This);
20832 
20833     /*** IDispatch methods ***/
20834     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20835         ISpeechPhraseReplacement *This,
20836         UINT *pctinfo);
20837 
20838     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20839         ISpeechPhraseReplacement *This,
20840         UINT iTInfo,
20841         LCID lcid,
20842         ITypeInfo **ppTInfo);
20843 
20844     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
20845         ISpeechPhraseReplacement *This,
20846         REFIID riid,
20847         LPOLESTR *rgszNames,
20848         UINT cNames,
20849         LCID lcid,
20850         DISPID *rgDispId);
20851 
20852     HRESULT (STDMETHODCALLTYPE *Invoke)(
20853         ISpeechPhraseReplacement *This,
20854         DISPID dispIdMember,
20855         REFIID riid,
20856         LCID lcid,
20857         WORD wFlags,
20858         DISPPARAMS *pDispParams,
20859         VARIANT *pVarResult,
20860         EXCEPINFO *pExcepInfo,
20861         UINT *puArgErr);
20862 
20863     /*** ISpeechPhraseReplacement methods ***/
20864     HRESULT (STDMETHODCALLTYPE *get_DisplayAttributes)(
20865         ISpeechPhraseReplacement *This,
20866         SpeechDisplayAttributes *DisplayAttributes);
20867 
20868     HRESULT (STDMETHODCALLTYPE *get_Text)(
20869         ISpeechPhraseReplacement *This,
20870         BSTR *Text);
20871 
20872     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
20873         ISpeechPhraseReplacement *This,
20874         LONG *FirstElement);
20875 
20876     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
20877         ISpeechPhraseReplacement *This,
20878         LONG *NumberOfElements);
20879 
20880     END_INTERFACE
20881 } ISpeechPhraseReplacementVtbl;
20882 
20883 interface ISpeechPhraseReplacement {
20884     CONST_VTBL ISpeechPhraseReplacementVtbl* lpVtbl;
20885 };
20886 
20887 #ifdef COBJMACROS
20888 #ifndef WIDL_C_INLINE_WRAPPERS
20889 /*** IUnknown methods ***/
20890 #define ISpeechPhraseReplacement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20891 #define ISpeechPhraseReplacement_AddRef(This) (This)->lpVtbl->AddRef(This)
20892 #define ISpeechPhraseReplacement_Release(This) (This)->lpVtbl->Release(This)
20893 /*** IDispatch methods ***/
20894 #define ISpeechPhraseReplacement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
20895 #define ISpeechPhraseReplacement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
20896 #define ISpeechPhraseReplacement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
20897 #define ISpeechPhraseReplacement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
20898 /*** ISpeechPhraseReplacement methods ***/
20899 #define ISpeechPhraseReplacement_get_DisplayAttributes(This,DisplayAttributes) (This)->lpVtbl->get_DisplayAttributes(This,DisplayAttributes)
20900 #define ISpeechPhraseReplacement_get_Text(This,Text) (This)->lpVtbl->get_Text(This,Text)
20901 #define ISpeechPhraseReplacement_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
20902 #define ISpeechPhraseReplacement_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
20903 #else
20904 /*** IUnknown methods ***/
20905 static FORCEINLINE HRESULT ISpeechPhraseReplacement_QueryInterface(ISpeechPhraseReplacement* This,REFIID riid,void **ppvObject) {
20906     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20907 }
20908 static FORCEINLINE ULONG ISpeechPhraseReplacement_AddRef(ISpeechPhraseReplacement* This) {
20909     return This->lpVtbl->AddRef(This);
20910 }
20911 static FORCEINLINE ULONG ISpeechPhraseReplacement_Release(ISpeechPhraseReplacement* This) {
20912     return This->lpVtbl->Release(This);
20913 }
20914 /*** IDispatch methods ***/
20915 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfoCount(ISpeechPhraseReplacement* This,UINT *pctinfo) {
20916     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
20917 }
20918 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetTypeInfo(ISpeechPhraseReplacement* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
20919     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
20920 }
20921 static FORCEINLINE HRESULT ISpeechPhraseReplacement_GetIDsOfNames(ISpeechPhraseReplacement* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
20922     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
20923 }
20924 static FORCEINLINE HRESULT ISpeechPhraseReplacement_Invoke(ISpeechPhraseReplacement* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
20925     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
20926 }
20927 /*** ISpeechPhraseReplacement methods ***/
20928 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_DisplayAttributes(ISpeechPhraseReplacement* This,SpeechDisplayAttributes *DisplayAttributes) {
20929     return This->lpVtbl->get_DisplayAttributes(This,DisplayAttributes);
20930 }
20931 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_Text(ISpeechPhraseReplacement* This,BSTR *Text) {
20932     return This->lpVtbl->get_Text(This,Text);
20933 }
20934 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_FirstElement(ISpeechPhraseReplacement* This,LONG *FirstElement) {
20935     return This->lpVtbl->get_FirstElement(This,FirstElement);
20936 }
20937 static FORCEINLINE HRESULT ISpeechPhraseReplacement_get_NumberOfElements(ISpeechPhraseReplacement* This,LONG *NumberOfElements) {
20938     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
20939 }
20940 #endif
20941 #endif
20942 
20943 #endif
20944 
20945 
20946 #endif  /* __ISpeechPhraseReplacement_INTERFACE_DEFINED__ */
20947 
20948 /*****************************************************************************
20949  * ISpeechPhraseReplacements interface
20950  */
20951 #ifndef __ISpeechPhraseReplacements_INTERFACE_DEFINED__
20952 #define __ISpeechPhraseReplacements_INTERFACE_DEFINED__
20953 
20954 DEFINE_GUID(IID_ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05);
20955 #if defined(__cplusplus) && !defined(CINTERFACE)
20956 MIDL_INTERFACE("38bc662f-2257-4525-959e-2069d2596c05")
20957 ISpeechPhraseReplacements : public IDispatch
20958 {
20959     virtual HRESULT STDMETHODCALLTYPE get_Count(
20960         LONG *Count) = 0;
20961 
20962     virtual HRESULT STDMETHODCALLTYPE Item(
20963         LONG Index,
20964         ISpeechPhraseReplacement **Reps) = 0;
20965 
20966     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
20967         IUnknown **EnumVARIANT) = 0;
20968 
20969 };
20970 #ifdef __CRT_UUID_DECL
20971 __CRT_UUID_DECL(ISpeechPhraseReplacements, 0x38bc662f, 0x2257, 0x4525, 0x95,0x9e, 0x20,0x69,0xd2,0x59,0x6c,0x05)
20972 #endif
20973 #else
20974 typedef struct ISpeechPhraseReplacementsVtbl {
20975     BEGIN_INTERFACE
20976 
20977     /*** IUnknown methods ***/
20978     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20979         ISpeechPhraseReplacements *This,
20980         REFIID riid,
20981         void **ppvObject);
20982 
20983     ULONG (STDMETHODCALLTYPE *AddRef)(
20984         ISpeechPhraseReplacements *This);
20985 
20986     ULONG (STDMETHODCALLTYPE *Release)(
20987         ISpeechPhraseReplacements *This);
20988 
20989     /*** IDispatch methods ***/
20990     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
20991         ISpeechPhraseReplacements *This,
20992         UINT *pctinfo);
20993 
20994     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
20995         ISpeechPhraseReplacements *This,
20996         UINT iTInfo,
20997         LCID lcid,
20998         ITypeInfo **ppTInfo);
20999 
21000     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21001         ISpeechPhraseReplacements *This,
21002         REFIID riid,
21003         LPOLESTR *rgszNames,
21004         UINT cNames,
21005         LCID lcid,
21006         DISPID *rgDispId);
21007 
21008     HRESULT (STDMETHODCALLTYPE *Invoke)(
21009         ISpeechPhraseReplacements *This,
21010         DISPID dispIdMember,
21011         REFIID riid,
21012         LCID lcid,
21013         WORD wFlags,
21014         DISPPARAMS *pDispParams,
21015         VARIANT *pVarResult,
21016         EXCEPINFO *pExcepInfo,
21017         UINT *puArgErr);
21018 
21019     /*** ISpeechPhraseReplacements methods ***/
21020     HRESULT (STDMETHODCALLTYPE *get_Count)(
21021         ISpeechPhraseReplacements *This,
21022         LONG *Count);
21023 
21024     HRESULT (STDMETHODCALLTYPE *Item)(
21025         ISpeechPhraseReplacements *This,
21026         LONG Index,
21027         ISpeechPhraseReplacement **Reps);
21028 
21029     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21030         ISpeechPhraseReplacements *This,
21031         IUnknown **EnumVARIANT);
21032 
21033     END_INTERFACE
21034 } ISpeechPhraseReplacementsVtbl;
21035 
21036 interface ISpeechPhraseReplacements {
21037     CONST_VTBL ISpeechPhraseReplacementsVtbl* lpVtbl;
21038 };
21039 
21040 #ifdef COBJMACROS
21041 #ifndef WIDL_C_INLINE_WRAPPERS
21042 /*** IUnknown methods ***/
21043 #define ISpeechPhraseReplacements_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21044 #define ISpeechPhraseReplacements_AddRef(This) (This)->lpVtbl->AddRef(This)
21045 #define ISpeechPhraseReplacements_Release(This) (This)->lpVtbl->Release(This)
21046 /*** IDispatch methods ***/
21047 #define ISpeechPhraseReplacements_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21048 #define ISpeechPhraseReplacements_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21049 #define ISpeechPhraseReplacements_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21050 #define ISpeechPhraseReplacements_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21051 /*** ISpeechPhraseReplacements methods ***/
21052 #define ISpeechPhraseReplacements_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21053 #define ISpeechPhraseReplacements_Item(This,Index,Reps) (This)->lpVtbl->Item(This,Index,Reps)
21054 #define ISpeechPhraseReplacements_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21055 #else
21056 /*** IUnknown methods ***/
21057 static FORCEINLINE HRESULT ISpeechPhraseReplacements_QueryInterface(ISpeechPhraseReplacements* This,REFIID riid,void **ppvObject) {
21058     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21059 }
21060 static FORCEINLINE ULONG ISpeechPhraseReplacements_AddRef(ISpeechPhraseReplacements* This) {
21061     return This->lpVtbl->AddRef(This);
21062 }
21063 static FORCEINLINE ULONG ISpeechPhraseReplacements_Release(ISpeechPhraseReplacements* This) {
21064     return This->lpVtbl->Release(This);
21065 }
21066 /*** IDispatch methods ***/
21067 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfoCount(ISpeechPhraseReplacements* This,UINT *pctinfo) {
21068     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21069 }
21070 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetTypeInfo(ISpeechPhraseReplacements* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21071     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21072 }
21073 static FORCEINLINE HRESULT ISpeechPhraseReplacements_GetIDsOfNames(ISpeechPhraseReplacements* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21074     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21075 }
21076 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Invoke(ISpeechPhraseReplacements* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21077     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21078 }
21079 /*** ISpeechPhraseReplacements methods ***/
21080 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get_Count(ISpeechPhraseReplacements* This,LONG *Count) {
21081     return This->lpVtbl->get_Count(This,Count);
21082 }
21083 static FORCEINLINE HRESULT ISpeechPhraseReplacements_Item(ISpeechPhraseReplacements* This,LONG Index,ISpeechPhraseReplacement **Reps) {
21084     return This->lpVtbl->Item(This,Index,Reps);
21085 }
21086 static FORCEINLINE HRESULT ISpeechPhraseReplacements_get__NewEnum(ISpeechPhraseReplacements* This,IUnknown **EnumVARIANT) {
21087     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21088 }
21089 #endif
21090 #endif
21091 
21092 #endif
21093 
21094 
21095 #endif  /* __ISpeechPhraseReplacements_INTERFACE_DEFINED__ */
21096 
21097 /*****************************************************************************
21098  * ISpeechPhraseProperty interface
21099  */
21100 #ifndef __ISpeechPhraseProperty_INTERFACE_DEFINED__
21101 #define __ISpeechPhraseProperty_INTERFACE_DEFINED__
21102 
21103 DEFINE_GUID(IID_ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe);
21104 #if defined(__cplusplus) && !defined(CINTERFACE)
21105 MIDL_INTERFACE("ce563d48-961e-4732-a2e1-378a42b430be")
21106 ISpeechPhraseProperty : public IDispatch
21107 {
21108     virtual HRESULT STDMETHODCALLTYPE get_Name(
21109         BSTR *Name) = 0;
21110 
21111     virtual HRESULT STDMETHODCALLTYPE get_Id(
21112         LONG *Id) = 0;
21113 
21114     virtual HRESULT STDMETHODCALLTYPE get_Value(
21115         VARIANT *Value) = 0;
21116 
21117     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
21118         LONG *FirstElement) = 0;
21119 
21120     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
21121         LONG *NumberOfElements) = 0;
21122 
21123     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
21124         float *Confidence) = 0;
21125 
21126     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
21127         SpeechEngineConfidence *Confidence) = 0;
21128 
21129     virtual HRESULT STDMETHODCALLTYPE get_Parent(
21130         ISpeechPhraseProperty **ParentProperty) = 0;
21131 
21132     virtual HRESULT STDMETHODCALLTYPE get_Children(
21133         ISpeechPhraseProperties **Children) = 0;
21134 
21135 };
21136 #ifdef __CRT_UUID_DECL
21137 __CRT_UUID_DECL(ISpeechPhraseProperty, 0xce563d48, 0x961e, 0x4732, 0xa2,0xe1, 0x37,0x8a,0x42,0xb4,0x30,0xbe)
21138 #endif
21139 #else
21140 typedef struct ISpeechPhrasePropertyVtbl {
21141     BEGIN_INTERFACE
21142 
21143     /*** IUnknown methods ***/
21144     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21145         ISpeechPhraseProperty *This,
21146         REFIID riid,
21147         void **ppvObject);
21148 
21149     ULONG (STDMETHODCALLTYPE *AddRef)(
21150         ISpeechPhraseProperty *This);
21151 
21152     ULONG (STDMETHODCALLTYPE *Release)(
21153         ISpeechPhraseProperty *This);
21154 
21155     /*** IDispatch methods ***/
21156     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21157         ISpeechPhraseProperty *This,
21158         UINT *pctinfo);
21159 
21160     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21161         ISpeechPhraseProperty *This,
21162         UINT iTInfo,
21163         LCID lcid,
21164         ITypeInfo **ppTInfo);
21165 
21166     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21167         ISpeechPhraseProperty *This,
21168         REFIID riid,
21169         LPOLESTR *rgszNames,
21170         UINT cNames,
21171         LCID lcid,
21172         DISPID *rgDispId);
21173 
21174     HRESULT (STDMETHODCALLTYPE *Invoke)(
21175         ISpeechPhraseProperty *This,
21176         DISPID dispIdMember,
21177         REFIID riid,
21178         LCID lcid,
21179         WORD wFlags,
21180         DISPPARAMS *pDispParams,
21181         VARIANT *pVarResult,
21182         EXCEPINFO *pExcepInfo,
21183         UINT *puArgErr);
21184 
21185     /*** ISpeechPhraseProperty methods ***/
21186     HRESULT (STDMETHODCALLTYPE *get_Name)(
21187         ISpeechPhraseProperty *This,
21188         BSTR *Name);
21189 
21190     HRESULT (STDMETHODCALLTYPE *get_Id)(
21191         ISpeechPhraseProperty *This,
21192         LONG *Id);
21193 
21194     HRESULT (STDMETHODCALLTYPE *get_Value)(
21195         ISpeechPhraseProperty *This,
21196         VARIANT *Value);
21197 
21198     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21199         ISpeechPhraseProperty *This,
21200         LONG *FirstElement);
21201 
21202     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21203         ISpeechPhraseProperty *This,
21204         LONG *NumberOfElements);
21205 
21206     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21207         ISpeechPhraseProperty *This,
21208         float *Confidence);
21209 
21210     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21211         ISpeechPhraseProperty *This,
21212         SpeechEngineConfidence *Confidence);
21213 
21214     HRESULT (STDMETHODCALLTYPE *get_Parent)(
21215         ISpeechPhraseProperty *This,
21216         ISpeechPhraseProperty **ParentProperty);
21217 
21218     HRESULT (STDMETHODCALLTYPE *get_Children)(
21219         ISpeechPhraseProperty *This,
21220         ISpeechPhraseProperties **Children);
21221 
21222     END_INTERFACE
21223 } ISpeechPhrasePropertyVtbl;
21224 
21225 interface ISpeechPhraseProperty {
21226     CONST_VTBL ISpeechPhrasePropertyVtbl* lpVtbl;
21227 };
21228 
21229 #ifdef COBJMACROS
21230 #ifndef WIDL_C_INLINE_WRAPPERS
21231 /*** IUnknown methods ***/
21232 #define ISpeechPhraseProperty_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21233 #define ISpeechPhraseProperty_AddRef(This) (This)->lpVtbl->AddRef(This)
21234 #define ISpeechPhraseProperty_Release(This) (This)->lpVtbl->Release(This)
21235 /*** IDispatch methods ***/
21236 #define ISpeechPhraseProperty_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21237 #define ISpeechPhraseProperty_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21238 #define ISpeechPhraseProperty_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21239 #define ISpeechPhraseProperty_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21240 /*** ISpeechPhraseProperty methods ***/
21241 #define ISpeechPhraseProperty_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21242 #define ISpeechPhraseProperty_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21243 #define ISpeechPhraseProperty_get_Value(This,Value) (This)->lpVtbl->get_Value(This,Value)
21244 #define ISpeechPhraseProperty_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21245 #define ISpeechPhraseProperty_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21246 #define ISpeechPhraseProperty_get_EngineConfidence(This,Confidence) (This)->lpVtbl->get_EngineConfidence(This,Confidence)
21247 #define ISpeechPhraseProperty_get_Confidence(This,Confidence) (This)->lpVtbl->get_Confidence(This,Confidence)
21248 #define ISpeechPhraseProperty_get_Parent(This,ParentProperty) (This)->lpVtbl->get_Parent(This,ParentProperty)
21249 #define ISpeechPhraseProperty_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21250 #else
21251 /*** IUnknown methods ***/
21252 static FORCEINLINE HRESULT ISpeechPhraseProperty_QueryInterface(ISpeechPhraseProperty* This,REFIID riid,void **ppvObject) {
21253     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21254 }
21255 static FORCEINLINE ULONG ISpeechPhraseProperty_AddRef(ISpeechPhraseProperty* This) {
21256     return This->lpVtbl->AddRef(This);
21257 }
21258 static FORCEINLINE ULONG ISpeechPhraseProperty_Release(ISpeechPhraseProperty* This) {
21259     return This->lpVtbl->Release(This);
21260 }
21261 /*** IDispatch methods ***/
21262 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfoCount(ISpeechPhraseProperty* This,UINT *pctinfo) {
21263     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21264 }
21265 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetTypeInfo(ISpeechPhraseProperty* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21266     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21267 }
21268 static FORCEINLINE HRESULT ISpeechPhraseProperty_GetIDsOfNames(ISpeechPhraseProperty* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21269     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21270 }
21271 static FORCEINLINE HRESULT ISpeechPhraseProperty_Invoke(ISpeechPhraseProperty* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21272     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21273 }
21274 /*** ISpeechPhraseProperty methods ***/
21275 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Name(ISpeechPhraseProperty* This,BSTR *Name) {
21276     return This->lpVtbl->get_Name(This,Name);
21277 }
21278 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Id(ISpeechPhraseProperty* This,LONG *Id) {
21279     return This->lpVtbl->get_Id(This,Id);
21280 }
21281 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Value(ISpeechPhraseProperty* This,VARIANT *Value) {
21282     return This->lpVtbl->get_Value(This,Value);
21283 }
21284 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_FirstElement(ISpeechPhraseProperty* This,LONG *FirstElement) {
21285     return This->lpVtbl->get_FirstElement(This,FirstElement);
21286 }
21287 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_NumberOfElements(ISpeechPhraseProperty* This,LONG *NumberOfElements) {
21288     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21289 }
21290 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_EngineConfidence(ISpeechPhraseProperty* This,float *Confidence) {
21291     return This->lpVtbl->get_EngineConfidence(This,Confidence);
21292 }
21293 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Confidence(ISpeechPhraseProperty* This,SpeechEngineConfidence *Confidence) {
21294     return This->lpVtbl->get_Confidence(This,Confidence);
21295 }
21296 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Parent(ISpeechPhraseProperty* This,ISpeechPhraseProperty **ParentProperty) {
21297     return This->lpVtbl->get_Parent(This,ParentProperty);
21298 }
21299 static FORCEINLINE HRESULT ISpeechPhraseProperty_get_Children(ISpeechPhraseProperty* This,ISpeechPhraseProperties **Children) {
21300     return This->lpVtbl->get_Children(This,Children);
21301 }
21302 #endif
21303 #endif
21304 
21305 #endif
21306 
21307 
21308 #endif  /* __ISpeechPhraseProperty_INTERFACE_DEFINED__ */
21309 
21310 /*****************************************************************************
21311  * ISpeechPhraseProperties interface
21312  */
21313 #ifndef __ISpeechPhraseProperties_INTERFACE_DEFINED__
21314 #define __ISpeechPhraseProperties_INTERFACE_DEFINED__
21315 
21316 DEFINE_GUID(IID_ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4);
21317 #if defined(__cplusplus) && !defined(CINTERFACE)
21318 MIDL_INTERFACE("08166b47-102e-4b23-a599-bdb98dbfd1f4")
21319 ISpeechPhraseProperties : public IDispatch
21320 {
21321     virtual HRESULT STDMETHODCALLTYPE get_Count(
21322         LONG *Count) = 0;
21323 
21324     virtual HRESULT STDMETHODCALLTYPE Item(
21325         LONG Index,
21326         ISpeechPhraseProperty **Property) = 0;
21327 
21328     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21329         IUnknown **EnumVARIANT) = 0;
21330 
21331 };
21332 #ifdef __CRT_UUID_DECL
21333 __CRT_UUID_DECL(ISpeechPhraseProperties, 0x08166b47, 0x102e, 0x4b23, 0xa5,0x99, 0xbd,0xb9,0x8d,0xbf,0xd1,0xf4)
21334 #endif
21335 #else
21336 typedef struct ISpeechPhrasePropertiesVtbl {
21337     BEGIN_INTERFACE
21338 
21339     /*** IUnknown methods ***/
21340     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21341         ISpeechPhraseProperties *This,
21342         REFIID riid,
21343         void **ppvObject);
21344 
21345     ULONG (STDMETHODCALLTYPE *AddRef)(
21346         ISpeechPhraseProperties *This);
21347 
21348     ULONG (STDMETHODCALLTYPE *Release)(
21349         ISpeechPhraseProperties *This);
21350 
21351     /*** IDispatch methods ***/
21352     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21353         ISpeechPhraseProperties *This,
21354         UINT *pctinfo);
21355 
21356     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21357         ISpeechPhraseProperties *This,
21358         UINT iTInfo,
21359         LCID lcid,
21360         ITypeInfo **ppTInfo);
21361 
21362     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21363         ISpeechPhraseProperties *This,
21364         REFIID riid,
21365         LPOLESTR *rgszNames,
21366         UINT cNames,
21367         LCID lcid,
21368         DISPID *rgDispId);
21369 
21370     HRESULT (STDMETHODCALLTYPE *Invoke)(
21371         ISpeechPhraseProperties *This,
21372         DISPID dispIdMember,
21373         REFIID riid,
21374         LCID lcid,
21375         WORD wFlags,
21376         DISPPARAMS *pDispParams,
21377         VARIANT *pVarResult,
21378         EXCEPINFO *pExcepInfo,
21379         UINT *puArgErr);
21380 
21381     /*** ISpeechPhraseProperties methods ***/
21382     HRESULT (STDMETHODCALLTYPE *get_Count)(
21383         ISpeechPhraseProperties *This,
21384         LONG *Count);
21385 
21386     HRESULT (STDMETHODCALLTYPE *Item)(
21387         ISpeechPhraseProperties *This,
21388         LONG Index,
21389         ISpeechPhraseProperty **Property);
21390 
21391     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21392         ISpeechPhraseProperties *This,
21393         IUnknown **EnumVARIANT);
21394 
21395     END_INTERFACE
21396 } ISpeechPhrasePropertiesVtbl;
21397 
21398 interface ISpeechPhraseProperties {
21399     CONST_VTBL ISpeechPhrasePropertiesVtbl* lpVtbl;
21400 };
21401 
21402 #ifdef COBJMACROS
21403 #ifndef WIDL_C_INLINE_WRAPPERS
21404 /*** IUnknown methods ***/
21405 #define ISpeechPhraseProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21406 #define ISpeechPhraseProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
21407 #define ISpeechPhraseProperties_Release(This) (This)->lpVtbl->Release(This)
21408 /*** IDispatch methods ***/
21409 #define ISpeechPhraseProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21410 #define ISpeechPhraseProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21411 #define ISpeechPhraseProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21412 #define ISpeechPhraseProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21413 /*** ISpeechPhraseProperties methods ***/
21414 #define ISpeechPhraseProperties_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21415 #define ISpeechPhraseProperties_Item(This,Index,Property) (This)->lpVtbl->Item(This,Index,Property)
21416 #define ISpeechPhraseProperties_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21417 #else
21418 /*** IUnknown methods ***/
21419 static FORCEINLINE HRESULT ISpeechPhraseProperties_QueryInterface(ISpeechPhraseProperties* This,REFIID riid,void **ppvObject) {
21420     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21421 }
21422 static FORCEINLINE ULONG ISpeechPhraseProperties_AddRef(ISpeechPhraseProperties* This) {
21423     return This->lpVtbl->AddRef(This);
21424 }
21425 static FORCEINLINE ULONG ISpeechPhraseProperties_Release(ISpeechPhraseProperties* This) {
21426     return This->lpVtbl->Release(This);
21427 }
21428 /*** IDispatch methods ***/
21429 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfoCount(ISpeechPhraseProperties* This,UINT *pctinfo) {
21430     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21431 }
21432 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetTypeInfo(ISpeechPhraseProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21433     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21434 }
21435 static FORCEINLINE HRESULT ISpeechPhraseProperties_GetIDsOfNames(ISpeechPhraseProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21436     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21437 }
21438 static FORCEINLINE HRESULT ISpeechPhraseProperties_Invoke(ISpeechPhraseProperties* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21439     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21440 }
21441 /*** ISpeechPhraseProperties methods ***/
21442 static FORCEINLINE HRESULT ISpeechPhraseProperties_get_Count(ISpeechPhraseProperties* This,LONG *Count) {
21443     return This->lpVtbl->get_Count(This,Count);
21444 }
21445 static FORCEINLINE HRESULT ISpeechPhraseProperties_Item(ISpeechPhraseProperties* This,LONG Index,ISpeechPhraseProperty **Property) {
21446     return This->lpVtbl->Item(This,Index,Property);
21447 }
21448 static FORCEINLINE HRESULT ISpeechPhraseProperties_get__NewEnum(ISpeechPhraseProperties* This,IUnknown **EnumVARIANT) {
21449     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21450 }
21451 #endif
21452 #endif
21453 
21454 #endif
21455 
21456 
21457 #endif  /* __ISpeechPhraseProperties_INTERFACE_DEFINED__ */
21458 
21459 /*****************************************************************************
21460  * ISpeechPhraseRule interface
21461  */
21462 #ifndef __ISpeechPhraseRule_INTERFACE_DEFINED__
21463 #define __ISpeechPhraseRule_INTERFACE_DEFINED__
21464 
21465 DEFINE_GUID(IID_ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64);
21466 #if defined(__cplusplus) && !defined(CINTERFACE)
21467 MIDL_INTERFACE("a7bfe112-a4a0-48d9-b602-c313843f6964")
21468 ISpeechPhraseRule : public IDispatch
21469 {
21470     virtual HRESULT STDMETHODCALLTYPE get_Name(
21471         BSTR *Name) = 0;
21472 
21473     virtual HRESULT STDMETHODCALLTYPE get_Id(
21474         LONG *Id) = 0;
21475 
21476     virtual HRESULT STDMETHODCALLTYPE get_FirstElement(
21477         LONG *FirstElement) = 0;
21478 
21479     virtual HRESULT STDMETHODCALLTYPE get_NumberOfElements(
21480         LONG *NumberOfElements) = 0;
21481 
21482     virtual HRESULT STDMETHODCALLTYPE get_Parent(
21483         ISpeechPhraseRule **Parent) = 0;
21484 
21485     virtual HRESULT STDMETHODCALLTYPE get_Children(
21486         ISpeechPhraseRules **Children) = 0;
21487 
21488     virtual HRESULT STDMETHODCALLTYPE get_Confidence(
21489         SpeechEngineConfidence *ActualConfidence) = 0;
21490 
21491     virtual HRESULT STDMETHODCALLTYPE get_EngineConfidence(
21492         float *EngineConfidence) = 0;
21493 
21494 };
21495 #ifdef __CRT_UUID_DECL
21496 __CRT_UUID_DECL(ISpeechPhraseRule, 0xa7bfe112, 0xa4a0, 0x48d9, 0xb6,0x02, 0xc3,0x13,0x84,0x3f,0x69,0x64)
21497 #endif
21498 #else
21499 typedef struct ISpeechPhraseRuleVtbl {
21500     BEGIN_INTERFACE
21501 
21502     /*** IUnknown methods ***/
21503     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21504         ISpeechPhraseRule *This,
21505         REFIID riid,
21506         void **ppvObject);
21507 
21508     ULONG (STDMETHODCALLTYPE *AddRef)(
21509         ISpeechPhraseRule *This);
21510 
21511     ULONG (STDMETHODCALLTYPE *Release)(
21512         ISpeechPhraseRule *This);
21513 
21514     /*** IDispatch methods ***/
21515     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21516         ISpeechPhraseRule *This,
21517         UINT *pctinfo);
21518 
21519     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21520         ISpeechPhraseRule *This,
21521         UINT iTInfo,
21522         LCID lcid,
21523         ITypeInfo **ppTInfo);
21524 
21525     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21526         ISpeechPhraseRule *This,
21527         REFIID riid,
21528         LPOLESTR *rgszNames,
21529         UINT cNames,
21530         LCID lcid,
21531         DISPID *rgDispId);
21532 
21533     HRESULT (STDMETHODCALLTYPE *Invoke)(
21534         ISpeechPhraseRule *This,
21535         DISPID dispIdMember,
21536         REFIID riid,
21537         LCID lcid,
21538         WORD wFlags,
21539         DISPPARAMS *pDispParams,
21540         VARIANT *pVarResult,
21541         EXCEPINFO *pExcepInfo,
21542         UINT *puArgErr);
21543 
21544     /*** ISpeechPhraseRule methods ***/
21545     HRESULT (STDMETHODCALLTYPE *get_Name)(
21546         ISpeechPhraseRule *This,
21547         BSTR *Name);
21548 
21549     HRESULT (STDMETHODCALLTYPE *get_Id)(
21550         ISpeechPhraseRule *This,
21551         LONG *Id);
21552 
21553     HRESULT (STDMETHODCALLTYPE *get_FirstElement)(
21554         ISpeechPhraseRule *This,
21555         LONG *FirstElement);
21556 
21557     HRESULT (STDMETHODCALLTYPE *get_NumberOfElements)(
21558         ISpeechPhraseRule *This,
21559         LONG *NumberOfElements);
21560 
21561     HRESULT (STDMETHODCALLTYPE *get_Parent)(
21562         ISpeechPhraseRule *This,
21563         ISpeechPhraseRule **Parent);
21564 
21565     HRESULT (STDMETHODCALLTYPE *get_Children)(
21566         ISpeechPhraseRule *This,
21567         ISpeechPhraseRules **Children);
21568 
21569     HRESULT (STDMETHODCALLTYPE *get_Confidence)(
21570         ISpeechPhraseRule *This,
21571         SpeechEngineConfidence *ActualConfidence);
21572 
21573     HRESULT (STDMETHODCALLTYPE *get_EngineConfidence)(
21574         ISpeechPhraseRule *This,
21575         float *EngineConfidence);
21576 
21577     END_INTERFACE
21578 } ISpeechPhraseRuleVtbl;
21579 
21580 interface ISpeechPhraseRule {
21581     CONST_VTBL ISpeechPhraseRuleVtbl* lpVtbl;
21582 };
21583 
21584 #ifdef COBJMACROS
21585 #ifndef WIDL_C_INLINE_WRAPPERS
21586 /*** IUnknown methods ***/
21587 #define ISpeechPhraseRule_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21588 #define ISpeechPhraseRule_AddRef(This) (This)->lpVtbl->AddRef(This)
21589 #define ISpeechPhraseRule_Release(This) (This)->lpVtbl->Release(This)
21590 /*** IDispatch methods ***/
21591 #define ISpeechPhraseRule_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21592 #define ISpeechPhraseRule_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21593 #define ISpeechPhraseRule_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21594 #define ISpeechPhraseRule_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21595 /*** ISpeechPhraseRule methods ***/
21596 #define ISpeechPhraseRule_get_Name(This,Name) (This)->lpVtbl->get_Name(This,Name)
21597 #define ISpeechPhraseRule_get_Id(This,Id) (This)->lpVtbl->get_Id(This,Id)
21598 #define ISpeechPhraseRule_get_FirstElement(This,FirstElement) (This)->lpVtbl->get_FirstElement(This,FirstElement)
21599 #define ISpeechPhraseRule_get_NumberOfElements(This,NumberOfElements) (This)->lpVtbl->get_NumberOfElements(This,NumberOfElements)
21600 #define ISpeechPhraseRule_get_Parent(This,Parent) (This)->lpVtbl->get_Parent(This,Parent)
21601 #define ISpeechPhraseRule_get_Children(This,Children) (This)->lpVtbl->get_Children(This,Children)
21602 #define ISpeechPhraseRule_get_Confidence(This,ActualConfidence) (This)->lpVtbl->get_Confidence(This,ActualConfidence)
21603 #define ISpeechPhraseRule_get_EngineConfidence(This,EngineConfidence) (This)->lpVtbl->get_EngineConfidence(This,EngineConfidence)
21604 #else
21605 /*** IUnknown methods ***/
21606 static FORCEINLINE HRESULT ISpeechPhraseRule_QueryInterface(ISpeechPhraseRule* This,REFIID riid,void **ppvObject) {
21607     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21608 }
21609 static FORCEINLINE ULONG ISpeechPhraseRule_AddRef(ISpeechPhraseRule* This) {
21610     return This->lpVtbl->AddRef(This);
21611 }
21612 static FORCEINLINE ULONG ISpeechPhraseRule_Release(ISpeechPhraseRule* This) {
21613     return This->lpVtbl->Release(This);
21614 }
21615 /*** IDispatch methods ***/
21616 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfoCount(ISpeechPhraseRule* This,UINT *pctinfo) {
21617     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21618 }
21619 static FORCEINLINE HRESULT ISpeechPhraseRule_GetTypeInfo(ISpeechPhraseRule* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21620     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21621 }
21622 static FORCEINLINE HRESULT ISpeechPhraseRule_GetIDsOfNames(ISpeechPhraseRule* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21623     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21624 }
21625 static FORCEINLINE HRESULT ISpeechPhraseRule_Invoke(ISpeechPhraseRule* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21626     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21627 }
21628 /*** ISpeechPhraseRule methods ***/
21629 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Name(ISpeechPhraseRule* This,BSTR *Name) {
21630     return This->lpVtbl->get_Name(This,Name);
21631 }
21632 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Id(ISpeechPhraseRule* This,LONG *Id) {
21633     return This->lpVtbl->get_Id(This,Id);
21634 }
21635 static FORCEINLINE HRESULT ISpeechPhraseRule_get_FirstElement(ISpeechPhraseRule* This,LONG *FirstElement) {
21636     return This->lpVtbl->get_FirstElement(This,FirstElement);
21637 }
21638 static FORCEINLINE HRESULT ISpeechPhraseRule_get_NumberOfElements(ISpeechPhraseRule* This,LONG *NumberOfElements) {
21639     return This->lpVtbl->get_NumberOfElements(This,NumberOfElements);
21640 }
21641 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Parent(ISpeechPhraseRule* This,ISpeechPhraseRule **Parent) {
21642     return This->lpVtbl->get_Parent(This,Parent);
21643 }
21644 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Children(ISpeechPhraseRule* This,ISpeechPhraseRules **Children) {
21645     return This->lpVtbl->get_Children(This,Children);
21646 }
21647 static FORCEINLINE HRESULT ISpeechPhraseRule_get_Confidence(ISpeechPhraseRule* This,SpeechEngineConfidence *ActualConfidence) {
21648     return This->lpVtbl->get_Confidence(This,ActualConfidence);
21649 }
21650 static FORCEINLINE HRESULT ISpeechPhraseRule_get_EngineConfidence(ISpeechPhraseRule* This,float *EngineConfidence) {
21651     return This->lpVtbl->get_EngineConfidence(This,EngineConfidence);
21652 }
21653 #endif
21654 #endif
21655 
21656 #endif
21657 
21658 
21659 #endif  /* __ISpeechPhraseRule_INTERFACE_DEFINED__ */
21660 
21661 /*****************************************************************************
21662  * ISpeechPhraseRules interface
21663  */
21664 #ifndef __ISpeechPhraseRules_INTERFACE_DEFINED__
21665 #define __ISpeechPhraseRules_INTERFACE_DEFINED__
21666 
21667 DEFINE_GUID(IID_ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07);
21668 #if defined(__cplusplus) && !defined(CINTERFACE)
21669 MIDL_INTERFACE("9047d593-01dd-4b72-81a3-e4a0ca69f407")
21670 ISpeechPhraseRules : public IDispatch
21671 {
21672     virtual HRESULT STDMETHODCALLTYPE get_Count(
21673         LONG *Count) = 0;
21674 
21675     virtual HRESULT STDMETHODCALLTYPE Item(
21676         LONG Index,
21677         ISpeechPhraseRule **Rule) = 0;
21678 
21679     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21680         IUnknown **EnumVARIANT) = 0;
21681 
21682 };
21683 #ifdef __CRT_UUID_DECL
21684 __CRT_UUID_DECL(ISpeechPhraseRules, 0x9047d593, 0x01dd, 0x4b72, 0x81,0xa3, 0xe4,0xa0,0xca,0x69,0xf4,0x07)
21685 #endif
21686 #else
21687 typedef struct ISpeechPhraseRulesVtbl {
21688     BEGIN_INTERFACE
21689 
21690     /*** IUnknown methods ***/
21691     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21692         ISpeechPhraseRules *This,
21693         REFIID riid,
21694         void **ppvObject);
21695 
21696     ULONG (STDMETHODCALLTYPE *AddRef)(
21697         ISpeechPhraseRules *This);
21698 
21699     ULONG (STDMETHODCALLTYPE *Release)(
21700         ISpeechPhraseRules *This);
21701 
21702     /*** IDispatch methods ***/
21703     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21704         ISpeechPhraseRules *This,
21705         UINT *pctinfo);
21706 
21707     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21708         ISpeechPhraseRules *This,
21709         UINT iTInfo,
21710         LCID lcid,
21711         ITypeInfo **ppTInfo);
21712 
21713     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21714         ISpeechPhraseRules *This,
21715         REFIID riid,
21716         LPOLESTR *rgszNames,
21717         UINT cNames,
21718         LCID lcid,
21719         DISPID *rgDispId);
21720 
21721     HRESULT (STDMETHODCALLTYPE *Invoke)(
21722         ISpeechPhraseRules *This,
21723         DISPID dispIdMember,
21724         REFIID riid,
21725         LCID lcid,
21726         WORD wFlags,
21727         DISPPARAMS *pDispParams,
21728         VARIANT *pVarResult,
21729         EXCEPINFO *pExcepInfo,
21730         UINT *puArgErr);
21731 
21732     /*** ISpeechPhraseRules methods ***/
21733     HRESULT (STDMETHODCALLTYPE *get_Count)(
21734         ISpeechPhraseRules *This,
21735         LONG *Count);
21736 
21737     HRESULT (STDMETHODCALLTYPE *Item)(
21738         ISpeechPhraseRules *This,
21739         LONG Index,
21740         ISpeechPhraseRule **Rule);
21741 
21742     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21743         ISpeechPhraseRules *This,
21744         IUnknown **EnumVARIANT);
21745 
21746     END_INTERFACE
21747 } ISpeechPhraseRulesVtbl;
21748 
21749 interface ISpeechPhraseRules {
21750     CONST_VTBL ISpeechPhraseRulesVtbl* lpVtbl;
21751 };
21752 
21753 #ifdef COBJMACROS
21754 #ifndef WIDL_C_INLINE_WRAPPERS
21755 /*** IUnknown methods ***/
21756 #define ISpeechPhraseRules_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21757 #define ISpeechPhraseRules_AddRef(This) (This)->lpVtbl->AddRef(This)
21758 #define ISpeechPhraseRules_Release(This) (This)->lpVtbl->Release(This)
21759 /*** IDispatch methods ***/
21760 #define ISpeechPhraseRules_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21761 #define ISpeechPhraseRules_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21762 #define ISpeechPhraseRules_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21763 #define ISpeechPhraseRules_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21764 /*** ISpeechPhraseRules methods ***/
21765 #define ISpeechPhraseRules_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21766 #define ISpeechPhraseRules_Item(This,Index,Rule) (This)->lpVtbl->Item(This,Index,Rule)
21767 #define ISpeechPhraseRules_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21768 #else
21769 /*** IUnknown methods ***/
21770 static FORCEINLINE HRESULT ISpeechPhraseRules_QueryInterface(ISpeechPhraseRules* This,REFIID riid,void **ppvObject) {
21771     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21772 }
21773 static FORCEINLINE ULONG ISpeechPhraseRules_AddRef(ISpeechPhraseRules* This) {
21774     return This->lpVtbl->AddRef(This);
21775 }
21776 static FORCEINLINE ULONG ISpeechPhraseRules_Release(ISpeechPhraseRules* This) {
21777     return This->lpVtbl->Release(This);
21778 }
21779 /*** IDispatch methods ***/
21780 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfoCount(ISpeechPhraseRules* This,UINT *pctinfo) {
21781     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21782 }
21783 static FORCEINLINE HRESULT ISpeechPhraseRules_GetTypeInfo(ISpeechPhraseRules* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21784     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21785 }
21786 static FORCEINLINE HRESULT ISpeechPhraseRules_GetIDsOfNames(ISpeechPhraseRules* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21787     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21788 }
21789 static FORCEINLINE HRESULT ISpeechPhraseRules_Invoke(ISpeechPhraseRules* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21790     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21791 }
21792 /*** ISpeechPhraseRules methods ***/
21793 static FORCEINLINE HRESULT ISpeechPhraseRules_get_Count(ISpeechPhraseRules* This,LONG *Count) {
21794     return This->lpVtbl->get_Count(This,Count);
21795 }
21796 static FORCEINLINE HRESULT ISpeechPhraseRules_Item(ISpeechPhraseRules* This,LONG Index,ISpeechPhraseRule **Rule) {
21797     return This->lpVtbl->Item(This,Index,Rule);
21798 }
21799 static FORCEINLINE HRESULT ISpeechPhraseRules_get__NewEnum(ISpeechPhraseRules* This,IUnknown **EnumVARIANT) {
21800     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21801 }
21802 #endif
21803 #endif
21804 
21805 #endif
21806 
21807 
21808 #endif  /* __ISpeechPhraseRules_INTERFACE_DEFINED__ */
21809 
21810 /*****************************************************************************
21811  * ISpeechLexiconWords interface
21812  */
21813 #ifndef __ISpeechLexiconWords_INTERFACE_DEFINED__
21814 #define __ISpeechLexiconWords_INTERFACE_DEFINED__
21815 
21816 DEFINE_GUID(IID_ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6);
21817 #if defined(__cplusplus) && !defined(CINTERFACE)
21818 MIDL_INTERFACE("8d199862-415e-47d5-ac4f-faa608b424e6")
21819 ISpeechLexiconWords : public IDispatch
21820 {
21821     virtual HRESULT STDMETHODCALLTYPE get_Count(
21822         LONG *Count) = 0;
21823 
21824     virtual HRESULT STDMETHODCALLTYPE Item(
21825         LONG Index,
21826         ISpeechLexiconWord **Word) = 0;
21827 
21828     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
21829         IUnknown **EnumVARIANT) = 0;
21830 
21831 };
21832 #ifdef __CRT_UUID_DECL
21833 __CRT_UUID_DECL(ISpeechLexiconWords, 0x8d199862, 0x415e, 0x47d5, 0xac,0x4f, 0xfa,0xa6,0x08,0xb4,0x24,0xe6)
21834 #endif
21835 #else
21836 typedef struct ISpeechLexiconWordsVtbl {
21837     BEGIN_INTERFACE
21838 
21839     /*** IUnknown methods ***/
21840     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21841         ISpeechLexiconWords *This,
21842         REFIID riid,
21843         void **ppvObject);
21844 
21845     ULONG (STDMETHODCALLTYPE *AddRef)(
21846         ISpeechLexiconWords *This);
21847 
21848     ULONG (STDMETHODCALLTYPE *Release)(
21849         ISpeechLexiconWords *This);
21850 
21851     /*** IDispatch methods ***/
21852     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
21853         ISpeechLexiconWords *This,
21854         UINT *pctinfo);
21855 
21856     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
21857         ISpeechLexiconWords *This,
21858         UINT iTInfo,
21859         LCID lcid,
21860         ITypeInfo **ppTInfo);
21861 
21862     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
21863         ISpeechLexiconWords *This,
21864         REFIID riid,
21865         LPOLESTR *rgszNames,
21866         UINT cNames,
21867         LCID lcid,
21868         DISPID *rgDispId);
21869 
21870     HRESULT (STDMETHODCALLTYPE *Invoke)(
21871         ISpeechLexiconWords *This,
21872         DISPID dispIdMember,
21873         REFIID riid,
21874         LCID lcid,
21875         WORD wFlags,
21876         DISPPARAMS *pDispParams,
21877         VARIANT *pVarResult,
21878         EXCEPINFO *pExcepInfo,
21879         UINT *puArgErr);
21880 
21881     /*** ISpeechLexiconWords methods ***/
21882     HRESULT (STDMETHODCALLTYPE *get_Count)(
21883         ISpeechLexiconWords *This,
21884         LONG *Count);
21885 
21886     HRESULT (STDMETHODCALLTYPE *Item)(
21887         ISpeechLexiconWords *This,
21888         LONG Index,
21889         ISpeechLexiconWord **Word);
21890 
21891     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
21892         ISpeechLexiconWords *This,
21893         IUnknown **EnumVARIANT);
21894 
21895     END_INTERFACE
21896 } ISpeechLexiconWordsVtbl;
21897 
21898 interface ISpeechLexiconWords {
21899     CONST_VTBL ISpeechLexiconWordsVtbl* lpVtbl;
21900 };
21901 
21902 #ifdef COBJMACROS
21903 #ifndef WIDL_C_INLINE_WRAPPERS
21904 /*** IUnknown methods ***/
21905 #define ISpeechLexiconWords_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21906 #define ISpeechLexiconWords_AddRef(This) (This)->lpVtbl->AddRef(This)
21907 #define ISpeechLexiconWords_Release(This) (This)->lpVtbl->Release(This)
21908 /*** IDispatch methods ***/
21909 #define ISpeechLexiconWords_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
21910 #define ISpeechLexiconWords_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
21911 #define ISpeechLexiconWords_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
21912 #define ISpeechLexiconWords_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
21913 /*** ISpeechLexiconWords methods ***/
21914 #define ISpeechLexiconWords_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
21915 #define ISpeechLexiconWords_Item(This,Index,Word) (This)->lpVtbl->Item(This,Index,Word)
21916 #define ISpeechLexiconWords_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
21917 #else
21918 /*** IUnknown methods ***/
21919 static FORCEINLINE HRESULT ISpeechLexiconWords_QueryInterface(ISpeechLexiconWords* This,REFIID riid,void **ppvObject) {
21920     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21921 }
21922 static FORCEINLINE ULONG ISpeechLexiconWords_AddRef(ISpeechLexiconWords* This) {
21923     return This->lpVtbl->AddRef(This);
21924 }
21925 static FORCEINLINE ULONG ISpeechLexiconWords_Release(ISpeechLexiconWords* This) {
21926     return This->lpVtbl->Release(This);
21927 }
21928 /*** IDispatch methods ***/
21929 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfoCount(ISpeechLexiconWords* This,UINT *pctinfo) {
21930     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
21931 }
21932 static FORCEINLINE HRESULT ISpeechLexiconWords_GetTypeInfo(ISpeechLexiconWords* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
21933     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
21934 }
21935 static FORCEINLINE HRESULT ISpeechLexiconWords_GetIDsOfNames(ISpeechLexiconWords* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
21936     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
21937 }
21938 static FORCEINLINE HRESULT ISpeechLexiconWords_Invoke(ISpeechLexiconWords* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
21939     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
21940 }
21941 /*** ISpeechLexiconWords methods ***/
21942 static FORCEINLINE HRESULT ISpeechLexiconWords_get_Count(ISpeechLexiconWords* This,LONG *Count) {
21943     return This->lpVtbl->get_Count(This,Count);
21944 }
21945 static FORCEINLINE HRESULT ISpeechLexiconWords_Item(ISpeechLexiconWords* This,LONG Index,ISpeechLexiconWord **Word) {
21946     return This->lpVtbl->Item(This,Index,Word);
21947 }
21948 static FORCEINLINE HRESULT ISpeechLexiconWords_get__NewEnum(ISpeechLexiconWords* This,IUnknown **EnumVARIANT) {
21949     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
21950 }
21951 #endif
21952 #endif
21953 
21954 #endif
21955 
21956 
21957 #endif  /* __ISpeechLexiconWords_INTERFACE_DEFINED__ */
21958 
21959 /*****************************************************************************
21960  * ISpeechLexicon interface
21961  */
21962 #ifndef __ISpeechLexicon_INTERFACE_DEFINED__
21963 #define __ISpeechLexicon_INTERFACE_DEFINED__
21964 
21965 DEFINE_GUID(IID_ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25);
21966 #if defined(__cplusplus) && !defined(CINTERFACE)
21967 MIDL_INTERFACE("3da7627a-c7ae-4b23-8708-638c50362c25")
21968 ISpeechLexicon : public IDispatch
21969 {
21970     virtual HRESULT STDMETHODCALLTYPE get_GenerationId(
21971         LONG *GenerationId) = 0;
21972 
21973     virtual HRESULT STDMETHODCALLTYPE GetWords(
21974         SpeechLexiconType Flags,
21975         LONG *GenerationID,
21976         ISpeechLexiconWords **Words) = 0;
21977 
21978     virtual HRESULT STDMETHODCALLTYPE AddPronunciation(
21979         BSTR bstrWord,
21980         SpeechLanguageId LangId,
21981         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21982         BSTR bstrPronunciation = L"") = 0;
21983 
21984     virtual HRESULT STDMETHODCALLTYPE AddPronunciationByPhoneIds(
21985         BSTR bstrWord,
21986         SpeechLanguageId LangId,
21987         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21988         VARIANT *PhoneIds = 0) = 0;
21989 
21990     virtual HRESULT STDMETHODCALLTYPE RemovePronunciation(
21991         BSTR bstrWord,
21992         SpeechLanguageId LangId,
21993         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
21994         BSTR bstrPronunciation = L"") = 0;
21995 
21996     virtual HRESULT STDMETHODCALLTYPE RemovePronunciationByPhoneIds(
21997         BSTR bstrWord,
21998         SpeechLanguageId LangId,
21999         SpeechPartOfSpeech PartOfSpeech = SPSUnknown,
22000         VARIANT *PhoneIds = 0) = 0;
22001 
22002     virtual HRESULT STDMETHODCALLTYPE GetPronunciations(
22003         BSTR bstrWord,
22004         SpeechLanguageId LangId,
22005         SpeechLexiconType TypeFlags,
22006         ISpeechLexiconPronunciations **ppPronunciations) = 0;
22007 
22008     virtual HRESULT STDMETHODCALLTYPE GetGenerationChange(
22009         LONG *GenerationID,
22010         ISpeechLexiconWords **ppWords) = 0;
22011 
22012 };
22013 #ifdef __CRT_UUID_DECL
22014 __CRT_UUID_DECL(ISpeechLexicon, 0x3da7627a, 0xc7ae, 0x4b23, 0x87,0x08, 0x63,0x8c,0x50,0x36,0x2c,0x25)
22015 #endif
22016 #else
22017 typedef struct ISpeechLexiconVtbl {
22018     BEGIN_INTERFACE
22019 
22020     /*** IUnknown methods ***/
22021     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22022         ISpeechLexicon *This,
22023         REFIID riid,
22024         void **ppvObject);
22025 
22026     ULONG (STDMETHODCALLTYPE *AddRef)(
22027         ISpeechLexicon *This);
22028 
22029     ULONG (STDMETHODCALLTYPE *Release)(
22030         ISpeechLexicon *This);
22031 
22032     /*** IDispatch methods ***/
22033     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22034         ISpeechLexicon *This,
22035         UINT *pctinfo);
22036 
22037     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22038         ISpeechLexicon *This,
22039         UINT iTInfo,
22040         LCID lcid,
22041         ITypeInfo **ppTInfo);
22042 
22043     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22044         ISpeechLexicon *This,
22045         REFIID riid,
22046         LPOLESTR *rgszNames,
22047         UINT cNames,
22048         LCID lcid,
22049         DISPID *rgDispId);
22050 
22051     HRESULT (STDMETHODCALLTYPE *Invoke)(
22052         ISpeechLexicon *This,
22053         DISPID dispIdMember,
22054         REFIID riid,
22055         LCID lcid,
22056         WORD wFlags,
22057         DISPPARAMS *pDispParams,
22058         VARIANT *pVarResult,
22059         EXCEPINFO *pExcepInfo,
22060         UINT *puArgErr);
22061 
22062     /*** ISpeechLexicon methods ***/
22063     HRESULT (STDMETHODCALLTYPE *get_GenerationId)(
22064         ISpeechLexicon *This,
22065         LONG *GenerationId);
22066 
22067     HRESULT (STDMETHODCALLTYPE *GetWords)(
22068         ISpeechLexicon *This,
22069         SpeechLexiconType Flags,
22070         LONG *GenerationID,
22071         ISpeechLexiconWords **Words);
22072 
22073     HRESULT (STDMETHODCALLTYPE *AddPronunciation)(
22074         ISpeechLexicon *This,
22075         BSTR bstrWord,
22076         SpeechLanguageId LangId,
22077         SpeechPartOfSpeech PartOfSpeech,
22078         BSTR bstrPronunciation);
22079 
22080     HRESULT (STDMETHODCALLTYPE *AddPronunciationByPhoneIds)(
22081         ISpeechLexicon *This,
22082         BSTR bstrWord,
22083         SpeechLanguageId LangId,
22084         SpeechPartOfSpeech PartOfSpeech,
22085         VARIANT *PhoneIds);
22086 
22087     HRESULT (STDMETHODCALLTYPE *RemovePronunciation)(
22088         ISpeechLexicon *This,
22089         BSTR bstrWord,
22090         SpeechLanguageId LangId,
22091         SpeechPartOfSpeech PartOfSpeech,
22092         BSTR bstrPronunciation);
22093 
22094     HRESULT (STDMETHODCALLTYPE *RemovePronunciationByPhoneIds)(
22095         ISpeechLexicon *This,
22096         BSTR bstrWord,
22097         SpeechLanguageId LangId,
22098         SpeechPartOfSpeech PartOfSpeech,
22099         VARIANT *PhoneIds);
22100 
22101     HRESULT (STDMETHODCALLTYPE *GetPronunciations)(
22102         ISpeechLexicon *This,
22103         BSTR bstrWord,
22104         SpeechLanguageId LangId,
22105         SpeechLexiconType TypeFlags,
22106         ISpeechLexiconPronunciations **ppPronunciations);
22107 
22108     HRESULT (STDMETHODCALLTYPE *GetGenerationChange)(
22109         ISpeechLexicon *This,
22110         LONG *GenerationID,
22111         ISpeechLexiconWords **ppWords);
22112 
22113     END_INTERFACE
22114 } ISpeechLexiconVtbl;
22115 
22116 interface ISpeechLexicon {
22117     CONST_VTBL ISpeechLexiconVtbl* lpVtbl;
22118 };
22119 
22120 #ifdef COBJMACROS
22121 #ifndef WIDL_C_INLINE_WRAPPERS
22122 /*** IUnknown methods ***/
22123 #define ISpeechLexicon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22124 #define ISpeechLexicon_AddRef(This) (This)->lpVtbl->AddRef(This)
22125 #define ISpeechLexicon_Release(This) (This)->lpVtbl->Release(This)
22126 /*** IDispatch methods ***/
22127 #define ISpeechLexicon_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22128 #define ISpeechLexicon_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22129 #define ISpeechLexicon_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22130 #define ISpeechLexicon_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22131 /*** ISpeechLexicon methods ***/
22132 #define ISpeechLexicon_get_GenerationId(This,GenerationId) (This)->lpVtbl->get_GenerationId(This,GenerationId)
22133 #define ISpeechLexicon_GetWords(This,Flags,GenerationID,Words) (This)->lpVtbl->GetWords(This,Flags,GenerationID,Words)
22134 #define ISpeechLexicon_AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
22135 #define ISpeechLexicon_AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
22136 #define ISpeechLexicon_RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation) (This)->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation)
22137 #define ISpeechLexicon_RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds) (This)->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds)
22138 #define ISpeechLexicon_GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations) (This)->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations)
22139 #define ISpeechLexicon_GetGenerationChange(This,GenerationID,ppWords) (This)->lpVtbl->GetGenerationChange(This,GenerationID,ppWords)
22140 #else
22141 /*** IUnknown methods ***/
22142 static FORCEINLINE HRESULT ISpeechLexicon_QueryInterface(ISpeechLexicon* This,REFIID riid,void **ppvObject) {
22143     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22144 }
22145 static FORCEINLINE ULONG ISpeechLexicon_AddRef(ISpeechLexicon* This) {
22146     return This->lpVtbl->AddRef(This);
22147 }
22148 static FORCEINLINE ULONG ISpeechLexicon_Release(ISpeechLexicon* This) {
22149     return This->lpVtbl->Release(This);
22150 }
22151 /*** IDispatch methods ***/
22152 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfoCount(ISpeechLexicon* This,UINT *pctinfo) {
22153     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22154 }
22155 static FORCEINLINE HRESULT ISpeechLexicon_GetTypeInfo(ISpeechLexicon* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22156     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22157 }
22158 static FORCEINLINE HRESULT ISpeechLexicon_GetIDsOfNames(ISpeechLexicon* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22159     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22160 }
22161 static FORCEINLINE HRESULT ISpeechLexicon_Invoke(ISpeechLexicon* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22162     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22163 }
22164 /*** ISpeechLexicon methods ***/
22165 static FORCEINLINE HRESULT ISpeechLexicon_get_GenerationId(ISpeechLexicon* This,LONG *GenerationId) {
22166     return This->lpVtbl->get_GenerationId(This,GenerationId);
22167 }
22168 static FORCEINLINE HRESULT ISpeechLexicon_GetWords(ISpeechLexicon* This,SpeechLexiconType Flags,LONG *GenerationID,ISpeechLexiconWords **Words) {
22169     return This->lpVtbl->GetWords(This,Flags,GenerationID,Words);
22170 }
22171 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
22172     return This->lpVtbl->AddPronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
22173 }
22174 static FORCEINLINE HRESULT ISpeechLexicon_AddPronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
22175     return This->lpVtbl->AddPronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
22176 }
22177 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciation(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,BSTR bstrPronunciation) {
22178     return This->lpVtbl->RemovePronunciation(This,bstrWord,LangId,PartOfSpeech,bstrPronunciation);
22179 }
22180 static FORCEINLINE HRESULT ISpeechLexicon_RemovePronunciationByPhoneIds(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechPartOfSpeech PartOfSpeech,VARIANT *PhoneIds) {
22181     return This->lpVtbl->RemovePronunciationByPhoneIds(This,bstrWord,LangId,PartOfSpeech,PhoneIds);
22182 }
22183 static FORCEINLINE HRESULT ISpeechLexicon_GetPronunciations(ISpeechLexicon* This,BSTR bstrWord,SpeechLanguageId LangId,SpeechLexiconType TypeFlags,ISpeechLexiconPronunciations **ppPronunciations) {
22184     return This->lpVtbl->GetPronunciations(This,bstrWord,LangId,TypeFlags,ppPronunciations);
22185 }
22186 static FORCEINLINE HRESULT ISpeechLexicon_GetGenerationChange(ISpeechLexicon* This,LONG *GenerationID,ISpeechLexiconWords **ppWords) {
22187     return This->lpVtbl->GetGenerationChange(This,GenerationID,ppWords);
22188 }
22189 #endif
22190 #endif
22191 
22192 #endif
22193 
22194 
22195 #endif  /* __ISpeechLexicon_INTERFACE_DEFINED__ */
22196 
22197 /*****************************************************************************
22198  * ISpeechLexiconWord interface
22199  */
22200 #ifndef __ISpeechLexiconWord_INTERFACE_DEFINED__
22201 #define __ISpeechLexiconWord_INTERFACE_DEFINED__
22202 
22203 DEFINE_GUID(IID_ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff);
22204 #if defined(__cplusplus) && !defined(CINTERFACE)
22205 MIDL_INTERFACE("4e5b933c-c9be-48ed-8842-1ee51bb1d4ff")
22206 ISpeechLexiconWord : public IDispatch
22207 {
22208     virtual HRESULT STDMETHODCALLTYPE get_LangId(
22209         SpeechLanguageId *LangId) = 0;
22210 
22211     virtual HRESULT STDMETHODCALLTYPE get_Type(
22212         SpeechWordType *WordType) = 0;
22213 
22214     virtual HRESULT STDMETHODCALLTYPE get_Word(
22215         BSTR *Word) = 0;
22216 
22217     virtual HRESULT STDMETHODCALLTYPE get_Pronunciations(
22218         ISpeechLexiconPronunciations **Pronunciations) = 0;
22219 
22220 };
22221 #ifdef __CRT_UUID_DECL
22222 __CRT_UUID_DECL(ISpeechLexiconWord, 0x4e5b933c, 0xc9be, 0x48ed, 0x88,0x42, 0x1e,0xe5,0x1b,0xb1,0xd4,0xff)
22223 #endif
22224 #else
22225 typedef struct ISpeechLexiconWordVtbl {
22226     BEGIN_INTERFACE
22227 
22228     /*** IUnknown methods ***/
22229     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22230         ISpeechLexiconWord *This,
22231         REFIID riid,
22232         void **ppvObject);
22233 
22234     ULONG (STDMETHODCALLTYPE *AddRef)(
22235         ISpeechLexiconWord *This);
22236 
22237     ULONG (STDMETHODCALLTYPE *Release)(
22238         ISpeechLexiconWord *This);
22239 
22240     /*** IDispatch methods ***/
22241     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22242         ISpeechLexiconWord *This,
22243         UINT *pctinfo);
22244 
22245     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22246         ISpeechLexiconWord *This,
22247         UINT iTInfo,
22248         LCID lcid,
22249         ITypeInfo **ppTInfo);
22250 
22251     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22252         ISpeechLexiconWord *This,
22253         REFIID riid,
22254         LPOLESTR *rgszNames,
22255         UINT cNames,
22256         LCID lcid,
22257         DISPID *rgDispId);
22258 
22259     HRESULT (STDMETHODCALLTYPE *Invoke)(
22260         ISpeechLexiconWord *This,
22261         DISPID dispIdMember,
22262         REFIID riid,
22263         LCID lcid,
22264         WORD wFlags,
22265         DISPPARAMS *pDispParams,
22266         VARIANT *pVarResult,
22267         EXCEPINFO *pExcepInfo,
22268         UINT *puArgErr);
22269 
22270     /*** ISpeechLexiconWord methods ***/
22271     HRESULT (STDMETHODCALLTYPE *get_LangId)(
22272         ISpeechLexiconWord *This,
22273         SpeechLanguageId *LangId);
22274 
22275     HRESULT (STDMETHODCALLTYPE *get_Type)(
22276         ISpeechLexiconWord *This,
22277         SpeechWordType *WordType);
22278 
22279     HRESULT (STDMETHODCALLTYPE *get_Word)(
22280         ISpeechLexiconWord *This,
22281         BSTR *Word);
22282 
22283     HRESULT (STDMETHODCALLTYPE *get_Pronunciations)(
22284         ISpeechLexiconWord *This,
22285         ISpeechLexiconPronunciations **Pronunciations);
22286 
22287     END_INTERFACE
22288 } ISpeechLexiconWordVtbl;
22289 
22290 interface ISpeechLexiconWord {
22291     CONST_VTBL ISpeechLexiconWordVtbl* lpVtbl;
22292 };
22293 
22294 #ifdef COBJMACROS
22295 #ifndef WIDL_C_INLINE_WRAPPERS
22296 /*** IUnknown methods ***/
22297 #define ISpeechLexiconWord_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22298 #define ISpeechLexiconWord_AddRef(This) (This)->lpVtbl->AddRef(This)
22299 #define ISpeechLexiconWord_Release(This) (This)->lpVtbl->Release(This)
22300 /*** IDispatch methods ***/
22301 #define ISpeechLexiconWord_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22302 #define ISpeechLexiconWord_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22303 #define ISpeechLexiconWord_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22304 #define ISpeechLexiconWord_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22305 /*** ISpeechLexiconWord methods ***/
22306 #define ISpeechLexiconWord_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22307 #define ISpeechLexiconWord_get_Type(This,WordType) (This)->lpVtbl->get_Type(This,WordType)
22308 #define ISpeechLexiconWord_get_Word(This,Word) (This)->lpVtbl->get_Word(This,Word)
22309 #define ISpeechLexiconWord_get_Pronunciations(This,Pronunciations) (This)->lpVtbl->get_Pronunciations(This,Pronunciations)
22310 #else
22311 /*** IUnknown methods ***/
22312 static FORCEINLINE HRESULT ISpeechLexiconWord_QueryInterface(ISpeechLexiconWord* This,REFIID riid,void **ppvObject) {
22313     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22314 }
22315 static FORCEINLINE ULONG ISpeechLexiconWord_AddRef(ISpeechLexiconWord* This) {
22316     return This->lpVtbl->AddRef(This);
22317 }
22318 static FORCEINLINE ULONG ISpeechLexiconWord_Release(ISpeechLexiconWord* This) {
22319     return This->lpVtbl->Release(This);
22320 }
22321 /*** IDispatch methods ***/
22322 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfoCount(ISpeechLexiconWord* This,UINT *pctinfo) {
22323     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22324 }
22325 static FORCEINLINE HRESULT ISpeechLexiconWord_GetTypeInfo(ISpeechLexiconWord* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22326     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22327 }
22328 static FORCEINLINE HRESULT ISpeechLexiconWord_GetIDsOfNames(ISpeechLexiconWord* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22329     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22330 }
22331 static FORCEINLINE HRESULT ISpeechLexiconWord_Invoke(ISpeechLexiconWord* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22332     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22333 }
22334 /*** ISpeechLexiconWord methods ***/
22335 static FORCEINLINE HRESULT ISpeechLexiconWord_get_LangId(ISpeechLexiconWord* This,SpeechLanguageId *LangId) {
22336     return This->lpVtbl->get_LangId(This,LangId);
22337 }
22338 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Type(ISpeechLexiconWord* This,SpeechWordType *WordType) {
22339     return This->lpVtbl->get_Type(This,WordType);
22340 }
22341 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Word(ISpeechLexiconWord* This,BSTR *Word) {
22342     return This->lpVtbl->get_Word(This,Word);
22343 }
22344 static FORCEINLINE HRESULT ISpeechLexiconWord_get_Pronunciations(ISpeechLexiconWord* This,ISpeechLexiconPronunciations **Pronunciations) {
22345     return This->lpVtbl->get_Pronunciations(This,Pronunciations);
22346 }
22347 #endif
22348 #endif
22349 
22350 #endif
22351 
22352 
22353 #endif  /* __ISpeechLexiconWord_INTERFACE_DEFINED__ */
22354 
22355 /*****************************************************************************
22356  * ISpeechLexiconPronunciations interface
22357  */
22358 #ifndef __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22359 #define __ISpeechLexiconPronunciations_INTERFACE_DEFINED__
22360 
22361 DEFINE_GUID(IID_ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3);
22362 #if defined(__cplusplus) && !defined(CINTERFACE)
22363 MIDL_INTERFACE("72829128-5682-4704-a0d4-3e2bb6f2ead3")
22364 ISpeechLexiconPronunciations : public IDispatch
22365 {
22366     virtual HRESULT STDMETHODCALLTYPE get_Count(
22367         LONG *Count) = 0;
22368 
22369     virtual HRESULT STDMETHODCALLTYPE Item(
22370         LONG Index,
22371         ISpeechLexiconPronunciation **Pronunciation) = 0;
22372 
22373     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
22374         IUnknown **EnumVARIANT) = 0;
22375 
22376 };
22377 #ifdef __CRT_UUID_DECL
22378 __CRT_UUID_DECL(ISpeechLexiconPronunciations, 0x72829128, 0x5682, 0x4704, 0xa0,0xd4, 0x3e,0x2b,0xb6,0xf2,0xea,0xd3)
22379 #endif
22380 #else
22381 typedef struct ISpeechLexiconPronunciationsVtbl {
22382     BEGIN_INTERFACE
22383 
22384     /*** IUnknown methods ***/
22385     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22386         ISpeechLexiconPronunciations *This,
22387         REFIID riid,
22388         void **ppvObject);
22389 
22390     ULONG (STDMETHODCALLTYPE *AddRef)(
22391         ISpeechLexiconPronunciations *This);
22392 
22393     ULONG (STDMETHODCALLTYPE *Release)(
22394         ISpeechLexiconPronunciations *This);
22395 
22396     /*** IDispatch methods ***/
22397     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22398         ISpeechLexiconPronunciations *This,
22399         UINT *pctinfo);
22400 
22401     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22402         ISpeechLexiconPronunciations *This,
22403         UINT iTInfo,
22404         LCID lcid,
22405         ITypeInfo **ppTInfo);
22406 
22407     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22408         ISpeechLexiconPronunciations *This,
22409         REFIID riid,
22410         LPOLESTR *rgszNames,
22411         UINT cNames,
22412         LCID lcid,
22413         DISPID *rgDispId);
22414 
22415     HRESULT (STDMETHODCALLTYPE *Invoke)(
22416         ISpeechLexiconPronunciations *This,
22417         DISPID dispIdMember,
22418         REFIID riid,
22419         LCID lcid,
22420         WORD wFlags,
22421         DISPPARAMS *pDispParams,
22422         VARIANT *pVarResult,
22423         EXCEPINFO *pExcepInfo,
22424         UINT *puArgErr);
22425 
22426     /*** ISpeechLexiconPronunciations methods ***/
22427     HRESULT (STDMETHODCALLTYPE *get_Count)(
22428         ISpeechLexiconPronunciations *This,
22429         LONG *Count);
22430 
22431     HRESULT (STDMETHODCALLTYPE *Item)(
22432         ISpeechLexiconPronunciations *This,
22433         LONG Index,
22434         ISpeechLexiconPronunciation **Pronunciation);
22435 
22436     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
22437         ISpeechLexiconPronunciations *This,
22438         IUnknown **EnumVARIANT);
22439 
22440     END_INTERFACE
22441 } ISpeechLexiconPronunciationsVtbl;
22442 
22443 interface ISpeechLexiconPronunciations {
22444     CONST_VTBL ISpeechLexiconPronunciationsVtbl* lpVtbl;
22445 };
22446 
22447 #ifdef COBJMACROS
22448 #ifndef WIDL_C_INLINE_WRAPPERS
22449 /*** IUnknown methods ***/
22450 #define ISpeechLexiconPronunciations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22451 #define ISpeechLexiconPronunciations_AddRef(This) (This)->lpVtbl->AddRef(This)
22452 #define ISpeechLexiconPronunciations_Release(This) (This)->lpVtbl->Release(This)
22453 /*** IDispatch methods ***/
22454 #define ISpeechLexiconPronunciations_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22455 #define ISpeechLexiconPronunciations_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22456 #define ISpeechLexiconPronunciations_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22457 #define ISpeechLexiconPronunciations_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22458 /*** ISpeechLexiconPronunciations methods ***/
22459 #define ISpeechLexiconPronunciations_get_Count(This,Count) (This)->lpVtbl->get_Count(This,Count)
22460 #define ISpeechLexiconPronunciations_Item(This,Index,Pronunciation) (This)->lpVtbl->Item(This,Index,Pronunciation)
22461 #define ISpeechLexiconPronunciations_get__NewEnum(This,EnumVARIANT) (This)->lpVtbl->get__NewEnum(This,EnumVARIANT)
22462 #else
22463 /*** IUnknown methods ***/
22464 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_QueryInterface(ISpeechLexiconPronunciations* This,REFIID riid,void **ppvObject) {
22465     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22466 }
22467 static FORCEINLINE ULONG ISpeechLexiconPronunciations_AddRef(ISpeechLexiconPronunciations* This) {
22468     return This->lpVtbl->AddRef(This);
22469 }
22470 static FORCEINLINE ULONG ISpeechLexiconPronunciations_Release(ISpeechLexiconPronunciations* This) {
22471     return This->lpVtbl->Release(This);
22472 }
22473 /*** IDispatch methods ***/
22474 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfoCount(ISpeechLexiconPronunciations* This,UINT *pctinfo) {
22475     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22476 }
22477 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetTypeInfo(ISpeechLexiconPronunciations* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22478     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22479 }
22480 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_GetIDsOfNames(ISpeechLexiconPronunciations* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22481     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22482 }
22483 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Invoke(ISpeechLexiconPronunciations* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22484     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22485 }
22486 /*** ISpeechLexiconPronunciations methods ***/
22487 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get_Count(ISpeechLexiconPronunciations* This,LONG *Count) {
22488     return This->lpVtbl->get_Count(This,Count);
22489 }
22490 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_Item(ISpeechLexiconPronunciations* This,LONG Index,ISpeechLexiconPronunciation **Pronunciation) {
22491     return This->lpVtbl->Item(This,Index,Pronunciation);
22492 }
22493 static FORCEINLINE HRESULT ISpeechLexiconPronunciations_get__NewEnum(ISpeechLexiconPronunciations* This,IUnknown **EnumVARIANT) {
22494     return This->lpVtbl->get__NewEnum(This,EnumVARIANT);
22495 }
22496 #endif
22497 #endif
22498 
22499 #endif
22500 
22501 
22502 #endif  /* __ISpeechLexiconPronunciations_INTERFACE_DEFINED__ */
22503 
22504 /*****************************************************************************
22505  * ISpeechLexiconPronunciation interface
22506  */
22507 #ifndef __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
22508 #define __ISpeechLexiconPronunciation_INTERFACE_DEFINED__
22509 
22510 DEFINE_GUID(IID_ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f);
22511 #if defined(__cplusplus) && !defined(CINTERFACE)
22512 MIDL_INTERFACE("95252c5d-9e43-4f4a-9899-48ee73352f9f")
22513 ISpeechLexiconPronunciation : public IDispatch
22514 {
22515     virtual HRESULT STDMETHODCALLTYPE get_Type(
22516         SpeechLexiconType *LexiconType) = 0;
22517 
22518     virtual HRESULT STDMETHODCALLTYPE get_LangId(
22519         SpeechLanguageId *LangId) = 0;
22520 
22521     virtual HRESULT STDMETHODCALLTYPE get_PartOfSpeech(
22522         SpeechPartOfSpeech *PartOfSpeech) = 0;
22523 
22524     virtual HRESULT STDMETHODCALLTYPE get_PhoneIds(
22525         VARIANT *PhoneIds) = 0;
22526 
22527     virtual HRESULT STDMETHODCALLTYPE get_Symbolic(
22528         BSTR *Symbolic) = 0;
22529 
22530 };
22531 #ifdef __CRT_UUID_DECL
22532 __CRT_UUID_DECL(ISpeechLexiconPronunciation, 0x95252c5d, 0x9e43, 0x4f4a, 0x98,0x99, 0x48,0xee,0x73,0x35,0x2f,0x9f)
22533 #endif
22534 #else
22535 typedef struct ISpeechLexiconPronunciationVtbl {
22536     BEGIN_INTERFACE
22537 
22538     /*** IUnknown methods ***/
22539     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22540         ISpeechLexiconPronunciation *This,
22541         REFIID riid,
22542         void **ppvObject);
22543 
22544     ULONG (STDMETHODCALLTYPE *AddRef)(
22545         ISpeechLexiconPronunciation *This);
22546 
22547     ULONG (STDMETHODCALLTYPE *Release)(
22548         ISpeechLexiconPronunciation *This);
22549 
22550     /*** IDispatch methods ***/
22551     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22552         ISpeechLexiconPronunciation *This,
22553         UINT *pctinfo);
22554 
22555     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22556         ISpeechLexiconPronunciation *This,
22557         UINT iTInfo,
22558         LCID lcid,
22559         ITypeInfo **ppTInfo);
22560 
22561     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22562         ISpeechLexiconPronunciation *This,
22563         REFIID riid,
22564         LPOLESTR *rgszNames,
22565         UINT cNames,
22566         LCID lcid,
22567         DISPID *rgDispId);
22568 
22569     HRESULT (STDMETHODCALLTYPE *Invoke)(
22570         ISpeechLexiconPronunciation *This,
22571         DISPID dispIdMember,
22572         REFIID riid,
22573         LCID lcid,
22574         WORD wFlags,
22575         DISPPARAMS *pDispParams,
22576         VARIANT *pVarResult,
22577         EXCEPINFO *pExcepInfo,
22578         UINT *puArgErr);
22579 
22580     /*** ISpeechLexiconPronunciation methods ***/
22581     HRESULT (STDMETHODCALLTYPE *get_Type)(
22582         ISpeechLexiconPronunciation *This,
22583         SpeechLexiconType *LexiconType);
22584 
22585     HRESULT (STDMETHODCALLTYPE *get_LangId)(
22586         ISpeechLexiconPronunciation *This,
22587         SpeechLanguageId *LangId);
22588 
22589     HRESULT (STDMETHODCALLTYPE *get_PartOfSpeech)(
22590         ISpeechLexiconPronunciation *This,
22591         SpeechPartOfSpeech *PartOfSpeech);
22592 
22593     HRESULT (STDMETHODCALLTYPE *get_PhoneIds)(
22594         ISpeechLexiconPronunciation *This,
22595         VARIANT *PhoneIds);
22596 
22597     HRESULT (STDMETHODCALLTYPE *get_Symbolic)(
22598         ISpeechLexiconPronunciation *This,
22599         BSTR *Symbolic);
22600 
22601     END_INTERFACE
22602 } ISpeechLexiconPronunciationVtbl;
22603 
22604 interface ISpeechLexiconPronunciation {
22605     CONST_VTBL ISpeechLexiconPronunciationVtbl* lpVtbl;
22606 };
22607 
22608 #ifdef COBJMACROS
22609 #ifndef WIDL_C_INLINE_WRAPPERS
22610 /*** IUnknown methods ***/
22611 #define ISpeechLexiconPronunciation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22612 #define ISpeechLexiconPronunciation_AddRef(This) (This)->lpVtbl->AddRef(This)
22613 #define ISpeechLexiconPronunciation_Release(This) (This)->lpVtbl->Release(This)
22614 /*** IDispatch methods ***/
22615 #define ISpeechLexiconPronunciation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22616 #define ISpeechLexiconPronunciation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22617 #define ISpeechLexiconPronunciation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22618 #define ISpeechLexiconPronunciation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22619 /*** ISpeechLexiconPronunciation methods ***/
22620 #define ISpeechLexiconPronunciation_get_Type(This,LexiconType) (This)->lpVtbl->get_Type(This,LexiconType)
22621 #define ISpeechLexiconPronunciation_get_LangId(This,LangId) (This)->lpVtbl->get_LangId(This,LangId)
22622 #define ISpeechLexiconPronunciation_get_PartOfSpeech(This,PartOfSpeech) (This)->lpVtbl->get_PartOfSpeech(This,PartOfSpeech)
22623 #define ISpeechLexiconPronunciation_get_PhoneIds(This,PhoneIds) (This)->lpVtbl->get_PhoneIds(This,PhoneIds)
22624 #define ISpeechLexiconPronunciation_get_Symbolic(This,Symbolic) (This)->lpVtbl->get_Symbolic(This,Symbolic)
22625 #else
22626 /*** IUnknown methods ***/
22627 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_QueryInterface(ISpeechLexiconPronunciation* This,REFIID riid,void **ppvObject) {
22628     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22629 }
22630 static FORCEINLINE ULONG ISpeechLexiconPronunciation_AddRef(ISpeechLexiconPronunciation* This) {
22631     return This->lpVtbl->AddRef(This);
22632 }
22633 static FORCEINLINE ULONG ISpeechLexiconPronunciation_Release(ISpeechLexiconPronunciation* This) {
22634     return This->lpVtbl->Release(This);
22635 }
22636 /*** IDispatch methods ***/
22637 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfoCount(ISpeechLexiconPronunciation* This,UINT *pctinfo) {
22638     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22639 }
22640 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetTypeInfo(ISpeechLexiconPronunciation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22641     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22642 }
22643 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_GetIDsOfNames(ISpeechLexiconPronunciation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22644     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22645 }
22646 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_Invoke(ISpeechLexiconPronunciation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22647     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22648 }
22649 /*** ISpeechLexiconPronunciation methods ***/
22650 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Type(ISpeechLexiconPronunciation* This,SpeechLexiconType *LexiconType) {
22651     return This->lpVtbl->get_Type(This,LexiconType);
22652 }
22653 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_LangId(ISpeechLexiconPronunciation* This,SpeechLanguageId *LangId) {
22654     return This->lpVtbl->get_LangId(This,LangId);
22655 }
22656 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PartOfSpeech(ISpeechLexiconPronunciation* This,SpeechPartOfSpeech *PartOfSpeech) {
22657     return This->lpVtbl->get_PartOfSpeech(This,PartOfSpeech);
22658 }
22659 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_PhoneIds(ISpeechLexiconPronunciation* This,VARIANT *PhoneIds) {
22660     return This->lpVtbl->get_PhoneIds(This,PhoneIds);
22661 }
22662 static FORCEINLINE HRESULT ISpeechLexiconPronunciation_get_Symbolic(ISpeechLexiconPronunciation* This,BSTR *Symbolic) {
22663     return This->lpVtbl->get_Symbolic(This,Symbolic);
22664 }
22665 #endif
22666 #endif
22667 
22668 #endif
22669 
22670 
22671 #endif  /* __ISpeechLexiconPronunciation_INTERFACE_DEFINED__ */
22672 
22673 /*****************************************************************************
22674  * ISpeechPhoneConverter interface
22675  */
22676 #ifndef __ISpeechPhoneConverter_INTERFACE_DEFINED__
22677 #define __ISpeechPhoneConverter_INTERFACE_DEFINED__
22678 
22679 DEFINE_GUID(IID_ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d);
22680 #if defined(__cplusplus) && !defined(CINTERFACE)
22681 MIDL_INTERFACE("c3e4f353-433f-43d6-89a1-6a62a7054c3d")
22682 ISpeechPhoneConverter : public IDispatch
22683 {
22684     virtual HRESULT STDMETHODCALLTYPE get_LanguageId(
22685         SpeechLanguageId *LanguageId) = 0;
22686 
22687     virtual HRESULT STDMETHODCALLTYPE put_LanguageId(
22688         SpeechLanguageId LanguageId) = 0;
22689 
22690     virtual HRESULT STDMETHODCALLTYPE PhoneToId(
22691         const BSTR Phonemes,
22692         VARIANT *IdArray) = 0;
22693 
22694     virtual HRESULT STDMETHODCALLTYPE IdToPhone(
22695         const VARIANT IdArray,
22696         BSTR *Phonemes) = 0;
22697 
22698 };
22699 #ifdef __CRT_UUID_DECL
22700 __CRT_UUID_DECL(ISpeechPhoneConverter, 0xc3e4f353, 0x433f, 0x43d6, 0x89,0xa1, 0x6a,0x62,0xa7,0x05,0x4c,0x3d)
22701 #endif
22702 #else
22703 typedef struct ISpeechPhoneConverterVtbl {
22704     BEGIN_INTERFACE
22705 
22706     /*** IUnknown methods ***/
22707     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22708         ISpeechPhoneConverter *This,
22709         REFIID riid,
22710         void **ppvObject);
22711 
22712     ULONG (STDMETHODCALLTYPE *AddRef)(
22713         ISpeechPhoneConverter *This);
22714 
22715     ULONG (STDMETHODCALLTYPE *Release)(
22716         ISpeechPhoneConverter *This);
22717 
22718     /*** IDispatch methods ***/
22719     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
22720         ISpeechPhoneConverter *This,
22721         UINT *pctinfo);
22722 
22723     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
22724         ISpeechPhoneConverter *This,
22725         UINT iTInfo,
22726         LCID lcid,
22727         ITypeInfo **ppTInfo);
22728 
22729     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
22730         ISpeechPhoneConverter *This,
22731         REFIID riid,
22732         LPOLESTR *rgszNames,
22733         UINT cNames,
22734         LCID lcid,
22735         DISPID *rgDispId);
22736 
22737     HRESULT (STDMETHODCALLTYPE *Invoke)(
22738         ISpeechPhoneConverter *This,
22739         DISPID dispIdMember,
22740         REFIID riid,
22741         LCID lcid,
22742         WORD wFlags,
22743         DISPPARAMS *pDispParams,
22744         VARIANT *pVarResult,
22745         EXCEPINFO *pExcepInfo,
22746         UINT *puArgErr);
22747 
22748     /*** ISpeechPhoneConverter methods ***/
22749     HRESULT (STDMETHODCALLTYPE *get_LanguageId)(
22750         ISpeechPhoneConverter *This,
22751         SpeechLanguageId *LanguageId);
22752 
22753     HRESULT (STDMETHODCALLTYPE *put_LanguageId)(
22754         ISpeechPhoneConverter *This,
22755         SpeechLanguageId LanguageId);
22756 
22757     HRESULT (STDMETHODCALLTYPE *PhoneToId)(
22758         ISpeechPhoneConverter *This,
22759         const BSTR Phonemes,
22760         VARIANT *IdArray);
22761 
22762     HRESULT (STDMETHODCALLTYPE *IdToPhone)(
22763         ISpeechPhoneConverter *This,
22764         const VARIANT IdArray,
22765         BSTR *Phonemes);
22766 
22767     END_INTERFACE
22768 } ISpeechPhoneConverterVtbl;
22769 
22770 interface ISpeechPhoneConverter {
22771     CONST_VTBL ISpeechPhoneConverterVtbl* lpVtbl;
22772 };
22773 
22774 #ifdef COBJMACROS
22775 #ifndef WIDL_C_INLINE_WRAPPERS
22776 /*** IUnknown methods ***/
22777 #define ISpeechPhoneConverter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22778 #define ISpeechPhoneConverter_AddRef(This) (This)->lpVtbl->AddRef(This)
22779 #define ISpeechPhoneConverter_Release(This) (This)->lpVtbl->Release(This)
22780 /*** IDispatch methods ***/
22781 #define ISpeechPhoneConverter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
22782 #define ISpeechPhoneConverter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
22783 #define ISpeechPhoneConverter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
22784 #define ISpeechPhoneConverter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
22785 /*** ISpeechPhoneConverter methods ***/
22786 #define ISpeechPhoneConverter_get_LanguageId(This,LanguageId) (This)->lpVtbl->get_LanguageId(This,LanguageId)
22787 #define ISpeechPhoneConverter_put_LanguageId(This,LanguageId) (This)->lpVtbl->put_LanguageId(This,LanguageId)
22788 #define ISpeechPhoneConverter_PhoneToId(This,Phonemes,IdArray) (This)->lpVtbl->PhoneToId(This,Phonemes,IdArray)
22789 #define ISpeechPhoneConverter_IdToPhone(This,IdArray,Phonemes) (This)->lpVtbl->IdToPhone(This,IdArray,Phonemes)
22790 #else
22791 /*** IUnknown methods ***/
22792 static FORCEINLINE HRESULT ISpeechPhoneConverter_QueryInterface(ISpeechPhoneConverter* This,REFIID riid,void **ppvObject) {
22793     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22794 }
22795 static FORCEINLINE ULONG ISpeechPhoneConverter_AddRef(ISpeechPhoneConverter* This) {
22796     return This->lpVtbl->AddRef(This);
22797 }
22798 static FORCEINLINE ULONG ISpeechPhoneConverter_Release(ISpeechPhoneConverter* This) {
22799     return This->lpVtbl->Release(This);
22800 }
22801 /*** IDispatch methods ***/
22802 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfoCount(ISpeechPhoneConverter* This,UINT *pctinfo) {
22803     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
22804 }
22805 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetTypeInfo(ISpeechPhoneConverter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
22806     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
22807 }
22808 static FORCEINLINE HRESULT ISpeechPhoneConverter_GetIDsOfNames(ISpeechPhoneConverter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
22809     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
22810 }
22811 static FORCEINLINE HRESULT ISpeechPhoneConverter_Invoke(ISpeechPhoneConverter* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
22812     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
22813 }
22814 /*** ISpeechPhoneConverter methods ***/
22815 static FORCEINLINE HRESULT ISpeechPhoneConverter_get_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId *LanguageId) {
22816     return This->lpVtbl->get_LanguageId(This,LanguageId);
22817 }
22818 static FORCEINLINE HRESULT ISpeechPhoneConverter_put_LanguageId(ISpeechPhoneConverter* This,SpeechLanguageId LanguageId) {
22819     return This->lpVtbl->put_LanguageId(This,LanguageId);
22820 }
22821 static FORCEINLINE HRESULT ISpeechPhoneConverter_PhoneToId(ISpeechPhoneConverter* This,const BSTR Phonemes,VARIANT *IdArray) {
22822     return This->lpVtbl->PhoneToId(This,Phonemes,IdArray);
22823 }
22824 static FORCEINLINE HRESULT ISpeechPhoneConverter_IdToPhone(ISpeechPhoneConverter* This,const VARIANT IdArray,BSTR *Phonemes) {
22825     return This->lpVtbl->IdToPhone(This,IdArray,Phonemes);
22826 }
22827 #endif
22828 #endif
22829 
22830 #endif
22831 
22832 
22833 #endif  /* __ISpeechPhoneConverter_INTERFACE_DEFINED__ */
22834 
22835 /*****************************************************************************
22836  * SpNotifyTranslator coclass
22837  */
22838 
22839 DEFINE_GUID(CLSID_SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22840 
22841 #ifdef __cplusplus
22842 class DECLSPEC_UUID("e2ae5372-5d40-11d2-960e-00c04f8ee628") SpNotifyTranslator;
22843 #ifdef __CRT_UUID_DECL
22844 __CRT_UUID_DECL(SpNotifyTranslator, 0xe2ae5372, 0x5d40, 0x11d2, 0x96,0x0e, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22845 #endif
22846 #endif
22847 
22848 /*****************************************************************************
22849  * SpObjectTokenCategory coclass
22850  */
22851 
22852 DEFINE_GUID(CLSID_SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53);
22853 
22854 #ifdef __cplusplus
22855 class DECLSPEC_UUID("a910187f-0c7a-45ac-92cc-59edafb77b53") SpObjectTokenCategory;
22856 #ifdef __CRT_UUID_DECL
22857 __CRT_UUID_DECL(SpObjectTokenCategory, 0xa910187f, 0x0c7a, 0x45ac, 0x92,0xcc, 0x59,0xed,0xaf,0xb7,0x7b,0x53)
22858 #endif
22859 #endif
22860 
22861 /*****************************************************************************
22862  * SpObjectToken coclass
22863  */
22864 
22865 DEFINE_GUID(CLSID_SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe);
22866 
22867 #ifdef __cplusplus
22868 class DECLSPEC_UUID("ef411752-3736-4cb4-9c8c-8ef4ccb58efe") SpObjectToken;
22869 #ifdef __CRT_UUID_DECL
22870 __CRT_UUID_DECL(SpObjectToken, 0xef411752, 0x3736, 0x4cb4, 0x9c,0x8c, 0x8e,0xf4,0xcc,0xb5,0x8e,0xfe)
22871 #endif
22872 #endif
22873 
22874 /*****************************************************************************
22875  * SpResourceManager coclass
22876  */
22877 
22878 DEFINE_GUID(CLSID_SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22879 
22880 #ifdef __cplusplus
22881 class DECLSPEC_UUID("96749373-3391-11d2-9ee3-00c04f797396") SpResourceManager;
22882 #ifdef __CRT_UUID_DECL
22883 __CRT_UUID_DECL(SpResourceManager, 0x96749373, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22884 #endif
22885 #endif
22886 
22887 /*****************************************************************************
22888  * SpStreamFormatConverter coclass
22889  */
22890 
22891 DEFINE_GUID(CLSID_SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5);
22892 
22893 #ifdef __cplusplus
22894 class DECLSPEC_UUID("7013943a-e2ec-11d2-a086-00c04f8ef9b5") SpStreamFormatConverter;
22895 #ifdef __CRT_UUID_DECL
22896 __CRT_UUID_DECL(SpStreamFormatConverter, 0x7013943a, 0xe2ec, 0x11d2, 0xa0,0x86, 0x00,0xc0,0x4f,0x8e,0xf9,0xb5)
22897 #endif
22898 #endif
22899 
22900 /*****************************************************************************
22901  * SpMMAudioEnum coclass
22902  */
22903 
22904 DEFINE_GUID(CLSID_SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0);
22905 
22906 #ifdef __cplusplus
22907 class DECLSPEC_UUID("ab1890a0-e91f-11d2-bb91-00c04f8ee6c0") SpMMAudioEnum;
22908 #ifdef __CRT_UUID_DECL
22909 __CRT_UUID_DECL(SpMMAudioEnum, 0xab1890a0, 0xe91f, 0x11d2, 0xbb,0x91, 0x00,0xc0,0x4f,0x8e,0xe6,0xc0)
22910 #endif
22911 #endif
22912 
22913 /*****************************************************************************
22914  * SpMMAudioIn coclass
22915  */
22916 
22917 DEFINE_GUID(CLSID_SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22918 
22919 #ifdef __cplusplus
22920 class DECLSPEC_UUID("cf3d2e50-53f2-11d2-960c-00c04f8ee628") SpMMAudioIn;
22921 #ifdef __CRT_UUID_DECL
22922 __CRT_UUID_DECL(SpMMAudioIn, 0xcf3d2e50, 0x53f2, 0x11d2, 0x96,0x0c, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22923 #endif
22924 #endif
22925 
22926 /*****************************************************************************
22927  * SpMMAudioOut coclass
22928  */
22929 
22930 DEFINE_GUID(CLSID_SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22931 
22932 #ifdef __cplusplus
22933 class DECLSPEC_UUID("a8c680eb-3d32-11d2-9ee7-00c04f797396") SpMMAudioOut;
22934 #ifdef __CRT_UUID_DECL
22935 __CRT_UUID_DECL(SpMMAudioOut, 0xa8c680eb, 0x3d32, 0x11d2, 0x9e,0xe7, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22936 #endif
22937 #endif
22938 
22939 /*****************************************************************************
22940  * SpStream coclass
22941  */
22942 
22943 DEFINE_GUID(CLSID_SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22944 
22945 #ifdef __cplusplus
22946 class DECLSPEC_UUID("715d9c59-4442-11d2-9605-00c04f8ee628") SpStream;
22947 #ifdef __CRT_UUID_DECL
22948 __CRT_UUID_DECL(SpStream, 0x715d9c59, 0x4442, 0x11d2, 0x96,0x05, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22949 #endif
22950 #endif
22951 
22952 /*****************************************************************************
22953  * SpVoice coclass
22954  */
22955 
22956 DEFINE_GUID(CLSID_SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96);
22957 
22958 #ifdef __cplusplus
22959 class DECLSPEC_UUID("96749377-3391-11d2-9ee3-00c04f797396") SpVoice;
22960 #ifdef __CRT_UUID_DECL
22961 __CRT_UUID_DECL(SpVoice, 0x96749377, 0x3391, 0x11d2, 0x9e,0xe3, 0x00,0xc0,0x4f,0x79,0x73,0x96)
22962 #endif
22963 #endif
22964 
22965 /*****************************************************************************
22966  * SpSharedRecoContext coclass
22967  */
22968 
22969 DEFINE_GUID(CLSID_SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22970 
22971 #ifdef __cplusplus
22972 class DECLSPEC_UUID("47206204-5eca-11d2-960f-00c04f8ee628") SpSharedRecoContext;
22973 #ifdef __CRT_UUID_DECL
22974 __CRT_UUID_DECL(SpSharedRecoContext, 0x47206204, 0x5eca, 0x11d2, 0x96,0x0f, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22975 #endif
22976 #endif
22977 
22978 /*****************************************************************************
22979  * SpInprocRecognizer coclass
22980  */
22981 
22982 DEFINE_GUID(CLSID_SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
22983 
22984 #ifdef __cplusplus
22985 class DECLSPEC_UUID("41b89b6b-9399-11d2-9623-00c04f8ee628") SpInprocRecognizer;
22986 #ifdef __CRT_UUID_DECL
22987 __CRT_UUID_DECL(SpInprocRecognizer, 0x41b89b6b, 0x9399, 0x11d2, 0x96,0x23, 0x00,0xc0,0x4f,0x8e,0xe6,0x28)
22988 #endif
22989 #endif
22990 
22991 /*****************************************************************************
22992  * SpSharedRecognizer coclass
22993  */
22994 
22995 DEFINE_GUID(CLSID_SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f);
22996 
22997 #ifdef __cplusplus
22998 class DECLSPEC_UUID("3bee4890-4fe9-4a37-8c1e-5e7e12791c1f") SpSharedRecognizer;
22999 #ifdef __CRT_UUID_DECL
23000 __CRT_UUID_DECL(SpSharedRecognizer, 0x3bee4890, 0x4fe9, 0x4a37, 0x8c,0x1e, 0x5e,0x7e,0x12,0x79,0x1c,0x1f)
23001 #endif
23002 #endif
23003 
23004 /*****************************************************************************
23005  * SpLexicon coclass
23006  */
23007 
23008 DEFINE_GUID(CLSID_SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
23009 
23010 #ifdef __cplusplus
23011 class DECLSPEC_UUID("0655e396-25d0-11d3-9c26-00c04f8ef87c") SpLexicon;
23012 #ifdef __CRT_UUID_DECL
23013 __CRT_UUID_DECL(SpLexicon, 0x0655e396, 0x25d0, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
23014 #endif
23015 #endif
23016 
23017 /*****************************************************************************
23018  * SpUnCompressedLexicon coclass
23019  */
23020 
23021 DEFINE_GUID(CLSID_SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a);
23022 
23023 #ifdef __cplusplus
23024 class DECLSPEC_UUID("c9e37c15-df92-4727-85d6-72e5eeb6995a") SpUnCompressedLexicon;
23025 #ifdef __CRT_UUID_DECL
23026 __CRT_UUID_DECL(SpUnCompressedLexicon, 0xc9e37c15, 0xdf92, 0x4727, 0x85,0xd6, 0x72,0xe5,0xee,0xb6,0x99,0x5a)
23027 #endif
23028 #endif
23029 
23030 /*****************************************************************************
23031  * SpCompressedLexicon coclass
23032  */
23033 
23034 DEFINE_GUID(CLSID_SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c);
23035 
23036 #ifdef __cplusplus
23037 class DECLSPEC_UUID("90903716-2f42-11d3-9c26-00c04f8ef87c") SpCompressedLexicon;
23038 #ifdef __CRT_UUID_DECL
23039 __CRT_UUID_DECL(SpCompressedLexicon, 0x90903716, 0x2f42, 0x11d3, 0x9c,0x26, 0x00,0xc0,0x4f,0x8e,0xf8,0x7c)
23040 #endif
23041 #endif
23042 
23043 /*****************************************************************************
23044  * SpShortcut coclass
23045  */
23046 
23047 DEFINE_GUID(CLSID_SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa);
23048 
23049 #ifdef __cplusplus
23050 class DECLSPEC_UUID("0d722f1a-9fcf-4e62-96d8-6df8f01a26aa") SpShortcut;
23051 #ifdef __CRT_UUID_DECL
23052 __CRT_UUID_DECL(SpShortcut, 0x0d722f1a, 0x9fcf, 0x4e62, 0x96,0xd8, 0x6d,0xf8,0xf0,0x1a,0x26,0xaa)
23053 #endif
23054 #endif
23055 
23056 /*****************************************************************************
23057  * SpPhoneConverter coclass
23058  */
23059 
23060 DEFINE_GUID(CLSID_SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8);
23061 
23062 #ifdef __cplusplus
23063 class DECLSPEC_UUID("9185f743-1143-4c28-86b5-bff14f20e5c8") SpPhoneConverter;
23064 #ifdef __CRT_UUID_DECL
23065 __CRT_UUID_DECL(SpPhoneConverter, 0x9185f743, 0x1143, 0x4c28, 0x86,0xb5, 0xbf,0xf1,0x4f,0x20,0xe5,0xc8)
23066 #endif
23067 #endif
23068 
23069 /*****************************************************************************
23070  * SpPhoneticAlphabetConverter coclass
23071  */
23072 
23073 DEFINE_GUID(CLSID_SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad);
23074 
23075 #ifdef __cplusplus
23076 class DECLSPEC_UUID("4f414126-dfe3-4629-99ee-797978317ead") SpPhoneticAlphabetConverter;
23077 #ifdef __CRT_UUID_DECL
23078 __CRT_UUID_DECL(SpPhoneticAlphabetConverter, 0x4f414126, 0xdfe3, 0x4629, 0x99,0xee, 0x79,0x79,0x78,0x31,0x7e,0xad)
23079 #endif
23080 #endif
23081 
23082 /*****************************************************************************
23083  * SpNullPhoneConverter coclass
23084  */
23085 
23086 DEFINE_GUID(CLSID_SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3);
23087 
23088 #ifdef __cplusplus
23089 class DECLSPEC_UUID("455f24e9-7396-4a16-9715-7c0fdbe3efe3") SpNullPhoneConverter;
23090 #ifdef __CRT_UUID_DECL
23091 __CRT_UUID_DECL(SpNullPhoneConverter, 0x455f24e9, 0x7396, 0x4a16, 0x97,0x15, 0x7c,0x0f,0xdb,0xe3,0xef,0xe3)
23092 #endif
23093 #endif
23094 
23095 /*****************************************************************************
23096  * SpTextSelectionInformation coclass
23097  */
23098 
23099 DEFINE_GUID(CLSID_SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6);
23100 
23101 #ifdef __cplusplus
23102 class DECLSPEC_UUID("0f92030a-cbfd-4ab8-a164-ff5985547ff6") SpTextSelectionInformation;
23103 #ifdef __CRT_UUID_DECL
23104 __CRT_UUID_DECL(SpTextSelectionInformation, 0x0f92030a, 0xcbfd, 0x4ab8, 0xa1,0x64, 0xff,0x59,0x85,0x54,0x7f,0xf6)
23105 #endif
23106 #endif
23107 
23108 /*****************************************************************************
23109  * SpPhraseInfoBuilder coclass
23110  */
23111 
23112 DEFINE_GUID(CLSID_SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1);
23113 
23114 #ifdef __cplusplus
23115 class DECLSPEC_UUID("c23fc28d-c55f-4720-8b32-91f73c2bd5d1") SpPhraseInfoBuilder;
23116 #ifdef __CRT_UUID_DECL
23117 __CRT_UUID_DECL(SpPhraseInfoBuilder, 0xc23fc28d, 0xc55f, 0x4720, 0x8b,0x32, 0x91,0xf7,0x3c,0x2b,0xd5,0xd1)
23118 #endif
23119 #endif
23120 
23121 /*****************************************************************************
23122  * SpAudioFormat coclass
23123  */
23124 
23125 DEFINE_GUID(CLSID_SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec);
23126 
23127 #ifdef __cplusplus
23128 class DECLSPEC_UUID("9ef96870-e160-4792-820d-48cf0649e4ec") SpAudioFormat;
23129 #ifdef __CRT_UUID_DECL
23130 __CRT_UUID_DECL(SpAudioFormat, 0x9ef96870, 0xe160, 0x4792, 0x82,0x0d, 0x48,0xcf,0x06,0x49,0xe4,0xec)
23131 #endif
23132 #endif
23133 
23134 /*****************************************************************************
23135  * SpWaveFormatEx coclass
23136  */
23137 
23138 DEFINE_GUID(CLSID_SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe);
23139 
23140 #ifdef __cplusplus
23141 class DECLSPEC_UUID("c79a574c-63be-44b9-801f-283f87f898be") SpWaveFormatEx;
23142 #ifdef __CRT_UUID_DECL
23143 __CRT_UUID_DECL(SpWaveFormatEx, 0xc79a574c, 0x63be, 0x44b9, 0x80,0x1f, 0x28,0x3f,0x87,0xf8,0x98,0xbe)
23144 #endif
23145 #endif
23146 
23147 /*****************************************************************************
23148  * SpInProcRecoContext coclass
23149  */
23150 
23151 DEFINE_GUID(CLSID_SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a);
23152 
23153 #ifdef __cplusplus
23154 class DECLSPEC_UUID("73ad6842-ace0-45e8-a4dd-8795881a2c2a") SpInProcRecoContext;
23155 #ifdef __CRT_UUID_DECL
23156 __CRT_UUID_DECL(SpInProcRecoContext, 0x73ad6842, 0xace0, 0x45e8, 0xa4,0xdd, 0x87,0x95,0x88,0x1a,0x2c,0x2a)
23157 #endif
23158 #endif
23159 
23160 /*****************************************************************************
23161  * SpCustomStream coclass
23162  */
23163 
23164 DEFINE_GUID(CLSID_SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8);
23165 
23166 #ifdef __cplusplus
23167 class DECLSPEC_UUID("8dbef13f-1948-4aa8-8cf0-048eebed95d8") SpCustomStream;
23168 #ifdef __CRT_UUID_DECL
23169 __CRT_UUID_DECL(SpCustomStream, 0x8dbef13f, 0x1948, 0x4aa8, 0x8c,0xf0, 0x04,0x8e,0xeb,0xed,0x95,0xd8)
23170 #endif
23171 #endif
23172 
23173 /*****************************************************************************
23174  * SpFileStream coclass
23175  */
23176 
23177 DEFINE_GUID(CLSID_SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91);
23178 
23179 #ifdef __cplusplus
23180 class DECLSPEC_UUID("947812b3-2ae1-4644-ba86-9e90ded7ec91") SpFileStream;
23181 #ifdef __CRT_UUID_DECL
23182 __CRT_UUID_DECL(SpFileStream, 0x947812b3, 0x2ae1, 0x4644, 0xba,0x86, 0x9e,0x90,0xde,0xd7,0xec,0x91)
23183 #endif
23184 #endif
23185 
23186 /*****************************************************************************
23187  * SpMemoryStream coclass
23188  */
23189 
23190 DEFINE_GUID(CLSID_SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94);
23191 
23192 #ifdef __cplusplus
23193 class DECLSPEC_UUID("5fb7ef7d-dff4-468a-b6b7-2fcbd188f994") SpMemoryStream;
23194 #ifdef __CRT_UUID_DECL
23195 __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb,0xd1,0x88,0xf9,0x94)
23196 #endif
23197 #endif
23198 
23199 #ifndef __ISpXMLRecoResult_FWD_DEFINED__
23200 #define __ISpXMLRecoResult_FWD_DEFINED__
23201 typedef interface ISpXMLRecoResult ISpXMLRecoResult;
23202 #ifdef __cplusplus
23203 interface ISpXMLRecoResult;
23204 #endif /* __cplusplus */
23205 #endif
23206 
23207 #ifndef __ISpRecoGrammar2_FWD_DEFINED__
23208 #define __ISpRecoGrammar2_FWD_DEFINED__
23209 typedef interface ISpRecoGrammar2 ISpRecoGrammar2;
23210 #ifdef __cplusplus
23211 interface ISpRecoGrammar2;
23212 #endif /* __cplusplus */
23213 #endif
23214 
23215 #ifndef __ISpeechResourceLoader_FWD_DEFINED__
23216 #define __ISpeechResourceLoader_FWD_DEFINED__
23217 typedef interface ISpeechResourceLoader ISpeechResourceLoader;
23218 #ifdef __cplusplus
23219 interface ISpeechResourceLoader;
23220 #endif /* __cplusplus */
23221 #endif
23222 
23223 #endif /* __SpeechLib_LIBRARY_DEFINED__ */
23224 /* Begin additional prototypes for all interfaces */
23225 
23226 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
23227 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
23228 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
23229 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
23230 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
23231 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
23232 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
23233 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
23234 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
23235 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
23236 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
23237 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
23238 
23239 /* End additional prototypes */
23240 
23241 #ifdef __cplusplus
23242 }
23243 #endif
23244 
23245 #endif /* __sapi54_h__ */
23246